From e18c1fa80ab186ff98acb53d67d92d9e24b8c0fc Mon Sep 17 00:00:00 2001 From: nobody Date: Mon, 22 Jun 1998 04:59:09 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'TAO-0_1_31'. --- ACE-INSTALL.html | 1300 - ACE-categories | 538 - ACE-install.sh | 356 - ACE.DSW | 1217 - ASNMP/COPYRIGHT | 68 - ASNMP/ChangeLog | 243 - ASNMP/Makefile | 34 - ASNMP/README | 166 - ASNMP/TO-DO | 3 - ASNMP/agent/Makefile | 28 - ASNMP/agent/agent_impl.cpp | 156 - ASNMP/agent/agent_impl.h | 52 - ASNMP/agent/main.cpp | 26 - ASNMP/agent/snmp_agent.cpp | 95 - ASNMP/agent/snmp_agent.h | 48 - ASNMP/asnmp-overview.html | 133 - ASNMP/asnmp/ChangeLog | 114 - ASNMP/asnmp/Makefile | 593 - ASNMP/asnmp/TODO | 25 - ASNMP/asnmp/address.cpp | 2687 -- ASNMP/asnmp/address.h | 807 - ASNMP/asnmp/asn1.cpp | 1726 - ASNMP/asnmp/asn1.h | 337 - ASNMP/asnmp/counter.cpp | 106 - ASNMP/asnmp/counter.h | 79 - ASNMP/asnmp/ctr64.cpp | 211 - ASNMP/asnmp/ctr64.h | 110 - ASNMP/asnmp/enttraps.h | 118 - ASNMP/asnmp/gauge.cpp | 113 - ASNMP/asnmp/gauge.h | 80 - ASNMP/asnmp/integer.cpp | 227 - ASNMP/asnmp/integer.h | 140 - ASNMP/asnmp/octet.cpp | 593 - ASNMP/asnmp/octet.h | 150 - ASNMP/asnmp/oid.cpp | 799 - ASNMP/asnmp/oid.h | 165 - ASNMP/asnmp/oid_def.h | 87 - ASNMP/asnmp/pdu.cpp | 495 - ASNMP/asnmp/pdu.h | 213 - ASNMP/asnmp/sagent.cpp | 97 - ASNMP/asnmp/sagent.h | 78 - ASNMP/asnmp/smi.h | 149 - ASNMP/asnmp/smival.h | 104 - ASNMP/asnmp/snmp.cpp | 249 - ASNMP/asnmp/snmp.h | 122 - ASNMP/asnmp/snmperrs.h | 214 - ASNMP/asnmp/target.cpp | 323 - ASNMP/asnmp/target.h | 247 - ASNMP/asnmp/timetick.cpp | 142 - ASNMP/asnmp/timetick.h | 85 - ASNMP/asnmp/transaction.cpp | 201 - ASNMP/asnmp/transaction.h | 75 - ASNMP/asnmp/transaction_result.h | 29 - ASNMP/asnmp/vb.cpp | 396 - ASNMP/asnmp/vb.h | 200 - ASNMP/asnmp/wpdu.cpp | 501 - ASNMP/asnmp/wpdu.h | 80 - ASNMP/examples/Makefile | 26 - ASNMP/examples/get/Makefile | 40 - ASNMP/examples/get/get.cpp | 193 - ASNMP/examples/next/Makefile | 41 - ASNMP/examples/next/next.cpp | 192 - ASNMP/examples/set/Makefile | 41 - ASNMP/examples/set/set.cpp | 262 - ASNMP/examples/trap/Makefile | 41 - ASNMP/examples/trap/trap.cpp | 181 - ASNMP/examples/walk/Makefile | 41 - ASNMP/examples/walk/walk.cpp | 259 - ASNMP/mibs/RFC1213-MIB.my | 2618 -- ASNMP/tests/Address_Test.cpp | 556 - ASNMP/tests/Counter64_Test.cpp | 162 - ASNMP/tests/Counter_Test.cpp | 145 - ASNMP/tests/Gauge_Test.cpp | 135 - ASNMP/tests/Integer_Test.cpp | 201 - ASNMP/tests/Makefile | 223 - ASNMP/tests/Octet_Test.cpp | 163 - ASNMP/tests/Oid_Test.cpp | 188 - ASNMP/tests/Target_Test.cpp | 154 - ASNMP/tests/Varbind_Test.cpp | 203 - ASNMP/tests/run_tests.bat | 44 - ASNMP/tests/run_tests.sh | 60 - ASNMP/tests/test_config.h | 223 - BIBLIOGRAPHY | 752 - COPYING | 35 - ChangeLog-93 | 52 - ChangeLog-94 | 1027 - ChangeLog-95 | 4179 --- ChangeLog-96a | 3889 --- ChangeLog-96b | 5879 ---- ChangeLog-97a | 9203 ----- ChangeLog-97b | 9182 ----- ChangeLog-98a | 6588 ---- ChangeLog-98b | 2418 -- FAQ | 1863 - Makefile | 144 - README | 582 - STL/ACE_Changes | 53 - STL/ChangeLog | 50 - STL/README | 272 - STL/algo.h | 2593 -- STL/algobase.h | 250 - STL/bool.h | 58 - STL/bstring.h | 2516 -- STL/bvector.cpp | 80 - STL/bvector.h | 378 - STL/defalloc.h | 211 - STL/deque.h | 586 - STL/function.h | 287 - STL/heap.h | 212 - STL/iterator.h | 414 - STL/list.h | 520 - STL/map.h | 167 - STL/multimap.h | 161 - STL/multiset.h | 148 - STL/pair.h | 62 - STL/projectn.h | 50 - STL/ptr.h | 338 - STL/queue.h | 1 - STL/random.cpp | 58 - STL/readme2.stl | 272 - STL/set.h | 151 - STL/stack.h | 137 - STL/stl.h | 206 - STL/tempbuf.cpp | 19 - STL/tempbuf.h | 74 - STL/tree.h | 1088 - STL/vector.h | 308 - TAO/Benchmark/Marshal_Test/Orbix/Makefile | 75 - TAO/Benchmark/Marshal_Test/Orbix/client.cpp | 14 - TAO/Benchmark/Marshal_Test/Orbix/marshal.h | 1327 - TAO/Benchmark/Marshal_Test/Orbix/marshal.idl | 90 - .../Marshal_Test/Orbix/orbix_marshal_client.cpp | 1336 - .../Marshal_Test/Orbix/orbix_marshal_client.h | 125 - .../Marshal_Test/Orbix/orbix_marshal_client.i | 23 - .../Marshal_Test/Orbix/orbix_marshal_impl.cpp | 311 - .../Marshal_Test/Orbix/orbix_marshal_impl.h | 191 - .../Marshal_Test/Orbix/orbix_marshal_impl.i | 29 - .../Marshal_Test/Orbix/orbix_marshal_server.cpp | 95 - .../Marshal_Test/Orbix/orbix_marshal_server.h | 59 - .../Marshal_Test/Orbix/orbix_marshal_server.i | 28 - TAO/Benchmark/Marshal_Test/Orbix/run_client | 23 - TAO/Benchmark/Marshal_Test/Orbix/run_dsi | 4 - TAO/Benchmark/Marshal_Test/Orbix/run_dsi_server | 1 - TAO/Benchmark/Marshal_Test/Orbix/run_ssi | 4 - TAO/Benchmark/Marshal_Test/Orbix/run_ssi_server | 1 - TAO/Benchmark/Marshal_Test/Orbix/server.cpp | 14 - TAO/Benchmark/Marshal_Test/TAO/Makefile | 64 - TAO/Benchmark/Marshal_Test/TAO/client.cpp | 14 - TAO/Benchmark/Marshal_Test/TAO/marshal.idl | 91 - TAO/Benchmark/Marshal_Test/TAO/marshalC.cpp | 587 - TAO/Benchmark/Marshal_Test/TAO/marshalC.h | 196 - TAO/Benchmark/Marshal_Test/TAO/marshalS.cpp | 170 - TAO/Benchmark/Marshal_Test/TAO/marshalS.h | 110 - TAO/Benchmark/Marshal_Test/TAO/server.cpp | 14 - .../Marshal_Test/TAO/tao_marshal_client.cpp | 1426 - .../Marshal_Test/TAO/tao_marshal_client.h | 126 - .../Marshal_Test/TAO/tao_marshal_client.i | 23 - .../Marshal_Test/TAO/tao_marshal_impl.cpp | 652 - TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.h | 192 - TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.i | 23 - .../Marshal_Test/TAO/tao_marshal_server.cpp | 112 - .../Marshal_Test/TAO/tao_marshal_server.h | 59 - .../Marshal_Test/TAO/tao_marshal_server.i | 28 - TAO/Benchmark/Marshal_Test/VisiBroker/Makefile | 64 - TAO/Benchmark/Marshal_Test/VisiBroker/client.cpp | 14 - TAO/Benchmark/Marshal_Test/VisiBroker/marshal.idl | 91 - TAO/Benchmark/Marshal_Test/VisiBroker/run_client | 23 - TAO/Benchmark/Marshal_Test/VisiBroker/run_server | 1 - TAO/Benchmark/Marshal_Test/VisiBroker/server.cpp | 14 - .../VisiBroker/visi_marshal_client.cpp | 1346 - .../Marshal_Test/VisiBroker/visi_marshal_client.h | 142 - .../Marshal_Test/VisiBroker/visi_marshal_client.i | 23 - .../Marshal_Test/VisiBroker/visi_marshal_impl.cpp | 331 - .../Marshal_Test/VisiBroker/visi_marshal_impl.h | 179 - .../Marshal_Test/VisiBroker/visi_marshal_impl.i | 30 - .../VisiBroker/visi_marshal_server.cpp | 88 - .../Marshal_Test/VisiBroker/visi_marshal_server.h | 60 - .../Marshal_Test/VisiBroker/visi_marshal_server.i | 28 - TAO/Benchmark/benchmark/Makefile | 125 - TAO/Benchmark/benchmark/driver.cpp | 58 - TAO/Benchmark/benchmark/driver.h | 56 - TAO/Benchmark/benchmark/marshal_options.cpp | 280 - TAO/Benchmark/benchmark/marshal_options.h | 209 - TAO/Benchmark/benchmark/marshal_options.i | 235 - TAO/Benchmark/benchmark/marshal_proxy.cpp | 21 - TAO/Benchmark/benchmark/marshal_proxy.h | 48 - TAO/Benchmark/benchmark/marshal_proxy.i | 12 - TAO/Benchmark/benchmark/marshal_results.cpp | 34 - TAO/Benchmark/benchmark/marshal_results.h | 72 - TAO/Benchmark/benchmark/marshal_results.i | 61 - TAO/IIOP/Build/default.bld | 16 - TAO/IIOP/Build/tao.bld | 53 - TAO/IIOP/Makefile | 27 - TAO/IIOP/docs/us/codecounts/align.hh.cccc | 29 - TAO/IIOP/docs/us/codecounts/any.cpp.cccc | 41 - TAO/IIOP/docs/us/codecounts/any.hh.cccc | 27 - TAO/IIOP/docs/us/codecounts/cdr.cpp.cccc | 36 - TAO/IIOP/docs/us/codecounts/cdr.hh.cccc | 26 - TAO/IIOP/docs/us/codecounts/connmgr.cpp.cccc | 38 - TAO/IIOP/docs/us/codecounts/connmgr.hh.cccc | 27 - TAO/IIOP/docs/us/codecounts/corbacom.cpp.cccc | 32 - TAO/IIOP/docs/us/codecounts/corbacom.hh.cccc | 59 - TAO/IIOP/docs/us/codecounts/debug.cpp.cccc | 39 - TAO/IIOP/docs/us/codecounts/debug.hh.cccc | 29 - TAO/IIOP/docs/us/codecounts/except.cpp.cccc | 53 - TAO/IIOP/docs/us/codecounts/except.hh.cccc | 37 - TAO/IIOP/docs/us/codecounts/generate | 24 - TAO/IIOP/docs/us/codecounts/giop.cpp.cccc | 50 - TAO/IIOP/docs/us/codecounts/giop.hh.cccc | 27 - TAO/IIOP/docs/us/codecounts/iiopobj.cpp.cccc | 34 - TAO/IIOP/docs/us/codecounts/iiopobj.hh.cccc | 30 - TAO/IIOP/docs/us/codecounts/iioporb.cpp.cccc | 35 - TAO/IIOP/docs/us/codecounts/iioporb.hh.cccc | 28 - TAO/IIOP/docs/us/codecounts/initguid.h.cccc | 25 - TAO/IIOP/docs/us/codecounts/interp.cpp.cccc | 40 - TAO/IIOP/docs/us/codecounts/invoke.cpp.cccc | 26 - TAO/IIOP/docs/us/codecounts/marshal.cpp.cccc | 30 - TAO/IIOP/docs/us/codecounts/nvlist.cpp.cccc | 40 - TAO/IIOP/docs/us/codecounts/nvlist.hh.cccc | 37 - TAO/IIOP/docs/us/codecounts/objbase.h.cccc | 37 - TAO/IIOP/docs/us/codecounts/object.cpp.cccc | 55 - TAO/IIOP/docs/us/codecounts/object.hh.cccc | 31 - TAO/IIOP/docs/us/codecounts/orb.hh.cccc | 33 - TAO/IIOP/docs/us/codecounts/orbconf.hh.cccc | 26 - TAO/IIOP/docs/us/codecounts/orbobj.cpp.cccc | 41 - TAO/IIOP/docs/us/codecounts/orbobj.hh.cccc | 31 - TAO/IIOP/docs/us/codecounts/principa.cpp.cccc | 33 - TAO/IIOP/docs/us/codecounts/principa.hh.cccc | 30 - TAO/IIOP/docs/us/codecounts/request.cpp.cccc | 36 - TAO/IIOP/docs/us/codecounts/request.hh.cccc | 31 - TAO/IIOP/docs/us/codecounts/roa.cpp.cccc | 43 - TAO/IIOP/docs/us/codecounts/roa.hh.cccc | 30 - TAO/IIOP/docs/us/codecounts/roa.i.cccc | 35 - TAO/IIOP/docs/us/codecounts/sequence.hh.cccc | 26 - TAO/IIOP/docs/us/codecounts/stub.hh.cccc | 32 - TAO/IIOP/docs/us/codecounts/svrrqst.cpp.cccc | 39 - TAO/IIOP/docs/us/codecounts/svrrqst.hh.cccc | 35 - TAO/IIOP/docs/us/codecounts/t-sizes.cpp.cccc | 25 - TAO/IIOP/docs/us/codecounts/t-xdr.cpp.cccc | 29 - TAO/IIOP/docs/us/codecounts/tc_const.cpp.cccc | 68 - TAO/IIOP/docs/us/codecounts/tcpoa.cpp.cccc | 51 - TAO/IIOP/docs/us/codecounts/tcpoa.hh.cccc | 31 - TAO/IIOP/docs/us/codecounts/thread.hh.cccc | 35 - TAO/IIOP/docs/us/codecounts/toa.cpp.cccc | 27 - TAO/IIOP/docs/us/codecounts/toa.hh.cccc | 30 - TAO/IIOP/docs/us/codecounts/typecode.cpp.cccc | 41 - TAO/IIOP/docs/us/codecounts/typecode.hh.cccc | 36 - TAO/IIOP/docs/us/codecounts/xdr.cpp.cccc | 33 - TAO/IIOP/docs/us/codecounts/xdr.hh.cccc | 27 - TAO/IIOP/docs/us/plan.html | 29 - TAO/IIOP/docs/us/server | 5 - TAO/IIOP/test/Build/clnt.bld | 8 - TAO/IIOP/test/Build/default.bld | 19 - TAO/IIOP/test/Build/svr.bld | 8 - TAO/IIOP/test/Makefile | 121 - TAO/IIOP/test/Orbeline/base_server/Makefile | 19 - .../test/Orbeline/base_server/Profile_Timer.cpp | 129 - TAO/IIOP/test/Orbeline/base_server/Profile_Timer.h | 62 - TAO/IIOP/test/Orbeline/base_server/cubit.idl | 42 - TAO/IIOP/test/Orbeline/base_server/cubit_impl.cpp | 48 - TAO/IIOP/test/Orbeline/base_server/cubit_impl.h | 35 - TAO/IIOP/test/Orbeline/base_server/server.cpp | 51 - TAO/IIOP/test/Orbeline/base_server/stdmk | 36 - TAO/IIOP/test/Orbeline/client/Makefile | 19 - TAO/IIOP/test/Orbeline/client/Profile_Timer.cpp | 129 - TAO/IIOP/test/Orbeline/client/Profile_Timer.h | 62 - TAO/IIOP/test/Orbeline/client/client.cpp | 232 - TAO/IIOP/test/Orbeline/client/cubit.idl | 42 - TAO/IIOP/test/Orbeline/client/stdmk | 36 - TAO/IIOP/test/Orbix/Makefile | 28 - TAO/IIOP/test/Orbix/base_server/Makefile | 89 - TAO/IIOP/test/Orbix/base_server/cubit.h | 729 - TAO/IIOP/test/Orbix/base_server/cubit.idl | 42 - TAO/IIOP/test/Orbix/base_server/cubitC.cpp | 559 - TAO/IIOP/test/Orbix/base_server/cubitC.h | 345 - TAO/IIOP/test/Orbix/base_server/cubitS.cpp | 228 - TAO/IIOP/test/Orbix/base_server/cubitS.h | 120 - TAO/IIOP/test/Orbix/base_server/cubit_impl.cpp | 48 - TAO/IIOP/test/Orbix/base_server/cubit_impl.h | 29 - TAO/IIOP/test/Orbix/base_server/server.cpp | 42 - TAO/IIOP/test/Orbix/base_server/tpr.cpp | 28 - TAO/IIOP/test/Orbix/base_server/tpr.h | 12 - TAO/IIOP/test/Orbix/client/Makefile | 89 - TAO/IIOP/test/Orbix/client/client.cpp | 234 - TAO/IIOP/test/Orbix/client/cubit.h | 729 - TAO/IIOP/test/Orbix/client/cubit.idl | 42 - TAO/IIOP/test/Orbix/client/cubitC.cpp | 559 - TAO/IIOP/test/Orbix/factory_client/Makefile | 77 - TAO/IIOP/test/Orbix/factory_client/client.cpp | 237 - TAO/IIOP/test/Orbix/factory_client/cubit.h | 1113 - TAO/IIOP/test/Orbix/factory_client/cubit.hh | 1111 - TAO/IIOP/test/Orbix/factory_client/cubit.idl | 48 - TAO/IIOP/test/Orbix/factory_client/cubitC.cpp | 712 - TAO/IIOP/test/Orbix/factory_client/cubitS.cpp | 284 - TAO/IIOP/test/Orbix/orb.mk | 146 - TAO/IIOP/test/Orbix/tpool/Makefile | 89 - TAO/IIOP/test/Orbix/tpool/cubit.h | 729 - TAO/IIOP/test/Orbix/tpool/cubit.idl | 42 - TAO/IIOP/test/Orbix/tpool/cubitC.cpp | 559 - TAO/IIOP/test/Orbix/tpool/cubitS.cpp | 228 - TAO/IIOP/test/Orbix/tpool/cubit_impl.cpp | 48 - TAO/IIOP/test/Orbix/tpool/cubit_impl.h | 29 - TAO/IIOP/test/Orbix/tpool/server.cpp | 48 - TAO/IIOP/test/Orbix/tpool/tpool.cpp | 44 - TAO/IIOP/test/Orbix/tpool/tpool.h | 17 - TAO/IIOP/test/Orbix/tpr/Makefile | 89 - TAO/IIOP/test/Orbix/tpr/cubit.h | 729 - TAO/IIOP/test/Orbix/tpr/cubit.idl | 42 - TAO/IIOP/test/Orbix/tpr/cubitC.cpp | 559 - TAO/IIOP/test/Orbix/tpr/cubitC.h | 345 - TAO/IIOP/test/Orbix/tpr/cubitS.cpp | 228 - TAO/IIOP/test/Orbix/tpr/cubitS.h | 120 - TAO/IIOP/test/Orbix/tpr/cubit_impl.cpp | 48 - TAO/IIOP/test/Orbix/tpr/cubit_impl.h | 29 - TAO/IIOP/test/Orbix/tpr/server.cpp | 42 - TAO/IIOP/test/Orbix/tpr/tpr.cpp | 28 - TAO/IIOP/test/Orbix/tpr/tpr.h | 12 - TAO/IIOP/test/Orbix/tps/Makefile | 349 - TAO/IIOP/test/Orbix/tps/cubit.h | 1113 - TAO/IIOP/test/Orbix/tps/cubit.idl | 48 - TAO/IIOP/test/Orbix/tps/cubitC.cpp | 712 - TAO/IIOP/test/Orbix/tps/cubitS.cpp | 284 - TAO/IIOP/test/Orbix/tps/cubit_impl.cpp | 83 - TAO/IIOP/test/Orbix/tps/cubit_impl.h | 48 - TAO/IIOP/test/Orbix/tps/server.cpp | 42 - TAO/IIOP/test/Orbix/tps/tps.cpp | 28 - TAO/IIOP/test/Orbix/tps/tps.h | 13 - TAO/IIOP/test/clnt.cpp | 510 - TAO/IIOP/test/cubit.cpp | 578 - TAO/IIOP/test/cubit.h | 108 - TAO/IIOP/test/cubit.idl | 42 - TAO/IIOP/test/cubitC.cpp | 383 - TAO/IIOP/test/cubitC.h | 104 - TAO/IIOP/test/cubitS.cpp | 234 - TAO/IIOP/test/cubitS.h | 84 - TAO/IIOP/test/cubit_i.cpp | 93 - TAO/IIOP/test/cubit_i.h | 56 - TAO/IIOP/test/method_db.i | 69 - TAO/IIOP/test/results/Orbix | 133 - TAO/IIOP/test/results/TAO | 92 - TAO/IIOP/test/results/Visibroker | 79 - TAO/IIOP/test/results/orbs.xls | Bin 26624 -> 0 bytes TAO/IIOP/test/svr.cpp | 214 - TAO/IIOP/test/test.mak | 463 - TAO/IIOP/test/test.mdp | Bin 43008 -> 0 bytes TAO/IIOP/test/test1.cpp | 392 - TAO/IIOP/test/test1.h | 126 - TAO/IIOP/test/test1.idl | 80 - TAO/IIOP/test/test1_clnt.cpp | 638 - TAO/IIOP/test/test1_svr.cpp | 672 - TAO/IIOP/test/tnf/Orbix.svr.summary | 32 - TAO/IIOP/test/tnf/clnt.summary | 43 - TAO/IIOP/test/tnf/svr.summary | 49 - TAO/IIOP/tests/Cubit/Build/clnt.bld | 8 - TAO/IIOP/tests/Cubit/Build/default.bld | 19 - TAO/IIOP/tests/Cubit/Build/svr.bld | 8 - TAO/IIOP/tests/Cubit/Orbix/Makefile | 28 - TAO/IIOP/tests/Cubit/Orbix/base_server/Makefile | 89 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.h | 729 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.idl | 42 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.cpp | 559 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.h | 345 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.cpp | 228 - TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.h | 120 - .../tests/Cubit/Orbix/base_server/cubit_impl.cpp | 48 - .../tests/Cubit/Orbix/base_server/cubit_impl.h | 29 - TAO/IIOP/tests/Cubit/Orbix/base_server/server.cpp | 42 - TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.cpp | 28 - TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.h | 12 - TAO/IIOP/tests/Cubit/Orbix/client/Makefile | 89 - TAO/IIOP/tests/Cubit/Orbix/client/client.cpp | 234 - TAO/IIOP/tests/Cubit/Orbix/client/cubit.h | 729 - TAO/IIOP/tests/Cubit/Orbix/client/cubit.idl | 42 - TAO/IIOP/tests/Cubit/Orbix/client/cubitC.cpp | 559 - TAO/IIOP/tests/Cubit/Orbix/factory_client/Makefile | 77 - .../tests/Cubit/Orbix/factory_client/client.cpp | 237 - TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.h | 1113 - TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.hh | 1111 - .../tests/Cubit/Orbix/factory_client/cubit.idl | 48 - .../tests/Cubit/Orbix/factory_client/cubitC.cpp | 712 - .../tests/Cubit/Orbix/factory_client/cubitS.cpp | 284 - TAO/IIOP/tests/Cubit/Orbix/orb.mk | 146 - TAO/IIOP/tests/Cubit/Orbix/tpool/Makefile | 89 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.h | 729 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.idl | 42 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubitC.cpp | 559 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubitS.cpp | 228 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.cpp | 48 - TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.h | 29 - TAO/IIOP/tests/Cubit/Orbix/tpool/server.cpp | 48 - TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.cpp | 44 - TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.h | 17 - TAO/IIOP/tests/Cubit/Orbix/tpr/Makefile | 89 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.h | 729 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.idl | 42 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.cpp | 559 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.h | 345 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.cpp | 228 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.h | 120 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.cpp | 48 - TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.h | 29 - TAO/IIOP/tests/Cubit/Orbix/tpr/server.cpp | 42 - TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.cpp | 28 - TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.h | 12 - TAO/IIOP/tests/Cubit/Orbix/tps/Makefile | 349 - TAO/IIOP/tests/Cubit/Orbix/tps/cubit.h | 1113 - TAO/IIOP/tests/Cubit/Orbix/tps/cubit.idl | 48 - TAO/IIOP/tests/Cubit/Orbix/tps/cubitC.cpp | 712 - TAO/IIOP/tests/Cubit/Orbix/tps/cubitS.cpp | 284 - TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.cpp | 83 - TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.h | 48 - TAO/IIOP/tests/Cubit/Orbix/tps/tps.cpp | 28 - TAO/IIOP/tests/Cubit/Orbix/tps/tps.h | 13 - TAO/IIOP/tests/Cubit/README | 7 - TAO/IIOP/tests/Cubit/TAO/Makefile | 121 - TAO/IIOP/tests/Cubit/TAO/clnt.cpp | 510 - TAO/IIOP/tests/Cubit/TAO/cubit.cpp | 578 - TAO/IIOP/tests/Cubit/TAO/cubit.h | 108 - TAO/IIOP/tests/Cubit/TAO/cubit.idl | 42 - TAO/IIOP/tests/Cubit/TAO/cubitC.cpp | 383 - TAO/IIOP/tests/Cubit/TAO/cubitC.h | 104 - TAO/IIOP/tests/Cubit/TAO/cubitS.cpp | 234 - TAO/IIOP/tests/Cubit/TAO/cubitS.h | 84 - TAO/IIOP/tests/Cubit/TAO/cubit_i.cpp | 93 - TAO/IIOP/tests/Cubit/TAO/cubit_i.h | 56 - TAO/IIOP/tests/Cubit/TAO/method_db.i | 69 - TAO/IIOP/tests/Cubit/TAO/svr.cpp | 214 - TAO/IIOP/tests/Cubit/TAO/test.mak | 463 - TAO/IIOP/tests/Cubit/TAO/test.mdp | Bin 43008 -> 0 bytes TAO/IIOP/tests/Cubit/TAO/test1.cpp | 392 - TAO/IIOP/tests/Cubit/TAO/test1.h | 126 - TAO/IIOP/tests/Cubit/TAO/test1.idl | 80 - TAO/IIOP/tests/Cubit/TAO/test1_clnt.cpp | 680 - TAO/IIOP/tests/Cubit/TAO/test1_svr.cpp | 693 - .../tests/Cubit/VisiBroker/base_server/Makefile | 19 - .../Cubit/VisiBroker/base_server/Profile_Timer.cpp | 129 - .../Cubit/VisiBroker/base_server/Profile_Timer.h | 62 - .../tests/Cubit/VisiBroker/base_server/cubit.idl | 42 - .../Cubit/VisiBroker/base_server/cubit_impl.cpp | 48 - .../Cubit/VisiBroker/base_server/cubit_impl.h | 35 - .../tests/Cubit/VisiBroker/base_server/server.cpp | 51 - TAO/IIOP/tests/Cubit/VisiBroker/base_server/stdmk | 36 - TAO/IIOP/tests/Cubit/VisiBroker/client/Makefile | 19 - .../Cubit/VisiBroker/client/Profile_Timer.cpp | 129 - .../tests/Cubit/VisiBroker/client/Profile_Timer.h | 62 - TAO/IIOP/tests/Cubit/VisiBroker/client/client.cpp | 232 - TAO/IIOP/tests/Cubit/VisiBroker/client/cubit.idl | 42 - TAO/IIOP/tests/Cubit/VisiBroker/client/stdmk | 36 - TAO/IIOP/tests/Cubit/results/Orbix | 133 - TAO/IIOP/tests/Cubit/results/TAO | 92 - TAO/IIOP/tests/Cubit/results/Visibroker | 79 - TAO/IIOP/tests/Cubit/results/orbs.xls | Bin 26624 -> 0 bytes TAO/IIOP/tests/Thruput_test/Makefile | 53 - TAO/IIOP/tests/Thruput_test/README | 50 - TAO/IIOP/tests/Thruput_test/client.cpp | 338 - TAO/IIOP/tests/Thruput_test/run | 1 - TAO/IIOP/tests/Thruput_test/run_client | 25 - TAO/IIOP/tests/Thruput_test/run_server | 10 - TAO/IIOP/tests/Thruput_test/run_test | 32 - TAO/IIOP/tests/Thruput_test/server.cpp | 226 - TAO/IIOP/tests/Thruput_test/ttcp.idl | 34 - TAO/IIOP/tests/Thruput_test/ttcpC.cpp | 1007 - TAO/IIOP/tests/Thruput_test/ttcpC.h | 229 - TAO/IIOP/tests/Thruput_test/ttcpS.cpp | 323 - TAO/IIOP/tests/Thruput_test/ttcpS.h | 70 - TAO/IIOP/tests/Thruput_test/ttcp_decl.h | 153 - TAO/IIOP/tests/Thruput_test/ttcp_i.cpp | 90 - TAO/IIOP/tests/Thruput_test/ttcp_i.h | 52 - TAO/IIOP/tests/Thruput_test/utils.cpp | 561 - TAO/TAOACE.dsw | 80 - TAO/TAO_IDL/be/be_union.cpp | 799 - TAO/TAO_IDL/be/be_union_branch.cpp | 120 - TAO/TAO_IDL/be/be_union_label.cpp | 25 - TAO/TAO_IDL/be/be_visitor.cpp | 165 - TAO/TAO_IDL/be/be_visitor_argument.cpp | 36 - TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp | 311 - TAO/TAO_IDL/be/be_visitor_argument/argument.cpp | 83 - TAO/TAO_IDL/be/be_visitor_argument/docall_cs.cpp | 305 - TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp | 295 - .../be/be_visitor_argument/post_docall_cs.cpp | 140 - .../be/be_visitor_argument/post_marshal_ss.cpp | 256 - .../be/be_visitor_argument/post_upcall_ss.cpp | 270 - .../be/be_visitor_argument/pre_docall_cs.cpp | 389 - .../be/be_visitor_argument/pre_upcall_ss.cpp | 266 - TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp | 306 - TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp | 422 - TAO/TAO_IDL/be/be_visitor_array.cpp | 33 - TAO/TAO_IDL/be/be_visitor_array/any_op_ch.cpp | 61 - TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp | 104 - TAO/TAO_IDL/be/be_visitor_array/array.cpp | 148 - TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp | 177 - TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp | 148 - TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp | 184 - TAO/TAO_IDL/be/be_visitor_attribute.cpp | 28 - TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp | 188 - TAO/TAO_IDL/be/be_visitor_constant.cpp | 30 - TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp | 73 - TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp | 133 - TAO/TAO_IDL/be/be_visitor_context.cpp | 478 - TAO/TAO_IDL/be/be_visitor_decl.cpp | 37 - TAO/TAO_IDL/be/be_visitor_enum.cpp | 31 - TAO/TAO_IDL/be/be_visitor_enum/any_op_ch.cpp | 61 - TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp | 79 - TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp | 109 - TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp | 68 - TAO/TAO_IDL/be/be_visitor_exception.cpp | 35 - TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp | 100 - TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp | 143 - .../be/be_visitor_exception/ctor_assign.cpp | 308 - TAO/TAO_IDL/be/be_visitor_exception/exception.cpp | 100 - .../be/be_visitor_exception/exception_ch.cpp | 140 - .../be/be_visitor_exception/exception_ci.cpp | 67 - .../be/be_visitor_exception/exception_cs.cpp | 204 - .../be/be_visitor_exception/exception_ctor.cpp | 300 - TAO/TAO_IDL/be/be_visitor_field.cpp | 29 - TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp | 396 - TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp | 189 - TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp | 253 - TAO/TAO_IDL/be/be_visitor_interface.cpp | 38 - TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp | 74 - TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp | 115 - .../be/be_visitor_interface/collocated_sh.cpp | 136 - .../be/be_visitor_interface/collocated_ss.cpp | 134 - TAO/TAO_IDL/be/be_visitor_interface/interface.cpp | 632 - .../be/be_visitor_interface/interface_ch.cpp | 214 - .../be/be_visitor_interface/interface_ci.cpp | 102 - .../be/be_visitor_interface/interface_cs.cpp | 181 - .../be/be_visitor_interface/interface_sh.cpp | 191 - .../be/be_visitor_interface/interface_si.cpp | 81 - .../be/be_visitor_interface/interface_ss.cpp | 285 - TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp | 142 - TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp | 188 - TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp | 29 - .../be_visitor_interface_fwd/interface_fwd_ch.cpp | 94 - .../be_visitor_interface_fwd/interface_fwd_ci.cpp | 78 - TAO/TAO_IDL/be/be_visitor_module.cpp | 31 - TAO/TAO_IDL/be/be_visitor_module/any_op.cpp | 54 - TAO/TAO_IDL/be/be_visitor_module/module.cpp | 590 - TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp | 78 - TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp | 81 - TAO/TAO_IDL/be/be_visitor_operation.cpp | 48 - TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp | 167 - TAO/TAO_IDL/be/be_visitor_operation/argument.cpp | 184 - .../be/be_visitor_operation/collocated_sh.cpp | 122 - .../be/be_visitor_operation/collocated_ss.cpp | 163 - .../be/be_visitor_operation/exceptlist_cs.cpp | 94 - .../be/be_visitor_operation/operation_ch.cpp | 120 - .../be/be_visitor_operation/operation_cs.cpp | 461 - .../be/be_visitor_operation/operation_sh.cpp | 144 - .../be/be_visitor_operation/operation_ss.cpp | 497 - TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp | 257 - .../be/be_visitor_operation/rettype_assign_ss.cpp | 166 - .../be/be_visitor_operation/rettype_docall_cs.cpp | 170 - .../be/be_visitor_operation/rettype_marshal_ss.cpp | 179 - .../rettype_post_docall_cs.cpp | 70 - .../rettype_post_upcall_ss.cpp | 111 - .../be_visitor_operation/rettype_pre_docall_cs.cpp | 148 - .../be/be_visitor_operation/rettype_return_cs.cpp | 158 - .../be/be_visitor_operation/rettype_vardecl_cs.cpp | 230 - .../be/be_visitor_operation/rettype_vardecl_ss.cpp | 236 - TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp | 119 - TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp | 164 - TAO/TAO_IDL/be/be_visitor_root.cpp | 32 - TAO/TAO_IDL/be/be_visitor_root/any_op.cpp | 54 - TAO/TAO_IDL/be/be_visitor_root/root.cpp | 745 - TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp | 57 - TAO/TAO_IDL/be/be_visitor_root/root_ci.cpp | 56 - TAO/TAO_IDL/be/be_visitor_root/root_cs.cpp | 56 - TAO/TAO_IDL/be/be_visitor_root/root_sh.cpp | 66 - TAO/TAO_IDL/be/be_visitor_root/root_si.cpp | 66 - TAO/TAO_IDL/be/be_visitor_root/root_ss.cpp | 67 - TAO/TAO_IDL/be/be_visitor_scope.cpp | 98 - TAO/TAO_IDL/be/be_visitor_sequence.cpp | 32 - TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp | 64 - TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp | 107 - TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp | 152 - TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp | 190 - .../be/be_visitor_sequence/sequence_base.cpp | 139 - TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp | 475 - TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp | 469 - TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp | 261 - TAO/TAO_IDL/be/be_visitor_structure.cpp | 33 - TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp | 100 - TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp | 144 - TAO/TAO_IDL/be/be_visitor_structure/structure.cpp | 100 - .../be/be_visitor_structure/structure_ch.cpp | 114 - .../be/be_visitor_structure/structure_ci.cpp | 72 - .../be/be_visitor_structure/structure_cs.cpp | 79 - TAO/TAO_IDL/be/be_visitor_typecode.cpp | 29 - .../be/be_visitor_typecode/typecode_decl.cpp | 117 - .../be/be_visitor_typecode/typecode_defn.cpp | 224 - TAO/TAO_IDL/be/be_visitor_typedef.cpp | 33 - TAO/TAO_IDL/be/be_visitor_typedef/any_op_ch.cpp | 291 - TAO/TAO_IDL/be/be_visitor_typedef/any_op_cs.cpp | 292 - TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp | 457 - TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp | 458 - TAO/TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp | 287 - TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp | 150 - TAO/TAO_IDL/be/be_visitor_union.cpp | 36 - TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp | 100 - TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp | 142 - .../be/be_visitor_union/discriminant_ch.cpp | 143 - .../be/be_visitor_union/discriminant_ci.cpp | 137 - .../be/be_visitor_union/discriminant_cs.cpp | 89 - TAO/TAO_IDL/be/be_visitor_union/union.cpp | 106 - TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp | 203 - TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp | 145 - TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp | 179 - TAO/TAO_IDL/be/be_visitor_union_branch.cpp | 31 - .../be/be_visitor_union_branch/private_ch.cpp | 390 - .../be_visitor_union_branch/public_assign_cs.cpp | 79 - .../be/be_visitor_union_branch/public_ch.cpp | 608 - .../be/be_visitor_union_branch/public_ci.cpp | 949 - .../be/be_visitor_union_branch/public_cs.cpp | 193 - TAO/TAO_IDL/be_include/be.h | 125 - TAO/TAO_IDL/be_include/be_argument.h | 49 - TAO/TAO_IDL/be_include/be_array.h | 104 - TAO/TAO_IDL/be_include/be_attribute.h | 48 - TAO/TAO_IDL/be_include/be_codegen.h | 505 - TAO/TAO_IDL/be_include/be_constant.h | 56 - TAO/TAO_IDL/be_include/be_decl.h | 169 - TAO/TAO_IDL/be_include/be_enum.h | 79 - TAO/TAO_IDL/be_include/be_enum_val.h | 55 - TAO/TAO_IDL/be_include/be_exception.h | 61 - TAO/TAO_IDL/be_include/be_expression.h | 48 - TAO/TAO_IDL/be_include/be_factory.h | 72 - TAO/TAO_IDL/be_include/be_field.h | 58 - TAO/TAO_IDL/be_include/be_generator.h | 166 - TAO/TAO_IDL/be_include/be_helper.h | 179 - TAO/TAO_IDL/be_include/be_interface.h | 176 - TAO/TAO_IDL/be_include/be_interface_fwd.h | 76 - TAO/TAO_IDL/be_include/be_interpretive.h | 40 - TAO/TAO_IDL/be_include/be_module.h | 56 - TAO/TAO_IDL/be_include/be_native.h | 59 - TAO/TAO_IDL/be_include/be_operation.h | 78 - TAO/TAO_IDL/be_include/be_predefined_type.h | 77 - TAO/TAO_IDL/be_include/be_root.h | 58 - TAO/TAO_IDL/be_include/be_scope.h | 76 - TAO/TAO_IDL/be_include/be_sequence.h | 108 - TAO/TAO_IDL/be_include/be_state.h | 296 - TAO/TAO_IDL/be_include/be_string.h | 71 - TAO/TAO_IDL/be_include/be_structure.h | 95 - TAO/TAO_IDL/be_include/be_sunsoft.h | 47 - TAO/TAO_IDL/be_include/be_type.h | 106 - TAO/TAO_IDL/be_include/be_typedef.h | 77 - TAO/TAO_IDL/be_include/be_union.h | 103 - TAO/TAO_IDL/be_include/be_union_branch.h | 58 - TAO/TAO_IDL/be_include/be_union_label.h | 19 - TAO/TAO_IDL/be_include/be_visitor.h | 157 - TAO/TAO_IDL/be_include/be_visitor_argument.h | 38 - .../be_include/be_visitor_argument/arglist.h | 88 - .../be_include/be_visitor_argument/argument.h | 59 - .../be_include/be_visitor_argument/docall_cs.h | 81 - .../be_include/be_visitor_argument/marshal_ss.h | 81 - .../be_visitor_argument/post_docall_cs.h | 59 - .../be_visitor_argument/post_marshal_ss.h | 81 - .../be_visitor_argument/post_upcall_ss.h | 82 - .../be_include/be_visitor_argument/pre_docall_cs.h | 81 - .../be_include/be_visitor_argument/pre_upcall_ss.h | 81 - .../be_include/be_visitor_argument/upcall_ss.h | 81 - .../be_include/be_visitor_argument/vardecl_ss.h | 81 - TAO/TAO_IDL/be_include/be_visitor_array.h | 34 - .../be_include/be_visitor_array/any_op_ch.h | 52 - .../be_include/be_visitor_array/any_op_cs.h | 52 - TAO/TAO_IDL/be_include/be_visitor_array/array.h | 84 - TAO/TAO_IDL/be_include/be_visitor_array/array_ch.h | 49 - TAO/TAO_IDL/be_include/be_visitor_array/array_ci.h | 49 - TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h | 49 - TAO/TAO_IDL/be_include/be_visitor_attribute.h | 29 - .../be_include/be_visitor_attribute/attribute.h | 52 - TAO/TAO_IDL/be_include/be_visitor_constant.h | 30 - .../be_include/be_visitor_constant/constant_ch.h | 47 - .../be_include/be_visitor_constant/constant_cs.h | 54 - TAO/TAO_IDL/be_include/be_visitor_context.h | 229 - TAO/TAO_IDL/be_include/be_visitor_decl.h | 52 - TAO/TAO_IDL/be_include/be_visitor_enum.h | 32 - TAO/TAO_IDL/be_include/be_visitor_enum/any_op_ch.h | 47 - TAO/TAO_IDL/be_include/be_visitor_enum/any_op_cs.h | 47 - TAO/TAO_IDL/be_include/be_visitor_enum/enum_ch.h | 56 - TAO/TAO_IDL/be_include/be_visitor_enum/enum_cs.h | 47 - TAO/TAO_IDL/be_include/be_visitor_exception.h | 36 - .../be_include/be_visitor_exception/any_op_ch.h | 51 - .../be_include/be_visitor_exception/any_op_cs.h | 51 - TAO/TAO_IDL/be_include/be_visitor_exception/ctor.h | 83 - .../be_include/be_visitor_exception/ctor_assign.h | 81 - .../be_include/be_visitor_exception/exception.h | 52 - .../be_include/be_visitor_exception/exception_ch.h | 48 - .../be_include/be_visitor_exception/exception_ci.h | 48 - .../be_include/be_visitor_exception/exception_cs.h | 48 - .../be_visitor_exception/exception_ctor.h | 83 - TAO/TAO_IDL/be_include/be_visitor_field.h | 30 - TAO/TAO_IDL/be_include/be_visitor_field/field_ch.h | 78 - TAO/TAO_IDL/be_include/be_visitor_field/field_ci.h | 65 - TAO/TAO_IDL/be_include/be_visitor_field/field_cs.h | 68 - TAO/TAO_IDL/be_include/be_visitor_interface.h | 40 - .../be_include/be_visitor_interface/any_op_ch.h | 47 - .../be_include/be_visitor_interface/any_op_cs.h | 47 - .../be_visitor_interface/collocated_sh.h | 42 - .../be_visitor_interface/collocated_ss.h | 42 - .../be_include/be_visitor_interface/interface.h | 91 - .../be_include/be_visitor_interface/interface_ch.h | 50 - .../be_include/be_visitor_interface/interface_ci.h | 47 - .../be_include/be_visitor_interface/interface_cs.h | 46 - .../be_include/be_visitor_interface/interface_sh.h | 46 - .../be_include/be_visitor_interface/interface_si.h | 46 - .../be_include/be_visitor_interface/interface_ss.h | 46 - .../be_include/be_visitor_interface/tie_sh.h | 46 - .../be_include/be_visitor_interface/tie_si.h | 47 - TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h | 31 - .../be_visitor_interface_fwd/interface_fwd_ch.h | 47 - .../be_visitor_interface_fwd/interface_fwd_ci.h | 47 - TAO/TAO_IDL/be_include/be_visitor_module.h | 35 - TAO/TAO_IDL/be_include/be_visitor_module/any_op.h | 49 - TAO/TAO_IDL/be_include/be_visitor_module/module.h | 74 - .../be_include/be_visitor_module/module_ch.h | 48 - .../be_include/be_visitor_module/module_sh.h | 48 - TAO/TAO_IDL/be_include/be_visitor_operation.h | 50 - .../be_include/be_visitor_operation/arglist.h | 54 - .../be_include/be_visitor_operation/argument.h | 57 - .../be_visitor_operation/collocated_sh.h | 52 - .../be_visitor_operation/collocated_ss.h | 52 - .../be_visitor_operation/exceptlist_cs.h | 52 - .../be_include/be_visitor_operation/operation_ch.h | 50 - .../be_include/be_visitor_operation/operation_cs.h | 55 - .../be_include/be_visitor_operation/operation_sh.h | 50 - .../be_include/be_visitor_operation/operation_ss.h | 55 - .../be_include/be_visitor_operation/rettype.h | 81 - .../be_visitor_operation/rettype_assign_ss.h | 80 - .../be_visitor_operation/rettype_docall_cs.h | 79 - .../be_visitor_operation/rettype_marshal_ss.h | 79 - .../be_visitor_operation/rettype_post_docall_cs.h | 54 - .../be_visitor_operation/rettype_post_upcall_ss.h | 79 - .../be_visitor_operation/rettype_pre_docall_cs.h | 73 - .../be_visitor_operation/rettype_return_cs.h | 78 - .../be_visitor_operation/rettype_vardecl_cs.h | 78 - .../be_visitor_operation/rettype_vardecl_ss.h | 79 - .../be_include/be_visitor_operation/tie_sh.h | 50 - .../be_include/be_visitor_operation/tie_si.h | 50 - TAO/TAO_IDL/be_include/be_visitor_root.h | 37 - TAO/TAO_IDL/be_include/be_visitor_root/any_op.h | 49 - TAO/TAO_IDL/be_include/be_visitor_root/root.h | 81 - TAO/TAO_IDL/be_include/be_visitor_root/root_ch.h | 48 - TAO/TAO_IDL/be_include/be_visitor_root/root_ci.h | 48 - TAO/TAO_IDL/be_include/be_visitor_root/root_cs.h | 48 - TAO/TAO_IDL/be_include/be_visitor_root/root_sh.h | 48 - TAO/TAO_IDL/be_include/be_visitor_root/root_si.h | 48 - TAO/TAO_IDL/be_include/be_visitor_root/root_ss.h | 48 - TAO/TAO_IDL/be_include/be_visitor_scope.h | 53 - TAO/TAO_IDL/be_include/be_visitor_sequence.h | 22 - .../be_include/be_visitor_sequence/any_op_ch.h | 49 - .../be_include/be_visitor_sequence/any_op_cs.h | 49 - .../be_include/be_visitor_sequence/buffer_type.h | 63 - .../be_include/be_visitor_sequence/elemtype.h | 66 - .../be_include/be_visitor_sequence/sequence_base.h | 69 - .../be_include/be_visitor_sequence/sequence_ch.h | 57 - .../be_include/be_visitor_sequence/sequence_ci.h | 55 - .../be_include/be_visitor_sequence/sequence_cs.h | 52 - TAO/TAO_IDL/be_include/be_visitor_structure.h | 37 - .../be_include/be_visitor_structure/any_op_ch.h | 52 - .../be_include/be_visitor_structure/any_op_cs.h | 52 - .../be_include/be_visitor_structure/structure.h | 52 - .../be_include/be_visitor_structure/structure_ch.h | 48 - .../be_include/be_visitor_structure/structure_ci.h | 48 - .../be_include/be_visitor_structure/structure_cs.h | 48 - TAO/TAO_IDL/be_include/be_visitor_typecode.h | 31 - .../be_include/be_visitor_typecode/typecode_decl.h | 74 - .../be_include/be_visitor_typecode/typecode_defn.h | 82 - TAO/TAO_IDL/be_include/be_visitor_typedef.h | 37 - .../be_include/be_visitor_typedef/any_op_ch.h | 69 - .../be_include/be_visitor_typedef/any_op_cs.h | 69 - .../be_include/be_visitor_typedef/typedef.h | 72 - .../be_include/be_visitor_typedef/typedef_ch.h | 76 - .../be_include/be_visitor_typedef/typedef_ci.h | 65 - .../be_include/be_visitor_typedef/typedef_cs.h | 50 - TAO/TAO_IDL/be_include/be_visitor_union.h | 40 - .../be_include/be_visitor_union/any_op_ch.h | 52 - .../be_include/be_visitor_union/any_op_cs.h | 52 - .../be_include/be_visitor_union/discriminant_ch.h | 55 - .../be_include/be_visitor_union/discriminant_ci.h | 55 - .../be_include/be_visitor_union/discriminant_cs.h | 51 - TAO/TAO_IDL/be_include/be_visitor_union/union.h | 52 - TAO/TAO_IDL/be_include/be_visitor_union/union_ch.h | 48 - TAO/TAO_IDL/be_include/be_visitor_union/union_ci.h | 48 - TAO/TAO_IDL/be_include/be_visitor_union/union_cs.h | 48 - TAO/TAO_IDL/be_include/be_visitor_union_branch.h | 32 - .../be_visitor_union_branch/private_ch.h | 82 - .../be_visitor_union_branch/public_assign_cs.h | 49 - .../be_include/be_visitor_union_branch/public_ch.h | 82 - .../be_include/be_visitor_union_branch/public_ci.h | 81 - .../be_include/be_visitor_union_branch/public_cs.h | 69 - TAO/TAO_IDL/docs/ANNOUNCEMENT | 131 - TAO/TAO_IDL/docs/BUG_REPORT | 144 - TAO/TAO_IDL/docs/CHANGES | 122 - TAO/TAO_IDL/docs/CLI | 187 - TAO/TAO_IDL/docs/COPYRIGHT | 57 - TAO/TAO_IDL/docs/INSTALL | 229 - TAO/TAO_IDL/docs/PROBLEMS | 132 - TAO/TAO_IDL/docs/README | 233 - TAO/TAO_IDL/docs/ROADMAP | 126 - TAO/TAO_IDL/docs/WRITING_A_BE | 1350 - TAO/TAO_IDL/driver/Makefile | 361 - TAO/TAO_IDL/driver/drv_args.cpp | 273 - TAO/TAO_IDL/driver/drv_fork.cpp | 127 - TAO/TAO_IDL/driver/drv_init.cpp | 121 - TAO/TAO_IDL/driver/drv_link.cpp | 138 - TAO/TAO_IDL/driver/drv_preproc.cpp | 356 - TAO/TAO_IDL/driver/drv_private.cpp | 81 - TAO/TAO_IDL/fe/Makefile | 403 - TAO/TAO_IDL/fe/fe_declarator.cpp | 159 - TAO/TAO_IDL/fe/fe_extern.cpp | 124 - TAO/TAO_IDL/fe/fe_init.cpp | 369 - TAO/TAO_IDL/fe/fe_interface_header.cpp | 284 - TAO/TAO_IDL/fe/fe_private.cpp | 80 - TAO/TAO_IDL/fe/idl.ll | 528 - TAO/TAO_IDL/fe/idl.yy | 2288 -- TAO/TAO_IDL/fe/lex.yy.cpp | 2197 -- TAO/TAO_IDL/fe/lex.yy.cpp.diff | 34 - TAO/TAO_IDL/fe/y.tab.cpp | 3300 -- TAO/TAO_IDL/fe/y.tab.cpp.diff | 127 - TAO/TAO_IDL/fe/y.tab.h | 77 - TAO/TAO_IDL/idl_specs/array.idl | 39 - TAO/TAO_IDL/idl_specs/constant.idl | 31 - TAO/TAO_IDL/idl_specs/dif2.idl | 50 - TAO/TAO_IDL/idl_specs/inherit.idl | 19 - TAO/TAO_IDL/idl_specs/module.idl | 22 - TAO/TAO_IDL/idl_specs/primtypes.idl | 25 - TAO/TAO_IDL/idl_specs/sequence.idl | 27 - TAO/TAO_IDL/idl_specs/simple.idl | 18 - TAO/TAO_IDL/idl_specs/simple2.idl | 28 - TAO/TAO_IDL/idl_specs/struct.idl | 54 - TAO/TAO_IDL/idl_specs/union.idl | 28 - TAO/TAO_IDL/idl_specs/union2.idl | 23 - TAO/TAO_IDL/include/ast.h | 120 - TAO/TAO_IDL/include/ast_argument.h | 115 - TAO/TAO_IDL/include/ast_array.h | 117 - TAO/TAO_IDL/include/ast_attribute.h | 109 - TAO/TAO_IDL/include/ast_concrete_type.h | 95 - TAO/TAO_IDL/include/ast_constant.h | 117 - TAO/TAO_IDL/include/ast_decl.h | 190 - TAO/TAO_IDL/include/ast_enum.h | 115 - TAO/TAO_IDL/include/ast_enum_val.h | 99 - TAO/TAO_IDL/include/ast_exception.h | 118 - TAO/TAO_IDL/include/ast_expression.h | 231 - TAO/TAO_IDL/include/ast_extern.h | 93 - TAO/TAO_IDL/include/ast_field.h | 119 - TAO/TAO_IDL/include/ast_generator.h | 219 - TAO/TAO_IDL/include/ast_interface.h | 147 - TAO/TAO_IDL/include/ast_interface_fwd.h | 106 - TAO/TAO_IDL/include/ast_module.h | 121 - TAO/TAO_IDL/include/ast_native.h | 38 - TAO/TAO_IDL/include/ast_operation.h | 139 - TAO/TAO_IDL/include/ast_predefined_type.h | 127 - TAO/TAO_IDL/include/ast_root.h | 107 - TAO/TAO_IDL/include/ast_sequence.h | 108 - TAO/TAO_IDL/include/ast_string.h | 108 - TAO/TAO_IDL/include/ast_structure.h | 118 - TAO/TAO_IDL/include/ast_type.h | 101 - TAO/TAO_IDL/include/ast_typedef.h | 105 - TAO/TAO_IDL/include/ast_union.h | 143 - TAO/TAO_IDL/include/ast_union_branch.h | 109 - TAO/TAO_IDL/include/ast_union_label.h | 110 - TAO/TAO_IDL/include/be_extern.h | 82 - TAO/TAO_IDL/include/drv_extern.h | 86 - TAO/TAO_IDL/include/drv_link.h | 124 - TAO/TAO_IDL/include/drv_private.h | 83 - TAO/TAO_IDL/include/fe_declarator.h | 113 - TAO/TAO_IDL/include/fe_extern.h | 109 - TAO/TAO_IDL/include/fe_interface_header.h | 109 - TAO/TAO_IDL/include/fe_private.h | 90 - TAO/TAO_IDL/include/global_extern.h | 80 - TAO/TAO_IDL/include/idl.h | 96 - TAO/TAO_IDL/include/idl_bool.h | 94 - TAO/TAO_IDL/include/idl_defines.h | 84 - TAO/TAO_IDL/include/idl_extern.h | 81 - TAO/TAO_IDL/include/idl_fwd.h | 148 - TAO/TAO_IDL/include/idl_global.h | 374 - TAO/TAO_IDL/include/idl_narrow.h | 264 - TAO/TAO_IDL/include/intlmacros.h | 87 - TAO/TAO_IDL/include/nr_extern.h | 76 - TAO/TAO_IDL/include/util.h | 87 - TAO/TAO_IDL/include/utl_decllist.h | 121 - TAO/TAO_IDL/include/utl_err.h | 183 - TAO/TAO_IDL/include/utl_error.h | 183 - TAO/TAO_IDL/include/utl_exceptlist.h | 121 - TAO/TAO_IDL/include/utl_exprlist.h | 121 - TAO/TAO_IDL/include/utl_identifier.h | 113 - TAO/TAO_IDL/include/utl_idlist.h | 147 - TAO/TAO_IDL/include/utl_indenter.h | 117 - TAO/TAO_IDL/include/utl_labellist.h | 121 - TAO/TAO_IDL/include/utl_list.h | 150 - TAO/TAO_IDL/include/utl_namelist.h | 121 - TAO/TAO_IDL/include/utl_scope.h | 292 - TAO/TAO_IDL/include/utl_scoped_name.h | 82 - TAO/TAO_IDL/include/utl_stack.h | 150 - TAO/TAO_IDL/include/utl_string.h | 143 - TAO/TAO_IDL/include/utl_strlist.h | 135 - TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h | 100 - TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h | 108 - TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h | 101 - TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h | 100 - TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h | 96 - TAO/TAO_IDL/include/utl_tmpl/utl_list.h | 140 - TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h | 98 - TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h | 104 - TAO/TAO_IDL/narrow/Makefile | 100 - TAO/TAO_IDL/narrow/narrow.cpp | 139 - TAO/TAO_IDL/util/Makefile | 719 - TAO/TAO_IDL/util/utl_decllist.cpp | 147 - TAO/TAO_IDL/util/utl_err.cpp | 702 - TAO/TAO_IDL/util/utl_error.cpp | 702 - TAO/TAO_IDL/util/utl_exceptlist.cpp | 145 - TAO/TAO_IDL/util/utl_exprlist.cpp | 145 - TAO/TAO_IDL/util/utl_global.cpp | 654 - TAO/TAO_IDL/util/utl_identifier.cpp | 122 - TAO/TAO_IDL/util/utl_idlist.cpp | 189 - TAO/TAO_IDL/util/utl_indenter.cpp | 133 - TAO/TAO_IDL/util/utl_labellist.cpp | 145 - TAO/TAO_IDL/util/utl_list.cpp | 197 - TAO/TAO_IDL/util/utl_namelist.cpp | 145 - TAO/TAO_IDL/util/utl_scope.cpp | 1206 - TAO/TAO_IDL/util/utl_stack.cpp | 257 - TAO/TAO_IDL/util/utl_string.cpp | 212 - TAO/TAO_IDL/util/utl_strlist.cpp | 196 - TAO/TAO_IDL/util/utl_tmpl/utl_decllist.cpp | 105 - TAO/TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp | 104 - TAO/TAO_IDL/util/utl_tmpl/utl_exprlist.cpp | 104 - TAO/TAO_IDL/util/utl_tmpl/utl_idlist.cpp | 137 - TAO/TAO_IDL/util/utl_tmpl/utl_labellist.cpp | 104 - TAO/TAO_IDL/util/utl_tmpl/utl_list.cpp | 211 - TAO/TAO_IDL/util/utl_tmpl/utl_namelist.cpp | 106 - TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp | 139 - TAO/announcement | 61 - .../Simulator/DOVEBrowser/AnswerEvent.java | 23 - .../Simulator/DOVEBrowser/AnswerListener.java | 18 - .../Simulator/DOVEBrowser/DOVEBrowser.html | 30 - .../Simulator/DOVEBrowser/DOVEBrowser.java | 47 - .../Simulator/DOVEBrowser/DOVEBrowserApplet.java | 49 - .../Simulator/DOVEBrowser/DataHandler.java | 34 - TAO/examples/Simulator/DOVEBrowser/DemoCore.java | 154 - .../Simulator/DOVEBrowser/DemoObservable.java | 19 - .../Simulator/DOVEBrowser/DoubleVisComp.java | 206 - TAO/examples/Simulator/DOVEBrowser/NS_Resolve.java | 112 - .../Simulator/DOVEBrowser/NavWeapDataHandler.java | 220 - .../Simulator/DOVEBrowser/NavigationVisComp.java | 350 - .../Simulator/DOVEBrowser/ObservablesDialog.java | 90 - TAO/examples/Simulator/DOVEBrowser/Properties.java | 22 - .../Simulator/DOVEBrowser/PushConsumer.java | 198 - .../Simulator/DOVEBrowser/PushConsumer.java.JDK1.2 | 190 - .../Simulator/DOVEBrowser/PushConsumerFactory.java | 181 - .../DOVEBrowser/PushConsumerFactory.java.JDK1.2 | 180 - TAO/examples/Simulator/DOVEBrowser/Queue.java | 190 - TAO/examples/Simulator/DOVEBrowser/VisComp.java | 19 - .../Simulator/DOVEBrowser/VisCompFactory.java | 48 - .../Simulator/DOVEBrowser/WeaponsVisComp.java | 144 - TAO/examples/Simulator/DOVEBrowser/make.bat | 45 - TAO/examples/Simulator/DOVEMIB/AnyAnalyser.cpp | 203 - TAO/examples/Simulator/DOVEMIB/AnyAnalyser.h | 57 - TAO/examples/Simulator/DOVEMIB/DOVEMIB.cpp | 407 - TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsp | 102 - TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsw | 53 - TAO/examples/Simulator/DOVEMIB/DOVEMIB.h | 62 - TAO/examples/Simulator/DOVEMIB/DOVEMIBx.dsp | 177 - TAO/examples/Simulator/DOVEMIB/Makefile | 978 - TAO/examples/Simulator/DOVEMIB/Node.cpp | 217 - TAO/examples/Simulator/DOVEMIB/Node.h | 185 - TAO/examples/Simulator/DOVEMIB/NodeVisitor.h | 39 - TAO/examples/Simulator/DOVEMIB/PrintVisitor.cpp | 128 - TAO/examples/Simulator/DOVEMIB/PrintVisitor.h | 45 - TAO/examples/Simulator/DOVEMIB/TestClient.dsp | 167 - TAO/examples/Simulator/DOVEMIB/any_test.idl | 11 - TAO/examples/Simulator/DOVEMIB/any_test_i.cpp | 63 - TAO/examples/Simulator/DOVEMIB/any_test_i.h | 42 - TAO/examples/Simulator/DOVEMIB/clnt.cpp | 183 - TAO/examples/Simulator/DOVEMIB/clnt.h | 62 - TAO/examples/Simulator/DOVEMIB/svc.conf | 49 - TAO/examples/Simulator/DOVEMIB/svr.cpp | 166 - TAO/examples/Simulator/Event_Supplier/EDF.dat | 72 - .../Simulator/Event_Supplier/Event_Con.cpp | 375 - TAO/examples/Simulator/Event_Supplier/Event_Con.h | 66 - .../Simulator/Event_Supplier/Event_Sup.cpp | 732 - .../Simulator/Event_Supplier/Event_Sup.dsp | 132 - .../Simulator/Event_Supplier/Event_Sup.dsw | 29 - TAO/examples/Simulator/Event_Supplier/Event_Sup.h | 134 - TAO/examples/Simulator/Event_Supplier/MLF.dat | 72 - TAO/examples/Simulator/Event_Supplier/MUF.dat | 72 - TAO/examples/Simulator/Event_Supplier/Makefile | 69 - TAO/examples/Simulator/Event_Supplier/RMS.dat | 72 - TAO/examples/Simulator/Event_Supplier/RMS_Dyn.dat | 72 - TAO/examples/Simulator/Event_Supplier/svc.conf | 49 - TAO/examples/Simulator/NavWeap.idl | 54 - TAO/examples/Simulator/README | 178 - .../Concurrency_Service/Concurrency_Service.cpp | 220 - .../Concurrency_Service/Concurrency_Service.dsp | 104 - .../Concurrency_Service/Concurrency_Service.dsw | 29 - .../Concurrency_Service/Concurrency_Service.h | 101 - TAO/orbsvcs/Concurrency_Service/Makefile | 47 - TAO/orbsvcs/Concurrency_Service/README | 129 - TAO/orbsvcs/Concurrency_Service/svc.conf | 49 - TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp | 91 - TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsp | 99 - TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsw | 29 - TAO/orbsvcs/Dump_Schedule/Makefile | 48 - TAO/orbsvcs/Dump_Schedule/svc.conf | 49 - TAO/orbsvcs/Event_Service/Event_Service.cpp | 115 - TAO/orbsvcs/Event_Service/Event_Service.dsp | 147 - TAO/orbsvcs/Event_Service/Event_Service.dsw | 29 - TAO/orbsvcs/Event_Service/Makefile | 327 - TAO/orbsvcs/Event_Service/svc.conf | 49 - .../LifeCycle_Service/Criteria_Evaluator.cpp | 87 - TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.h | 58 - TAO/orbsvcs/LifeCycle_Service/Factory_Trader.cpp | 281 - TAO/orbsvcs/LifeCycle_Service/Factory_Trader.h | 60 - .../LifeCycle_Service/LifeCycle_Service.dsp | 134 - .../LifeCycle_Service/LifeCycle_Service.dsw | 29 - .../LifeCycle_Service/Life_Cycle_Service.cpp | 222 - TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.h | 64 - .../LifeCycle_Service/Life_Cycle_Service_Impl.cpp | 167 - .../LifeCycle_Service/Life_Cycle_Service_Impl.h | 63 - TAO/orbsvcs/LifeCycle_Service/Makefile | 303 - TAO/orbsvcs/LifeCycle_Service/svc.conf | 49 - TAO/orbsvcs/Makefile | 29 - TAO/orbsvcs/Naming_Service/Makefile | 47 - TAO/orbsvcs/Naming_Service/Naming_Service.cpp | 174 - TAO/orbsvcs/Naming_Service/Naming_Service.dsp | 111 - TAO/orbsvcs/Naming_Service/Naming_Service.dsw | 29 - TAO/orbsvcs/Naming_Service/Naming_Service.h | 67 - TAO/orbsvcs/Naming_Service/README | 76 - TAO/orbsvcs/Naming_Service/svc.conf | 49 - TAO/orbsvcs/Scheduling_Service/Makefile | 48 - .../Scheduling_Service/Scheduling_Service.cpp | 117 - .../Scheduling_Service/Scheduling_Service.dsp | 112 - .../Scheduling_Service/Scheduling_Service.dsw | 29 - TAO/orbsvcs/Scheduling_Service/svc.conf | 49 - TAO/orbsvcs/Trading_Service/Makefile | 45 - TAO/orbsvcs/Trading_Service/svc.conf | 49 - TAO/orbsvcs/Trading_Service/trader.cpp | 123 - TAO/orbsvcs/default.bld | 44 - TAO/orbsvcs/orbsvcs.dsw | 131 - TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp | 801 - TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h | 488 - TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp | 891 - TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h | 324 - TAO/orbsvcs/orbsvcs/AV/README | 28 - TAO/orbsvcs/orbsvcs/AVStreams.idl | 502 - TAO/orbsvcs/orbsvcs/AVStreams_Full.idl | 250 - TAO/orbsvcs/orbsvcs/Channel_Clients.cpp | 1 - TAO/orbsvcs/orbsvcs/Channel_Clients.h | 26 - TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp | 31 - TAO/orbsvcs/orbsvcs/Channel_Clients_T.h | 93 - TAO/orbsvcs/orbsvcs/Channel_Clients_T.i | 17 - TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp | 239 - TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.h | 135 - TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp | 340 - TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.h | 169 - .../orbsvcs/Concurrency/CC_LockSetFactory.cpp | 61 - .../orbsvcs/Concurrency/CC_LockSetFactory.h | 55 - .../orbsvcs/Concurrency/Concurrency_Utils.cpp | 94 - .../orbsvcs/Concurrency/Concurrency_Utils.h | 65 - TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl | 194 - TAO/orbsvcs/orbsvcs/CosLifeCycle.idl | 119 - TAO/orbsvcs/orbsvcs/CosNaming.idl | 207 - TAO/orbsvcs/orbsvcs/CosPropertyService.idl | 403 - TAO/orbsvcs/orbsvcs/CosTimeBase.idl | 62 - TAO/orbsvcs/orbsvcs/CosTrading.idl | 717 - TAO/orbsvcs/orbsvcs/Event/BCU.cpp | 31 - TAO/orbsvcs/orbsvcs/Event/BCU.h | 36 - TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp | 349 - TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h | 236 - TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i | 76 - TAO/orbsvcs/orbsvcs/Event/Channel_Clients.i | 2 - TAO/orbsvcs/orbsvcs/Event/Channel_Clients_T.i | 35 - TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h | 13 - TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp | 645 - TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.h | 486 - TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.i | 265 - TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp | 270 - TAO/orbsvcs/orbsvcs/Event/EC_Gateway.h | 182 - TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp | 3349 -- TAO/orbsvcs/orbsvcs/Event/Event_Channel.h | 1338 - TAO/orbsvcs/orbsvcs/Event/Event_Channel.i | 671 - TAO/orbsvcs/orbsvcs/Event/Fast_Reactor.h | 53 - TAO/orbsvcs/orbsvcs/Event/GPlot_File.cpp | 179 - TAO/orbsvcs/orbsvcs/Event/GPlot_File.h | 97 - TAO/orbsvcs/orbsvcs/Event/GPlot_File.i | 70 - TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.cpp | 9 - TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.h | 49 - TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.i | 5 - TAO/orbsvcs/orbsvcs/Event/Memory_Pools.cpp | 43 - TAO/orbsvcs/orbsvcs/Event/Memory_Pools.h | 107 - TAO/orbsvcs/orbsvcs/Event/Memory_Pools.i | 54 - TAO/orbsvcs/orbsvcs/Event/RT_Task.cpp | 484 - TAO/orbsvcs/orbsvcs/Event/RT_Task.h | 178 - TAO/orbsvcs/orbsvcs/Event/RT_Task.i | 8 - TAO/orbsvcs/orbsvcs/Event/ReactorTask.cpp | 133 - TAO/orbsvcs/orbsvcs/Event/ReactorTask.h | 76 - TAO/orbsvcs/orbsvcs/Event/Task_Manager.cpp | 45 - TAO/orbsvcs/orbsvcs/Event/Task_Manager.h | 56 - TAO/orbsvcs/orbsvcs/Event/Task_Manager.i | 30 - TAO/orbsvcs/orbsvcs/Event_Service_Constants.h | 98 - TAO/orbsvcs/orbsvcs/Event_Utilities.cpp | 133 - TAO/orbsvcs/orbsvcs/Event_Utilities.h | 224 - TAO/orbsvcs/orbsvcs/Event_Utilities.i | 100 - TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp | 101 - TAO/orbsvcs/orbsvcs/IOR_Multicast.h | 85 - TAO/orbsvcs/orbsvcs/LifeCycleService.idl | 71 - TAO/orbsvcs/orbsvcs/Log/Logger_i.cpp | 38 - TAO/orbsvcs/orbsvcs/Log/Logger_i.h | 56 - TAO/orbsvcs/orbsvcs/Logger.idl | 23 - TAO/orbsvcs/orbsvcs/Makefile | 21496 ------------ TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.cpp | 787 - TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h | 188 - TAO/orbsvcs/orbsvcs/Naming/Entries.cpp | 108 - TAO/orbsvcs/orbsvcs/Naming/Entries.h | 110 - TAO/orbsvcs/orbsvcs/Naming/Naming_Utils.cpp | 267 - TAO/orbsvcs/orbsvcs/Naming/Naming_Utils.h | 93 - TAO/orbsvcs/orbsvcs/Null_MediaCtrl.idl | 5 - .../orbsvcs/Property/CosPropertyService_i.cpp | 1944 -- .../orbsvcs/Property/CosPropertyService_i.h | 500 - TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl | 72 - TAO/orbsvcs/orbsvcs/RtecEventComm.idl | 87 - TAO/orbsvcs/orbsvcs/RtecScheduler.idl | 267 - TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp | 204 - TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h | 98 - TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i | 5 - TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp | 296 - TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h | 162 - TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.i | 5 - TAO/orbsvcs/orbsvcs/Sched/DynSched.cpp | 1820 - TAO/orbsvcs/orbsvcs/Sched/DynSched.h | 485 - TAO/orbsvcs/orbsvcs/Sched/DynSched.i | 111 - TAO/orbsvcs/orbsvcs/Sched/SchedEntry.cpp | 918 - TAO/orbsvcs/orbsvcs/Sched/SchedEntry.h | 592 - TAO/orbsvcs/orbsvcs/Sched/SchedEntry.i | 402 - TAO/orbsvcs/orbsvcs/Sched/Scheduler.cpp | 279 - TAO/orbsvcs/orbsvcs/Sched/Scheduler.h | 276 - TAO/orbsvcs/orbsvcs/Sched/Scheduler.i | 20 - TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.cpp | 262 - TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.h | 129 - TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.i | 21 - TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.cpp | 1353 - TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h | 571 - TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.i | 21 - TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp | 304 - TAO/orbsvcs/orbsvcs/Scheduler_Factory.h | 131 - TAO/orbsvcs/orbsvcs/Scheduler_Factory.i | 25 - TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp | 14 - TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h | 46 - TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i | 32 - TAO/orbsvcs/orbsvcs/Sequences.idl | 26 - TAO/orbsvcs/orbsvcs/Time_Utilities.cpp | 10 - TAO/orbsvcs/orbsvcs/Time_Utilities.h | 74 - TAO/orbsvcs/orbsvcs/Time_Utilities.i | 106 - TAO/orbsvcs/orbsvcs/Trader/Admin.cpp | 328 - TAO/orbsvcs/orbsvcs/Trader/Admin.h | 194 - TAO/orbsvcs/orbsvcs/Trader/Attributes.cpp | 407 - TAO/orbsvcs/orbsvcs/Trader/Attributes.h | 268 - TAO/orbsvcs/orbsvcs/Trader/Attributes_T.cpp | 183 - TAO/orbsvcs/orbsvcs/Trader/Attributes_T.h | 164 - TAO/orbsvcs/orbsvcs/Trader/Constraint.cpp | 49 - TAO/orbsvcs/orbsvcs/Trader/Constraint.h | 66 - .../orbsvcs/Trader/Constraint_Evaluator.cpp | 626 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Evaluator.h | 171 - .../orbsvcs/Trader/Constraint_Interpreter.cpp | 77 - .../orbsvcs/Trader/Constraint_Interpreter.h | 68 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp | 917 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h | 314 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Tokens.h | 36 - .../orbsvcs/Trader/Constraint_Validator.cpp | 468 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Validator.h | 135 - TAO/orbsvcs/orbsvcs/Trader/Constraint_Visitor.h | 79 - TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp | 1772 - TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp | 905 - TAO/orbsvcs/orbsvcs/Trader/Dynamic_Property.cpp | 130 - TAO/orbsvcs/orbsvcs/Trader/Dynamic_Property.h | 90 - TAO/orbsvcs/orbsvcs/Trader/Interpreter.cpp | 54 - TAO/orbsvcs/orbsvcs/Trader/Interpreter.h | 45 - TAO/orbsvcs/orbsvcs/Trader/Link.cpp | 190 - TAO/orbsvcs/orbsvcs/Trader/Link.h | 198 - TAO/orbsvcs/orbsvcs/Trader/Locking.h | 48 - TAO/orbsvcs/orbsvcs/Trader/Lookup.cpp | 752 - TAO/orbsvcs/orbsvcs/Trader/Lookup.h | 309 - TAO/orbsvcs/orbsvcs/Trader/Offer_Filter.cpp | 146 - TAO/orbsvcs/orbsvcs/Trader/Offer_Filter.h | 99 - TAO/orbsvcs/orbsvcs/Trader/Offer_Id_Iterator.cpp | 127 - TAO/orbsvcs/orbsvcs/Trader/Offer_Id_Iterator.h | 93 - TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator.cpp | 58 - TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator.h | 92 - .../orbsvcs/Trader/Offer_Iterator_Collection.cpp | 137 - .../orbsvcs/Trader/Offer_Iterator_Collection.h | 88 - TAO/orbsvcs/orbsvcs/Trader/Offer_Modifier.cpp | 143 - TAO/orbsvcs/orbsvcs/Trader/Offer_Modifier.h | 84 - TAO/orbsvcs/orbsvcs/Trader/Policies.cpp | 501 - TAO/orbsvcs/orbsvcs/Trader/Policies.h | 270 - TAO/orbsvcs/orbsvcs/Trader/Policy_Manager.cpp | 134 - TAO/orbsvcs/orbsvcs/Trader/Policy_Manager.h | 74 - .../orbsvcs/Trader/Preference_Interpreter.cpp | 164 - .../orbsvcs/Trader/Preference_Interpreter.h | 89 - TAO/orbsvcs/orbsvcs/Trader/Property_Evaluator.cpp | 223 - TAO/orbsvcs/orbsvcs/Trader/Property_Evaluator.h | 145 - TAO/orbsvcs/orbsvcs/Trader/Property_Filter.cpp | 108 - TAO/orbsvcs/orbsvcs/Trader/Property_Filter.h | 57 - TAO/orbsvcs/orbsvcs/Trader/Proxy.cpp | 93 - TAO/orbsvcs/orbsvcs/Trader/Proxy.h | 87 - .../orbsvcs/Trader/Query_Only_Offer_Iterator.cpp | 71 - .../orbsvcs/Trader/Query_Only_Offer_Iterator.h | 68 - TAO/orbsvcs/orbsvcs/Trader/Register.cpp | 367 - TAO/orbsvcs/orbsvcs/Trader/Register.h | 310 - .../orbsvcs/Trader/Register_Offer_Iterator.cpp | 112 - .../orbsvcs/Trader/Register_Offer_Iterator.h | 79 - TAO/orbsvcs/orbsvcs/Trader/Service_Type_Map.cpp | 340 - TAO/orbsvcs/orbsvcs/Trader/Service_Type_Map.h | 227 - .../orbsvcs/Trader/Service_Type_Repository.cpp | 526 - .../orbsvcs/Trader/Service_Type_Repository.h | 299 - TAO/orbsvcs/orbsvcs/Trader/Trader.cpp | 238 - TAO/orbsvcs/orbsvcs/Trader/Trader.h | 155 - TAO/orbsvcs/orbsvcs/Trader/Trader_T.cpp | 138 - TAO/orbsvcs/orbsvcs/Trader/Trader_T.h | 103 - TAO/orbsvcs/orbsvcs/Trader/constraint.l | 130 - TAO/orbsvcs/orbsvcs/Trader/constraint.y | 135 - TAO/orbsvcs/orbsvcs/orbsvcs.dsp | 1139 - TAO/orbsvcs/orbsvcs/orbsvcs.dsw | 41 - TAO/orbsvcs/orbsvcs/orbsvcs_export.h | 35 - TAO/orbsvcs/orbsvcs/orbsvcs_lib.dsp | 519 - TAO/orbsvcs/orbsvcs/sfp.idl | 86 - TAO/orbsvcs/orbsvcs/tmplinst-orbsvcs.cpp | 44 - TAO/orbsvcs/tests/AVStreams/Machine_Properties.cpp | 227 - TAO/orbsvcs/tests/AVStreams/Machine_Properties.h | 84 - TAO/orbsvcs/tests/AVStreams/Makefile | 96 - TAO/orbsvcs/tests/AVStreams/Property_Exporter.cpp | 411 - TAO/orbsvcs/tests/AVStreams/Property_Exporter.h | 196 - TAO/orbsvcs/tests/AVStreams/README | 27 - TAO/orbsvcs/tests/AVStreams/benchmark/Makefile | 271 - TAO/orbsvcs/tests/AVStreams/benchmark/child.cpp | 71 - TAO/orbsvcs/tests/AVStreams/benchmark/child.h | 49 - TAO/orbsvcs/tests/AVStreams/benchmark/client.cpp | 312 - TAO/orbsvcs/tests/AVStreams/benchmark/client.h | 118 - TAO/orbsvcs/tests/AVStreams/benchmark/clnt.conf | 49 - TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp | 135 - TAO/orbsvcs/tests/AVStreams/benchmark/server.h | 49 - TAO/orbsvcs/tests/AVStreams/benchmark/svc.conf | 50 - TAO/orbsvcs/tests/AVStreams/client.cpp | 769 - TAO/orbsvcs/tests/AVStreams/client.h | 130 - TAO/orbsvcs/tests/AVStreams/mpeg/ANNOUNCE | 45 - TAO/orbsvcs/tests/AVStreams/mpeg/BUGS | 21 - TAO/orbsvcs/tests/AVStreams/mpeg/COPYING | 339 - TAO/orbsvcs/tests/AVStreams/mpeg/INSTALL | 231 - TAO/orbsvcs/tests/AVStreams/mpeg/INSTALL.UCB | 105 - TAO/orbsvcs/tests/AVStreams/mpeg/PatchLevel | 12 - TAO/orbsvcs/tests/AVStreams/mpeg/README | 142 - TAO/orbsvcs/tests/AVStreams/mpeg/README.MI | 39 - TAO/orbsvcs/tests/AVStreams/mpeg/README.UCB | 105 - TAO/orbsvcs/tests/AVStreams/mpeg/VERSION | 1 - TAO/orbsvcs/tests/AVStreams/mpeg/source/Makefile | 32 - TAO/orbsvcs/tests/AVStreams/mpeg/source/TODO | 50 - .../tests/AVStreams/mpeg/source/client/Makefile | 77 - .../tests/AVStreams/mpeg/source/client/svc.conf | 49 - .../tests/AVStreams/mpeg/source/client/vcr.cpp | 473 - .../tests/AVStreams/mpeg/source/include/common.h | 583 - .../AVStreams/mpeg/source/mpeg_client/24bit.cpp | 213 - .../AVStreams/mpeg/source/mpeg_client/2x2.cpp | 372 - .../mpeg/source/mpeg_client/Command_Handler.cpp | 3010 -- .../mpeg/source/mpeg_client/Command_Handler.h | 517 - .../AVStreams/mpeg/source/mpeg_client/Makefile | 612 - .../tests/AVStreams/mpeg/source/mpeg_client/ab.cpp | 482 - .../AVStreams/mpeg/source/mpeg_client/audio.cpp | 490 - .../AVStreams/mpeg/source/mpeg_client/ctr.cpp | 3046 -- .../AVStreams/mpeg/source/mpeg_client/decoders.cpp | 933 - .../AVStreams/mpeg/source/mpeg_client/decoders.h | 475 - .../AVStreams/mpeg/source/mpeg_client/dither.h | 36 - .../AVStreams/mpeg/source/mpeg_client/file.cpp | 146 - .../AVStreams/mpeg/source/mpeg_client/fs2.cpp | 394 - .../tests/AVStreams/mpeg/source/mpeg_client/fs2.h | 28 - .../AVStreams/mpeg/source/mpeg_client/fs2fast.cpp | 295 - .../AVStreams/mpeg/source/mpeg_client/fs4.cpp | 308 - .../tests/AVStreams/mpeg/source/mpeg_client/fs4.h | 30 - .../AVStreams/mpeg/source/mpeg_client/global.cpp | 92 - .../AVStreams/mpeg/source/mpeg_client/global.h | 67 - .../AVStreams/mpeg/source/mpeg_client/gray.cpp | 81 - .../AVStreams/mpeg/source/mpeg_client/hybrid.cpp | 231 - .../mpeg/source/mpeg_client/hybriderr.cpp | 355 - .../AVStreams/mpeg/source/mpeg_client/info.cpp | 79 - .../mpeg/source/mpeg_client/interface/Info.mib | 78 - .../mpeg/source/mpeg_client/interface/MW.mib | 229 - .../source/mpeg_client/interface/MainWindow.mib | 324 - .../mpeg/source/mpeg_client/interface/fb.xbm | 9 - .../mpeg/source/mpeg_client/interface/ff.xbm | 8 - .../mpeg/source/mpeg_client/interface/loop.xbm | 8 - .../mpeg_client/interface/old.MainWindow.mib | 305 - .../mpeg/source/mpeg_client/interface/play.xbm | 8 - .../mpeg/source/mpeg_client/interface/rewind.xbm | 8 - .../mpeg/source/mpeg_client/interface/step.xbm | 8 - .../mpeg/source/mpeg_client/interface/stop.xbm | 8 - .../AVStreams/mpeg/source/mpeg_client/jrevdct.cpp | 1457 - .../mpeg/source/mpeg_client/mb_ordered.cpp | 512 - .../AVStreams/mpeg/source/mpeg_client/mibload.h | 155 - .../AVStreams/mpeg/source/mpeg_client/mono.cpp | 252 - .../mpeg/source/mpeg_client/motionvector.cpp | 192 - .../AVStreams/mpeg/source/mpeg_client/newproto.h | 110 - .../AVStreams/mpeg/source/mpeg_client/ordered.cpp | 285 - .../AVStreams/mpeg/source/mpeg_client/ordered2.cpp | 323 - .../AVStreams/mpeg/source/mpeg_client/para.cpp | 371 - .../mpeg/source/mpeg_client/parseblock.cpp | 456 - .../AVStreams/mpeg/source/mpeg_client/prog.cpp | 929 - .../AVStreams/mpeg/source/mpeg_client/proto.h | 128 - .../tests/AVStreams/mpeg/source/mpeg_client/ui.cpp | 1000 - .../tests/AVStreams/mpeg/source/mpeg_client/ui.h | 18 - .../AVStreams/mpeg/source/mpeg_client/util.cpp | 464 - .../tests/AVStreams/mpeg/source/mpeg_client/util.h | 368 - .../AVStreams/mpeg/source/mpeg_client/util32.cpp | 77 - .../tests/AVStreams/mpeg/source/mpeg_client/vb.cpp | 1804 - .../tests/AVStreams/mpeg/source/mpeg_client/vd.cpp | 929 - .../AVStreams/mpeg/source/mpeg_client/video.cpp | 3756 --- .../AVStreams/mpeg/source/mpeg_client/video.h | 285 - .../tests/AVStreams/mpeg/source/mpeg_client/vp.cpp | 916 - .../tests/AVStreams/mpeg/source/mpeg_mib/Makefile | 271 - .../AVStreams/mpeg/source/mpeg_mib/mibButton.cpp | 172 - .../AVStreams/mpeg/source/mpeg_mib/mibDrawArea.cpp | 118 - .../AVStreams/mpeg/source/mpeg_mib/mibFrame.cpp | 179 - .../AVStreams/mpeg/source/mpeg_mib/mibLabel.cpp | 163 - .../AVStreams/mpeg/source/mpeg_mib/mibList.cpp | 163 - .../AVStreams/mpeg/source/mpeg_mib/mibMenu.cpp | 247 - .../AVStreams/mpeg/source/mpeg_mib/mibRadioBox.cpp | 207 - .../AVStreams/mpeg/source/mpeg_mib/mibScale.cpp | 201 - .../mpeg/source/mpeg_mib/mibScrollBar.cpp | 161 - .../AVStreams/mpeg/source/mpeg_mib/mibTextBig.cpp | 144 - .../AVStreams/mpeg/source/mpeg_mib/mibTextBox.cpp | 130 - .../AVStreams/mpeg/source/mpeg_mib/mibToggle.cpp | 190 - .../AVStreams/mpeg/source/mpeg_mib/mibload.cpp | 801 - .../tests/AVStreams/mpeg/source/mpeg_mib/mibload.h | 168 - .../AVStreams/mpeg/source/mpeg_mib/mibwidgets.h | 225 - .../source/mpeg_server/Audio_Control_State.cpp | 156 - .../mpeg/source/mpeg_server/Audio_Control_State.h | 79 - .../mpeg/source/mpeg_server/Audio_Control_i.cpp | 256 - .../mpeg/source/mpeg_server/Audio_Control_i.h | 80 - .../mpeg/source/mpeg_server/Audio_Server.cpp | 299 - .../mpeg/source/mpeg_server/Audio_Server.h | 116 - .../AVStreams/mpeg/source/mpeg_server/Globals.cpp | 2932 -- .../AVStreams/mpeg/source/mpeg_server/Globals.h | 391 - .../AVStreams/mpeg/source/mpeg_server/Makefile | 2485 -- .../source/mpeg_server/Video_Control_State.cpp | 481 - .../mpeg/source/mpeg_server/Video_Control_State.h | 184 - .../mpeg/source/mpeg_server/Video_Control_i.cpp | 265 - .../mpeg/source/mpeg_server/Video_Control_i.h | 97 - .../mpeg/source/mpeg_server/Video_Server.cpp | 251 - .../mpeg/source/mpeg_server/Video_Server.h | 147 - .../tests/AVStreams/mpeg/source/mpeg_server/as.cpp | 705 - .../AVStreams/mpeg/source/mpeg_server/las.cpp | 249 - .../AVStreams/mpeg/source/mpeg_server/lvs.cpp | 410 - .../mpeg/source/mpeg_server/server_proto.h | 63 - .../tests/AVStreams/mpeg/source/mpeg_server/vs.cpp | 2205 -- .../mpeg/source/mpeg_shared/Audio_Control.idl | 78 - .../AVStreams/mpeg/source/mpeg_shared/Makefile | 134 - .../mpeg/source/mpeg_shared/Video_Control.idl | 112 - .../AVStreams/mpeg/source/mpeg_shared/com.cpp | 2133 -- .../tests/AVStreams/mpeg/source/mpeg_shared/com.h | 112 - .../AVStreams/mpeg/source/mpeg_shared/fileio.cpp | 406 - .../AVStreams/mpeg/source/mpeg_shared/fileio.h | 100 - .../AVStreams/mpeg/source/mpeg_shared/filters.cpp | 367 - .../AVStreams/mpeg/source/mpeg_shared/filters.h | 85 - .../AVStreams/mpeg/source/mpeg_shared/routine.cpp | 512 - .../AVStreams/mpeg/source/mpeg_shared/routine.h | 55 - .../AVStreams/mpeg/source/mpeg_shared/sendpt.cpp | 137 - .../AVStreams/mpeg/source/mpeg_shared/sendpt.h | 32 - .../mpeg/source/server/Machine_Properties.cpp | 271 - .../mpeg/source/server/Machine_Properties.h | 97 - .../tests/AVStreams/mpeg/source/server/Makefile | 1740 - .../mpeg/source/server/Property_Exporter.cpp | 400 - .../mpeg/source/server/Property_Exporter.h | 216 - .../mpeg/source/server/Video_Repository.cpp | 145 - .../mpeg/source/server/Video_Repository.h | 85 - .../mpeg/source/server/Video_Repository.idl | 31 - .../tests/AVStreams/mpeg/source/server/as.cpp | 64 - .../tests/AVStreams/mpeg/source/server/as.h | 54 - .../mpeg/source/server/augmented_server.cpp | 655 - .../mpeg/source/server/augmented_server.h | 240 - .../tests/AVStreams/mpeg/source/server/server.cpp | 474 - .../tests/AVStreams/mpeg/source/server/server.h | 187 - .../tests/AVStreams/mpeg/source/server/svc.conf | 50 - .../tests/AVStreams/mpeg/source/server/vcrs.cpp | 261 - .../tests/AVStreams/mpeg/source/server/vs.cpp | 62 - .../tests/AVStreams/mpeg/source/server/vs.h | 55 - TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 | 610 - TAO/orbsvcs/tests/AVStreams/mpeg/vcrs.1 | 1 - TAO/orbsvcs/tests/AVStreams/server.cpp | 218 - TAO/orbsvcs/tests/AVStreams/server.h | 57 - .../server_discovery/Discover_Server.java | 481 - .../tests/AVStreams/server_discovery/Makefile | 35 - .../server_discovery/Property_Evaluator.java | 238 - .../AVStreams/server_discovery/TS_Resolve.java | 104 - .../AVStreams/server_discovery/netscape-remote | 8 - .../AVStreams/server_discovery/netscape-remote-new | 8 - TAO/orbsvcs/tests/AVStreams/sfp/Makefile | 66 - TAO/orbsvcs/tests/AVStreams/sfp/client.cpp | 48 - TAO/orbsvcs/tests/AVStreams/sfp/svc.conf | 49 - TAO/orbsvcs/tests/AVStreams/svc.conf | 49 - TAO/orbsvcs/tests/Concurrency/CC_client.cpp | 455 - TAO/orbsvcs/tests/Concurrency/CC_client.dsp | 141 - TAO/orbsvcs/tests/Concurrency/CC_client.h | 138 - TAO/orbsvcs/tests/Concurrency/CC_command.cpp | 666 - TAO/orbsvcs/tests/Concurrency/CC_command.h | 471 - TAO/orbsvcs/tests/Concurrency/CC_command.l | 58 - TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp | 866 - .../tests/Concurrency/CC_command.tab.cpp.diff | 58 - TAO/orbsvcs/tests/Concurrency/CC_command.tab.h | 33 - TAO/orbsvcs/tests/Concurrency/CC_command.y | 123 - .../tests/Concurrency/CC_naming_service.cpp | 177 - TAO/orbsvcs/tests/Concurrency/CC_naming_service.h | 86 - TAO/orbsvcs/tests/Concurrency/CC_test_utils.cpp | 69 - TAO/orbsvcs/tests/Concurrency/CC_test_utils.h | 37 - TAO/orbsvcs/tests/Concurrency/CC_tests.cpp | 372 - TAO/orbsvcs/tests/Concurrency/CC_tests.h | 184 - TAO/orbsvcs/tests/Concurrency/Concurrency.dsw | 29 - TAO/orbsvcs/tests/Concurrency/Makefile | 1873 -- TAO/orbsvcs/tests/Concurrency/NS_client.cpp | 216 - TAO/orbsvcs/tests/Concurrency/NS_client.h | 88 - TAO/orbsvcs/tests/Concurrency/README | 111 - TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp | 1726 - .../tests/Concurrency/lex.CC_command.cpp.diff | 177 - TAO/orbsvcs/tests/Concurrency/svc.conf | 49 - TAO/orbsvcs/tests/Concurrency/test.basic | 21 - TAO/orbsvcs/tests/Concurrency/test.dinphil | 12 - TAO/orbsvcs/tests/Concurrency/test.e1 | 2 - TAO/orbsvcs/tests/Concurrency/test.extended | 4 - TAO/orbsvcs/tests/Concurrency/test.phil1 | 6 - TAO/orbsvcs/tests/Concurrency/test.phil2 | 6 - TAO/orbsvcs/tests/Concurrency/test.phil3 | 6 - TAO/orbsvcs/tests/Concurrency/test.phil4 | 6 - TAO/orbsvcs/tests/Concurrency/test.phil5 | 6 - TAO/orbsvcs/tests/Concurrency/tmplinst.cpp | 12 - TAO/orbsvcs/tests/CosPropertyService/Makefile | 91 - TAO/orbsvcs/tests/CosPropertyService/client.cpp | 754 - TAO/orbsvcs/tests/CosPropertyService/client.h | 99 - TAO/orbsvcs/tests/CosPropertyService/main.cpp | 589 - TAO/orbsvcs/tests/CosPropertyService/server.cpp | 120 - TAO/orbsvcs/tests/CosPropertyService/server.h | 27 - TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp | 1584 - TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsp | 110 - TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsw | 29 - TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h | 377 - TAO/orbsvcs/tests/EC_Multiple/Makefile | 345 - TAO/orbsvcs/tests/EC_Multiple/README | 34 - TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h | 157 - TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h | 155 - TAO/orbsvcs/tests/EC_Multiple/gen_latency | 90 - TAO/orbsvcs/tests/EC_Multiple/gen_overhead | 114 - TAO/orbsvcs/tests/EC_Multiple/gen_throughput | 43 - TAO/orbsvcs/tests/EC_Multiple/gen_utilization | 80 - TAO/orbsvcs/tests/EC_Multiple/histo.pl | 76 - TAO/orbsvcs/tests/EC_Multiple/run_latency | 48 - TAO/orbsvcs/tests/EC_Multiple/run_overhead | 113 - TAO/orbsvcs/tests/EC_Multiple/run_schedule | 43 - TAO/orbsvcs/tests/EC_Multiple/run_throughput | 35 - TAO/orbsvcs/tests/EC_Multiple/run_utilization | 53 - TAO/orbsvcs/tests/EC_Multiple/svc.conf | 7 - TAO/orbsvcs/tests/Event_Latency/Event_Latency.cpp | 950 - TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsp | 103 - TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsw | 29 - TAO/orbsvcs/tests/Event_Latency/Event_Latency.h | 248 - TAO/orbsvcs/tests/Event_Latency/Makefile | 312 - TAO/orbsvcs/tests/Event_Latency/svc.conf | 49 - TAO/orbsvcs/tests/Logger/Logger.dsw | 41 - TAO/orbsvcs/tests/Logger/Makefile | 57 - TAO/orbsvcs/tests/Logger/client.dsp | 89 - TAO/orbsvcs/tests/Logger/clnt.cpp | 249 - TAO/orbsvcs/tests/Logger/clnt.h | 72 - TAO/orbsvcs/tests/Logger/server.dsp | 89 - TAO/orbsvcs/tests/Logger/svc.conf | 49 - TAO/orbsvcs/tests/Logger/svr.cpp | 108 - TAO/orbsvcs/tests/Makefile | 32 - TAO/orbsvcs/tests/Naming/Makefile | 51 - TAO/orbsvcs/tests/Naming/README | 16 - TAO/orbsvcs/tests/Naming/ns_tree.cpp | 114 - TAO/orbsvcs/tests/Naming/test_object.idl | 7 - TAO/orbsvcs/tests/Property/Makefile | 91 - TAO/orbsvcs/tests/Property/client.cpp | 809 - TAO/orbsvcs/tests/Property/client.h | 105 - TAO/orbsvcs/tests/Property/main.cpp | 589 - TAO/orbsvcs/tests/Property/server.cpp | 120 - TAO/orbsvcs/tests/Property/server.h | 27 - TAO/orbsvcs/tests/Sched/DynSched_Test.cpp | 286 - TAO/orbsvcs/tests/Sched/Makefile | 260 - TAO/orbsvcs/tests/Sched_Conf/Makefile | 244 - TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp | 336 - TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsp | 91 - TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsw | 29 - TAO/orbsvcs/tests/Simple_Naming/Makefile | 233 - TAO/orbsvcs/tests/Simple_Naming/Simple_Naming.dsw | 29 - TAO/orbsvcs/tests/Simple_Naming/client.dsp | 88 - TAO/orbsvcs/tests/Simple_Naming/clnt.cpp | 128 - TAO/orbsvcs/tests/Simple_Naming/clnt.h | 58 - TAO/orbsvcs/tests/Simple_Naming/svc.conf | 49 - TAO/orbsvcs/tests/Trading/Makefile | 1157 - TAO/orbsvcs/tests/Trading/Offer_Exporter.cpp | 420 - TAO/orbsvcs/tests/Trading/Offer_Exporter.h | 101 - TAO/orbsvcs/tests/Trading/Offer_Importer.cpp | 165 - TAO/orbsvcs/tests/Trading/Offer_Importer.h | 64 - .../tests/Trading/Service_Type_Exporter.cpp | 376 - TAO/orbsvcs/tests/Trading/Service_Type_Exporter.h | 70 - TAO/orbsvcs/tests/Trading/TT_Info.cpp | 191 - TAO/orbsvcs/tests/Trading/TT_Info.h | 139 - TAO/orbsvcs/tests/Trading/TTest.idl | 30 - TAO/orbsvcs/tests/Trading/colocated_test.cpp | 137 - TAO/orbsvcs/tests/Trading/export_test.cpp | 137 - TAO/orbsvcs/tests/Trading/import_test.cpp | 49 - TAO/orbsvcs/tests/Trading/svc.conf | 49 - TAO/orbsvcs/tests/start_services | 108 - TAO/orbsvcs/tests/tests.dsw | 41 - .../Cubit/TAO/MT_Cubit/MT_Cubit_Test | 61 - TAO/performance-tests/Cubit/TAO/MT_Cubit/Makefile | 103 - TAO/performance-tests/Cubit/TAO/MT_Cubit/README | 206 - .../Cubit/TAO/MT_Cubit/README.tests | 42 - .../Cubit/TAO/MT_Cubit/Task_Client.cpp | 1062 - .../Cubit/TAO/MT_Cubit/Task_Client.h | 264 - .../Cubit/TAO/MT_Cubit/Util_Thread.cpp | 103 - .../Cubit/TAO/MT_Cubit/Util_Thread.h | 56 - .../Cubit/TAO/MT_Cubit/client.cpp | 796 - TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h | 35 - TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit.idl | 38 - .../Cubit/TAO/MT_Cubit/cubit_i.cpp | 74 - TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.h | 51 - .../Cubit/TAO/MT_Cubit/server.cpp | 917 - TAO/performance-tests/Cubit/TAO/MT_Cubit/server.h | 123 - TAO/performance-tests/Cubit/TAO/MT_Cubit/svc.conf | 49 - .../Cubit/TAO/MT_Cubit/tmplinst.cpp | 12 - TAO/release.pl | 91 - TAO/tao/CORBA.cpp | 177 - TAO/tao/factories.h | 141 - TAO/tests/CDR/CDR.dsw | 53 - TAO/tests/CDR/Makefile | 621 - TAO/tests/CDR/README | 14 - TAO/tests/CDR/basic_types.cpp | 253 - TAO/tests/CDR/basic_types.dsp | 91 - TAO/tests/CDR/growth.cpp | 150 - TAO/tests/CDR/growth.dsp | 87 - TAO/tests/CDR/growth.dsw | 29 - TAO/tests/CDR/tc.cpp | 153 - TAO/tests/CDR/tc.dsp | 89 - TAO/tests/Cubit/COOL/IDL_Cubit/Makefile | 144 - TAO/tests/Cubit/COOL/IDL_Cubit/README | 34 - TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp | 747 - TAO/tests/Cubit/COOL/IDL_Cubit/client.h | 128 - TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl | 71 - TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp | 189 - TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h | 109 - TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp | 149 - TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp | 15 - TAO/tests/Cubit/COOL/MT_Cubit/Makefile | 91 - TAO/tests/Cubit/COOL/MT_Cubit/README | 166 - TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp | 627 - TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h | 190 - TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp | 60 - TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h | 45 - TAO/tests/Cubit/COOL/MT_Cubit/client.cpp | 287 - TAO/tests/Cubit/COOL/MT_Cubit/client.h | 36 - TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl | 42 - TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp | 51 - TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h | 21 - TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.cpp | 277 - TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.h | 56 - TAO/tests/Cubit/COOL/MT_Cubit/server.cpp | 158 - TAO/tests/Cubit/COOL/Makefile | 22 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/Makefile | 89 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/README | 54 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp | 725 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.h | 135 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl | 71 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp | 174 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h | 107 - TAO/tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp | 141 - TAO/tests/Cubit/CORBAplus/MT_Cubit/Makefile | 23 - TAO/tests/Cubit/CORBAplus/MT_Cubit/README | 58 - TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Makefile | 145 - .../CORBAplus/MT_Cubit/client/Task_Client.cpp | 357 - .../Cubit/CORBAplus/MT_Cubit/client/Task_Client.h | 52 - .../Cubit/CORBAplus/MT_Cubit/client/client.cpp | 61 - .../Cubit/CORBAplus/MT_Cubit/client/cubit.idl | 41 - TAO/tests/Cubit/CORBAplus/MT_Cubit/server/Makefile | 66 - .../Cubit/CORBAplus/MT_Cubit/server/cubit.idl | 41 - .../Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp | 80 - .../Cubit/CORBAplus/MT_Cubit/server/cubit_i.h | 52 - TAO/tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp | 286 - TAO/tests/Cubit/Makefile | 28 - TAO/tests/Cubit/Orbix/Makefile | 28 - TAO/tests/Cubit/Orbix/base_server/Makefile | 73 - TAO/tests/Cubit/Orbix/base_server/cubit.idl | 42 - TAO/tests/Cubit/Orbix/base_server/cubit_impl.cpp | 48 - TAO/tests/Cubit/Orbix/base_server/cubit_impl.h | 29 - TAO/tests/Cubit/Orbix/base_server/server.cpp | 43 - TAO/tests/Cubit/Orbix/client/Makefile | 89 - TAO/tests/Cubit/Orbix/client/client.cpp | 297 - TAO/tests/Cubit/Orbix/client/cubit.h | 729 - TAO/tests/Cubit/Orbix/client/cubit.idl | 42 - TAO/tests/Cubit/Orbix/client/cubitC.cpp | 559 - TAO/tests/Cubit/Orbix/factory_client/Makefile | 77 - TAO/tests/Cubit/Orbix/factory_client/client.cpp | 237 - TAO/tests/Cubit/Orbix/factory_client/cubit.h | 1113 - TAO/tests/Cubit/Orbix/factory_client/cubit.hh | 1111 - TAO/tests/Cubit/Orbix/factory_client/cubit.idl | 48 - TAO/tests/Cubit/Orbix/factory_client/cubitC.cpp | 712 - TAO/tests/Cubit/Orbix/factory_client/cubitS.cpp | 284 - TAO/tests/Cubit/Orbix/orb.mk | 146 - TAO/tests/Cubit/Orbix/tpool/Makefile | 89 - TAO/tests/Cubit/Orbix/tpool/cubit.h | 729 - TAO/tests/Cubit/Orbix/tpool/cubit.idl | 42 - TAO/tests/Cubit/Orbix/tpool/cubitC.cpp | 559 - TAO/tests/Cubit/Orbix/tpool/cubitS.cpp | 228 - TAO/tests/Cubit/Orbix/tpool/cubit_impl.cpp | 48 - TAO/tests/Cubit/Orbix/tpool/cubit_impl.h | 29 - TAO/tests/Cubit/Orbix/tpool/server.cpp | 48 - TAO/tests/Cubit/Orbix/tpool/tpool.cpp | 44 - TAO/tests/Cubit/Orbix/tpool/tpool.h | 17 - TAO/tests/Cubit/Orbix/tpr/Makefile | 89 - TAO/tests/Cubit/Orbix/tpr/cubit.h | 729 - TAO/tests/Cubit/Orbix/tpr/cubit.idl | 42 - TAO/tests/Cubit/Orbix/tpr/cubitC.cpp | 559 - TAO/tests/Cubit/Orbix/tpr/cubitC.h | 345 - TAO/tests/Cubit/Orbix/tpr/cubitS.cpp | 228 - TAO/tests/Cubit/Orbix/tpr/cubitS.h | 120 - TAO/tests/Cubit/Orbix/tpr/cubit_impl.cpp | 48 - TAO/tests/Cubit/Orbix/tpr/cubit_impl.h | 29 - TAO/tests/Cubit/Orbix/tpr/server.cpp | 42 - TAO/tests/Cubit/Orbix/tpr/tpr.cpp | 28 - TAO/tests/Cubit/Orbix/tpr/tpr.h | 12 - TAO/tests/Cubit/Orbix/tps/Makefile | 349 - TAO/tests/Cubit/Orbix/tps/cubit.h | 1113 - TAO/tests/Cubit/Orbix/tps/cubit.idl | 48 - TAO/tests/Cubit/Orbix/tps/cubitC.cpp | 712 - TAO/tests/Cubit/Orbix/tps/cubitS.cpp | 284 - TAO/tests/Cubit/Orbix/tps/cubit_impl.cpp | 83 - TAO/tests/Cubit/Orbix/tps/cubit_impl.h | 48 - TAO/tests/Cubit/Orbix/tps/tps.cpp | 28 - TAO/tests/Cubit/Orbix/tps/tps.h | 13 - TAO/tests/Cubit/README | 4 - TAO/tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw | 41 - TAO/tests/Cubit/TAO/DII_Cubit/Makefile | 1204 - TAO/tests/Cubit/TAO/DII_Cubit/README | 30 - TAO/tests/Cubit/TAO/DII_Cubit/client.dsp | 109 - TAO/tests/Cubit/TAO/DII_Cubit/clnt.bld | 11 - TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp | 656 - TAO/tests/Cubit/TAO/DII_Cubit/clnt.h | 138 - TAO/tests/Cubit/TAO/DII_Cubit/cubit.cpp | 562 - TAO/tests/Cubit/TAO/DII_Cubit/cubit.h | 107 - TAO/tests/Cubit/TAO/DII_Cubit/cubit.idl | 44 - TAO/tests/Cubit/TAO/DII_Cubit/cubitC.cpp | 387 - TAO/tests/Cubit/TAO/DII_Cubit/cubitC.h | 103 - TAO/tests/Cubit/TAO/DII_Cubit/cubitS.cpp | 258 - TAO/tests/Cubit/TAO/DII_Cubit/cubitS.h | 93 - TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp | 89 - TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.h | 56 - TAO/tests/Cubit/TAO/DII_Cubit/default.bld | 35 - TAO/tests/Cubit/TAO/DII_Cubit/method_db.i | 56 - TAO/tests/Cubit/TAO/DII_Cubit/server.dsp | 117 - TAO/tests/Cubit/TAO/DII_Cubit/svc.conf | 49 - TAO/tests/Cubit/TAO/DII_Cubit/svr.bld | 12 - TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp | 153 - TAO/tests/Cubit/TAO/DII_Cubit/test.mak | 1596 - TAO/tests/Cubit/TAO/DII_Cubit/test.mdp | Bin 71168 -> 0 bytes TAO/tests/Cubit/TAO/DII_Cubit/test1.cpp | 392 - TAO/tests/Cubit/TAO/DII_Cubit/test1.h | 124 - TAO/tests/Cubit/TAO/DII_Cubit/test1.idl | 80 - TAO/tests/Cubit/TAO/DII_Cubit/test1_clnt.cpp | 637 - TAO/tests/Cubit/TAO/DII_Cubit/test1_svr.cpp | 668 - TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mak | 2068 -- TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mdp | Bin 72192 -> 0 bytes TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp | 92 - TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw | 65 - TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit_Test.cpp | 69 - TAO/tests/Cubit/TAO/IDL_Cubit/Makefile | 101 - TAO/tests/Cubit/TAO/IDL_Cubit/README | 165 - TAO/tests/Cubit/TAO/IDL_Cubit/client.bld | 12 - TAO/tests/Cubit/TAO/IDL_Cubit/client.cpp | 20 - TAO/tests/Cubit/TAO/IDL_Cubit/client.dsp | 166 - TAO/tests/Cubit/TAO/IDL_Cubit/client_i.cpp | 1123 - TAO/tests/Cubit/TAO/IDL_Cubit/client_i.h | 138 - TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp | 68 - TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp | 165 - TAO/tests/Cubit/TAO/IDL_Cubit/cubit.idl | 91 - TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp | 285 - TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.h | 117 - TAO/tests/Cubit/TAO/IDL_Cubit/default.bld | 32 - TAO/tests/Cubit/TAO/IDL_Cubit/run_test.pl | 39 - TAO/tests/Cubit/TAO/IDL_Cubit/server.bld | 12 - TAO/tests/Cubit/TAO/IDL_Cubit/server.cpp | 36 - TAO/tests/Cubit/TAO/IDL_Cubit/server.dsp | 192 - TAO/tests/Cubit/TAO/IDL_Cubit/server_i.cpp | 162 - TAO/tests/Cubit/TAO/IDL_Cubit/server_i.h | 106 - TAO/tests/Cubit/TAO/IDL_Cubit/svc.conf | 49 - TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp | 12 - TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw | 41 - TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test | 61 - TAO/tests/Cubit/TAO/MT_Cubit/Makefile | 103 - TAO/tests/Cubit/TAO/MT_Cubit/README | 206 - TAO/tests/Cubit/TAO/MT_Cubit/README.tests | 42 - TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.cpp | 1062 - TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.h | 264 - TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp | 103 - TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.h | 56 - TAO/tests/Cubit/TAO/MT_Cubit/client.cpp | 796 - TAO/tests/Cubit/TAO/MT_Cubit/client.dsp | 167 - TAO/tests/Cubit/TAO/MT_Cubit/client.h | 35 - TAO/tests/Cubit/TAO/MT_Cubit/clnt.bld | 10 - TAO/tests/Cubit/TAO/MT_Cubit/cubit.idl | 38 - TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.cpp | 74 - TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.h | 51 - TAO/tests/Cubit/TAO/MT_Cubit/default.bld | 33 - TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.cpp | 277 - TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.h | 56 - TAO/tests/Cubit/TAO/MT_Cubit/server.cpp | 917 - TAO/tests/Cubit/TAO/MT_Cubit/server.dsp | 171 - TAO/tests/Cubit/TAO/MT_Cubit/server.h | 123 - TAO/tests/Cubit/TAO/MT_Cubit/svc.conf | 49 - TAO/tests/Cubit/TAO/MT_Cubit/svr.bld | 12 - TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp | 12 - TAO/tests/Cubit/TAO/Makefile | 27 - TAO/tests/Cubit/TAO/README | 20 - TAO/tests/Cubit/VisiBroker/base_server/Makefile | 19 - .../Cubit/VisiBroker/base_server/Profile_Timer.cpp | 129 - .../Cubit/VisiBroker/base_server/Profile_Timer.h | 62 - TAO/tests/Cubit/VisiBroker/base_server/cubit.idl | 42 - .../Cubit/VisiBroker/base_server/cubit_impl.cpp | 48 - .../Cubit/VisiBroker/base_server/cubit_impl.h | 35 - TAO/tests/Cubit/VisiBroker/base_server/server.cpp | 51 - TAO/tests/Cubit/VisiBroker/base_server/stdmk | 36 - TAO/tests/Cubit/VisiBroker/client/Makefile | 19 - .../Cubit/VisiBroker/client/Profile_Timer.cpp | 129 - TAO/tests/Cubit/VisiBroker/client/Profile_Timer.h | 62 - TAO/tests/Cubit/VisiBroker/client/client.cpp | 318 - TAO/tests/Cubit/VisiBroker/client/cubit.idl | 42 - TAO/tests/Cubit/VisiBroker/client/stdmk | 36 - TAO/tests/Cubit/results/Orbix | 133 - TAO/tests/Cubit/results/TAO | 92 - TAO/tests/Cubit/results/Visibroker | 79 - TAO/tests/Cubit/results/orbs.xls | Bin 26624 -> 0 bytes TAO/tests/Demux_Test/CodeGen/Makefile | 316 - TAO/tests/Demux_Test/CodeGen/README | 12 - TAO/tests/Demux_Test/CodeGen/client.cpp | 41 - TAO/tests/Demux_Test/CodeGen/gen.cpp | 175 - TAO/tests/Demux_Test/CodeGen/impl.cpp | 74 - TAO/tests/Demux_Test/CodeGen/objcreate.cpp | 53 - TAO/tests/Demux_Test/CodeGen/perf.cpp | 23 - TAO/tests/Demux_Test/CodeGen/skel.cpp | 219 - TAO/tests/Demux_Test/CodeGen/stub.cpp | 157 - TAO/tests/Demux_Test/CodeGen/tao.cpp | 98 - TAO/tests/Demux_Test/CodeGen/tao.h | 23 - TAO/tests/Demux_Test/Makefile | 65 - TAO/tests/Demux_Test/README | 20 - TAO/tests/Demux_Test/client.cpp | 310 - TAO/tests/Demux_Test/gen_bin | 6 - TAO/tests/Demux_Test/make_all | 19 - TAO/tests/Demux_Test/run_all_client | 37 - TAO/tests/Demux_Test/run_all_server | 20 - TAO/tests/Demux_Test/run_client | 17 - TAO/tests/Demux_Test/run_server | 10 - TAO/tests/Demux_Test/server.cpp | 315 - TAO/tests/Makefile | 34 - TAO/tests/NestedUpcall/Makefile | 69 - TAO/tests/NestedUpcall/NestedUpCalls_Test.cpp | 90 - TAO/tests/NestedUpcall/NestedUpCalls_i.h | 99 - TAO/tests/NestedUpcall/NestedUpcall.dsw | 41 - TAO/tests/NestedUpcall/README | 86 - TAO/tests/NestedUpcall/Reactor.idl | 52 - TAO/tests/NestedUpcall/client.cpp | 302 - TAO/tests/NestedUpcall/client.dsp | 138 - TAO/tests/NestedUpcall/client.h | 94 - TAO/tests/NestedUpcall/eh_i.cpp | 47 - TAO/tests/NestedUpcall/eh_i.h | 30 - TAO/tests/NestedUpcall/reactor_i.cpp | 78 - TAO/tests/NestedUpcall/reactor_i.h | 36 - TAO/tests/NestedUpcall/server.cpp | 175 - TAO/tests/NestedUpcall/server.dsp | 137 - TAO/tests/NestedUpcall/server.h | 98 - TAO/tests/NestedUpcall/svc.conf | 49 - TAO/tests/OctetSeq/Makefile | 63 - TAO/tests/OctetSeq/OctetSeq.cpp | 248 - TAO/tests/OctetSeq/OctetSeq.dsp | 141 - TAO/tests/OctetSeq/OctetSeq.dsw | 29 - TAO/tests/OctetSeq/svc.conf | 49 - TAO/tests/OctetSeq/test.idl | 24 - TAO/tests/POA/DSI/DSI.DSW | 41 - TAO/tests/POA/DSI/Database.idl | 73 - TAO/tests/POA/DSI/Database_i.cpp | 323 - TAO/tests/POA/DSI/Database_i.h | 116 - TAO/tests/POA/DSI/Makefile | 60 - TAO/tests/POA/DSI/client.cpp | 146 - TAO/tests/POA/DSI/client.dsp | 136 - TAO/tests/POA/DSI/server.cpp | 184 - TAO/tests/POA/DSI/server.dsp | 140 - TAO/tests/POA/Default_Servant/Default_Servant.dsw | 41 - TAO/tests/POA/Default_Servant/File.idl | 52 - TAO/tests/POA/Default_Servant/File_i.cpp | 221 - TAO/tests/POA/Default_Servant/File_i.h | 89 - TAO/tests/POA/Default_Servant/Makefile | 60 - TAO/tests/POA/Default_Servant/README | 45 - TAO/tests/POA/Default_Servant/client.cpp | 146 - TAO/tests/POA/Default_Servant/client.dsp | 160 - TAO/tests/POA/Default_Servant/server.cpp | 184 - TAO/tests/POA/Default_Servant/server.dsp | 164 - TAO/tests/POA/Default_Servant/svc.conf | 49 - .../Explicit_Activation/Explicit_Activation.dsw | 29 - TAO/tests/POA/Explicit_Activation/Makefile | 44 - TAO/tests/POA/Explicit_Activation/README | 34 - TAO/tests/POA/Explicit_Activation/server.cpp | 273 - TAO/tests/POA/Explicit_Activation/server.dsp | 91 - TAO/tests/POA/Explicit_Activation/svc.conf | 49 - TAO/tests/POA/FindPOA/FindPOA.cpp | 177 - TAO/tests/POA/FindPOA/FindPOA.dsp | 91 - TAO/tests/POA/FindPOA/FindPOA.dsw | 29 - TAO/tests/POA/FindPOA/Makefile | 229 - TAO/tests/POA/FindPOA/README | 39 - TAO/tests/POA/Forwarding/Foo.idl | 19 - TAO/tests/POA/Forwarding/Forwarding.dsw | 41 - TAO/tests/POA/Forwarding/Makefile | 1383 - TAO/tests/POA/Forwarding/MyFooServant.cpp | 140 - TAO/tests/POA/Forwarding/MyFooServant.h | 84 - TAO/tests/POA/Forwarding/README | 55 - TAO/tests/POA/Forwarding/Servant_Locator.cpp | 115 - TAO/tests/POA/Forwarding/Servant_Locator.h | 74 - TAO/tests/POA/Forwarding/client.cpp | 198 - TAO/tests/POA/Forwarding/client.dsp | 163 - TAO/tests/POA/Forwarding/server.cpp | 558 - TAO/tests/POA/Forwarding/server.dsp | 171 - TAO/tests/POA/Forwarding/svc.conf | 49 - TAO/tests/POA/Generic_Servant/Foo.idl | 23 - TAO/tests/POA/Generic_Servant/Generic_Servant.dsw | 41 - TAO/tests/POA/Generic_Servant/Makefile | 77 - TAO/tests/POA/Generic_Servant/MyFooServant.cpp | 56 - TAO/tests/POA/Generic_Servant/MyFooServant.h | 55 - TAO/tests/POA/Generic_Servant/README | 24 - TAO/tests/POA/Generic_Servant/client.cpp | 195 - TAO/tests/POA/Generic_Servant/client.dsp | 165 - .../POA/Generic_Servant/generic_servant_export.h | 35 - TAO/tests/POA/Generic_Servant/server.dsp | 184 - TAO/tests/POA/Makefile | 35 - TAO/tests/POA/NewPOA/Makefile | 229 - TAO/tests/POA/NewPOA/NewPOA.cpp | 191 - TAO/tests/POA/NewPOA/NewPOA.dsp | 91 - TAO/tests/POA/NewPOA/NewPOA.dsw | 29 - TAO/tests/POA/NewPOA/README | 22 - TAO/tests/POA/On_Demand_Activation/Makefile | 493 - .../On_Demand_Activation/On_Demand_Activation.dsw | 29 - TAO/tests/POA/On_Demand_Activation/README | 97 - .../POA/On_Demand_Activation/Servant_Activator.cpp | 69 - .../POA/On_Demand_Activation/Servant_Activator.h | 45 - .../POA/On_Demand_Activation/Servant_Locator.cpp | 76 - .../POA/On_Demand_Activation/Servant_Locator.h | 53 - TAO/tests/POA/On_Demand_Activation/server.cpp | 282 - TAO/tests/POA/On_Demand_Activation/server.dsp | 99 - TAO/tests/POA/On_Demand_Activation/svc.conf | 49 - TAO/tests/POA/README | 58 - TAO/tests/POA/RootPOA/Makefile | 228 - TAO/tests/POA/RootPOA/README | 17 - TAO/tests/POA/RootPOA/RootPOA.cpp | 80 - TAO/tests/POA/RootPOA/RootPOA.dsp | 91 - TAO/tests/POA/RootPOA/RootPOA.dsw | 29 - TAO/tests/POA/TIE/Foo.idl | 30 - TAO/tests/POA/TIE/Foo_i.cpp | 97 - TAO/tests/POA/TIE/Foo_i.h | 108 - TAO/tests/POA/TIE/Makefile | 60 - TAO/tests/POA/TIE/TIE.dsw | 41 - TAO/tests/POA/TIE/client.cpp | 214 - TAO/tests/POA/TIE/client.dsp | 163 - TAO/tests/POA/TIE/server.cpp | 290 - TAO/tests/POA/TIE/server.dsp | 167 - TAO/tests/POA/locking/Makefile | 229 - TAO/tests/POA/locking/locking.cpp | 158 - TAO/tests/POA/locking/locking.dsp | 91 - TAO/tests/POA/locking/locking.dsw | 29 - TAO/tests/Param_Test/Makefile | 443 - TAO/tests/Param_Test/Param_Test.dsw | 41 - TAO/tests/Param_Test/README | 87 - TAO/tests/Param_Test/client.cpp | 226 - TAO/tests/Param_Test/client.dsp | 178 - TAO/tests/Param_Test/client.h | 76 - TAO/tests/Param_Test/driver.cpp | 417 - TAO/tests/Param_Test/driver.h | 52 - TAO/tests/Param_Test/helper.cpp | 79 - TAO/tests/Param_Test/helper.h | 51 - TAO/tests/Param_Test/options.cpp | 192 - TAO/tests/Param_Test/options.h | 107 - TAO/tests/Param_Test/param_test.idl | 236 - TAO/tests/Param_Test/param_test_i.cpp | 492 - TAO/tests/Param_Test/param_test_i.h | 195 - TAO/tests/Param_Test/results.cpp | 151 - TAO/tests/Param_Test/results.h | 77 - TAO/tests/Param_Test/run_test.pl | 41 - TAO/tests/Param_Test/run_test.sh | 37 - TAO/tests/Param_Test/server.cpp | 176 - TAO/tests/Param_Test/server.dsp | 162 - TAO/tests/Param_Test/svc.conf | 49 - TAO/tests/Param_Test/tests.cpp | 3397 -- TAO/tests/Param_Test/tests.h | 1097 - TAO/tests/Param_Test/tmplinst.cpp | 32 - TAO/tests/Quoter/Documentation | 69 - TAO/tests/Quoter/FactoryFinder.exe | Bin 463 -> 0 bytes TAO/tests/Quoter/Factory_Finder.cpp | 226 - TAO/tests/Quoter/Factory_Finder.dsp | 230 - TAO/tests/Quoter/Factory_Finder.h | 61 - TAO/tests/Quoter/Factory_Finder_Impl.cpp | 118 - TAO/tests/Quoter/Factory_Finder_Impl.h | 38 - TAO/tests/Quoter/Generic_Factory.cpp | 279 - TAO/tests/Quoter/Generic_Factory.dsp | 229 - TAO/tests/Quoter/Generic_Factory.h | 65 - TAO/tests/Quoter/Generic_Factory_Impl.cpp | 181 - TAO/tests/Quoter/Generic_Factory_Impl.h | 46 - TAO/tests/Quoter/Makefile | 144 - TAO/tests/Quoter/Quoter.dsw | 65 - TAO/tests/Quoter/Quoter.idl | 133 - TAO/tests/Quoter/Quoter_Impl.cpp | 347 - TAO/tests/Quoter/Quoter_Impl.h | 108 - TAO/tests/Quoter/README | 50 - TAO/tests/Quoter/client.conf | 49 - TAO/tests/Quoter/client.cpp | 413 - TAO/tests/Quoter/client.dsp | 220 - TAO/tests/Quoter/client.h | 112 - TAO/tests/Quoter/ns.btm | 4 - TAO/tests/Quoter/run_test.btm | 161 - TAO/tests/Quoter/run_test.pl | 245 - TAO/tests/Quoter/run_test.sh | 136 - TAO/tests/Quoter/server.conf | 49 - TAO/tests/Quoter/server.cpp | 269 - TAO/tests/Quoter/server.dsp | 232 - TAO/tests/Quoter/server.h | 83 - TAO/tests/Quoter/sv.btm | 7 - TAO/tests/Quoter/svc.conf | 49 - TAO/tests/Quoter/testall.pl | 126 - TAO/tests/README | 34 - TAO/tests/Thruput/COOL/Makefile | 133 - TAO/tests/Thruput/COOL/README | 117 - TAO/tests/Thruput/COOL/client.cpp | 290 - TAO/tests/Thruput/COOL/server.cpp | 223 - TAO/tests/Thruput/COOL/ttcp.idl | 36 - TAO/tests/Thruput/COOL/ttcp_decl.h | 78 - TAO/tests/Thruput/COOL/ttcp_i.cpp | 110 - TAO/tests/Thruput/COOL/ttcp_i.h | 49 - TAO/tests/Thruput/COOL/utils.cpp | 467 - TAO/tests/Thruput/CORBAplus/Makefile | 68 - TAO/tests/Thruput/CORBAplus/README | 47 - TAO/tests/Thruput/CORBAplus/client.cpp | 303 - TAO/tests/Thruput/CORBAplus/extract | 4 - TAO/tests/Thruput/CORBAplus/run | 1 - TAO/tests/Thruput/CORBAplus/run_client | 25 - TAO/tests/Thruput/CORBAplus/run_server | 10 - TAO/tests/Thruput/CORBAplus/run_test | 34 - TAO/tests/Thruput/CORBAplus/run_tests | 41 - TAO/tests/Thruput/CORBAplus/server.cpp | 176 - TAO/tests/Thruput/CORBAplus/ttcp.idl | 36 - TAO/tests/Thruput/CORBAplus/ttcp_decl.h | 78 - TAO/tests/Thruput/CORBAplus/ttcp_i.cpp | 105 - TAO/tests/Thruput/CORBAplus/ttcp_i.h | 61 - TAO/tests/Thruput/CORBAplus/utils.cpp | 467 - TAO/tests/Thruput/Makefile | 26 - TAO/tests/Thruput/Orbix/Client.cpp | 326 - TAO/tests/Thruput/Orbix/Makefile | 85 - TAO/tests/Thruput/Orbix/README | 40 - TAO/tests/Thruput/Orbix/Srv_Main.cpp | 180 - TAO/tests/Thruput/Orbix/extract | 4 - TAO/tests/Thruput/Orbix/loop64 | 24 - TAO/tests/Thruput/Orbix/orbixsol2s4.mk | 148 - TAO/tests/Thruput/Orbix/run | 1 - TAO/tests/Thruput/Orbix/run_client | 25 - TAO/tests/Thruput/Orbix/run_server | 4 - TAO/tests/Thruput/Orbix/run_test | 31 - TAO/tests/Thruput/Orbix/run_tests | 78 - TAO/tests/Thruput/Orbix/ttcp.idl | 40 - TAO/tests/Thruput/Orbix/ttcp_decl.h | 154 - TAO/tests/Thruput/Orbix/ttcp_i.cpp | 113 - TAO/tests/Thruput/Orbix/ttcp_i.h | 65 - TAO/tests/Thruput/Orbix/utils.cpp | 561 - TAO/tests/Thruput/TAO/Makefile | 70 - TAO/tests/Thruput/TAO/README | 47 - TAO/tests/Thruput/TAO/client.cpp | 281 - TAO/tests/Thruput/TAO/run | 1 - TAO/tests/Thruput/TAO/run_client | 34 - TAO/tests/Thruput/TAO/run_server | 11 - TAO/tests/Thruput/TAO/run_test | 52 - TAO/tests/Thruput/TAO/server.cpp | 217 - TAO/tests/Thruput/TAO/svc.conf | 49 - TAO/tests/Thruput/TAO/tmplinst.cpp | 20 - TAO/tests/Thruput/TAO/ttcp.idl | 36 - TAO/tests/Thruput/TAO/ttcp_decl.h | 78 - TAO/tests/Thruput/TAO/ttcp_i.cpp | 103 - TAO/tests/Thruput/TAO/ttcp_i.h | 48 - TAO/tests/Thruput/TAO/utils.cpp | 506 - VERSION | 4 - WindozeCE/ACEApp.cpp | 17 - WindozeCE/ACEApp.h | 14 - WindozeCE/README | 35 - WindozeCE/StdAfx.cpp | 7 - WindozeCE/StdAfx.h | 26 - WindozeCE/WindozeCE.aps | Bin 34768 -> 0 bytes WindozeCE/WindozeCE.clw | 41 - WindozeCE/WindozeCE.cpp | 70 - WindozeCE/WindozeCE.dsp | 377 - WindozeCE/WindozeCE.h | 50 - WindozeCE/WindozeCE.plg | 18 - WindozeCE/WindozeCE.rc | 176 - WindozeCE/WindozeCEDlg.cpp | 156 - WindozeCE/WindozeCEDlg.h | 54 - WindozeCE/res/WindozeCE.ico | Bin 1078 -> 0 bytes WindozeCE/res/WindozeCE.rc2 | 13 - WindozeCE/resource.h | 21 - ace/ACE.bpg | 21 - ace/ACE.cpp | 2877 -- ace/ACE.h | 645 - ace/ACE.i | 118 - ace/ACED.bpr | 234 - ace/ACED.cpp | 191 - ace/ACER.bpr | 234 - ace/ACER.cpp | 187 - ace/ACE_Library.mak | 12466 ------- ace/ACE_Library.mdp | Bin 96256 -> 0 bytes ace/ARGV.cpp | 347 - ace/ARGV.h | 131 - ace/ARGV.i | 67 - ace/Acceptor.cpp | 1053 - ace/Acceptor.h | 493 - ace/Acceptor.i | 4 - ace/Activation_Queue.cpp | 76 - ace/Activation_Queue.h | 66 - ace/Activation_Queue.i | 4 - ace/Addr.cpp | 61 - ace/Addr.h | 99 - ace/Addr.i | 63 - ace/Arg_Shifter.cpp | 119 - ace/Arg_Shifter.h | 101 - ace/Array.cpp | 137 - ace/Array.h | 169 - ace/Array.i | 82 - ace/Asynch_Acceptor.cpp | 352 - ace/Asynch_Acceptor.h | 167 - ace/Asynch_Acceptor.i | 5 - ace/Asynch_IO.cpp | 1556 - ace/Asynch_IO.h | 936 - ace/Asynch_IO.i | 2 - ace/Atomic_Op.i | 193 - ace/Auto_Ptr.cpp | 30 - ace/Auto_Ptr.h | 129 - ace/Auto_Ptr.i | 156 - ace/Basic_Types.cpp | 22 - ace/Basic_Types.h | 375 - ace/Basic_Types.i | 403 - ace/CLASSIX/Acceptor.cpp | 199 - ace/CLASSIX/Acceptor.h | 141 - ace/CLASSIX/Acceptor.i | 31 - ace/CLASSIX/Addr.cpp | 13 - ace/CLASSIX/Addr.h | 95 - ace/CLASSIX/Addr.i | 56 - ace/CLASSIX/Connector.cpp | 92 - ace/CLASSIX/Connector.h | 127 - ace/CLASSIX/Connector.i | 37 - ace/CLASSIX/Dgram_Mcast.cpp | 95 - ace/CLASSIX/Dgram_Mcast.h | 90 - ace/CLASSIX/Group.cpp | 92 - ace/CLASSIX/Group.h | 114 - ace/CLASSIX/Group.i | 89 - ace/CLASSIX/Group_Dynamic.cpp | 24 - ace/CLASSIX/Group_Dynamic.h | 60 - ace/CLASSIX/Group_Dynamic.i | 16 - ace/CLASSIX/Group_Stamp.cpp | 55 - ace/CLASSIX/Group_Stamp.h | 87 - ace/CLASSIX/Group_Stamp.i | 32 - ace/CLASSIX/OS.cpp | 131 - ace/CLASSIX/OS.h | 129 - ace/CLASSIX/OS.i | 39 - ace/CLASSIX/Peer_SAP.cpp | 80 - ace/CLASSIX/Peer_SAP.h | 104 - ace/CLASSIX/Peer_SAP.i | 99 - ace/CLASSIX/Port.cpp | 129 - ace/CLASSIX/Port.h | 158 - ace/CLASSIX/Port.i | 112 - ace/CLASSIX/Port_Core.cpp | 73 - ace/CLASSIX/Port_Core.h | 99 - ace/CLASSIX/Port_Core.i | 38 - ace/CLASSIX/Port_Default.cpp | 26 - ace/CLASSIX/Port_Default.h | 76 - ace/CLASSIX/Port_Default.i | 28 - ace/CLASSIX/SAP.cpp | 156 - ace/CLASSIX/SAP.h | 142 - ace/CLASSIX/SAP.i | 58 - ace/CLASSIX/Select_Reactor.cpp | 440 - ace/CLASSIX/Select_Reactor.h | 183 - ace/CLASSIX/Stream.cpp | 365 - ace/CLASSIX/Stream.h | 268 - ace/CLASSIX/Stream.i | 182 - ace/CORBA_Handler.cpp | 540 - ace/CORBA_Handler.h | 218 - ace/CORBA_Handler.i | 40 - ace/CORBA_Ref.cpp | 87 - ace/CORBA_Ref.h | 82 - ace/CORBA_Ref.i | 4 - ace/Connector.cpp | 809 - ace/Connector.h | 418 - ace/Connector.i | 4 - ace/Containers.cpp | 2124 -- ace/Containers.h | 1268 - ace/Containers.i | 299 - ace/DEV.cpp | 36 - ace/DEV.h | 66 - ace/DEV.i | 15 - ace/DEV_Addr.cpp | 77 - ace/DEV_Addr.h | 83 - ace/DEV_Addr.i | 78 - ace/DEV_Connector.cpp | 44 - ace/DEV_Connector.h | 94 - ace/DEV_Connector.i | 32 - ace/DEV_IO.cpp | 120 - ace/DEV_IO.h | 122 - ace/DEV_IO.i | 101 - ace/Date_Time.cpp | 10 - ace/Date_Time.h | 93 - ace/Date_Time.i | 140 - ace/Dump.cpp | 140 - ace/Dump.h | 151 - ace/Dump_T.cpp | 35 - ace/Dump_T.h | 74 - ace/Dynamic.cpp | 16 - ace/Dynamic.h | 57 - ace/Dynamic.i | 32 - ace/Dynamic_Service.cpp | 53 - ace/Dynamic_Service.h | 47 - ace/Dynamic_Service.i | 4 - ace/Env_Value_T.cpp | 12 - ace/Env_Value_T.h | 139 - ace/Env_Value_T.i | 51 - ace/Event_Handler.cpp | 156 - ace/Event_Handler.h | 155 - ace/Event_Handler.i | 10 - ace/Event_Handler_T.cpp | 58 - ace/Event_Handler_T.h | 185 - ace/Event_Handler_T.i | 187 - ace/FIFO.cpp | 69 - ace/FIFO.h | 74 - ace/FIFO.i | 21 - ace/FIFO_Recv.cpp | 83 - ace/FIFO_Recv.h | 70 - ace/FIFO_Recv.i | 18 - ace/FIFO_Recv_Msg.cpp | 61 - ace/FIFO_Recv_Msg.h | 75 - ace/FIFO_Recv_Msg.i | 67 - ace/FIFO_Send.cpp | 41 - ace/FIFO_Send.h | 62 - ace/FIFO_Send.i | 18 - ace/FIFO_Send_Msg.cpp | 67 - ace/FIFO_Send_Msg.h | 76 - ace/FIFO_Send_Msg.i | 41 - ace/FILE.cpp | 78 - ace/FILE.h | 92 - ace/FILE.i | 16 - ace/FILE_Addr.cpp | 92 - ace/FILE_Addr.h | 82 - ace/FILE_Addr.i | 43 - ace/FILE_Connector.cpp | 47 - ace/FILE_Connector.h | 96 - ace/FILE_Connector.i | 32 - ace/FILE_IO.cpp | 128 - ace/FILE_IO.h | 123 - ace/FILE_IO.i | 101 - ace/Filecache.cpp | 741 - ace/Filecache.h | 347 - ace/Free_List.cpp | 84 - ace/Free_List.h | 139 - ace/Free_List.i | 76 - ace/Future.cpp | 315 - ace/Future.h | 205 - ace/Get_Opt.cpp | 159 - ace/Get_Opt.h | 131 - ace/Get_Opt.i | 9 - ace/Handle_Set.cpp | 437 - ace/Handle_Set.h | 187 - ace/Handle_Set.i | 147 - ace/Hash_Map_Manager.cpp | 874 - ace/Hash_Map_Manager.h | 472 - ace/High_Res_Timer.cpp | 378 - ace/High_Res_Timer.h | 215 - ace/High_Res_Timer.i | 107 - ace/INET_Addr.cpp | 491 - ace/INET_Addr.h | 172 - ace/INET_Addr.i | 47 - ace/IOStream.cpp | 630 - ace/IOStream.h | 437 - ace/IOStream_T.cpp | 206 - ace/IOStream_T.h | 273 - ace/IOStream_T.i | 156 - ace/IO_Cntl_Msg.cpp | 36 - ace/IO_Cntl_Msg.h | 85 - ace/IO_Cntl_Msg.i | 4 - ace/IO_SAP.cpp | 140 - ace/IO_SAP.h | 75 - ace/IO_SAP.i | 39 - ace/IPC_SAP.cpp | 155 - ace/IPC_SAP.h | 70 - ace/IPC_SAP.i | 37 - ace/LOCK_SOCK_Acceptor.cpp | 31 - ace/LOCK_SOCK_Acceptor.h | 57 - ace/LSOCK.cpp | 163 - ace/LSOCK.h | 71 - ace/LSOCK.i | 39 - ace/LSOCK_Acceptor.cpp | 97 - ace/LSOCK_Acceptor.h | 87 - ace/LSOCK_Acceptor.i | 4 - ace/LSOCK_CODgram.cpp | 54 - ace/LSOCK_CODgram.h | 67 - ace/LSOCK_CODgram.i | 27 - ace/LSOCK_Connector.cpp | 53 - ace/LSOCK_Connector.h | 98 - ace/LSOCK_Connector.i | 29 - ace/LSOCK_Dgram.cpp | 63 - ace/LSOCK_Dgram.h | 63 - ace/LSOCK_Dgram.i | 20 - ace/LSOCK_Stream.cpp | 130 - ace/LSOCK_Stream.h | 70 - ace/LSOCK_Stream.i | 25 - ace/Local_Name_Space.cpp | 199 - ace/Local_Name_Space.h | 115 - ace/Local_Name_Space_T.cpp | 883 - ace/Local_Name_Space_T.h | 243 - ace/Local_Tokens.cpp | 1432 - ace/Local_Tokens.h | 1026 - ace/Local_Tokens.i | 433 - ace/Log_Msg.cpp | 1348 - ace/Log_Msg.h | 447 - ace/Log_Msg.i | 6 - ace/Log_Priority.h | 85 - ace/Log_Record.cpp | 296 - ace/Log_Record.h | 183 - ace/Log_Record.i | 97 - ace/Makefile | 6969 ---- ace/Malloc.cpp | 205 - ace/Malloc.h | 259 - ace/Malloc.i | 235 - ace/Malloc_Base.h | 132 - ace/Malloc_T.cpp | 669 - ace/Malloc_T.h | 470 - ace/Malloc_T.i | 185 - ace/Managed_Object.cpp | 19 - ace/Managed_Object.h | 153 - ace/Managed_Object.i | 18 - ace/Map_Manager.cpp | 833 - ace/Map_Manager.h | 414 - ace/Map_Manager.i | 4 - ace/Mem_Map.cpp | 230 - ace/Mem_Map.h | 203 - ace/Mem_Map.i | 236 - ace/Memory_Pool.cpp | 764 - ace/Memory_Pool.h | 484 - ace/Memory_Pool.i | 181 - ace/Message_Block.cpp | 731 - ace/Message_Block.h | 497 - ace/Message_Block.i | 336 - ace/Message_Queue.cpp | 710 - ace/Message_Queue.h | 381 - ace/Message_Queue.i | 148 - ace/Method_Object.cpp | 14 - ace/Method_Object.h | 43 - ace/Module.cpp | 254 - ace/Module.h | 186 - ace/Module.i | 62 - ace/Msg_WFMO_Reactor.cpp | 86 - ace/Msg_WFMO_Reactor.h | 107 - ace/Msg_WFMO_Reactor.i | 30 - ace/Multiplexor.cpp | 13 - ace/Multiplexor.h | 78 - ace/Multiplexor.i | 88 - ace/Name_Proxy.cpp | 174 - ace/Name_Proxy.h | 84 - ace/Name_Request_Reply.cpp | 490 - ace/Name_Request_Reply.h | 253 - ace/Name_Space.cpp | 60 - ace/Name_Space.h | 144 - ace/Naming_Context.cpp | 621 - ace/Naming_Context.h | 327 - ace/OS.cpp | 4273 --- ace/OS.h | 5844 ---- ace/OS.i | 9598 ------ ace/Object_Manager.cpp | 870 - ace/Object_Manager.h | 386 - ace/Object_Manager.i | 33 - ace/Obstack.cpp | 131 - ace/Obstack.h | 106 - ace/Obstack.i | 9 - ace/Parse_Node.cpp | 670 - ace/Parse_Node.h | 293 - ace/Parse_Node.i | 19 - ace/Pipe.cpp | 153 - ace/Pipe.h | 78 - ace/Pipe.i | 25 - ace/Priority_Reactor.cpp | 189 - ace/Priority_Reactor.h | 88 - ace/Priority_Reactor.i | 2 - ace/Proactor.cpp | 954 - ace/Proactor.h | 431 - ace/Proactor.i | 2 - ace/Process.cpp | 519 - ace/Process.h | 316 - ace/Process.i | 220 - ace/Process_Manager.cpp | 326 - ace/Process_Manager.h | 139 - ace/Process_Manager.i | 9 - ace/Profile_Timer.cpp | 278 - ace/Profile_Timer.h | 157 - ace/Profile_Timer.i | 70 - ace/RB_Tree.cpp | 683 - ace/RB_Tree.h | 255 - ace/RB_Tree.i | 152 - ace/README | 905 - ace/Reactor.cpp | 258 - ace/Reactor.h | 475 - ace/Reactor.i | 472 - ace/Reactor_Impl.h | 428 - ace/Read_Buffer.cpp | 161 - ace/Read_Buffer.h | 97 - ace/Read_Buffer.i | 21 - ace/Registry.cpp | 1097 - ace/Registry.h | 566 - ace/Registry_Name_Space.cpp | 251 - ace/Registry_Name_Space.h | 121 - ace/Remote_Name_Space.cpp | 314 - ace/Remote_Name_Space.h | 126 - ace/Remote_Tokens.cpp | 428 - ace/Remote_Tokens.h | 287 - ace/Remote_Tokens.i | 98 - ace/SOCK.cpp | 111 - ace/SOCK.h | 91 - ace/SOCK.i | 34 - ace/SOCK_Acceptor.cpp | 192 - ace/SOCK_Acceptor.h | 86 - ace/SOCK_Acceptor.i | 12 - ace/SOCK_CODgram.cpp | 104 - ace/SOCK_CODgram.h | 63 - ace/SOCK_CODgram.i | 18 - ace/SOCK_Connector.cpp | 154 - ace/SOCK_Connector.h | 112 - ace/SOCK_Connector.i | 54 - ace/SOCK_Dgram.cpp | 329 - ace/SOCK_Dgram.h | 119 - ace/SOCK_Dgram.i | 53 - ace/SOCK_Dgram_Bcast.cpp | 276 - ace/SOCK_Dgram_Bcast.h | 117 - ace/SOCK_Dgram_Bcast.i | 34 - ace/SOCK_Dgram_Mcast.cpp | 191 - ace/SOCK_Dgram_Mcast.h | 115 - ace/SOCK_Dgram_Mcast.i | 36 - ace/SOCK_IO.cpp | 142 - ace/SOCK_IO.h | 151 - ace/SOCK_IO.i | 141 - ace/SOCK_Stream.cpp | 34 - ace/SOCK_Stream.h | 102 - ace/SOCK_Stream.i | 113 - ace/SPIPE.cpp | 62 - ace/SPIPE.h | 62 - ace/SPIPE.i | 16 - ace/SPIPE_Acceptor.cpp | 225 - ace/SPIPE_Acceptor.h | 82 - ace/SPIPE_Acceptor.i | 4 - ace/SPIPE_Addr.cpp | 147 - ace/SPIPE_Addr.h | 112 - ace/SPIPE_Addr.i | 83 - ace/SPIPE_Connector.cpp | 72 - ace/SPIPE_Connector.h | 97 - ace/SPIPE_Connector.i | 13 - ace/SPIPE_Stream.cpp | 93 - ace/SPIPE_Stream.h | 123 - ace/SPIPE_Stream.i | 160 - ace/SString.cpp | 883 - ace/SString.h | 566 - ace/SString.i | 583 - ace/SV_Message.cpp | 18 - ace/SV_Message.h | 51 - ace/SV_Message.i | 31 - ace/SV_Message_Queue.cpp | 37 - ace/SV_Message_Queue.h | 89 - ace/SV_Message_Queue.i | 78 - ace/SV_Semaphore_Complex.cpp | 251 - ace/SV_Semaphore_Complex.h | 151 - ace/SV_Semaphore_Complex.i | 83 - ace/SV_Semaphore_Simple.cpp | 199 - ace/SV_Semaphore_Simple.h | 146 - ace/SV_Semaphore_Simple.i | 106 - ace/SV_Shared_Memory.cpp | 81 - ace/SV_Shared_Memory.h | 107 - ace/SV_Shared_Memory.i | 114 - ace/Sched_Params.cpp | 283 - ace/Sched_Params.h | 213 - ace/Sched_Params.i | 138 - ace/Select_Reactor.cpp | 1975 -- ace/Select_Reactor.h | 960 - ace/Select_Reactor.i | 280 - ace/Service_Config.cpp | 724 - ace/Service_Config.h | 349 - ace/Service_Config.i | 74 - ace/Service_Manager.cpp | 284 - ace/Service_Manager.h | 72 - ace/Service_Manager.i | 10 - ace/Service_Object.cpp | 88 - ace/Service_Object.h | 149 - ace/Service_Object.i | 94 - ace/Service_Repository.cpp | 347 - ace/Service_Repository.h | 175 - ace/Service_Repository.i | 31 - ace/Service_Types.cpp | 417 - ace/Service_Types.h | 182 - ace/Service_Types.i | 69 - ace/Shared_Memory.cpp | 9 - ace/Shared_Memory.h | 45 - ace/Shared_Memory_MM.cpp | 52 - ace/Shared_Memory_MM.h | 105 - ace/Shared_Memory_MM.i | 89 - ace/Shared_Memory_SV.cpp | 29 - ace/Shared_Memory_SV.h | 87 - ace/Shared_Memory_SV.i | 73 - ace/Shared_Object.cpp | 46 - ace/Shared_Object.h | 47 - ace/Shared_Object.i | 9 - ace/Signal.cpp | 759 - ace/Signal.h | 384 - ace/Signal.i | 293 - ace/Singleton.cpp | 199 - ace/Singleton.h | 140 - ace/Singleton.i | 20 - ace/Stats.cpp | 329 - ace/Stats.h | 182 - ace/Stats.i | 79 - ace/Strategies.cpp | 88 - ace/Strategies.h | 111 - ace/Strategies.i | 14 - ace/Strategies_T.cpp | 1152 - ace/Strategies_T.h | 856 - ace/Strategies_T.i | 9 - ace/Stream.cpp | 536 - ace/Stream.h | 201 - ace/Stream.i | 49 - ace/Stream_Modules.cpp | 368 - ace/Stream_Modules.h | 135 - ace/Stream_Modules.i | 4 - ace/Svc_Conf.h | 103 - ace/Svc_Conf.l | 84 - ace/Svc_Conf.y | 409 - ace/Svc_Conf_Tokens.h | 22 - ace/Svc_Conf_l.cpp | 1549 - ace/Svc_Conf_y.cpp | 992 - ace/Svc_Handler.cpp | 269 - ace/Svc_Handler.h | 183 - ace/Svc_Handler.i | 5 - ace/Synch.cpp | 889 - ace/Synch.h | 1408 - ace/Synch.i | 939 - ace/Synch_Options.cpp | 101 - ace/Synch_Options.h | 141 - ace/Synch_Options.i | 9 - ace/Synch_T.cpp | 791 - ace/Synch_T.h | 877 - ace/Synch_T.i | 172 - ace/System_Time.cpp | 107 - ace/System_Time.h | 82 - ace/TLI.cpp | 197 - ace/TLI.h | 91 - ace/TLI.i | 41 - ace/TLI_Acceptor.cpp | 456 - ace/TLI_Acceptor.h | 113 - ace/TLI_Acceptor.i | 5 - ace/TLI_Connector.cpp | 210 - ace/TLI_Connector.h | 111 - ace/TLI_Connector.i | 36 - ace/TLI_Stream.cpp | 97 - ace/TLI_Stream.h | 97 - ace/TLI_Stream.i | 105 - ace/TTY_IO.cpp | 247 - ace/TTY_IO.h | 67 - ace/Task.cpp | 194 - ace/Task.h | 225 - ace/Task.i | 114 - ace/Task_T.cpp | 98 - ace/Task_T.h | 144 - ace/Task_T.i | 103 - ace/Thread.cpp | 89 - ace/Thread.h | 223 - ace/Thread.i | 270 - ace/Thread_Manager.cpp | 1901 -- ace/Thread_Manager.h | 743 - ace/Thread_Manager.i | 160 - ace/Time_Request_Reply.cpp | 186 - ace/Time_Request_Reply.h | 119 - ace/Time_Value.h | 25 - ace/Timeprobe.cpp | 39 - ace/Timeprobe.h | 113 - ace/Timeprobe.i | 8 - ace/Timeprobe_T.cpp | 231 - ace/Timeprobe_T.h | 145 - ace/Timer_Hash.cpp | 123 - ace/Timer_Hash.h | 67 - ace/Timer_Hash_T.cpp | 533 - ace/Timer_Hash_T.h | 248 - ace/Timer_Heap.cpp | 43 - ace/Timer_Heap.h | 35 - ace/Timer_Heap_T.cpp | 654 - ace/Timer_Heap_T.h | 268 - ace/Timer_List.cpp | 44 - ace/Timer_List.h | 35 - ace/Timer_List_T.cpp | 309 - ace/Timer_List_T.h | 190 - ace/Timer_Queue.cpp | 53 - ace/Timer_Queue.h | 40 - ace/Timer_Queue.i | 22 - ace/Timer_Queue_Adapters.cpp | 239 - ace/Timer_Queue_Adapters.h | 173 - ace/Timer_Queue_Adapters.i | 37 - ace/Timer_Queue_T.cpp | 314 - ace/Timer_Queue_T.h | 372 - ace/Timer_Queue_T.i | 171 - ace/Timer_Wheel.cpp | 23 - ace/Timer_Wheel.h | 36 - ace/Timer_Wheel_T.cpp | 618 - ace/Timer_Wheel_T.h | 215 - ace/Token.cpp | 358 - ace/Token.h | 193 - ace/Token.i | 68 - ace/Token_Collection.cpp | 300 - ace/Token_Collection.h | 214 - ace/Token_Collection.i | 11 - ace/Token_Invariants.cpp | 365 - ace/Token_Invariants.h | 219 - ace/Token_Invariants.i | 4 - ace/Token_Manager.cpp | 275 - ace/Token_Manager.h | 120 - ace/Token_Manager.i | 19 - ace/Token_Request_Reply.cpp | 170 - ace/Token_Request_Reply.h | 230 - ace/Token_Request_Reply.i | 190 - ace/Trace.cpp | 121 - ace/Trace.h | 81 - ace/Trace.i | 7 - ace/Typed_SV_Message.cpp | 21 - ace/Typed_SV_Message.h | 88 - ace/Typed_SV_Message.i | 91 - ace/Typed_SV_Message_Queue.cpp | 46 - ace/Typed_SV_Message_Queue.h | 78 - ace/Typed_SV_Message_Queue.i | 62 - ace/UNIX_Addr.cpp | 109 - ace/UNIX_Addr.h | 87 - ace/UNIX_Addr.i | 61 - ace/UPIPE_Acceptor.cpp | 125 - ace/UPIPE_Acceptor.h | 85 - ace/UPIPE_Acceptor.i | 11 - ace/UPIPE_Addr.h | 25 - ace/UPIPE_Connector.cpp | 93 - ace/UPIPE_Connector.h | 101 - ace/UPIPE_Connector.i | 32 - ace/UPIPE_Stream.cpp | 225 - ace/UPIPE_Stream.h | 129 - ace/UPIPE_Stream.i | 12 - ace/Version.h | 7 - ace/WFMO_Reactor.cpp | 1934 -- ace/WFMO_Reactor.h | 1098 - ace/WFMO_Reactor.i | 1035 - ace/XtReactor.cpp | 409 - ace/XtReactor.h | 119 - ace/ace.dsw | 41 - ace/ace_bcc.ide | Bin 761098 -> 0 bytes ace/ace_ce.dsw | 29 - ace/ace_ce_dll.cfg | 1 - ace/ace_ce_dll.dsp | 17458 ---------- ace/ace_dll.dsp | 13563 -------- ace/ace_lib.dsp | 4944 --- ace/config-WinCE.h | 148 - ace/config-aix-3.2.5.h | 44 - ace/config-aix-4.1.x.h | 142 - ace/config-aix-4.2.x.h | 186 - ace/config-chorus.h | 121 - ace/config-dgux-4.11-epc.h | 195 - ace/config-dgux-4.x-ghs.h | 224 - ace/config-freebsd-pthread.h | 166 - ace/config-freebsd.h | 171 - ace/config-fsu-pthread.h | 58 - ace/config-g++-common.h | 76 - ace/config-hpux-10.x-g++.h | 125 - ace/config-hpux-10.x-hpc++.h | 98 - ace/config-hpux-10.x.h | 243 - ace/config-hpux-11.x-hpc++.h | 98 - ace/config-hpux-9.x-orbix.h | 104 - ace/config-hpux-9.x.h | 103 - ace/config-hpux11.h | 219 - ace/config-irix5.2.h | 68 - ace/config-irix5.3-g++.h | 119 - ace/config-irix5.3-sgic++.h | 127 - ace/config-irix6.x-g++.h | 166 - ace/config-irix6.x-sgic++-nothreads.h | 212 - ace/config-irix6.x-sgic++.h | 53 - ace/config-kcc-common.h | 62 - ace/config-linux-common.h | 170 - ace/config-linux-lxpthreads.h | 77 - ace/config-linux-pthread.h | 31 - ace/config-linux.h | 15 - ace/config-lynxos.h | 183 - ace/config-m88k.h | 226 - ace/config-mit-pthread.h | 57 - ace/config-mvs.h | 115 - ace/config-netbsd.h | 174 - ace/config-osf1-3.2.h | 200 - ace/config-osf1-4.0.h | 173 - ace/config-psosim-g++.h | 239 - ace/config-sco-4.2-nothread.h | 114 - ace/config-sco-5.0.0-fsu-pthread.h | 13 - ace/config-sco-5.0.0-mit-pthread.h | 183 - ace/config-sco-5.0.0-nothread.h | 12 - ace/config-sco-5.0.0.h | 108 - ace/config-sunos4-g++.h | 105 - ace/config-sunos4-lucid3.2.h | 100 - ace/config-sunos4-sun3.x.h | 95 - ace/config-sunos4-sun4.1.4.h | 102 - ace/config-sunos4-sun4.x-orbix.h | 103 - ace/config-sunos4-sun4.x.h | 100 - ace/config-sunos5.4-centerline-2.x.h | 175 - ace/config-sunos5.4-g++.h | 185 - ace/config-sunos5.4-sunc++-4.x-orbix.h | 194 - ace/config-sunos5.4-sunc++-4.x.h | 192 - ace/config-sunos5.5-g++.h | 7 - ace/config-sunos5.5-sunc++-4.x.h | 7 - ace/config-sunos5.5.h | 247 - ace/config-sunos5.6.h | 32 - ace/config-sunos5.x-sunc++-4.x-orbix.h | 19 - ace/config-sunx86-sunc++-4.x.h | 153 - ace/config-tandem.h | 486 - ace/config-unixware-2.01-g++.h | 109 - ace/config-unixware-2.1.2-g++.h | 96 - ace/config-vxworks5.x.h | 136 - ace/config-win32-common.h | 447 - ace/config-win32.h | 148 - ace/gethrtime.cpp | 55 - ace/inc_user_config.h | 10 - ace/iosfwd.h | 70 - ace/makefile-light | 883 - ace/streams.h | 113 - ace/sys_conf.h | 380 - ace/ws2tcpip.h | 86 - apps/Gateway/Gateway/Channel.cpp | 710 - apps/Gateway/Gateway/Channel.h | 280 - apps/Gateway/Gateway/Channel_Connector.cpp | 92 - apps/Gateway/Gateway/Channel_Connector.h | 41 - .../Gateway/Concrete_Connection_Handlers.cpp | 632 - .../Gateway/Gateway/Concrete_Connection_Handlers.h | 127 - apps/Gateway/Gateway/Concurrency_Strategies.h | 74 - apps/Gateway/Gateway/Config_Files.cpp | 220 - apps/Gateway/Gateway/Config_Files.h | 98 - apps/Gateway/Gateway/Connection_Handler.cpp | 286 - apps/Gateway/Gateway/Connection_Handler.h | 152 - .../Gateway/Connection_Handler_Acceptor.cpp | 60 - apps/Gateway/Gateway/Connection_Handler_Acceptor.h | 60 - .../Gateway/Connection_Handler_Connector.cpp | 74 - .../Gateway/Gateway/Connection_Handler_Connector.h | 39 - apps/Gateway/Gateway/Consumer_Dispatch_Set.h | 28 - apps/Gateway/Gateway/Consumer_Entry.cpp | 31 - apps/Gateway/Gateway/Consumer_Entry.h | 45 - apps/Gateway/Gateway/Consumer_Map.cpp | 61 - apps/Gateway/Gateway/Consumer_Map.h | 62 - apps/Gateway/Gateway/Dispatch_Set.h | 28 - apps/Gateway/Gateway/Event.h | 217 - apps/Gateway/Gateway/Event_Channel.cpp | 546 - apps/Gateway/Gateway/Event_Channel.h | 129 - .../Gateway/Event_Forwarding_Discriminator.cpp | 60 - .../Gateway/Event_Forwarding_Discriminator.h | 60 - apps/Gateway/Gateway/File_Parser.cpp | 150 - apps/Gateway/Gateway/File_Parser.h | 89 - apps/Gateway/Gateway/Gateway.cpp | 342 - apps/Gateway/Gateway/Gateway.dsp | 96 - apps/Gateway/Gateway/Gateway.dsw | 44 - apps/Gateway/Gateway/Gateway.h | 29 - apps/Gateway/Gateway/Gateway4.mak | 1592 - apps/Gateway/Gateway/Gateway4.mdp | Bin 50176 -> 0 bytes apps/Gateway/Gateway/IO_Handler.cpp | 710 - apps/Gateway/Gateway/IO_Handler.h | 224 - apps/Gateway/Gateway/IO_Handler_Connector.cpp | 92 - apps/Gateway/Gateway/IO_Handler_Connector.h | 40 - apps/Gateway/Gateway/Makefile | 814 - apps/Gateway/Gateway/Options.cpp | 258 - apps/Gateway/Gateway/Options.h | 189 - apps/Gateway/Gateway/Peer_Message.h | 89 - apps/Gateway/Gateway/Routing_Entry.cpp | 47 - apps/Gateway/Gateway/Routing_Entry.h | 53 - apps/Gateway/Gateway/Routing_Table.cpp | 69 - apps/Gateway/Gateway/Routing_Table.h | 67 - apps/Gateway/Gateway/Thr_Channel.cpp | 204 - apps/Gateway/Gateway/Thr_Channel.h | 65 - apps/Gateway/Gateway/Thr_IO_Handler.cpp | 204 - apps/Gateway/Gateway/Thr_IO_Handler.h | 64 - apps/Gateway/Gateway/Thr_Proxy_Handler.cpp | 211 - apps/Gateway/Gateway/Thr_Proxy_Handler.h | 66 - apps/Gateway/Gateway/cc_config | 10 - apps/Gateway/Gateway/connection_config | 55 - apps/Gateway/Gateway/consumer_config | 35 - apps/Gateway/Gateway/gatewayd.cpp | 61 - apps/Gateway/Gateway/gatewayd.dsp | 57 - apps/Gateway/Gateway/rt_config | 7 - apps/Gateway/Gateway/svc.conf | 3 - apps/Gateway/Makefile | 26 - apps/Gateway/Peer/Event.h | 125 - apps/Gateway/Peer/Gateway_Handler.cpp | 652 - apps/Gateway/Peer/Gateway_Handler.h | 154 - apps/Gateway/Peer/Makefile | 175 - apps/Gateway/Peer/Options.cpp | 189 - apps/Gateway/Peer/Options.h | 133 - apps/Gateway/Peer/Peer.cpp | 844 - apps/Gateway/Peer/Peer.dsp | 64 - apps/Gateway/Peer/Peer.dsw | 44 - apps/Gateway/Peer/Peer.h | 230 - apps/Gateway/Peer/Peer4.mak | 594 - apps/Gateway/Peer/Peer4.mdp | Bin 49664 -> 0 bytes apps/Gateway/Peer/Peer_Message.h | 44 - apps/Gateway/Peer/peerd.cpp | 60 - apps/Gateway/Peer/peerd.dsp | 57 - apps/Gateway/Peer/svc.conf | 2 - apps/Gateway/README | 140 - apps/JAWS/ChangeLog | 618 - apps/JAWS/Makefile | 25 - apps/JAWS/PROTOTYPE/HTTP_10.cpp | 61 - apps/JAWS/PROTOTYPE/HTTP_10.h | 173 - apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp | 104 - apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp | 40 - apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp | 374 - apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp | 59 - apps/JAWS/PROTOTYPE/HTTP_Policy.cpp | 15 - apps/JAWS/PROTOTYPE/HTTP_Policy.h | 21 - apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp | 263 - apps/JAWS/PROTOTYPE/JAWS/Concurrency.h | 126 - apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp | 65 - apps/JAWS/PROTOTYPE/JAWS/Data_Block.h | 45 - apps/JAWS/PROTOTYPE/JAWS/Export.h | 39 - apps/JAWS/PROTOTYPE/JAWS/IO.cpp | 456 - apps/JAWS/PROTOTYPE/JAWS/IO.h | 203 - apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp | 80 - apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h | 98 - apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp | 390 - apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h | 279 - apps/JAWS/PROTOTYPE/JAWS/IO_State.h | 227 - apps/JAWS/PROTOTYPE/JAWS/JAWS.h | 9 - apps/JAWS/PROTOTYPE/JAWS/Makefile | 1112 - apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp | 27 - apps/JAWS/PROTOTYPE/JAWS/Pipeline.h | 36 - apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp | 30 - apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h | 32 - apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp | 93 - apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h | 31 - apps/JAWS/PROTOTYPE/JAWS/Policy.cpp | 71 - apps/JAWS/PROTOTYPE/JAWS/Policy.h | 60 - apps/JAWS/PROTOTYPE/JAWS/Server.cpp | 169 - apps/JAWS/PROTOTYPE/JAWS/Server.h | 38 - apps/JAWS/PROTOTYPE/JAWS/jaws.dsp | 78 - apps/JAWS/PROTOTYPE/JAWS/jaws.dsw | 17 - apps/JAWS/PROTOTYPE/Makefile | 672 - apps/JAWS/PROTOTYPE/main.cpp | 21 - apps/JAWS/README | 15 - apps/JAWS/clients/Blobby/Blob.cpp | 92 - apps/JAWS/clients/Blobby/Blob.h | 82 - apps/JAWS/clients/Blobby/Blob_Handler.cpp | 341 - apps/JAWS/clients/Blobby/Blob_Handler.h | 110 - apps/JAWS/clients/Blobby/Makefile | 346 - apps/JAWS/clients/Blobby/Options.cpp | 79 - apps/JAWS/clients/Blobby/Options.h | 66 - apps/JAWS/clients/Blobby/README | 33 - apps/JAWS/clients/Blobby/blobby.cpp | 97 - apps/JAWS/clients/Blobby/blobby.mak | 958 - apps/JAWS/clients/Blobby/blobby.mdp | Bin 51712 -> 0 bytes apps/JAWS/clients/Caching/Caching.mak | 824 - apps/JAWS/clients/Caching/Caching.mdp | Bin 54784 -> 0 bytes apps/JAWS/clients/Caching/ID_Generator.cpp | 59 - apps/JAWS/clients/Caching/ID_Generator.h | 58 - apps/JAWS/clients/Caching/Local_Locator.cpp | 258 - apps/JAWS/clients/Caching/Local_Locator.h | 113 - apps/JAWS/clients/Caching/Local_Locator.i | 44 - .../JAWS/clients/Caching/Locator_Request_Reply.cpp | 459 - apps/JAWS/clients/Caching/Locator_Request_Reply.h | 220 - apps/JAWS/clients/Caching/Locator_Request_Reply.i | 138 - apps/JAWS/clients/Caching/Makefile | 146 - apps/JAWS/clients/Caching/README | 83 - apps/JAWS/clients/Caching/URL_Array_Helper.cpp | 40 - apps/JAWS/clients/Caching/URL_Array_Helper.h | 40 - apps/JAWS/clients/Caching/URL_Locator.cpp | 56 - apps/JAWS/clients/Caching/URL_Locator.h | 116 - apps/JAWS/clients/Caching/URL_Locator.i | 4 - apps/JAWS/clients/Caching/URL_Properties.cpp | 160 - apps/JAWS/clients/Caching/URL_Properties.h | 196 - apps/JAWS/clients/Caching/URL_Properties.i | 203 - apps/JAWS/clients/Caching/http_client.cpp | 68 - apps/JAWS/clients/Caching/http_handler.cpp | 253 - apps/JAWS/clients/Caching/http_handler.h | 76 - apps/JAWS/clients/Caching/test_URL.cpp | 33 - apps/JAWS/clients/Makefile | 26 - apps/JAWS/clients/README | 13 - apps/JAWS/clients/WebSTONE/COPYING | 348 - apps/JAWS/clients/WebSTONE/README | 245 - apps/JAWS/clients/WebSTONE/README.DynamicWorkload | 37 - apps/JAWS/clients/WebSTONE/README.FIRST | 21 - apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 | 0 apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl | 61 - apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl | 31 - apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl | 37 - apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl | 95 - apps/JAWS/clients/WebSTONE/bin/checkfilelist | 35 - apps/JAWS/clients/WebSTONE/bin/genfiles | 41 - .../clients/WebSTONE/bin/genfiles-from-filelist.sh | 41 - apps/JAWS/clients/WebSTONE/bin/gui-configure | 174 - apps/JAWS/clients/WebSTONE/bin/killbench | 13 - apps/JAWS/clients/WebSTONE/bin/killbench.pl | 15 - apps/JAWS/clients/WebSTONE/bin/mine-logs.pl | 88 - apps/JAWS/clients/WebSTONE/bin/move-filelist.pl | 26 - apps/JAWS/clients/WebSTONE/bin/move-runs.pl | 24 - apps/JAWS/clients/WebSTONE/bin/rebootall | 9 - apps/JAWS/clients/WebSTONE/bin/runbench | 193 - apps/JAWS/clients/WebSTONE/bin/runbench.pl | 36 - apps/JAWS/clients/WebSTONE/bin/tabs2html | 13 - apps/JAWS/clients/WebSTONE/bin/view-results.pl | 53 - apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl | 316 - apps/JAWS/clients/WebSTONE/bin/write-testbed.pl | 47 - apps/JAWS/clients/WebSTONE/bin/wscollect.pl | 139 - apps/JAWS/clients/WebSTONE/conf/filelist | 6 - apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy | 6 - .../clients/WebSTONE/conf/filelist.dynamic-heavy | 6 - .../clients/WebSTONE/conf/filelist.dynamic-light | 6 - .../clients/WebSTONE/conf/filelist.dynamic-medium | 6 - apps/JAWS/clients/WebSTONE/conf/filelist.homepage | 2 - apps/JAWS/clients/WebSTONE/conf/filelist.sample | 6 - apps/JAWS/clients/WebSTONE/conf/filelist.standard | 6 - apps/JAWS/clients/WebSTONE/conf/fileset | 32 - apps/JAWS/clients/WebSTONE/conf/paths.pl | 2 - apps/JAWS/clients/WebSTONE/conf/paths.pl.old | 2 - apps/JAWS/clients/WebSTONE/conf/paths.sh | 0 apps/JAWS/clients/WebSTONE/conf/paths.sh.old | 0 apps/JAWS/clients/WebSTONE/conf/testbed | 33 - apps/JAWS/clients/WebSTONE/doc/COPYING | 348 - apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html | 402 - apps/JAWS/clients/WebSTONE/doc/LICENSE.html | 16 - apps/JAWS/clients/WebSTONE/doc/WebStone.html | 24 - apps/JAWS/clients/WebSTONE/doc/testbed.help | 21 - .../clients/WebSTONE/doc/webstone-white-paper.ps | 8974 ----- apps/JAWS/clients/WebSTONE/doc/webstone.gif | Bin 14656 -> 0 bytes apps/JAWS/clients/WebSTONE/doc/webstone2.html | 72 - apps/JAWS/clients/WebSTONE/src/Makefile | 112 - apps/JAWS/clients/WebSTONE/src/Makefile.in | 110 - apps/JAWS/clients/WebSTONE/src/README | 232 - apps/JAWS/clients/WebSTONE/src/acconfig.h | 15 - apps/JAWS/clients/WebSTONE/src/bench.c | 632 - apps/JAWS/clients/WebSTONE/src/bench.h | 273 - apps/JAWS/clients/WebSTONE/src/cgi-send | Bin 15452 -> 0 bytes apps/JAWS/clients/WebSTONE/src/cgi-send.c | 45 - .../JAWS/clients/WebSTONE/src/client/webclient.mak | 479 - apps/JAWS/clients/WebSTONE/src/config.cache | 47 - apps/JAWS/clients/WebSTONE/src/config.guess | 565 - apps/JAWS/clients/WebSTONE/src/config.h | 90 - apps/JAWS/clients/WebSTONE/src/config.h.in | 89 - apps/JAWS/clients/WebSTONE/src/config.log | 4 - apps/JAWS/clients/WebSTONE/src/config.status | 288 - apps/JAWS/clients/WebSTONE/src/config.sub | 867 - apps/JAWS/clients/WebSTONE/src/configure | 2132 -- apps/JAWS/clients/WebSTONE/src/configure.in | 99 - apps/JAWS/clients/WebSTONE/src/debug.h | 17 - apps/JAWS/clients/WebSTONE/src/errexit.c | 105 - apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak | 227 - apps/JAWS/clients/WebSTONE/src/genrand.c | 59 - apps/JAWS/clients/WebSTONE/src/get.c | 317 - apps/JAWS/clients/WebSTONE/src/get.h | 16 - apps/JAWS/clients/WebSTONE/src/getopt.c | 66 - apps/JAWS/clients/WebSTONE/src/gettimeofday.c | 56 - apps/JAWS/clients/WebSTONE/src/install-sh | 238 - apps/JAWS/clients/WebSTONE/src/logfile27859 | 9 - .../JAWS/clients/WebSTONE/src/master/webmaster.mak | 476 - .../WebSTONE/src/nsapi-includes/base/buffer.h | 218 - .../WebSTONE/src/nsapi-includes/base/cinfo.h | 144 - .../WebSTONE/src/nsapi-includes/base/crit.h | 125 - .../WebSTONE/src/nsapi-includes/base/daemon.h | 118 - .../clients/WebSTONE/src/nsapi-includes/base/dll.h | 122 - .../WebSTONE/src/nsapi-includes/base/ereport.h | 119 - .../WebSTONE/src/nsapi-includes/base/eventlog.h | 58 - .../WebSTONE/src/nsapi-includes/base/file.h | 215 - .../WebSTONE/src/nsapi-includes/base/minissl.h | 25 - .../clients/WebSTONE/src/nsapi-includes/base/net.h | 178 - .../WebSTONE/src/nsapi-includes/base/nodelock.h | 45 - .../WebSTONE/src/nsapi-includes/base/nterrors.h | 736 - .../WebSTONE/src/nsapi-includes/base/objndx.h | 27 - .../WebSTONE/src/nsapi-includes/base/pblock.h | 191 - .../clients/WebSTONE/src/nsapi-includes/base/sem.h | 68 - .../WebSTONE/src/nsapi-includes/base/session.h | 83 - .../WebSTONE/src/nsapi-includes/base/shexp.h | 95 - .../WebSTONE/src/nsapi-includes/base/shmem.h | 82 - .../WebSTONE/src/nsapi-includes/base/systems.h | 220 - .../WebSTONE/src/nsapi-includes/base/systhr.h | 128 - .../WebSTONE/src/nsapi-includes/base/util.h | 203 - .../WebSTONE/src/nsapi-includes/frame/conf.h | 153 - .../WebSTONE/src/nsapi-includes/frame/dnfilter.h | 42 - .../WebSTONE/src/nsapi-includes/frame/func.h | 109 - .../WebSTONE/src/nsapi-includes/frame/http.h | 168 - .../WebSTONE/src/nsapi-includes/frame/httpact.h | 118 - .../WebSTONE/src/nsapi-includes/frame/ipfilter.h | 46 - .../WebSTONE/src/nsapi-includes/frame/log.h | 49 - .../WebSTONE/src/nsapi-includes/frame/object.h | 165 - .../WebSTONE/src/nsapi-includes/frame/objset.h | 156 - .../WebSTONE/src/nsapi-includes/frame/protocol.h | 25 - .../WebSTONE/src/nsapi-includes/frame/req.h | 214 - .../WebSTONE/src/nsapi-includes/frame/servact.h | 24 - .../clients/WebSTONE/src/nsapi-includes/netsite.h | 65 - apps/JAWS/clients/WebSTONE/src/nsapi-send.c | 90 - apps/JAWS/clients/WebSTONE/src/parse_file_list.c | 289 - apps/JAWS/clients/WebSTONE/src/parse_file_list.h | 19 - apps/JAWS/clients/WebSTONE/src/rexec.c | 372 - apps/JAWS/clients/WebSTONE/src/statistics.c | 47 - apps/JAWS/clients/WebSTONE/src/statistics.h | 11 - apps/JAWS/clients/WebSTONE/src/sysdep.c | 50 - apps/JAWS/clients/WebSTONE/src/sysdep.h | 130 - apps/JAWS/clients/WebSTONE/src/timefunc.c | 169 - apps/JAWS/clients/WebSTONE/src/timefunc.h | 30 - apps/JAWS/clients/WebSTONE/src/webclient.c | 1295 - apps/JAWS/clients/WebSTONE/src/webmaster.c | 1417 - apps/JAWS/clients/WebSTONE/webstone | 75 - apps/JAWS/remora/app/Makefile | 19 - apps/JAWS/remora/app/Remora_Export.cc | 93 - apps/JAWS/remora/app/Remora_Export.h | 85 - apps/JAWS/remora/app/Remora_Export.i | 146 - apps/JAWS/remora/app/Remora_Import.cc | 109 - apps/JAWS/remora/app/Remora_Import.h | 69 - apps/JAWS/remora/app/Remora_Import.i | 85 - apps/JAWS/remora/app/remora.idl | 100 - apps/JAWS/remora/app/stdmk | 40 - apps/JAWS/remora/app/test.cc | 77 - apps/JAWS/server/HTTP_Config.cpp | 137 - apps/JAWS/server/HTTP_Config.h | 95 - apps/JAWS/server/HTTP_Handler.cpp | 287 - apps/JAWS/server/HTTP_Handler.h | 191 - apps/JAWS/server/HTTP_Helpers.cpp | 429 - apps/JAWS/server/HTTP_Helpers.h | 104 - apps/JAWS/server/HTTP_Request.cpp | 658 - apps/JAWS/server/HTTP_Request.h | 195 - apps/JAWS/server/HTTP_Response.cpp | 360 - apps/JAWS/server/HTTP_Response.h | 76 - apps/JAWS/server/HTTP_Server.cpp | 392 - apps/JAWS/server/HTTP_Server.h | 136 - apps/JAWS/server/IO.cpp | 411 - apps/JAWS/server/IO.h | 218 - apps/JAWS/server/JAWS_Concurrency.cpp | 80 - apps/JAWS/server/JAWS_Concurrency.h | 96 - apps/JAWS/server/JAWS_Pipeline.cpp | 27 - apps/JAWS/server/JAWS_Pipeline.h | 31 - apps/JAWS/server/JAWS_Pipeline_Handler.cpp | 24 - apps/JAWS/server/JAWS_Pipeline_Handler.h | 29 - apps/JAWS/server/Makefile | 605 - apps/JAWS/server/Parse_Headers.cpp | 355 - apps/JAWS/server/Parse_Headers.h | 117 - apps/JAWS/server/README | 201 - apps/JAWS/server/jaws.auth | 2 - apps/JAWS/server/jaws.dsp | 175 - apps/JAWS/server/jaws.dsw | 29 - apps/JAWS/server/jaws4.mak | 1051 - apps/JAWS/server/jaws4.mdp | Bin 54272 -> 0 bytes apps/JAWS/server/main.cpp | 49 - apps/JAWS/server/svc.conf | 37 - apps/JAWS/server/test.cgi | 9 - apps/JAWS/stress_testing/Makefile | 49 - apps/JAWS/stress_testing/README | 54 - apps/JAWS/stress_testing/benchd.cpp | 238 - apps/JAWS/stress_testing/client.h | 8 - apps/JAWS/stress_testing/clients.mak | 1616 - apps/JAWS/stress_testing/clients.mdp | Bin 49664 -> 0 bytes apps/JAWS/stress_testing/config | 3 - apps/JAWS/stress_testing/connection.cpp | 97 - apps/JAWS/stress_testing/connection.h | 22 - apps/JAWS/stress_testing/cp.cpp | 9 - apps/JAWS/stress_testing/cp.h | 14 - apps/JAWS/stress_testing/global.h | 26 - apps/JAWS/stress_testing/http.h | 16 - apps/JAWS/stress_testing/http_tester.cpp | 169 - apps/JAWS/stress_testing/out | 2 - apps/JAWS/stress_testing/stats.cpp | 87 - apps/JAWS/stress_testing/stats.h | 31 - apps/JAWS/stress_testing/util.cpp | 60 - apps/JAWS/stress_testing/util.h | 34 - apps/Makefile | 31 - .../Event_Comm/Consumer/Input_Handler.cpp | 130 - .../Event_Comm/Consumer/Input_Handler.h | 71 - apps/Orbix-Examples/Event_Comm/Consumer/Makefile | 163 - .../Consumer/Notification_Receiver_Handler.cpp | 114 - .../Consumer/Notification_Receiver_Handler.h | 62 - .../Event_Comm/Consumer/consumer.cpp | 114 - apps/Orbix-Examples/Event_Comm/Makefile | 26 - apps/Orbix-Examples/Event_Comm/README | 109 - .../Event_Comm/Supplier/Input_Handler.cpp | 120 - .../Event_Comm/Supplier/Input_Handler.h | 70 - apps/Orbix-Examples/Event_Comm/Supplier/Makefile | 162 - .../Event_Comm/Supplier/Notifier_Handler.cpp | 66 - .../Event_Comm/Supplier/Notifier_Handler.h | 56 - .../Event_Comm/Supplier/supplier.cpp | 116 - .../Event_Comm/include/Event_Comm.hh | 887 - .../Event_Comm/include/Event_Comm_i.h | 37 - .../Event_Comm/include/Notification_Receiver_i.h | 48 - .../Orbix-Examples/Event_Comm/include/Notifier_i.h | 82 - .../Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh | 887 - .../Event_Comm/libsrc/Event_Comm.idl | 94 - .../Event_Comm/libsrc/Event_CommC.cpp | 351 - .../Event_Comm/libsrc/Event_CommS.cpp | 166 - .../Event_Comm/libsrc/Event_Comm_i.h | 38 - apps/Orbix-Examples/Event_Comm/libsrc/Makefile | 113 - .../Event_Comm/libsrc/Notification.idl | 44 - .../Event_Comm/libsrc/Notification_Receiver.idl | 44 - .../Event_Comm/libsrc/Notification_Receiver_i.cpp | 39 - .../Event_Comm/libsrc/Notification_Receiver_i.h | 48 - apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl | 51 - .../Event_Comm/libsrc/Notifier_i.cpp | 324 - apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h | 82 - apps/Orbix-Examples/Logger/Logger.cpp | 131 - apps/Orbix-Examples/Logger/Logger.h | 56 - apps/Orbix-Examples/Logger/Makefile | 63 - apps/Orbix-Examples/Logger/Orbix.hostgroups | 1 - apps/Orbix-Examples/Logger/Orbix.hosts | 3 - apps/Orbix-Examples/Logger/README | 35 - apps/Orbix-Examples/Logger/a1.tex | 232 - apps/Orbix-Examples/Logger/client.cpp | 142 - apps/Orbix-Examples/Logger/logger.hh | 434 - apps/Orbix-Examples/Logger/logger.idl | 58 - apps/Orbix-Examples/Logger/loggerS.cpp | 141 - apps/Orbix-Examples/Logger/logger_i.cpp | 120 - apps/Orbix-Examples/Logger/logger_i.h | 75 - apps/Orbix-Examples/Logger/server.cpp | 40 - apps/Orbix-Examples/Makefile | 25 - apps/README | 18 - apps/gperf/COPYING | 249 - apps/gperf/ChangeLog | 1339 - apps/gperf/Makefile | 25 - apps/gperf/README | 28 - apps/gperf/gperf.1 | 23 - apps/gperf/gperf.info | 1127 - apps/gperf/gperf.texi | 1184 - apps/gperf/src/Bool_Array.cpp | 89 - apps/gperf/src/Bool_Array.h | 65 - apps/gperf/src/Gen_Perf.cpp | 374 - apps/gperf/src/Gen_Perf.h | 64 - apps/gperf/src/Hash_Table.cpp | 84 - apps/gperf/src/Hash_Table.h | 59 - apps/gperf/src/Iterator.cpp | 90 - apps/gperf/src/Iterator.h | 72 - apps/gperf/src/Key_List.cpp | 1383 - apps/gperf/src/Key_List.h | 120 - apps/gperf/src/List_Node.cpp | 115 - apps/gperf/src/List_Node.h | 66 - apps/gperf/src/Makefile | 207 - apps/gperf/src/Options.cpp | 659 - apps/gperf/src/Options.h | 174 - apps/gperf/src/Vectors.cpp | 30 - apps/gperf/src/Vectors.h | 44 - apps/gperf/src/Version.cpp | 24 - apps/gperf/src/gperf.cpp | 75 - apps/gperf/src/new.cpp | 85 - apps/gperf/tests/Makefile | 82 - apps/gperf/tests/ada-pred.exp | 54 - apps/gperf/tests/ada-res.exp | 63 - apps/gperf/tests/ada.gperf | 63 - apps/gperf/tests/adadefs.gperf | 54 - apps/gperf/tests/c++.gperf | 47 - apps/gperf/tests/c-parse.gperf | 56 - apps/gperf/tests/c.exp | 32 - apps/gperf/tests/c.gperf | 32 - apps/gperf/tests/gpc.gperf | 48 - apps/gperf/tests/gplus.gperf | 76 - apps/gperf/tests/irc.gperf | 63 - apps/gperf/tests/makeinfo.gperf | 116 - apps/gperf/tests/modula.exp | 106 - apps/gperf/tests/modula2.gperf | 40 - apps/gperf/tests/modula3.gperf | 106 - apps/gperf/tests/pascal.exp | 36 - apps/gperf/tests/pascal.gperf | 36 - apps/gperf/tests/test-1.exp | 135 - apps/gperf/tests/test-2.exp | 184 - apps/gperf/tests/test-3.exp | 166 - apps/gperf/tests/test-4.exp | 140 - apps/gperf/tests/test-5.exp | 109 - apps/gperf/tests/test-6.exp | 77 - apps/gperf/tests/test-7.exp | 32 - apps/gperf/tests/test.cpp | 30 - bin/Makefile | 39 - bin/Process.pm | 12 - bin/Process_Unix.pm | 51 - bin/Process_Win32.pm | 41 - bin/README.html | 147 - bin/Service_Config.perl | 27 - bin/ace_ld | 172 - bin/auto_compile | 203 - bin/auto_compile_wrapper | 46 - bin/auto_ptr.perl | 14 - bin/class2hxxcxx | 80 - bin/class2hxxcxxsingle | 80 - bin/class2info | 197 - bin/class2info.awk | 1594 - bin/class2man | 78 - bin/class2mml | 79 - bin/class2src | 79 - bin/classinfo.ps | 868 - bin/clone.1 | 297 - bin/clone.cpp | 955 - bin/clone.csh | 26 - bin/create_ace_build | 157 - bin/dsp2dsp.pl | 29 - bin/g++dep | 78 - bin/hiding.fmt | 20 - bin/html-windex | 33 - bin/indent_macros.perl | 59 - bin/info2doc.awk | 2182 -- bin/info2doc.fmt | 23 - bin/info2head | 166 - bin/info2head.fmt | 23 - bin/info2headsrc | 326 - bin/info2man | 169 - bin/info2mml | 166 - bin/info2src | 133 - bin/info2src.awk | 630 - bin/make_release | 394 - bin/man2html | 89 - bin/man2html1.awk | 139 - bin/man2html2.awk | 18 - bin/rename-ace.pl | 175 - bin/vendor.fmt | 101 - docs/ACE-inheritance.pdf.gz | Bin 17864 -> 0 bytes docs/ACE-inheritance.ps.gz | Bin 18594 -> 0 bytes docs/ACE-lessons.html | 267 - docs/CE-status.txt | 888 - etc/ACE-guidelines.html | 499 - etc/README | 32 - etc/Svc_Conf_l.cpp.diff | 259 - etc/Svc_Conf_y.cpp.diff | 92 - etc/create-jace-release | 9 - etc/purify.solaris2 | 144 - examples/ASX/CCM_App/CCM_App.cpp | 102 - examples/ASX/CCM_App/Makefile | 129 - examples/ASX/CCM_App/SC_Client.cpp | 9 - examples/ASX/CCM_App/SC_Server.cpp | 64 - examples/ASX/CCM_App/svc.conf | 21 - .../Event_Server/Event_Server/Consumer_Router.cpp | 138 - .../Event_Server/Event_Server/Consumer_Router.h | 49 - .../Event_Server/Event_Server/Event_Analyzer.cpp | 71 - .../ASX/Event_Server/Event_Server/Event_Analyzer.h | 33 - .../ASX/Event_Server/Event_Server/Event_Server.dsp | 114 - .../ASX/Event_Server/Event_Server/Event_Server.dsw | 29 - .../ASX/Event_Server/Event_Server/Event_Server.mak | 871 - .../ASX/Event_Server/Event_Server/Event_Server.mdp | Bin 46592 -> 0 bytes examples/ASX/Event_Server/Event_Server/Makefile | 512 - examples/ASX/Event_Server/Event_Server/Options.cpp | 192 - examples/ASX/Event_Server/Event_Server/Options.h | 102 - examples/ASX/Event_Server/Event_Server/Options.i | 137 - .../ASX/Event_Server/Event_Server/Peer_Router.cpp | 367 - .../ASX/Event_Server/Event_Server/Peer_Router.h | 136 - .../Event_Server/Event_Server/Supplier_Router.cpp | 138 - .../Event_Server/Event_Server/Supplier_Router.h | 58 - .../ASX/Event_Server/Event_Server/event_server.cpp | 150 - examples/ASX/Event_Server/Makefile | 23 - examples/ASX/Event_Server/README | 53 - examples/ASX/Event_Server/Transceiver/Makefile | 43 - .../ASX/Event_Server/Transceiver/transceiver.cpp | 239 - .../ASX/Event_Server/Transceiver/transceiver.dsp | 70 - .../ASX/Event_Server/Transceiver/transceiver.dsw | 29 - .../ASX/Event_Server/Transceiver/transceiver.mak | 262 - .../ASX/Event_Server/Transceiver/transceiver.mdp | Bin 43520 -> 0 bytes examples/ASX/Makefile | 25 - examples/ASX/Message_Queue/Bounded_Buffer.dsp | 91 - examples/ASX/Message_Queue/Buffer_Stream.dsp | 91 - examples/ASX/Message_Queue/Makefile | 43 - .../ASX/Message_Queue/Message_Queue_Example.dsw | 53 - examples/ASX/Message_Queue/Priority_Buffer.dsp | 91 - examples/ASX/Message_Queue/bounded_buffer.cpp | 123 - examples/ASX/Message_Queue/buffer_stream.cpp | 273 - examples/ASX/Message_Queue/priority_buffer.cpp | 141 - .../ASX/UPIPE_Event_Server/Consumer_Router.cpp | 148 - examples/ASX/UPIPE_Event_Server/Consumer_Router.h | 48 - examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp | 70 - examples/ASX/UPIPE_Event_Server/Event_Analyzer.h | 33 - examples/ASX/UPIPE_Event_Server/Makefile | 514 - examples/ASX/UPIPE_Event_Server/Options.cpp | 191 - examples/ASX/UPIPE_Event_Server/Options.h | 83 - examples/ASX/UPIPE_Event_Server/Options.i | 161 - examples/ASX/UPIPE_Event_Server/Peer_Router.cpp | 271 - examples/ASX/UPIPE_Event_Server/Peer_Router.h | 116 - .../ASX/UPIPE_Event_Server/Supplier_Router.cpp | 158 - examples/ASX/UPIPE_Event_Server/Supplier_Router.h | 52 - .../ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsp | 115 - .../ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsw | 29 - .../ASX/UPIPE_Event_Server/UPIPE_Event_Server.mak | 1034 - .../ASX/UPIPE_Event_Server/UPIPE_Event_Server.mdp | Bin 45056 -> 0 bytes examples/ASX/UPIPE_Event_Server/event_server.cpp | 251 - examples/CORBA/Makefile | 65 - examples/CORBA/Test.idl | 8 - examples/CORBA/Test_i.cpp | 10 - examples/CORBA/Test_i.h | 14 - examples/CORBA/client.cpp | 26 - examples/CORBA/server.cpp | 37 - examples/Connection/Makefile | 25 - examples/Connection/blocking/README | 36 - examples/Connection/blocking/SPIPE-acceptor.cpp | 181 - examples/Connection/blocking/SPIPE-acceptor.h | 65 - examples/Connection/blocking/SPIPE-connector.cpp | 211 - examples/Connection/blocking/SPIPE-connector.h | 75 - examples/Connection/blocking/SPIPE.dsp | 77 - examples/Connection/blocking/SPIPE.dsw | 41 - examples/Connection/blocking/SPIPE.mak | 833 - examples/Connection/blocking/SPIPE.mdp | Bin 51200 -> 0 bytes examples/Connection/blocking/acceptor.dsp | 77 - .../Connection/blocking/test_spipe_acceptor.cpp | 20 - .../Connection/blocking/test_spipe_connector.cpp | 19 - examples/Connection/misc/Connection_Handler.cpp | 268 - examples/Connection/misc/Makefile | 254 - examples/Connection/misc/test_upipe.cpp | 215 - examples/Connection/non_blocking/CPP-acceptor.cpp | 173 - examples/Connection/non_blocking/CPP-acceptor.h | 70 - examples/Connection/non_blocking/CPP-connector.cpp | 232 - examples/Connection/non_blocking/CPP-connector.h | 70 - examples/Connection/non_blocking/Makefile | 1047 - examples/Connection/non_blocking/README | 28 - examples/Connection/non_blocking/non_blocking.dsp | 73 - examples/Connection/non_blocking/non_blocking.dsw | 41 - examples/Connection/non_blocking/non_blocking.mak | 785 - examples/Connection/non_blocking/non_blocking.mdp | Bin 18946 -> 0 bytes examples/Connection/non_blocking/server.dsp | 73 - .../non_blocking/test_lsock_acceptor.cpp | 40 - .../non_blocking/test_lsock_connector.cpp | 48 - .../Connection/non_blocking/test_sock_acceptor.cpp | 40 - .../non_blocking/test_sock_connector.cpp | 60 - .../non_blocking/test_spipe_acceptor.cpp | 48 - .../non_blocking/test_spipe_connector.cpp | 57 - .../Connection/non_blocking/test_tli_acceptor.cpp | 48 - .../Connection/non_blocking/test_tli_connector.cpp | 59 - examples/IOStream/Makefile | 25 - examples/IOStream/README | 22 - examples/IOStream/client/Makefile | 77 - examples/IOStream/client/iostream_client.cpp | 73 - examples/IOStream/server/Makefile | 144 - examples/IOStream/server/iostream_server.cpp | 182 - examples/IPC_SAP/DEV_SAP/Makefile | 22 - examples/IPC_SAP/DEV_SAP/README | 23 - examples/IPC_SAP/DEV_SAP/reader/Makefile | 77 - examples/IPC_SAP/DEV_SAP/reader/reader.cpp | 49 - examples/IPC_SAP/DEV_SAP/writer/Makefile | 77 - examples/IPC_SAP/DEV_SAP/writer/writer.cpp | 54 - examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp | 36 - examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp | 41 - examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp | 24 - examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp | 25 - examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp | 97 - examples/IPC_SAP/FIFO_SAP/Makefile | 157 - examples/IPC_SAP/FILE_SAP/File_sap.dsw | 29 - examples/IPC_SAP/FILE_SAP/Makefile | 70 - examples/IPC_SAP/FILE_SAP/client.cpp | 58 - examples/IPC_SAP/FILE_SAP/client.dsp | 57 - examples/IPC_SAP/FILE_SAP/testfile | 1 - examples/IPC_SAP/Makefile | 27 - examples/IPC_SAP/SOCK_SAP/C-inclient.cpp | 74 - examples/IPC_SAP/SOCK_SAP/C-inserver.cpp | 98 - examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp | 439 - examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp | 435 - examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp | 199 - examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp | 329 - examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp | 66 - examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp | 156 - examples/IPC_SAP/SOCK_SAP/CPP_inclient.dsp | 70 - examples/IPC_SAP/SOCK_SAP/CPP_inserver.dsp | 70 - examples/IPC_SAP/SOCK_SAP/C_inserver.dsp | 70 - examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp | 54 - examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp | 92 - examples/IPC_SAP/SOCK_SAP/Makefile | 379 - examples/IPC_SAP/SOCK_SAP/README | 42 - examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsp | 70 - examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsw | 65 - examples/IPC_SAP/SOCK_SAP/SOCK_SAP.mak | 485 - examples/IPC_SAP/SOCK_SAP/SOCK_SAP.mdp | Bin 43520 -> 0 bytes examples/IPC_SAP/SOCK_SAP/local_data | 1 - examples/IPC_SAP/SPIPE_SAP/Makefile | 282 - examples/IPC_SAP/SPIPE_SAP/NPClient.cpp | 46 - examples/IPC_SAP/SPIPE_SAP/NPServer.cpp | 52 - examples/IPC_SAP/SPIPE_SAP/client.cpp | 43 - examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp | 52 - examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp | 49 - examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp | 58 - examples/IPC_SAP/SPIPE_SAP/producer_read.cpp | 49 - examples/IPC_SAP/SPIPE_SAP/server.cpp | 118 - examples/IPC_SAP/SPIPE_SAP/shared.h | 6 - examples/IPC_SAP/TLI_SAP/CPP-client.cpp | 66 - examples/IPC_SAP/TLI_SAP/CPP-server.cpp | 68 - examples/IPC_SAP/TLI_SAP/Makefile | 250 - examples/IPC_SAP/TLI_SAP/db-client.cpp | 52 - examples/IPC_SAP/TLI_SAP/db-server.cpp | 108 - examples/IPC_SAP/TLI_SAP/ftp-client.cpp | 43 - examples/IPC_SAP/TLI_SAP/ftp-server.cpp | 74 - examples/IPC_SAP/TLI_SAP/signal_thread.c | 53 - examples/IPC_SAP/UPIPE_SAP/Makefile | 348 - examples/IPC_SAP/UPIPE_SAP/auto_builtin_ptr.h | 20 - examples/IPC_SAP/UPIPE_SAP/ex1.cpp | 147 - examples/IPC_SAP/UPIPE_SAP/ex2.cpp | 155 - examples/IPC_SAP/UPIPE_SAP/ex3.cpp | 147 - examples/Log_Msg/Log_Msg.dsp | 69 - examples/Log_Msg/Log_Msg.mak | 222 - examples/Log_Msg/Log_Msg.mdp | Bin 39936 -> 0 bytes examples/Log_Msg/Makefile | 59 - examples/Log_Msg/README | 57 - examples/Log_Msg/test_log_msg.cpp | 124 - examples/Logger/Acceptor-server/Makefile | 42 - examples/Logger/Acceptor-server/server_loggerd.cpp | 264 - examples/Logger/Acceptor-server/server_loggerd.dsp | 70 - examples/Logger/Acceptor-server/server_loggerd.dsw | 29 - examples/Logger/Acceptor-server/server_loggerd.mak | 261 - examples/Logger/Acceptor-server/server_loggerd.mdp | Bin 43520 -> 0 bytes examples/Logger/Makefile | 27 - examples/Logger/README | 32 - examples/Logger/client/Makefile | 72 - examples/Logger/client/client.dsp | 69 - examples/Logger/client/client.dsw | 29 - examples/Logger/client/client.mak | 169 - examples/Logger/client/client.mdp | Bin 39936 -> 0 bytes examples/Logger/client/logging_app.cpp | 53 - examples/Logger/simple-server/Logging_Acceptor.cpp | 80 - examples/Logger/simple-server/Logging_Acceptor.h | 48 - examples/Logger/simple-server/Logging_Handler.cpp | 152 - examples/Logger/simple-server/Logging_Handler.h | 65 - examples/Logger/simple-server/Makefile | 196 - examples/Logger/simple-server/Reactor_Singleton.h | 27 - examples/Logger/simple-server/server_loggerd.cpp | 77 - examples/Logger/simple-server/server_loggerd.dsp | 90 - examples/Logger/simple-server/server_loggerd.dsw | 29 - examples/Logger/simple-server/server_loggerd.mak | 438 - examples/Logger/simple-server/server_loggerd.mdp | Bin 43008 -> 0 bytes examples/Makefile | 44 - examples/Map_Manager/Makefile | 71 - examples/Map_Manager/test_hash_map_manager.cpp | 93 - examples/Mem_Map/IO-tests/IO_Test.cpp | 189 - examples/Mem_Map/IO-tests/IO_Test.h | 71 - examples/Mem_Map/IO-tests/Makefile | 66 - examples/Mem_Map/IO-tests/test_io.cpp | 166 - examples/Mem_Map/Makefile | 22 - examples/Mem_Map/file-reverse/Makefile | 63 - examples/Mem_Map/file-reverse/file-reverse.cpp | 44 - examples/Mem_Map/file-reverse/file_reverse.dsp | 91 - examples/Mem_Map/file-reverse/file_reverse.dsw | 29 - examples/Misc/Makefile | 254 - examples/Misc/test_XtReactor1.cpp | 141 - examples/Misc/test_XtReactor2.cpp | 75 - examples/Misc/test_dump.cpp | 76 - examples/Misc/test_get_opt.cpp | 51 - examples/Misc/test_profile_timer.cpp | 33 - examples/Misc/test_read_buffer.cpp | 24 - examples/Misc/test_set.cpp | 14 - examples/Misc/test_sstring.cpp | 22 - examples/Misc/test_trace.cpp | 51 - examples/Naming/Makefile | 48 - examples/Naming/Naming.dsp | 69 - examples/Naming/Naming.dsw | 53 - examples/Naming/Naming.mak | 734 - examples/Naming/Naming.mdp | Bin 54784 -> 0 bytes examples/Naming/multiple_contexts.dsp | 70 - examples/Naming/non_existent.dsp | 70 - examples/Naming/test_multiple_contexts.cpp | 47 - examples/Naming/test_non_existent.cpp | 34 - examples/Naming/test_open.cpp | 54 - examples/Naming/test_writers.cpp | 41 - examples/OS/Makefile | 21 - examples/OS/Process/Makefile | 46 - examples/OS/Process/Process.dsp | 101 - examples/OS/Process/Process.dsw | 29 - examples/OS/Process/Process.mak | 256 - examples/OS/Process/Process.mdp | Bin 40448 -> 0 bytes examples/OS/Process/README | 55 - examples/OS/Process/imore.cpp | 246 - examples/OS/Process/process.cpp | 417 - examples/README | 77 - examples/Reactor/Dgram/CODgram.cpp | 202 - examples/Reactor/Dgram/CODgram.dsp | 89 - examples/Reactor/Dgram/Dgram.cpp | 203 - examples/Reactor/Dgram/Dgram.dsp | 89 - examples/Reactor/Dgram/Dgram.dsw | 41 - examples/Reactor/Dgram/Dgram.mak | 578 - examples/Reactor/Dgram/Dgram.mdp | Bin 47104 -> 0 bytes examples/Reactor/Dgram/Makefile | 167 - examples/Reactor/FIFO/Makefile | 127 - examples/Reactor/FIFO/client.cpp | 19 - examples/Reactor/FIFO/server.cpp | 82 - examples/Reactor/Makefile | 25 - examples/Reactor/Misc/Makefile | 507 - examples/Reactor/Misc/Misc.dsp | 70 - examples/Reactor/Misc/Misc.dsw | 77 - examples/Reactor/Misc/Misc.mak | 857 - examples/Reactor/Misc/Misc.mdp | Bin 55808 -> 0 bytes examples/Reactor/Misc/notification.cpp | 288 - examples/Reactor/Misc/notification.dsp | 70 - examples/Reactor/Misc/pingpong.cpp | 247 - examples/Reactor/Misc/reactors.dsp | 57 - examples/Reactor/Misc/signal_tester.cpp | 221 - examples/Reactor/Misc/signals_1.dsp | 57 - examples/Reactor/Misc/signals_2.dsp | 57 - examples/Reactor/Misc/test_demuxing.cpp | 358 - examples/Reactor/Misc/test_event_handler_t.cpp | 49 - examples/Reactor/Misc/test_reactors.cpp | 198 - examples/Reactor/Misc/test_signals.cpp | 226 - examples/Reactor/Misc/test_signals_1.cpp | 83 - examples/Reactor/Misc/test_signals_2.cpp | 235 - examples/Reactor/Misc/test_time_value.cpp | 70 - examples/Reactor/Misc/test_timer_queue.cpp | 87 - examples/Reactor/Multicast/Log_Wrapper.cpp | 72 - examples/Reactor/Multicast/Log_Wrapper.h | 63 - examples/Reactor/Multicast/Makefile | 77 - examples/Reactor/Multicast/Multicast.dsw | 41 - examples/Reactor/Multicast/Multicast.mak | 581 - examples/Reactor/Multicast/Multicast.mdp | Bin 45568 -> 0 bytes examples/Reactor/Multicast/README | 15 - examples/Reactor/Multicast/client.cpp | 118 - examples/Reactor/Multicast/client.dsp | 93 - examples/Reactor/Multicast/server.cpp | 213 - examples/Reactor/Multicast/server.dsp | 93 - examples/Reactor/Ntalker/Makefile | 113 - examples/Reactor/Ntalker/ntalker.cpp | 175 - examples/Reactor/Ntalker/ntalker.dsp | 65 - examples/Reactor/Ntalker/ntalker.dsw | 29 - examples/Reactor/Ntalker/ntalker.mak | 252 - examples/Reactor/Ntalker/ntalker.mdp | Bin 44032 -> 0 bytes examples/Reactor/Proactor/Makefile | 40 - examples/Reactor/Proactor/test_multiple_loops.cpp | 119 - examples/Reactor/Proactor/test_multiple_loops.dsp | 71 - examples/Reactor/Proactor/test_proactor.cpp | 579 - examples/Reactor/Proactor/test_proactor.dsp | 66 - examples/Reactor/Proactor/test_proactor.dsw | 53 - examples/Reactor/Proactor/test_proactor.mak | 536 - examples/Reactor/Proactor/test_proactor.mdp | Bin 52736 -> 0 bytes .../Reactor/Proactor/test_proactor_with_aio.cpp | 615 - examples/Reactor/Proactor/test_timeout.cpp | 96 - examples/Reactor/Proactor/test_timeout.dsp | 70 - examples/Reactor/README | 20 - examples/Reactor/ReactorEx/APC.DSP | 57 - examples/Reactor/ReactorEx/Abondoned.dsp | 57 - examples/Reactor/ReactorEx/Console_Input.dsp | 58 - examples/Reactor/ReactorEx/Directory_Changes.dsp | 58 - examples/Reactor/ReactorEx/Exceptions.dsp | 58 - examples/Reactor/ReactorEx/Multithreading.dsp | 58 - examples/Reactor/ReactorEx/Network_Events.dsp | 58 - .../Reactor/ReactorEx/Prerun_State_Changes.dsp | 59 - examples/Reactor/ReactorEx/Registration.dsp | 58 - examples/Reactor/ReactorEx/Registry_Changes.dsp | 58 - examples/Reactor/ReactorEx/Removals.dsp | 57 - examples/Reactor/ReactorEx/Talker.dsp | 57 - examples/Reactor/ReactorEx/Timeouts.dsp | 57 - examples/Reactor/ReactorEx/Window_Messages.dsp | 58 - examples/Reactor/ReactorEx/reactorex.dsw | 185 - examples/Reactor/ReactorEx/reactorex.mak | 1680 - examples/Reactor/ReactorEx/reactorex.mdp | Bin 74752 -> 0 bytes examples/Reactor/ReactorEx/test_abandoned.cpp | 121 - examples/Reactor/ReactorEx/test_apc.cpp | 100 - examples/Reactor/ReactorEx/test_console_input.cpp | 81 - .../Reactor/ReactorEx/test_directory_changes.cpp | 114 - examples/Reactor/ReactorEx/test_exceptions.cpp | 86 - examples/Reactor/ReactorEx/test_multithreading.cpp | 240 - examples/Reactor/ReactorEx/test_network_events.cpp | 190 - .../ReactorEx/test_prerun_state_changes.cpp | 59 - examples/Reactor/ReactorEx/test_registration.cpp | 154 - .../Reactor/ReactorEx/test_registry_changes.cpp | 133 - examples/Reactor/ReactorEx/test_removals.cpp | 103 - examples/Reactor/ReactorEx/test_talker.cpp | 552 - examples/Reactor/ReactorEx/test_timeouts.cpp | 78 - .../Reactor/ReactorEx/test_window_messages.cpp | 85 - examples/Reactor/WFMO_Reactor/APC.DSP | 57 - examples/Reactor/WFMO_Reactor/Abondoned.dsp | 57 - examples/Reactor/WFMO_Reactor/Console_Input.dsp | 58 - .../Reactor/WFMO_Reactor/Directory_Changes.dsp | 58 - examples/Reactor/WFMO_Reactor/Exceptions.dsp | 58 - examples/Reactor/WFMO_Reactor/Multithreading.dsp | 58 - examples/Reactor/WFMO_Reactor/Network_Events.dsp | 58 - .../Reactor/WFMO_Reactor/Prerun_State_Changes.dsp | 59 - examples/Reactor/WFMO_Reactor/Registration.dsp | 58 - examples/Reactor/WFMO_Reactor/Registry_Changes.dsp | 58 - examples/Reactor/WFMO_Reactor/Removals.dsp | 57 - examples/Reactor/WFMO_Reactor/Talker.dsp | 57 - examples/Reactor/WFMO_Reactor/Timeouts.dsp | 57 - examples/Reactor/WFMO_Reactor/Window_Messages.dsp | 58 - examples/Reactor/WFMO_Reactor/reactorex.dsw | 185 - examples/Reactor/WFMO_Reactor/reactorex.mak | 1680 - examples/Reactor/WFMO_Reactor/reactorex.mdp | Bin 74752 -> 0 bytes examples/Reactor/WFMO_Reactor/test_abandoned.cpp | 121 - examples/Reactor/WFMO_Reactor/test_apc.cpp | 100 - .../Reactor/WFMO_Reactor/test_console_input.cpp | 81 - .../WFMO_Reactor/test_directory_changes.cpp | 114 - examples/Reactor/WFMO_Reactor/test_exceptions.cpp | 86 - .../Reactor/WFMO_Reactor/test_multithreading.cpp | 240 - .../Reactor/WFMO_Reactor/test_network_events.cpp | 190 - .../WFMO_Reactor/test_prerun_state_changes.cpp | 59 - .../Reactor/WFMO_Reactor/test_registration.cpp | 154 - .../Reactor/WFMO_Reactor/test_registry_changes.cpp | 133 - examples/Reactor/WFMO_Reactor/test_removals.cpp | 103 - examples/Reactor/WFMO_Reactor/test_talker.cpp | 552 - examples/Reactor/WFMO_Reactor/test_timeouts.cpp | 78 - .../Reactor/WFMO_Reactor/test_window_messages.cpp | 85 - examples/Registry/Registry.dsp | 69 - examples/Registry/Registry.dsw | 41 - examples/Registry/Registry.mak | 271 - examples/Registry/Registry.mdp | Bin 40448 -> 0 bytes examples/Registry/test_registry_iterator.cpp | 132 - examples/Registry/test_registry_update.cpp | 147 - examples/Registry/update.dsp | 69 - examples/Service_Configurator/IPC-tests/Makefile | 24 - examples/Service_Configurator/IPC-tests/README | 112 - .../Service_Configurator/IPC-tests/client/Makefile | 388 - .../IPC-tests/client/broadcast_client_test.cpp | 56 - .../IPC-tests/client/local_data | 22 - .../IPC-tests/client/local_dgram_client_test.cpp | 118 - .../IPC-tests/client/local_fifo_client_test.cpp | 83 - .../IPC-tests/client/local_pipe_client_test.cpp | 122 - .../IPC-tests/client/local_spipe_client_test.cpp | 88 - .../IPC-tests/client/local_stream_client_test.cpp | 85 - .../IPC-tests/client/remote_data | 22 - .../IPC-tests/client/remote_data1 | 22 - .../IPC-tests/client/remote_data2 | 22 - .../IPC-tests/client/remote_data3 | 22 - .../IPC-tests/client/remote_data4 | 22 - .../IPC-tests/client/remote_dgram_client_test.cpp | 78 - .../client/remote_service_directory_test.cpp | 82 - .../IPC-tests/client/remote_stream_client_test.cpp | 105 - .../client/remote_thr_stream_client_test.cpp | 96 - .../IPC-tests/server/Handle_Broadcast.cpp | 36 - .../IPC-tests/server/Handle_Broadcast.h | 41 - .../IPC-tests/server/Handle_Broadcast.i | 110 - .../IPC-tests/server/Handle_L_CODgram.cpp | 36 - .../IPC-tests/server/Handle_L_CODgram.h | 41 - .../IPC-tests/server/Handle_L_CODgram.i | 120 - .../IPC-tests/server/Handle_L_Dgram.cpp | 15 - .../IPC-tests/server/Handle_L_Dgram.h | 43 - .../IPC-tests/server/Handle_L_Dgram.i | 109 - .../IPC-tests/server/Handle_L_FIFO.cpp | 35 - .../IPC-tests/server/Handle_L_FIFO.h | 42 - .../IPC-tests/server/Handle_L_FIFO.i | 95 - .../IPC-tests/server/Handle_L_Pipe.cpp | 36 - .../IPC-tests/server/Handle_L_Pipe.h | 44 - .../IPC-tests/server/Handle_L_Pipe.i | 135 - .../IPC-tests/server/Handle_L_SPIPE.cpp | 16 - .../IPC-tests/server/Handle_L_SPIPE.h | 45 - .../IPC-tests/server/Handle_L_SPIPE.i | 119 - .../IPC-tests/server/Handle_L_Stream.cpp | 17 - .../IPC-tests/server/Handle_L_Stream.h | 48 - .../IPC-tests/server/Handle_L_Stream.i | 146 - .../IPC-tests/server/Handle_R_Dgram.cpp | 36 - .../IPC-tests/server/Handle_R_Dgram.h | 40 - .../IPC-tests/server/Handle_R_Dgram.i | 106 - .../IPC-tests/server/Handle_R_Stream.cpp | 39 - .../IPC-tests/server/Handle_R_Stream.h | 46 - .../IPC-tests/server/Handle_R_Stream.i | 138 - .../IPC-tests/server/Handle_Thr_Stream.cpp | 219 - .../IPC-tests/server/Handle_Thr_Stream.h | 74 - .../IPC-tests/server/Handle_Thr_Stream.i | 1 - .../IPC-tests/server/Handle_Timeout.cpp | 34 - .../IPC-tests/server/Handle_Timeout.h | 36 - .../IPC-tests/server/Handle_Timeout.i | 84 - .../Service_Configurator/IPC-tests/server/Makefile | 944 - .../IPC-tests/server/server_test.cpp | 36 - .../Service_Configurator/IPC-tests/server/svc.conf | 19 - examples/Service_Configurator/Makefile | 22 - examples/Service_Configurator/Misc/Makefile | 103 - examples/Service_Configurator/Misc/Misc.dsw | 29 - examples/Service_Configurator/Misc/README | 3 - .../Service_Configurator/Misc/Timer_Service.cpp | 103 - examples/Service_Configurator/Misc/Timer_Service.h | 43 - examples/Service_Configurator/Misc/main.cpp | 55 - examples/Service_Configurator/Misc/main.dsp | 93 - examples/Service_Configurator/Misc/svc.conf | 6 - examples/Shared_Malloc/Makefile | 115 - examples/Shared_Malloc/Malloc.cpp | 106 - examples/Shared_Malloc/Malloc.h | 25 - examples/Shared_Malloc/Options.cpp | 187 - examples/Shared_Malloc/Options.h | 81 - examples/Shared_Malloc/Shared_Malloc.mak | 762 - examples/Shared_Malloc/Shared_Malloc.mdp | Bin 54272 -> 0 bytes examples/Shared_Malloc/test_malloc.cpp | 211 - examples/Shared_Malloc/test_multiple_mallocs.cpp | 67 - examples/Shared_Malloc/test_persistence.cpp | 241 - examples/Shared_Memory/Makefile | 88 - examples/Shared_Memory/test_MM.cpp | 64 - examples/Shared_Memory/test_SV.cpp | 61 - examples/System_V_IPC/Makefile | 41 - examples/System_V_IPC/README | 13 - .../System_V_IPC/SV_Message_Queues/MQ_Client.cpp | 34 - .../System_V_IPC/SV_Message_Queues/MQ_Server.cpp | 61 - examples/System_V_IPC/SV_Message_Queues/Makefile | 177 - .../System_V_IPC/SV_Message_Queues/TMQ_Client.cpp | 47 - .../System_V_IPC/SV_Message_Queues/TMQ_Server.cpp | 65 - examples/System_V_IPC/SV_Message_Queues/test.h | 51 - examples/System_V_IPC/SV_Semaphores/Makefile | 137 - .../SV_Semaphores/Semaphore_Client.cpp | 31 - .../SV_Semaphores/Semaphore_Server.cpp | 42 - .../System_V_IPC/SV_Semaphores/Semaphore_Test.h | 11 - examples/System_V_IPC/SV_Semaphores/Semaphores.cpp | 94 - .../System_V_IPC/SV_Semaphores/Semaphores_1.cpp | 97 - .../System_V_IPC/SV_Semaphores/Semaphores_2.cpp | 108 - examples/System_V_IPC/SV_Shared_Memory/Makefile | 64 - .../SV_Shared_Memory/SV_Shared_Memory_Test.cpp | 60 - .../SV_Shared_Memory/SV_Shared_Memory_Test.h | 7 - examples/Threads/Makefile | 1455 - examples/Threads/TSS_Data.h | 34 - examples/Threads/TSS_Obj.h | 34 - examples/Threads/TSS_Task.h | 37 - examples/Threads/auto_event.cpp | 118 - examples/Threads/barrier1.cpp | 81 - examples/Threads/barrier1.dsp | 69 - examples/Threads/barrier2.cpp | 276 - examples/Threads/barrier2.dsp | 69 - examples/Threads/cancel.cpp | 72 - examples/Threads/cancel.dsp | 69 - examples/Threads/future1.cpp | 417 - examples/Threads/future1.dsp | 69 - examples/Threads/future2.cpp | 539 - examples/Threads/future2.dsp | 69 - examples/Threads/manual_event.cpp | 114 - examples/Threads/manual_event.dsp | 70 - examples/Threads/process_manager.cpp | 168 - examples/Threads/process_mutex.cpp | 69 - examples/Threads/process_mutex.dsp | 70 - examples/Threads/process_semaphore.cpp | 58 - examples/Threads/process_semaphore.dsp | 70 - examples/Threads/reader_writer.cpp | 196 - examples/Threads/reader_writer.dsp | 70 - examples/Threads/recursive_mutex.cpp | 108 - examples/Threads/recursive_mutex.dsp | 70 - examples/Threads/task_five.cpp | 145 - examples/Threads/task_five.dsp | 56 - examples/Threads/task_four.cpp | 255 - examples/Threads/task_four.dsp | 69 - examples/Threads/task_one.cpp | 98 - examples/Threads/task_one.dsp | 69 - examples/Threads/task_three.cpp | 224 - examples/Threads/task_three.dsp | 70 - examples/Threads/task_two.cpp | 151 - examples/Threads/task_two.dsp | 69 - examples/Threads/test.dsp | 70 - examples/Threads/test.dsw | 281 - examples/Threads/test.mak | 3355 -- examples/Threads/test.mdp | Bin 112640 -> 0 bytes examples/Threads/test_auto_event.cpp | 113 - examples/Threads/test_barrier1.cpp | 84 - examples/Threads/test_barrier2.cpp | 269 - examples/Threads/test_cancel.cpp | 72 - examples/Threads/test_future1.cpp | 420 - examples/Threads/test_future2.cpp | 524 - examples/Threads/test_manual_event.cpp | 108 - examples/Threads/test_process_mutex.cpp | 68 - examples/Threads/test_process_semaphore.cpp | 56 - examples/Threads/test_reader_writer.cpp | 187 - examples/Threads/test_recursive_mutex.cpp | 108 - examples/Threads/test_task.cpp | 104 - examples/Threads/test_task_four.cpp | 248 - examples/Threads/test_task_one.cpp | 104 - examples/Threads/test_task_three.cpp | 230 - examples/Threads/test_task_two.cpp | 156 - examples/Threads/test_thread_manager.cpp | 104 - examples/Threads/test_thread_pool.cpp | 214 - examples/Threads/test_thread_specific.cpp | 219 - examples/Threads/test_token.cpp | 76 - examples/Threads/test_tss.cpp | 235 - examples/Threads/test_tss1.cpp | 164 - examples/Threads/test_tss2.cpp | 252 - examples/Threads/thread_manager.cpp | 103 - examples/Threads/thread_manager.dsp | 70 - examples/Threads/thread_pool.cpp | 210 - examples/Threads/thread_pool.dsp | 70 - examples/Threads/thread_specific.cpp | 180 - examples/Threads/thread_specific.dsp | 70 - examples/Threads/thread_specific.h | 50 - examples/Threads/token.cpp | 73 - examples/Threads/token.dsp | 69 - examples/Threads/tss1.cpp | 148 - examples/Threads/tss1.dsp | 69 - examples/Threads/tss2.cpp | 195 - examples/Threads/tss2.dsp | 69 - examples/Threads/wfmo.cpp | 121 - examples/Timer_Queue/Async_Timer_Queue_Test.cpp | 295 - examples/Timer_Queue/Async_Timer_Queue_Test.h | 113 - examples/Timer_Queue/Driver.cpp | 153 - examples/Timer_Queue/Driver.h | 130 - examples/Timer_Queue/Makefile | 632 - examples/Timer_Queue/README | 26 - examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp | 218 - examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp | 91 - examples/Timer_Queue/Reactor_Timer_Queue_Test.h | 143 - examples/Timer_Queue/Thread_Timer_Queue_Test.cpp | 291 - examples/Timer_Queue/Thread_Timer_Queue_Test.dsp | 92 - examples/Timer_Queue/Thread_Timer_Queue_Test.h | 150 - examples/Timer_Queue/Timer_Queue.dsw | 41 - examples/Timer_Queue/main_async.cpp | 51 - examples/Timer_Queue/main_reactor.cpp | 55 - examples/Timer_Queue/main_thread.cpp | 50 - include/makeinclude/macros.GNU | 22 - include/makeinclude/platform_aix.GNU | 42 - include/makeinclude/platform_aix4.2.GNU | 42 - include/makeinclude/platform_chorus.GNU | 52 - include/makeinclude/platform_chorus_ghs.GNU | 73 - include/makeinclude/platform_dgux4_epc.GNU | 23 - include/makeinclude/platform_dgux4_ghs.GNU | 27 - include/makeinclude/platform_freebsd.GNU | 28 - include/makeinclude/platform_freebsd_pthread.GNU | 29 - include/makeinclude/platform_hpux.GNU | 28 - include/makeinclude/platform_hpux_aCC.GNU | 44 - include/makeinclude/platform_hpux_gcc.GNU | 28 - include/makeinclude/platform_hpux_orbix.GNU | 30 - include/makeinclude/platform_irix5.2.GNU | 21 - include/makeinclude/platform_irix5.3_g++.GNU | 21 - include/makeinclude/platform_irix5.3_sgic++.GNU | 26 - include/makeinclude/platform_irix6.x-sgic++.GNU | 60 - include/makeinclude/platform_irix6.x_g++.GNU | 23 - include/makeinclude/platform_linux.GNU | 36 - include/makeinclude/platform_linux_kcc.GNU | 25 - include/makeinclude/platform_linux_lxpthread.GNU | 50 - include/makeinclude/platform_linux_lxpthreads.GNU | 50 - include/makeinclude/platform_linux_pthread.GNU | 31 - include/makeinclude/platform_lynxos.GNU | 72 - include/makeinclude/platform_m88k.GNU | 30 - include/makeinclude/platform_mvs.GNU | 33 - include/makeinclude/platform_netbsd.GNU | 28 - include/makeinclude/platform_osf1_3.2.GNU | 27 - include/makeinclude/platform_osf1_4.0.GNU | 59 - include/makeinclude/platform_osf1_4.0_g++.GNU | 25 - include/makeinclude/platform_osf1_4.0_rcc.GNU | 25 - include/makeinclude/platform_psosim_g++.GNU | 57 - include/makeinclude/platform_sco-nothread.GNU | 22 - .../makeinclude/platform_sco5.0.0-fsu-pthread.GNU | 35 - .../makeinclude/platform_sco5.0.0-mit-pthread.GNU | 35 - include/makeinclude/platform_sco5.0.0-nothread.GNU | 34 - include/makeinclude/platform_sunos4_g++.GNU | 26 - include/makeinclude/platform_sunos4_lucid.GNU | 21 - include/makeinclude/platform_sunos4_sunc++3.x.GNU | 27 - include/makeinclude/platform_sunos4_sunc++4.x.GNU | 24 - .../platform_sunos4_sunc++4.x_orbix.GNU | 25 - .../platform_sunos5.6_sparc_sunc++_4.2.GNU | 3 - include/makeinclude/platform_sunos5_centerline.GNU | 22 - .../platform_sunos5_centerline_orbix.GNU | 23 - include/makeinclude/platform_sunos5_egcs.GNU | 13 - include/makeinclude/platform_sunos5_g++.GNU | 38 - include/makeinclude/platform_sunos5_sunc++.GNU | 106 - .../makeinclude/platform_sunos5_sunc++_orbix.GNU | 6 - include/makeinclude/platform_tandem.GNU | 93 - include/makeinclude/platform_unixware_g++.GNU | 24 - include/makeinclude/platform_vxworks5.x_g++.GNU | 127 - include/makeinclude/platform_vxworks5.x_ghs.GNU | 82 - include/makeinclude/rules.bin.GNU | 18 - include/makeinclude/rules.common.GNU | 17 - include/makeinclude/rules.lib.GNU | 146 - include/makeinclude/rules.local.GNU | 210 - include/makeinclude/rules.nested.GNU | 13 - include/makeinclude/rules.nolocal.GNU | 8 - include/makeinclude/rules.nonested.GNU | 8 - include/makeinclude/wrapper_macros.GNU | 372 - java/ChangeLog | 21 - java/ImageProcessing/ImageProcessing.dsp | 253 - java/ImageProcessing/ImageProcessing.dsw | 29 - java/ImageProcessing/filters/Assert.java | 33 - java/ImageProcessing/filters/BleachFilter.java | 65 - java/ImageProcessing/filters/BlurFilter.java | 95 - java/ImageProcessing/filters/DarkenFilter.java | 48 - java/ImageProcessing/filters/DeSpeckleFilter.java | 123 - java/ImageProcessing/filters/DissolveFilter.java | 52 - java/ImageProcessing/filters/EdgeDetectFilter.java | 250 - java/ImageProcessing/filters/EmbossFilter.java | 86 - java/ImageProcessing/filters/Makefile | 36 - java/ImageProcessing/filters/MedFilter.java | 6 - java/ImageProcessing/filters/OilPaintFilter.java | 97 - java/ImageProcessing/filters/PixelizeFilter.java | 117 - java/ImageProcessing/filters/RandomizeFilter.java | 36 - java/ImageProcessing/filters/RotateFilter.java | 358 - java/ImageProcessing/filters/SharpenFilter.java | 272 - java/ImageProcessing/filters/SpatialFilter.java | 213 - java/ImageProcessing/filters/SpreadFilter.java | 130 - java/ImageProcessing/filters/Timer.java | 23 - java/ImageProcessing/framework/BaseButton.java | 234 - .../ImageProcessing/framework/BenchmarkApplet.java | 622 - java/ImageProcessing/framework/DialogManager.java | 277 - java/ImageProcessing/framework/DialogType.java | 11 - java/ImageProcessing/framework/FileBrowser.java | 173 - java/ImageProcessing/framework/FilePanel.java | 161 - java/ImageProcessing/framework/FilterTest.java | 62 - java/ImageProcessing/framework/GIFHandler.java | 75 - java/ImageProcessing/framework/GifEncoder.java | 693 - java/ImageProcessing/framework/Hierarchy.java | 347 - .../framework/HierarchyAdapter.java | 34 - java/ImageProcessing/framework/Icon.java | 70 - java/ImageProcessing/framework/ImageApp.java | 303 - .../framework/ImageByteCounter.java | 94 - java/ImageProcessing/framework/ImageCanvas.java | 166 - java/ImageProcessing/framework/ImageEncoder.java | 271 - java/ImageProcessing/framework/ImageProcessor.java | 111 - java/ImageProcessing/framework/ImageSender.java | 128 - java/ImageProcessing/framework/IntHashtable.java | 396 - java/ImageProcessing/framework/ListFiles.java | 167 - java/ImageProcessing/framework/LoadURLFrame.java | 142 - java/ImageProcessing/framework/Makefile | 45 - java/ImageProcessing/framework/MedJava.html | 15 - java/ImageProcessing/framework/Options.java | 25 - java/ImageProcessing/framework/SaveURLFrame.java | 133 - java/ImageProcessing/framework/Separator.java | 90 - java/ImageProcessing/framework/ServerHandler.java | 50 - java/ImageProcessing/framework/ServerTest.java | 67 - java/ImageProcessing/framework/StatusDisplay.java | 23 - .../ImageProcessing/framework/StatusIndicator.java | 70 - java/ImageProcessing/framework/TestHandler.java | 149 - java/ImageProcessing/framework/Tester.java | 148 - java/ImageProcessing/framework/doc01.gif | Bin 223 -> 0 bytes java/ImageProcessing/framework/file03.gif | Bin 267 -> 0 bytes java/ImageProcessing/framework/filter.conf | 15 - java/ImageProcessing/framework/help.conf | 216 - java/ImageProcessing/framework/test.html | 19 - java/ImageProcessing/framework/testFilter.conf | 15 - java/VERSION | 5 - java/apps/NexusII/README | 58 - java/apps/NexusII/classes/ClientHandler.class | Bin 7017 -> 0 bytes java/apps/NexusII/classes/FrameHandler.class | Bin 851 -> 0 bytes java/apps/NexusII/classes/ImageCanvas.class | Bin 2771 -> 0 bytes java/apps/NexusII/classes/NexusClientApplet.class | Bin 9297 -> 0 bytes java/apps/NexusII/classes/NexusIIserver.class | Bin 1566 -> 0 bytes java/apps/NexusII/classes/Room.class | Bin 2138 -> 0 bytes java/apps/NexusII/classes/RoomFactory.class | Bin 1686 -> 0 bytes java/apps/NexusII/classes/RoomFrame.class | Bin 3878 -> 0 bytes java/apps/NexusII/classes/RoomThread.class | Bin 1076 -> 0 bytes java/apps/NexusII/classes/awtCommand/CApplet.class | Bin 2239 -> 0 bytes java/apps/NexusII/classes/awtCommand/CApplet.java | 199 - java/apps/NexusII/classes/awtCommand/CButton.class | Bin 698 -> 0 bytes java/apps/NexusII/classes/awtCommand/CButton.java | 41 - java/apps/NexusII/classes/awtCommand/CCanvas.class | Bin 4128 -> 0 bytes java/apps/NexusII/classes/awtCommand/CCanvas.java | 381 - java/apps/NexusII/classes/awtCommand/CFrame.class | Bin 5174 -> 0 bytes java/apps/NexusII/classes/awtCommand/CFrame.java | 486 - java/apps/NexusII/classes/awtCommand/CList.class | Bin 1236 -> 0 bytes java/apps/NexusII/classes/awtCommand/CList.java | 96 - java/apps/NexusII/classes/awtCommand/CPanel.class | Bin 4125 -> 0 bytes java/apps/NexusII/classes/awtCommand/CPanel.java | 381 - .../NexusII/classes/awtCommand/CTextArea.class | Bin 1048 -> 0 bytes .../apps/NexusII/classes/awtCommand/CTextArea.java | 93 - .../NexusII/classes/awtCommand/CTextField.class | Bin 1225 -> 0 bytes .../NexusII/classes/awtCommand/CTextField.java | 110 - java/apps/NexusII/classes/awtCommand/Command.class | Bin 253 -> 0 bytes java/apps/NexusII/classes/awtCommand/Command.java | 25 - java/apps/NexusII/classes/commandHandler.class | Bin 1310 -> 0 bytes java/apps/NexusII/classes/commandParser.class | Bin 1974 -> 0 bytes java/apps/NexusII/classes/connectionHandler.class | Bin 4632 -> 0 bytes java/apps/NexusII/classes/joinHandler.class | Bin 3229 -> 0 bytes java/apps/NexusII/classes/roomHandler.class | Bin 2371 -> 0 bytes java/apps/NexusII/classes/textHandler.class | Bin 2227 -> 0 bytes java/apps/NexusII/src/Consumer.java | 74 - java/apps/NexusII/src/MT_Bounded_Queue.java | 226 - java/apps/NexusII/src/MT_Bounded_Queue_Group.java | 79 - java/apps/NexusII/src/NexusClientApplet.java | 494 - java/apps/NexusII/src/NexusIIserver.java | 280 - java/apps/NexusII/src/Producer.java | 87 - java/apps/NexusII/src/Room.java | 97 - java/apps/NexusII/src/RoomFrame.java | 297 - java/apps/NexusII/src/RoomSpace.java | 110 - java/apps/NexusII/src/Timed_Wait.java | 86 - java/apps/NexusII/src/Timer.java | 31 - java/apps/NexusII/src/commandHandler.java | 44 - java/apps/NexusII/src/commandParser.java | 124 - java/apps/NexusII/src/connectionHandler.java | 236 - java/apps/NexusII/src/consts.java | 40 - java/apps/NexusII/src/dataPacket.java | 124 - java/apps/NexusII/src/joinHandler.java | 181 - java/apps/NexusII/src/makefile | 15 - java/apps/NexusII/src/nexusDemuxThread.java | 97 - java/apps/NexusII/src/roomHandler.java | 125 - java/apps/NexusII/src/socketReaderThread.java | 126 - java/apps/NexusII/src/socketWriterThread.java | 119 - java/apps/NexusII/src/url_to_url.java | 33 - java/apps/NexusII/start | 27 - java/apps/NexusII/start.html | 3 - java/classes/README.TXT | 2 - java/doc/images/GridBagEx.gif | Bin 2453 -> 0 bytes java/doc/images/OpenBookIcon.gif | Bin 2241 -> 0 bytes java/doc/images/blue-ball-small.gif | Bin 255 -> 0 bytes java/doc/images/blue-ball.gif | Bin 925 -> 0 bytes java/doc/images/class-index.gif | Bin 1497 -> 0 bytes java/doc/images/constructor-index.gif | Bin 1711 -> 0 bytes java/doc/images/constructors.gif | Bin 1565 -> 0 bytes java/doc/images/cyan-ball-small.gif | Bin 255 -> 0 bytes java/doc/images/cyan-ball.gif | Bin 925 -> 0 bytes java/doc/images/error-index.gif | Bin 1438 -> 0 bytes java/doc/images/exception-index.gif | Bin 1707 -> 0 bytes java/doc/images/green-ball-small.gif | Bin 102 -> 0 bytes java/doc/images/green-ball.gif | Bin 886 -> 0 bytes java/doc/images/interface-index.gif | Bin 1648 -> 0 bytes java/doc/images/magenta-ball-small.gif | Bin 104 -> 0 bytes java/doc/images/magenta-ball.gif | Bin 896 -> 0 bytes java/doc/images/method-index.gif | Bin 1588 -> 0 bytes java/doc/images/methods.gif | Bin 1403 -> 0 bytes java/doc/images/package-index.gif | Bin 1607 -> 0 bytes java/doc/images/red-ball-small.gif | Bin 255 -> 0 bytes java/doc/images/red-ball.gif | Bin 527 -> 0 bytes java/doc/images/variable-index.gif | Bin 1576 -> 0 bytes java/doc/images/variables.gif | Bin 1380 -> 0 bytes java/doc/images/yellow-ball-small.gif | Bin 255 -> 0 bytes java/doc/images/yellow-ball.gif | Bin 925 -> 0 bytes java/examples/Logger/README | 29 - java/examples/Logger/simple-server/LogRecord.java | 145 - .../Logger/simple-server/LoggerConstants.java | 7 - .../Logger/simple-server/LoggingAcceptor.java | 33 - .../Logger/simple-server/LoggingClient.java | 108 - .../Logger/simple-server/LoggingHandler.java | 121 - java/examples/Logger/simple-server/Makefile | 34 - java/examples/Logger/simple-server/README | 25 - .../Logger/simple-server/SimpleLogger.java | 44 - java/gjt/Assert.java | 33 - java/gjt/Bargauge.java | 80 - java/gjt/Border.java | 105 - java/gjt/Box.java | 81 - java/gjt/BulletinLayout.java | 100 - java/gjt/ButtonPanel.java | 51 - java/gjt/CardPanel.java | 48 - java/gjt/ChoiceCardPanel.java | 53 - java/gjt/ColumnLayout.java | 154 - java/gjt/ComponentScroller.java | 42 - java/gjt/DialogClient.java | 20 - java/gjt/DrawingPanel.java | 72 - java/gjt/DrawnRectangle.java | 136 - java/gjt/EtchedBorder.java | 59 - java/gjt/EtchedRectangle.java | 97 - java/gjt/Etching.java | 22 - java/gjt/ExclusiveImageButtonPanel.java | 47 - java/gjt/FontDialog.java | 362 - java/gjt/GJT.DSP | 456 - java/gjt/GJT.DSW | 29 - java/gjt/GJTDialog.java | 51 - java/gjt/IconCardPanel.java | 55 - java/gjt/ImageButton.java | 209 - java/gjt/ImageButtonController.java | 79 - java/gjt/ImageButtonEvent.java | 103 - java/gjt/ImageButtonPanel.java | 106 - java/gjt/ImageButtonPanelController.java | 47 - java/gjt/ImageCanvas.java | 31 - java/gjt/ImageScroller.java | 62 - java/gjt/LabelCanvas.java | 93 - java/gjt/Makefile | 67 - java/gjt/MessageDialog.java | 77 - java/gjt/MouseController.java | 32 - java/gjt/Orientation.java | 87 - java/gjt/ProgressDialog.java | 67 - java/gjt/QuestionDialog.java | 130 - java/gjt/RadioImageButtonPanelController.java | 45 - java/gjt/RowLayout.java | 153 - java/gjt/Scroller.java | 154 - java/gjt/ScrollerLayout.java | 160 - java/gjt/SelectionEvent.java | 82 - java/gjt/Separator.java | 90 - java/gjt/SpringyImageButtonController.java | 54 - java/gjt/StateButton.java | 45 - java/gjt/StateButtonController.java | 27 - java/gjt/StickyImageButtonController.java | 87 - java/gjt/Stopwatch.java | 94 - java/gjt/StopwatchClient.java | 14 - java/gjt/ThreeDBorder.java | 53 - java/gjt/ThreeDBorderStyle.java | 24 - java/gjt/ThreeDRectangle.java | 105 - java/gjt/Toolbar.java | 58 - java/gjt/Util.java | 69 - java/gjt/YesNoDialog.java | 80 - java/gjt/animation/CollisionArena.java | 39 - java/gjt/animation/CollisionDetector.java | 24 - java/gjt/animation/EdgeCollisionDetector.java | 53 - java/gjt/animation/Playfield.java | 140 - java/gjt/animation/Sequence.java | 119 - java/gjt/animation/Sprite.java | 191 - java/gjt/animation/SpriteCollisionDetector.java | 45 - java/gjt/image/BleachImageFilter.java | 53 - java/gjt/image/DissolveFilter.java | 48 - java/gjt/image/ImageDissolver.java | 132 - java/gjt/rubberband/Rubberband.java | 100 - java/gjt/rubberband/RubberbandEllipse.java | 32 - java/gjt/rubberband/RubberbandLine.java | 25 - java/gjt/rubberband/RubberbandPanel.java | 38 - java/gjt/rubberband/RubberbandRectangle.java | 29 - java/gjt/test/AttributesPanel.java | 78 - java/gjt/test/BargaugeTest.java | 130 - java/gjt/test/BleachImageFilterTest.java | 86 - java/gjt/test/BorderTest.java | 202 - java/gjt/test/BoxTest.java | 100 - java/gjt/test/BumpAnimationTest.java | 107 - java/gjt/test/ChoiceCardPanelTest.java | 34 - java/gjt/test/ColumnLayoutTest.java | 126 - java/gjt/test/ComponentScrollerTest.java | 205 - java/gjt/test/ConnectionsPanel.java | 9 - java/gjt/test/DialogTest.java | 140 - java/gjt/test/DrawnRectangleTest.java | 119 - java/gjt/test/FontDialogTest.java | 95 - java/gjt/test/IconCardPanelTest.java | 47 - java/gjt/test/ImageButtonTest.java | 130 - java/gjt/test/ImageDissolverTest.java | 69 - java/gjt/test/ImageScrollerTest.java | 55 - java/gjt/test/LabelCanvasTest.java | 75 - java/gjt/test/MessageDialogTest.java | 50 - java/gjt/test/OccupationOracle.java | 334 - java/gjt/test/RowLayoutTest.java | 124 - java/gjt/test/RubberbandTest.java | 112 - java/gjt/test/SeparatorTest.java | 64 - java/gjt/test/SimpleAnimationTest.java | 87 - java/gjt/test/SimpleBargaugeTest.java | 61 - java/gjt/test/StateButtonTest.java | 41 - java/gjt/test/TenPixelBorder.java | 44 - java/gjt/test/TitledPanel.java | 22 - java/gjt/test/ToolbarTest.java | 111 - java/gjt/test/TwoDrinkersAnimationTest.java | 130 - java/gjt/test/UnitTest.java | 46 - java/netsvcs/Logger/DefaultLMR.java | 36 - java/netsvcs/Logger/LogMessageReceiver.java | 33 - java/netsvcs/Logger/LogRecord.java | 188 - java/netsvcs/Logger/Makefile | 23 - java/netsvcs/Logger/ServerLoggingAcceptor.java | 171 - java/netsvcs/Logger/ServerLoggingHandler.java | 105 - java/netsvcs/Naming/Makefile | 24 - java/netsvcs/Naming/NameAcceptor.java | 306 - java/netsvcs/Naming/NameHandler.java | 521 - java/netsvcs/Naming/NameProxy.java | 351 - java/netsvcs/Naming/NameReply.java | 145 - java/netsvcs/Naming/NameRequest.java | 331 - java/netsvcs/Time/Clerk.java | 23 - java/netsvcs/Time/Makefile | 26 - java/netsvcs/Time/Server.java | 23 - java/netsvcs/Time/TSClerkHandler.java | 296 - java/netsvcs/Time/TSClerkProcessor.java | 267 - java/netsvcs/Time/TSRequestAcceptor.java | 142 - java/netsvcs/Time/TSRequestHandler.java | 106 - java/netsvcs/Time/TSServerAcceptor.java | 100 - java/netsvcs/Time/TSServerHandler.java | 99 - java/src/ACE.java | 164 - java/src/AcceptStrategy.java | 89 - java/src/Acceptor.java | 216 - java/src/ActivateStrategy.java | 43 - java/src/AddServiceObjectNode.java | 54 - java/src/Blob.java | 94 - java/src/BlobHandler.java | 35 - java/src/BlobReader.java | 104 - java/src/BlobWriter.java | 220 - java/src/ClassNameGenerator.java | 181 - java/src/ClassReader.java | 146 - java/src/Condition.java | 124 - java/src/Connector.java | 157 - java/src/CreationStrategy.java | 64 - java/src/EventHandler.java | 53 - java/src/GetOpt.java | 150 - java/src/HTTPHelper.java | 84 - java/src/INETAddr.java | 99 - java/src/IOCntlCmds.java | 34 - java/src/IOCntlMsg.java | 128 - java/src/JACE.DSP | 292 - java/src/JACE.DSW | 29 - java/src/Makefile | 153 - java/src/MessageBlock.java | 453 - java/src/MessageQueue.java | 636 - java/src/MessageType.java | 110 - java/src/Module.java | 253 - java/src/Mutex.java | 92 - java/src/OS.java | 72 - java/src/ParseNode.java | 69 - java/src/ProfileTimer.java | 48 - java/src/README | 19 - java/src/RWMutex.java | 174 - java/src/RemoveNode.java | 35 - java/src/ResumeNode.java | 34 - java/src/SOCKAcceptor.java | 115 - java/src/SOCKConnector.java | 75 - java/src/SOCKStream.java | 218 - java/src/Semaphore.java | 103 - java/src/ServiceConfig.java | 375 - java/src/ServiceLoader.java | 260 - java/src/ServiceObject.java | 80 - java/src/ServiceObjectRecord.java | 33 - java/src/ServiceRecord.java | 253 - java/src/ServiceRepository.java | 189 - java/src/StrategyAcceptor.java | 156 - java/src/Stream.java | 438 - java/src/StreamHead.java | 120 - java/src/StreamTail.java | 111 - java/src/SuspendNode.java | 34 - java/src/SvcHandler.java | 85 - java/src/Task.java | 418 - java/src/TaskFlags.java | 44 - java/src/ThreadManager.java | 109 - java/src/ThruTask.java | 48 - java/src/TimeValue.java | 256 - java/src/TimedWait.java | 137 - java/src/TimeoutException.java | 34 - java/src/TimerQueue.java | 433 - java/src/Token.java | 298 - java/tests/ASX/BufferStreamTest.dsp | 73 - java/tests/ASX/BufferStreamTest.java | 185 - java/tests/ASX/Makefile | 26 - java/tests/ASX/MessageQueueTest.dsp | 73 - java/tests/ASX/MessageQueueTest.java | 50 - java/tests/ASX/PriorityBufferTest.dsp | 73 - java/tests/ASX/PriorityBufferTest.java | 116 - java/tests/ASX/TaskTest.dsp | 72 - java/tests/ASX/TaskTest.java | 86 - java/tests/ASX/ThreadPoolTest.dsp | 73 - java/tests/ASX/ThreadPoolTest.java | 185 - java/tests/Concurrency/Condition/Condition.dsp | 88 - java/tests/Concurrency/Condition/Consumer.java | 73 - .../Concurrency/Condition/JoinableThreadGroup.java | 24 - java/tests/Concurrency/Condition/Makefile | 25 - java/tests/Concurrency/Condition/Producer.java | 67 - java/tests/Concurrency/Condition/QueueTest.java | 64 - .../Concurrency/Condition/SimpleMessageQueue.java | 86 - java/tests/Concurrency/Makefile | 23 - java/tests/Concurrency/MutexTest.dsp | 72 - java/tests/Concurrency/MutexTest.java | 154 - java/tests/Concurrency/RWMutexTest.dsp | 73 - java/tests/Concurrency/RWMutexTest.java | 93 - java/tests/Concurrency/SemaphoreTest.dsp | 73 - java/tests/Concurrency/SemaphoreTest.java | 102 - java/tests/Concurrency/TokenTest.dsp | 72 - java/tests/Concurrency/TokenTest.java | 73 - java/tests/Connection/AcceptorTest.dsp | 73 - java/tests/Connection/AcceptorTest.java | 79 - java/tests/Connection/ClientHandler.dsp | 73 - java/tests/Connection/ClientHandler.java | 77 - java/tests/Connection/ConnectorTest.dsp | 73 - java/tests/Connection/ConnectorTest.java | 76 - java/tests/Connection/HTTPHelperTest.java | 27 - java/tests/Connection/Makefile | 26 - java/tests/Connection/ServerHandler.dsp | 73 - java/tests/Connection/ServerHandler.java | 68 - java/tests/Misc/Makefile | 21 - java/tests/Misc/ParseArgsTest.dsp | 73 - java/tests/Misc/ParseArgsTest.java | 45 - java/tests/Reactor/Makefile | 22 - java/tests/Reactor/TimeValueTest.dsp | 73 - java/tests/Reactor/TimeValueTest.java | 50 - java/tests/Reactor/TimerQueueTest.dsp | 73 - java/tests/Reactor/TimerQueueTest.java | 80 - java/tests/SOCK_SAP/Makefile | 22 - java/tests/SOCK_SAP/SOCKAcceptorTest.dsp | 73 - java/tests/SOCK_SAP/SOCKAcceptorTest.java | 108 - java/tests/SOCK_SAP/SOCKConnectorTest.dsp | 73 - java/tests/SOCK_SAP/SOCKConnectorTest.java | 95 - java/tests/ServiceConfigurator/Makefile | 25 - .../ServiceConfigurator/ServiceConfigurator.dsp | 81 - java/tests/ServiceConfigurator/TestService.java | 52 - java/tests/ServiceConfigurator/reloadTest.java | 61 - java/tests/ServiceConfigurator/suspendTest.java | 80 - java/tests/ServiceConfigurator/suspendTest1.conf | 1 - java/tests/ServiceConfigurator/suspendTest2.conf | 1 - java/tests/ServiceConfigurator/suspendTest3.conf | 1 - java/tests/ServiceConfigurator/svc.conf | 1 - java/tests/Tests.dsw | 257 - java/tests/netsvcs/Logger/LoggerTest.java | 122 - java/tests/netsvcs/Logger/Makefile | 19 - java/tests/netsvcs/Naming/ClientTest.java | 117 - java/tests/netsvcs/Naming/Makefile | 21 - netsvcs/ACE-netsvcs.html | 898 - netsvcs/Makefile | 27 - netsvcs/README | 20 - netsvcs/clients/Logger/Logger.dsw | 41 - netsvcs/clients/Logger/Logger.mak | 269 - netsvcs/clients/Logger/Logger.mdp | Bin 41472 -> 0 bytes netsvcs/clients/Logger/Makefile | 88 - netsvcs/clients/Logger/README | 18 - netsvcs/clients/Logger/direct_logging.cpp | 39 - netsvcs/clients/Logger/direct_logging.dsp | 91 - netsvcs/clients/Logger/indirect_logging.cpp | 47 - netsvcs/clients/Logger/indirect_logging.dsp | 91 - netsvcs/clients/Makefile | 24 - netsvcs/clients/Naming/Client/Client.dsw | 44 - netsvcs/clients/Naming/Client/Client_Test.cpp | 570 - netsvcs/clients/Naming/Client/Client_Test.dsp | 96 - netsvcs/clients/Naming/Client/Client_Test.h | 9 - netsvcs/clients/Naming/Client/Makefile | 208 - netsvcs/clients/Naming/Client/main.cpp | 42 - netsvcs/clients/Naming/Client/main.dsp | 89 - netsvcs/clients/Naming/Client/svc.conf | 6 - netsvcs/clients/Naming/Client/svc2.conf | 9 - .../clients/Naming/Dump_Restore/Dump_Restore.cpp | 379 - netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h | 74 - netsvcs/clients/Naming/Dump_Restore/Makefile | 217 - netsvcs/clients/Naming/Dump_Restore/README | 67 - netsvcs/clients/Naming/Dump_Restore/createfile.cpp | 31 - netsvcs/clients/Naming/Dump_Restore/main.cpp | 22 - netsvcs/clients/Naming/Dump_Restore/nametest.cpp | 112 - netsvcs/clients/Naming/Dump_Restore/nametest.h | 15 - netsvcs/clients/Naming/Makefile | 25 - netsvcs/clients/Naming/README | 124 - netsvcs/clients/README | 8 - netsvcs/clients/Tokens/Makefile | 26 - netsvcs/clients/Tokens/README | 34 - netsvcs/clients/Tokens/collection/Makefile | 131 - netsvcs/clients/Tokens/collection/README | 25 - netsvcs/clients/Tokens/collection/collection.cpp | 210 - netsvcs/clients/Tokens/collection/rw_locks.cpp | 173 - netsvcs/clients/Tokens/deadlock/Makefile | 108 - netsvcs/clients/Tokens/deadlock/README | 98 - .../Tokens/deadlock/deadlock_detection_test.cpp | 340 - netsvcs/clients/Tokens/invariant/Makefile | 89 - netsvcs/clients/Tokens/invariant/README | 27 - netsvcs/clients/Tokens/invariant/invariant.cpp | 196 - netsvcs/clients/Tokens/manual/Makefile | 42 - netsvcs/clients/Tokens/manual/README | 67 - netsvcs/clients/Tokens/manual/manual.cpp | 366 - netsvcs/clients/Tokens/mutex/Makefile | 104 - netsvcs/clients/Tokens/mutex/README | 23 - netsvcs/clients/Tokens/mutex/test_mutex.cpp | 142 - netsvcs/clients/Tokens/rw_lock/Makefile | 106 - netsvcs/clients/Tokens/rw_lock/README | 40 - netsvcs/clients/Tokens/rw_lock/rw_locks.cpp | 252 - netsvcs/lib/Base_Optimizer.cpp | 29 - netsvcs/lib/Base_Optimizer.h | 44 - netsvcs/lib/Client_Logging_Handler.cpp | 419 - netsvcs/lib/Client_Logging_Handler.h | 92 - netsvcs/lib/Client_Logging_Handler.i | 4 - netsvcs/lib/Log_Message_Receiver.cpp | 160 - netsvcs/lib/Log_Message_Receiver.h | 206 - netsvcs/lib/Logging_Strategy.cpp | 98 - netsvcs/lib/Logging_Strategy.h | 48 - netsvcs/lib/Makefile | 890 - netsvcs/lib/Name_Handler.cpp | 578 - netsvcs/lib/Name_Handler.h | 186 - netsvcs/lib/README | 267 - netsvcs/lib/Server_Logging_Handler.cpp | 231 - netsvcs/lib/Server_Logging_Handler.h | 90 - netsvcs/lib/Server_Logging_Handler.i | 4 - netsvcs/lib/Server_Logging_Handler_T.cpp | 322 - netsvcs/lib/Server_Logging_Handler_T.h | 195 - netsvcs/lib/TS_Clerk_Handler.cpp | 620 - netsvcs/lib/TS_Clerk_Handler.h | 229 - netsvcs/lib/TS_Server_Handler.cpp | 257 - netsvcs/lib/TS_Server_Handler.h | 103 - netsvcs/lib/Token_Handler.cpp | 657 - netsvcs/lib/Token_Handler.h | 255 - netsvcs/lib/netsvcs.dsp | 306 - netsvcs/lib/netsvcs.dsw | 29 - netsvcs/lib/netsvcs4.mak | 1201 - netsvcs/lib/netsvcs4.mdp | Bin 53760 -> 0 bytes netsvcs/servers/Makefile | 183 - netsvcs/servers/README | 35 - netsvcs/servers/cli.conf | 11 - netsvcs/servers/main.cpp | 107 - netsvcs/servers/ntsvc.conf | 12 - netsvcs/servers/servers.dsp | 175 - netsvcs/servers/servers.dsw | 29 - netsvcs/servers/servers4.mak | 474 - netsvcs/servers/servers4.mdp | Bin 43520 -> 0 bytes netsvcs/servers/svc.conf | 17 - os-patches/linux-patches.html | 212 - os-patches/lynxos-patches.html | 91 - performance-tests/Makefile | 30 - performance-tests/Misc/Makefile | 413 - performance-tests/Misc/basic_func.cpp | 47 - performance-tests/Misc/basic_func.h | 71 - performance-tests/Misc/basic_perf.cpp | 639 - performance-tests/Misc/basic_perf.dsp | 111 - performance-tests/Misc/childbirth_time.cpp | 399 - performance-tests/Misc/childbirth_time.dsp | 103 - performance-tests/Misc/context_switch_time.cpp | 1253 - performance-tests/Misc/context_switch_time.dsp | 104 - performance-tests/Misc/misc.dsw | 89 - performance-tests/Misc/misc.mak | 1570 - performance-tests/Misc/misc.mdp | Bin 70144 -> 0 bytes performance-tests/Misc/preempt.cpp | 453 - performance-tests/Misc/test_mutex.cpp | 230 - performance-tests/Misc/test_mutex.dsp | 103 - performance-tests/Misc/test_naming.cpp | 173 - performance-tests/Misc/test_naming.dsp | 103 - performance-tests/Misc/test_singleton.cpp | 186 - performance-tests/Misc/test_singleton.dsp | 103 - performance-tests/README | 17 - performance-tests/Synch-Benchmarks/Benchmark.cpp | 99 - performance-tests/Synch-Benchmarks/Benchmark.h | 73 - performance-tests/Synch-Benchmarks/Makefile | 948 - performance-tests/Synch-Benchmarks/Makefile.driver | 41 - .../Synch-Benchmarks/Makefile.synch_tests | 948 - performance-tests/Synch-Benchmarks/Options.cpp | 471 - performance-tests/Synch-Benchmarks/Options.h | 126 - performance-tests/Synch-Benchmarks/Options.i | 264 - performance-tests/Synch-Benchmarks/README | 29 - performance-tests/Synch-Benchmarks/Synch_Tests.dsp | 172 - performance-tests/Synch-Benchmarks/Synch_Tests.dsw | 44 - performance-tests/Synch-Benchmarks/Synch_Tests.mak | 2687 -- performance-tests/Synch-Benchmarks/Synch_Tests.mdp | Bin 64000 -> 0 bytes performance-tests/Synch-Benchmarks/benchmarks | 19 - performance-tests/Synch-Benchmarks/condb_test.cpp | 68 - performance-tests/Synch-Benchmarks/conds_test.cpp | 71 - performance-tests/Synch-Benchmarks/context.c | 72 - performance-tests/Synch-Benchmarks/context.csh | 16 - .../Synch-Benchmarks/context_test.cpp | 37 - performance-tests/Synch-Benchmarks/memory_test.cpp | 39 - performance-tests/Synch-Benchmarks/mutex_test.cpp | 44 - performance-tests/Synch-Benchmarks/orig-results | 73 - .../Synch-Benchmarks/pipe_proc_test.cpp | 82 - .../Synch-Benchmarks/pipe_thr_test.cpp | 75 - .../Synch-Benchmarks/recursive_lock_test.cpp | 42 - performance-tests/Synch-Benchmarks/rwrd_test.cpp | 43 - performance-tests/Synch-Benchmarks/rwwr_test.cpp | 43 - performance-tests/Synch-Benchmarks/sema_test.cpp | 43 - performance-tests/Synch-Benchmarks/svc.conf | 15 - .../Synch-Benchmarks/synch_driver.cpp | 157 - .../Synch-Benchmarks/synch_driver.dsp | 115 - .../Synch-Benchmarks/sysvsema_test.cpp | 44 - performance-tests/TTCP/ACE-C++/How_to_run_tests | 29 - performance-tests/TTCP/ACE-C++/Makefile | 52 - performance-tests/TTCP/ACE-C++/run_test | 35 - .../TTCP/ACE-C++/wrapper-new-ttcp.cpp | 947 - performance-tests/TTCP/C/How_to_run_tests | 30 - performance-tests/TTCP/C/Makefile | 52 - performance-tests/TTCP/C/README | 38 - performance-tests/TTCP/C/new-ttcp.cpp | 981 - performance-tests/TTCP/C/run_test | 35 - performance-tests/TTCP/Makefile | 27 - performance-tests/TTCP/NT/SLEEP.EXE | Bin 14304 -> 0 bytes performance-tests/TTCP/NT/TTCP.EXE | Bin 42496 -> 0 bytes performance-tests/TTCP/NT/TTCPR.BAT | 5 - performance-tests/TTCP/NT/TTCPX.BAT | 17 - performance-tests/TTCP/NT/how-to-use.txt | 1 - performance-tests/TTCP/ORBeline/How_to_run_tests | 57 - performance-tests/TTCP/ORBeline/Makefile | 33 - performance-tests/TTCP/ORBeline/run_test | 30 - performance-tests/TTCP/ORBeline/ser | 4 - performance-tests/TTCP/ORBeline/stdmk | 34 - performance-tests/TTCP/ORBeline/tango_clt | 6 - performance-tests/TTCP/ORBeline/ttcp.idl | 25 - performance-tests/TTCP/ORBeline/ttcp_c.cc | 302 - performance-tests/TTCP/ORBeline/ttcp_c.hh | 181 - performance-tests/TTCP/ORBeline/ttcp_i.cpp | 1028 - performance-tests/TTCP/ORBeline/ttcp_i.h | 45 - performance-tests/TTCP/ORBeline/ttcp_s.cc | 168 - performance-tests/TTCP/ORBeline/ttcp_s.hh | 89 - performance-tests/TTCP/Orbix/How_to_run_tests | 59 - performance-tests/TTCP/Orbix/Makefile | 30 - performance-tests/TTCP/Orbix/README | 13 - performance-tests/TTCP/Orbix/orbix_defaults.mk | 85 - performance-tests/TTCP/Orbix/run_test | 30 - performance-tests/TTCP/Orbix/ttcp.hh | 376 - performance-tests/TTCP/Orbix/ttcp.idl | 24 - performance-tests/TTCP/Orbix/ttcpC.cpp | 343 - performance-tests/TTCP/Orbix/ttcpS.cpp | 159 - performance-tests/TTCP/Orbix/ttcp_i.cpp | 1013 - performance-tests/TTCP/Orbix/ttcp_i.h | 46 - performance-tests/UDP/Makefile | 101 - performance-tests/UDP/README | 17 - performance-tests/UDP/udp_test.cpp | 733 - psosim/Makefile | 76 - psosim/drv_conf.c | 79 - rpc++/.dependencies | 131 - rpc++/COPYING | 481 - rpc++/Makefile | 55 - rpc++/Proj.make | 68 - rpc++/README | 18 - rpc++/README.ORIG | 9 - rpc++/StdHdrs/Makefile | 13 - rpc++/StdHdrs/README | 3 - rpc++/StdHdrs/rpc/auth.h | 171 - rpc++/StdHdrs/rpc/c_types.h | 79 - rpc++/StdHdrs/rpc/clnt.h | 347 - rpc++/StdHdrs/rpc/pmap_clnt.h | 82 - rpc++/StdHdrs/rpc/svc.h | 286 - rpc++/StdHdrs/rpc/xdr.h | 275 - rpc++/callback.cc | 38 - rpc++/example/Makefile | 40 - rpc++/example/calcsvc.cc | 30 - rpc++/example/calcsvc.h | 34 - rpc++/example/client.cc | 64 - rpc++/example/server.cc | 112 - rpc++/gcc-2.2.fix | 252 - rpc++/request.cc | 165 - rpc++/rpc++.cp | 13 - rpc++/rpc++.fn | 63 - rpc++/rpc++.ky | 0 rpc++/rpc++.pg | 0 rpc++/rpc++.texi | 1519 - rpc++/rpc++.toc | 23 - rpc++/rpc++.tp | 7 - rpc++/rpc++.vr | 13 - rpc++/rpc++/callback.h | 533 - rpc++/rpc++/request.h | 121 - rpc++/rpc++/service.h | 132 - rpc++/rpc++/stub.h | 145 - rpc++/rpc++/xdr++.h | 98 - rpc++/service.cc | 316 - rpc++/stub.cc | 207 - rpc++/version.h | 4 - rpc++/xdr++.cc | 75 - tests/Aio_Platform_Test.bpr | 177 - tests/Aio_Platform_Test.cpp | 212 - tests/Atomic_Op_Test.bpr | 177 - tests/Atomic_Op_Test.cpp | 79 - tests/Atomic_Op_Test.dsp | 159 - tests/Barrier_Test.bpr | 177 - tests/Barrier_Test.cpp | 153 - tests/Barrier_Test.dsp | 182 - tests/Basic_Types_Test.bpr | 177 - tests/Basic_Types_Test.cpp | 128 - tests/Basic_Types_Test.dsp | 59 - tests/Buffer_Stream_Test.bpr | 177 - tests/Buffer_Stream_Test.cpp | 231 - tests/Buffer_Stream_Test.dsp | 230 - tests/CLASSIX/Addr_Test.cpp | 115 - tests/CLASSIX/CLD_Connector_Test.cpp | 391 - tests/CLASSIX/Con_Acc_Test.cpp | 405 - tests/CLASSIX/Con_Acc_Test.h | 77 - tests/CLASSIX/Group_Test.cpp | 85 - tests/CLASSIX/Notify_Test.cpp | 266 - tests/CLASSIX/OS.cpp | 62 - tests/CLASSIX/OS_Test.cpp | 43 - tests/CLASSIX/README | 25 - tests/CLASSIX/Reactor_Test.cpp | 150 - tests/CLASSIX/Reactor_Test.h | 52 - tests/CLASSIX/SOCK_Test.cpp | 99 - tests/CLASSIX/Select_Reactor_Test.cpp | 166 - tests/CLASSIX/Select_Reactor_Test.h | 51 - tests/CLASSIX/Stream_Test.cpp | 110 - tests/CLASSIX/test_config.h | 272 - tests/CPP_Test.cpp | 261 - tests/Conn_Test.bpr | 177 - tests/Conn_Test.cpp | 719 - tests/Conn_Test.dsp | 262 - tests/Conn_Test.h | 35 - tests/Enum_Interfaces_Test.bpr | 177 - tests/Enum_Interfaces_Test.cpp | 69 - tests/Enum_Interfaces_Test.dsp | 154 - tests/Env_Value_Test.bpr | 177 - tests/Env_Value_Test.cpp | 123 - tests/Env_Value_Test.dsp | 182 - tests/Future_Test.bpr | 177 - tests/Future_Test.cpp | 521 - tests/Future_Test.dsp | 229 - tests/Handle_Set_Test.bpr | 177 - tests/Handle_Set_Test.cpp | 205 - tests/Handle_Set_Test.dsp | 187 - tests/Hash_Map_Manager_Test.bpr | 177 - tests/Hash_Map_Manager_Test.cpp | 304 - tests/Hash_Map_Manager_Test.dsp | 196 - tests/Hash_Map_Manager_Test.h | 59 - tests/IOStream_Test.bpr | 177 - tests/IOStream_Test.cpp | 469 - tests/IOStream_Test.dsp | 254 - tests/MM_Shared_Memory_Test.bpr | 177 - tests/MM_Shared_Memory_Test.cpp | 129 - tests/MM_Shared_Memory_Test.dsp | 186 - tests/MT_Reactor_Timer_Test.bpr | 177 - tests/MT_Reactor_Timer_Test.cpp | 147 - tests/MT_Reactor_Timer_Test.h | 51 - tests/MT_SOCK_Test.bpr | 177 - tests/MT_SOCK_Test.cpp | 303 - tests/MT_SOCK_Test.dsp | 187 - tests/Makefile | 3041 -- tests/Map_Manager_Test.bpr | 177 - tests/Map_Manager_Test.cpp | 468 - tests/Map_Manager_Test.dsp | 206 - tests/Mem_Map_Test.bpr | 177 - tests/Mem_Map_Test.cpp | 188 - tests/Mem_Map_Test.dsp | 151 - tests/Message_Block_Test.bpr | 177 - tests/Message_Block_Test.cpp | 334 - tests/Message_Block_Test.dsp | 231 - tests/Message_Queue_Notifications_Test.bpr | 177 - tests/Message_Queue_Notifications_Test.cpp | 152 - tests/Message_Queue_Notifications_Test.dsp | 226 - tests/Message_Queue_Test.bpr | 177 - tests/Message_Queue_Test.cpp | 110 - tests/Message_Queue_Test.dsp | 215 - tests/Naming_Test.bpr | 177 - tests/Naming_Test.cpp | 258 - tests/Naming_Test.dsp | 220 - tests/Notify_Performance_Test.bpr | 177 - tests/Notify_Performance_Test.cpp | 241 - tests/Notify_Performance_Test.dsp | 219 - tests/OrdMultiSet_Test.bpr | 177 - tests/OrdMultiSet_Test.cpp | 220 - tests/OrdMultiSet_Test.dsp | 182 - tests/Pipe_Test.bpr | 177 - tests/Pipe_Test.cpp | 126 - tests/Pipe_Test.dsp | 154 - tests/Priority_Buffer_Test.bpr | 177 - tests/Priority_Buffer_Test.cpp | 159 - tests/Priority_Buffer_Test.dsp | 215 - tests/Priority_Reactor_Test.bpr | 177 - tests/Priority_Reactor_Test.cpp | 391 - tests/Priority_Reactor_Test.dsp | 256 - tests/Priority_Reactor_Test.h | 71 - tests/Priority_Task_Test.bpr | 177 - tests/Priority_Task_Test.cpp | 209 - tests/Priority_Task_Test.dsp | 228 - tests/Process_Mutex_Test.bpr | 177 - tests/Process_Mutex_Test.cpp | 141 - tests/Process_Mutex_Test.dsp | 168 - tests/Process_Strategy_Test.bpr | 177 - tests/Process_Strategy_Test.cpp | 611 - tests/Process_Strategy_Test.dsp | 257 - tests/Process_Strategy_Test.h | 133 - tests/README | 72 - tests/Reactor_Exceptions_Test.bpr | 177 - tests/Reactor_Exceptions_Test.cpp | 203 - tests/Reactor_Exceptions_Test.dsp | 202 - tests/Reactor_Notify_Test.bpr | 177 - tests/Reactor_Notify_Test.cpp | 297 - tests/Reactor_Notify_Test.dsp | 228 - tests/Reactor_Performance_Test.bpr | 177 - tests/Reactor_Performance_Test.cpp | 391 - tests/Reactor_Performance_Test.dsp | 257 - tests/Reactor_Performance_Test.h | 57 - tests/Reactor_Timer_Test.bpr | 177 - tests/Reactor_Timer_Test.cpp | 109 - tests/Reactor_Timer_Test.dsp | 190 - tests/Reactors_Test.bpr | 177 - tests/Reactors_Test.cpp | 251 - tests/Reactors_Test.dsp | 225 - tests/Reader_Writer_Test.bpr | 177 - tests/Reader_Writer_Test.cpp | 285 - tests/Reader_Writer_Test.dsp | 185 - tests/Recursive_Mutex_Test.bpr | 177 - tests/Recursive_Mutex_Test.cpp | 90 - tests/Recursive_Mutex_Test.dsp | 185 - tests/SOCK_Connector_Test.bpr | 177 - tests/SOCK_Connector_Test.cpp | 199 - tests/SOCK_Connector_Test.dsp | 78 - tests/SOCK_Test.bpr | 177 - tests/SOCK_Test.cpp | 254 - tests/SOCK_Test.dsp | 200 - tests/SPIPE_Test.bpr | 177 - tests/SPIPE_Test.cpp | 137 - tests/SPIPE_Test.dsp | 195 - tests/SString_Test.bpr | 177 - tests/SString_Test.cpp | 89 - tests/SString_Test.dsp | 151 - tests/SV_Shared_Memory_Test.bpr | 177 - tests/SV_Shared_Memory_Test.cpp | 145 - tests/SV_Shared_Memory_Test.dsp | 181 - tests/Semaphore_Test.bpr | 177 - tests/Semaphore_Test.cpp | 186 - tests/Semaphore_Test.dsp | 182 - tests/Service_Config_Test.bpr | 177 - tests/Service_Config_Test.cpp | 144 - tests/Service_Config_Test.dsp | 197 - tests/Shared_Memory_SV_Test.cpp | 83 - tests/Sigset_Ops_Test.bpr | 177 - tests/Sigset_Ops_Test.cpp | 133 - tests/Sigset_Ops_Test.dsp | 149 - tests/Simple_Message_Block_Test.bpr | 177 - tests/Simple_Message_Block_Test.cpp | 187 - tests/Simple_Message_Block_Test.dsp | 183 - tests/TSS_Test.bpr | 177 - tests/TSS_Test.cpp | 246 - tests/TSS_Test.dsp | 186 - tests/TSS_Test_Errno.h | 61 - tests/Task_Test.bpr | 177 - tests/Task_Test.cpp | 107 - tests/Task_Test.dsp | 224 - tests/Thread_Manager_Test.bpr | 177 - tests/Thread_Manager_Test.cpp | 209 - tests/Thread_Manager_Test.dsp | 183 - tests/Thread_Manager_Test.h | 45 - tests/Thread_Mutex_Test.bpr | 177 - tests/Thread_Mutex_Test.cpp | 86 - tests/Thread_Mutex_Test.dsp | 59 - tests/Thread_Pool_Test.bpr | 177 - tests/Thread_Pool_Test.cpp | 245 - tests/Thread_Pool_Test.dsp | 225 - tests/Time_Service_Test.bpr | 177 - tests/Time_Service_Test.cpp | 87 - tests/Time_Service_Test.dsp | 151 - tests/Time_Value_Test.bpr | 177 - tests/Time_Value_Test.cpp | 216 - tests/Time_Value_Test.dsp | 149 - tests/Timeprobe_Test.cpp | 91 - tests/Timeprobe_Test.dsp | 59 - tests/Timer_Queue_Test.bpr | 177 - tests/Timer_Queue_Test.cpp | 510 - tests/Timer_Queue_Test.dsp | 201 - tests/Tokens_Test.bpr | 177 - tests/Tokens_Test.cpp | 265 - tests/Tokens_Test.dsp | 231 - tests/UNIXclerk.conf | 3 - tests/UNIXserver.conf | 10 - tests/UNIXtokens.conf | 5 - tests/UPIPE_SAP_Test.bpr | 177 - tests/UPIPE_SAP_Test.cpp | 212 - tests/UPIPE_SAP_Test.dsp | 247 - tests/Win32clerk.conf | 3 - tests/Win32server.conf | 10 - tests/Win32tokens.conf | 4 - tests/WinCE/Atomic_Op_Test.dsp | 1047 - tests/WinCE/Barrier_Test.dsp | 1053 - tests/WinCE/Basic_Types_Test.dsp | 1047 - tests/WinCE/Buffer_Stream_Test.dsp | 1209 - tests/WinCE/Conn_Test.dsp | 1313 - tests/WinCE/Enum_Interfaces_Test.dsp | 1059 - tests/WinCE/Future_Test.dsp | 1211 - tests/WinCE/Handle_Set_Test.dsp | 1068 - tests/WinCE/Hash_Map_Manager_Test.dsp | 1104 - tests/WinCE/MT_Reactor_Timer_Test.dsp | 701 - tests/WinCE/MT_SOCK_Test.dsp | 1110 - tests/WinCE/Map_Manager_Test.dsp | 1125 - tests/WinCE/Mem_Map_Test.dsp | 1047 - tests/WinCE/Message_Block_Test.dsp | 1212 - tests/WinCE/Message_Queue_Test.dsp | 1164 - tests/WinCE/Notify_Performance_Test.dsp | 1218 - tests/WinCE/OrdMultiSet_Test.dsp | 1047 - tests/WinCE/Priority_Buffer_Test.dsp | 1164 - tests/WinCE/Priority_Task_Test.dsp | 1203 - tests/WinCE/Reactor_Exceptions_Test.dsp | 698 - tests/WinCE/Reactor_Notify_Test.dsp | 1230 - tests/WinCE/Reactor_Timer_Test.dsp | 1074 - tests/WinCE/Reactors_Test.dsp | 1197 - tests/WinCE/Reader_Writer_Test.dsp | 1059 - tests/WinCE/Recursive_Mutex_Test.dsp | 1059 - tests/WinCE/SOCK_Connector_Test.dsp | 1092 - tests/WinCE/SOCK_Test.dsp | 1109 - tests/WinCE/SString_Test.dsp | 1047 - tests/WinCE/Semaphore_Test.dsp | 1059 - tests/WinCE/Sigset_Ops_Test.dsp | 1047 - tests/WinCE/Simple_Message_Block_Test.dsp | 1053 - tests/WinCE/TSS_Test.dsp | 1055 - tests/WinCE/Task_Test.dsp | 1196 - tests/WinCE/Thread_Manager_Test.dsp | 1056 - tests/WinCE/Thread_Mutex_Test.dsp | 1053 - tests/WinCE/Thread_Pool_Test.dsp | 1197 - tests/WinCE/Time_Value_Test.dsp | 1047 - tests/WinCE/Timer_Queue_Test.dsp | 1110 - tests/WinCE/ce_tests.dsw | 473 - tests/XtReactor_Test.cpp | 352 - tests/run_tests.bat | 123 - tests/run_tests.check | 37 - tests/run_tests.ksh | 6 - tests/run_tests.psosim | 164 - tests/run_tests.sh | 144 - tests/run_tests.vxworks | 187 - tests/test_config.h | 356 - tests/tests.bpg | 190 - tests/tests.dsw | 665 - tests/tests.mak | 9026 ----- tests/tests.mdp | Bin 17031 -> 0 bytes tests/tests_bcc.ide | Bin 347326 -> 0 bytes tests/version_tests/Barrier_Test.dsp | 278 - tests/version_tests/Basic_Types_Test.dsp | 263 - tests/version_tests/Buffer_Stream_Test.dsp | 279 - tests/version_tests/Conn_Test.dsp | 282 - tests/version_tests/Enum_Interfaces_Test.dsp | 279 - tests/version_tests/Env_Value_Test.dsp | 279 - tests/version_tests/Future_Test.dsp | 287 - tests/version_tests/Handle_Set_Test.dsp | 278 - tests/version_tests/Hash_Map_Manager_Test.dsp | 283 - tests/version_tests/IOStream_Test.dsp | 278 - tests/version_tests/MM_Shared_Memory_Test.dsp | 279 - tests/version_tests/MT_SOCK_Test.dsp | 278 - tests/version_tests/Map_Manager_Test.dsp | 279 - tests/version_tests/Mem_Map_Test.dsp | 278 - tests/version_tests/Message_Block_Test.dsp | 279 - .../Message_Queue_Notification_Test.dsp | 283 - tests/version_tests/Message_Queue_Test.dsp | 279 - tests/version_tests/Naming_Test.dsp | 278 - tests/version_tests/Notify_Performance_Test.dsp | 279 - tests/version_tests/OrdMultiSet_Test.dsp | 279 - tests/version_tests/Pipe_Test.dsp | 278 - tests/version_tests/Priority_Buffer_Test.dsp | 279 - tests/version_tests/Priority_Reactor_Test.dsp | 279 - tests/version_tests/Priority_Task_Test.dsp | 279 - tests/version_tests/Process_Mutex_Test.dsp | 279 - tests/version_tests/Process_Strategy_Test.dsp | 279 - tests/version_tests/Reactor_Exception_Test.dsp | 279 - tests/version_tests/Reactor_Notify_Test.dsp | 279 - tests/version_tests/Reactor_Performance_Test.dsp | 283 - tests/version_tests/Reactor_Timer_Test.dsp | 279 - tests/version_tests/Reactors_Test.dsp | 278 - tests/version_tests/Reader_Writer_Test.dsp | 279 - tests/version_tests/Recursive_Mutex_Test.dsp | 279 - tests/version_tests/SOCK_Connector_Test.dsp | 279 - tests/version_tests/SOCK_Test.dsp | 278 - tests/version_tests/SPIPE_Test.dsp | 278 - tests/version_tests/SString_Test.dsp | 278 - tests/version_tests/SV_Shared_Memory_Test.dsp | 279 - tests/version_tests/Semaphore_Test.dsp | 278 - tests/version_tests/Service_Config_Test.dsp | 279 - tests/version_tests/Sigset_Op_Test.dsp | 279 - tests/version_tests/Simple_Message_Block_Test.dsp | 279 - tests/version_tests/TSS_Test.dsp | 282 - tests/version_tests/Task_Test.dsp | 278 - tests/version_tests/Thread_Manager_Test.dsp | 283 - tests/version_tests/Thread_Mutex_Test.dsp | 279 - tests/version_tests/Thread_Pool_Test.dsp | 279 - tests/version_tests/Time_Service_Test.dsp | 279 - tests/version_tests/Time_Value_Test.dsp | 278 - tests/version_tests/Timeprobe_Test.dsp | 278 - tests/version_tests/Timer_Queue_Test.dsp | 279 - tests/version_tests/Tokens_Test.dsp | 278 - tests/version_tests/UPIPE_SAP_Test.dsp | 278 - tests/version_tests/run_all_tests.bat | 51 - tests/version_tests/version_tests.dsp | 278 - tests/version_tests/version_tests.dsw | 665 - tests/version_tests/version_tests.mak | 33707 ------------------- tests/version_tests/version_tests.mdp | Bin 164864 -> 0 bytes 4679 files changed, 1050447 deletions(-) delete mode 100644 ACE-INSTALL.html delete mode 100644 ACE-categories delete mode 100644 ACE-install.sh delete mode 100644 ACE.DSW delete mode 100644 ASNMP/COPYRIGHT delete mode 100644 ASNMP/ChangeLog delete mode 100644 ASNMP/Makefile delete mode 100644 ASNMP/README delete mode 100644 ASNMP/TO-DO delete mode 100644 ASNMP/agent/Makefile delete mode 100644 ASNMP/agent/agent_impl.cpp delete mode 100644 ASNMP/agent/agent_impl.h delete mode 100644 ASNMP/agent/main.cpp delete mode 100644 ASNMP/agent/snmp_agent.cpp delete mode 100644 ASNMP/agent/snmp_agent.h delete mode 100644 ASNMP/asnmp-overview.html delete mode 100644 ASNMP/asnmp/ChangeLog delete mode 100644 ASNMP/asnmp/Makefile delete mode 100644 ASNMP/asnmp/TODO delete mode 100644 ASNMP/asnmp/address.cpp delete mode 100644 ASNMP/asnmp/address.h delete mode 100644 ASNMP/asnmp/asn1.cpp delete mode 100644 ASNMP/asnmp/asn1.h delete mode 100644 ASNMP/asnmp/counter.cpp delete mode 100644 ASNMP/asnmp/counter.h delete mode 100644 ASNMP/asnmp/ctr64.cpp delete mode 100644 ASNMP/asnmp/ctr64.h delete mode 100644 ASNMP/asnmp/enttraps.h delete mode 100644 ASNMP/asnmp/gauge.cpp delete mode 100644 ASNMP/asnmp/gauge.h delete mode 100644 ASNMP/asnmp/integer.cpp delete mode 100644 ASNMP/asnmp/integer.h delete mode 100644 ASNMP/asnmp/octet.cpp delete mode 100644 ASNMP/asnmp/octet.h delete mode 100644 ASNMP/asnmp/oid.cpp delete mode 100644 ASNMP/asnmp/oid.h delete mode 100644 ASNMP/asnmp/oid_def.h delete mode 100644 ASNMP/asnmp/pdu.cpp delete mode 100644 ASNMP/asnmp/pdu.h delete mode 100644 ASNMP/asnmp/sagent.cpp delete mode 100644 ASNMP/asnmp/sagent.h delete mode 100644 ASNMP/asnmp/smi.h delete mode 100644 ASNMP/asnmp/smival.h delete mode 100644 ASNMP/asnmp/snmp.cpp delete mode 100644 ASNMP/asnmp/snmp.h delete mode 100644 ASNMP/asnmp/snmperrs.h delete mode 100644 ASNMP/asnmp/target.cpp delete mode 100644 ASNMP/asnmp/target.h delete mode 100644 ASNMP/asnmp/timetick.cpp delete mode 100644 ASNMP/asnmp/timetick.h delete mode 100644 ASNMP/asnmp/transaction.cpp delete mode 100644 ASNMP/asnmp/transaction.h delete mode 100644 ASNMP/asnmp/transaction_result.h delete mode 100644 ASNMP/asnmp/vb.cpp delete mode 100644 ASNMP/asnmp/vb.h delete mode 100644 ASNMP/asnmp/wpdu.cpp delete mode 100644 ASNMP/asnmp/wpdu.h delete mode 100644 ASNMP/examples/Makefile delete mode 100644 ASNMP/examples/get/Makefile delete mode 100644 ASNMP/examples/get/get.cpp delete mode 100644 ASNMP/examples/next/Makefile delete mode 100644 ASNMP/examples/next/next.cpp delete mode 100644 ASNMP/examples/set/Makefile delete mode 100644 ASNMP/examples/set/set.cpp delete mode 100644 ASNMP/examples/trap/Makefile delete mode 100644 ASNMP/examples/trap/trap.cpp delete mode 100644 ASNMP/examples/walk/Makefile delete mode 100644 ASNMP/examples/walk/walk.cpp delete mode 100644 ASNMP/mibs/RFC1213-MIB.my delete mode 100644 ASNMP/tests/Address_Test.cpp delete mode 100644 ASNMP/tests/Counter64_Test.cpp delete mode 100644 ASNMP/tests/Counter_Test.cpp delete mode 100644 ASNMP/tests/Gauge_Test.cpp delete mode 100644 ASNMP/tests/Integer_Test.cpp delete mode 100644 ASNMP/tests/Makefile delete mode 100644 ASNMP/tests/Octet_Test.cpp delete mode 100644 ASNMP/tests/Oid_Test.cpp delete mode 100644 ASNMP/tests/Target_Test.cpp delete mode 100644 ASNMP/tests/Varbind_Test.cpp delete mode 100644 ASNMP/tests/run_tests.bat delete mode 100755 ASNMP/tests/run_tests.sh delete mode 100644 ASNMP/tests/test_config.h delete mode 100644 BIBLIOGRAPHY delete mode 100644 COPYING delete mode 100644 ChangeLog-93 delete mode 100644 ChangeLog-94 delete mode 100644 ChangeLog-95 delete mode 100644 ChangeLog-96a delete mode 100644 ChangeLog-96b delete mode 100644 ChangeLog-97a delete mode 100644 ChangeLog-97b delete mode 100644 ChangeLog-98a delete mode 100644 ChangeLog-98b delete mode 100644 FAQ delete mode 100644 Makefile delete mode 100644 README delete mode 100644 STL/ACE_Changes delete mode 100644 STL/ChangeLog delete mode 100644 STL/README delete mode 100644 STL/algo.h delete mode 100644 STL/algobase.h delete mode 100644 STL/bool.h delete mode 100644 STL/bstring.h delete mode 100644 STL/bvector.cpp delete mode 100644 STL/bvector.h delete mode 100644 STL/defalloc.h delete mode 100644 STL/deque.h delete mode 100644 STL/function.h delete mode 100644 STL/heap.h delete mode 100644 STL/iterator.h delete mode 100644 STL/list.h delete mode 100644 STL/map.h delete mode 100644 STL/multimap.h delete mode 100644 STL/multiset.h delete mode 100644 STL/pair.h delete mode 100644 STL/projectn.h delete mode 100644 STL/ptr.h delete mode 100644 STL/queue.h delete mode 100644 STL/random.cpp delete mode 100644 STL/readme2.stl delete mode 100644 STL/set.h delete mode 100644 STL/stack.h delete mode 100644 STL/stl.h delete mode 100644 STL/tempbuf.cpp delete mode 100644 STL/tempbuf.h delete mode 100644 STL/tree.h delete mode 100644 STL/vector.h delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/Makefile delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/marshal.h delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/marshal.idl delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.h delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.i delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.h delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.i delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.h delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.i delete mode 100755 TAO/Benchmark/Marshal_Test/Orbix/run_client delete mode 100755 TAO/Benchmark/Marshal_Test/Orbix/run_dsi delete mode 100755 TAO/Benchmark/Marshal_Test/Orbix/run_dsi_server delete mode 100755 TAO/Benchmark/Marshal_Test/Orbix/run_ssi delete mode 100755 TAO/Benchmark/Marshal_Test/Orbix/run_ssi_server delete mode 100644 TAO/Benchmark/Marshal_Test/Orbix/server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/Makefile delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/marshal.idl delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/marshalC.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/marshalC.h delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/marshalS.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/marshalS.h delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.h delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.i delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.h delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.i delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.h delete mode 100644 TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.i delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/Makefile delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/marshal.idl delete mode 100755 TAO/Benchmark/Marshal_Test/VisiBroker/run_client delete mode 100755 TAO/Benchmark/Marshal_Test/VisiBroker/run_server delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.h delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.i delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.h delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.i delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.cpp delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.h delete mode 100644 TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.i delete mode 100644 TAO/Benchmark/benchmark/Makefile delete mode 100644 TAO/Benchmark/benchmark/driver.cpp delete mode 100644 TAO/Benchmark/benchmark/driver.h delete mode 100644 TAO/Benchmark/benchmark/marshal_options.cpp delete mode 100644 TAO/Benchmark/benchmark/marshal_options.h delete mode 100644 TAO/Benchmark/benchmark/marshal_options.i delete mode 100644 TAO/Benchmark/benchmark/marshal_proxy.cpp delete mode 100644 TAO/Benchmark/benchmark/marshal_proxy.h delete mode 100644 TAO/Benchmark/benchmark/marshal_proxy.i delete mode 100644 TAO/Benchmark/benchmark/marshal_results.cpp delete mode 100644 TAO/Benchmark/benchmark/marshal_results.h delete mode 100644 TAO/Benchmark/benchmark/marshal_results.i delete mode 100755 TAO/IIOP/Build/default.bld delete mode 100755 TAO/IIOP/Build/tao.bld delete mode 100644 TAO/IIOP/Makefile delete mode 100644 TAO/IIOP/docs/us/codecounts/align.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/any.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/any.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/cdr.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/cdr.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/connmgr.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/connmgr.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/corbacom.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/corbacom.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/debug.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/debug.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/except.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/except.hh.cccc delete mode 100755 TAO/IIOP/docs/us/codecounts/generate delete mode 100644 TAO/IIOP/docs/us/codecounts/giop.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/giop.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/iiopobj.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/iiopobj.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/iioporb.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/iioporb.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/initguid.h.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/interp.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/invoke.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/marshal.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/nvlist.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/nvlist.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/objbase.h.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/object.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/object.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/orb.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/orbconf.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/orbobj.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/orbobj.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/principa.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/principa.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/request.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/request.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/roa.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/roa.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/roa.i.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/sequence.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/stub.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/svrrqst.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/svrrqst.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/t-sizes.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/t-xdr.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/tc_const.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/tcpoa.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/tcpoa.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/thread.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/toa.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/toa.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/typecode.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/typecode.hh.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/xdr.cpp.cccc delete mode 100644 TAO/IIOP/docs/us/codecounts/xdr.hh.cccc delete mode 100644 TAO/IIOP/docs/us/plan.html delete mode 100644 TAO/IIOP/docs/us/server delete mode 100755 TAO/IIOP/test/Build/clnt.bld delete mode 100755 TAO/IIOP/test/Build/default.bld delete mode 100755 TAO/IIOP/test/Build/svr.bld delete mode 100644 TAO/IIOP/test/Makefile delete mode 100644 TAO/IIOP/test/Orbeline/base_server/Makefile delete mode 100644 TAO/IIOP/test/Orbeline/base_server/Profile_Timer.cpp delete mode 100644 TAO/IIOP/test/Orbeline/base_server/Profile_Timer.h delete mode 100644 TAO/IIOP/test/Orbeline/base_server/cubit.idl delete mode 100644 TAO/IIOP/test/Orbeline/base_server/cubit_impl.cpp delete mode 100644 TAO/IIOP/test/Orbeline/base_server/cubit_impl.h delete mode 100644 TAO/IIOP/test/Orbeline/base_server/server.cpp delete mode 100644 TAO/IIOP/test/Orbeline/base_server/stdmk delete mode 100644 TAO/IIOP/test/Orbeline/client/Makefile delete mode 100644 TAO/IIOP/test/Orbeline/client/Profile_Timer.cpp delete mode 100644 TAO/IIOP/test/Orbeline/client/Profile_Timer.h delete mode 100644 TAO/IIOP/test/Orbeline/client/client.cpp delete mode 100644 TAO/IIOP/test/Orbeline/client/cubit.idl delete mode 100644 TAO/IIOP/test/Orbeline/client/stdmk delete mode 100644 TAO/IIOP/test/Orbix/Makefile delete mode 100644 TAO/IIOP/test/Orbix/base_server/Makefile delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubitC.h delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubitS.cpp delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubitS.h delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubit_impl.cpp delete mode 100644 TAO/IIOP/test/Orbix/base_server/cubit_impl.h delete mode 100644 TAO/IIOP/test/Orbix/base_server/server.cpp delete mode 100644 TAO/IIOP/test/Orbix/base_server/tpr.cpp delete mode 100644 TAO/IIOP/test/Orbix/base_server/tpr.h delete mode 100644 TAO/IIOP/test/Orbix/client/Makefile delete mode 100644 TAO/IIOP/test/Orbix/client/client.cpp delete mode 100644 TAO/IIOP/test/Orbix/client/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/client/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/client/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/factory_client/Makefile delete mode 100644 TAO/IIOP/test/Orbix/factory_client/client.cpp delete mode 100644 TAO/IIOP/test/Orbix/factory_client/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/factory_client/cubit.hh delete mode 100644 TAO/IIOP/test/Orbix/factory_client/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/factory_client/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/factory_client/cubitS.cpp delete mode 100644 TAO/IIOP/test/Orbix/orb.mk delete mode 100644 TAO/IIOP/test/Orbix/tpool/Makefile delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubitS.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubit_impl.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpool/cubit_impl.h delete mode 100644 TAO/IIOP/test/Orbix/tpool/server.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpool/tpool.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpool/tpool.h delete mode 100644 TAO/IIOP/test/Orbix/tpr/Makefile delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubitC.h delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubitS.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubitS.h delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubit_impl.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpr/cubit_impl.h delete mode 100644 TAO/IIOP/test/Orbix/tpr/server.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpr/tpr.cpp delete mode 100644 TAO/IIOP/test/Orbix/tpr/tpr.h delete mode 100644 TAO/IIOP/test/Orbix/tps/Makefile delete mode 100644 TAO/IIOP/test/Orbix/tps/cubit.h delete mode 100644 TAO/IIOP/test/Orbix/tps/cubit.idl delete mode 100644 TAO/IIOP/test/Orbix/tps/cubitC.cpp delete mode 100644 TAO/IIOP/test/Orbix/tps/cubitS.cpp delete mode 100644 TAO/IIOP/test/Orbix/tps/cubit_impl.cpp delete mode 100644 TAO/IIOP/test/Orbix/tps/cubit_impl.h delete mode 100644 TAO/IIOP/test/Orbix/tps/server.cpp delete mode 100644 TAO/IIOP/test/Orbix/tps/tps.cpp delete mode 100644 TAO/IIOP/test/Orbix/tps/tps.h delete mode 100644 TAO/IIOP/test/clnt.cpp delete mode 100644 TAO/IIOP/test/cubit.cpp delete mode 100644 TAO/IIOP/test/cubit.h delete mode 100644 TAO/IIOP/test/cubit.idl delete mode 100644 TAO/IIOP/test/cubitC.cpp delete mode 100644 TAO/IIOP/test/cubitC.h delete mode 100644 TAO/IIOP/test/cubitS.cpp delete mode 100644 TAO/IIOP/test/cubitS.h delete mode 100644 TAO/IIOP/test/cubit_i.cpp delete mode 100644 TAO/IIOP/test/cubit_i.h delete mode 100644 TAO/IIOP/test/method_db.i delete mode 100644 TAO/IIOP/test/results/Orbix delete mode 100644 TAO/IIOP/test/results/TAO delete mode 100644 TAO/IIOP/test/results/Visibroker delete mode 100644 TAO/IIOP/test/results/orbs.xls delete mode 100644 TAO/IIOP/test/svr.cpp delete mode 100644 TAO/IIOP/test/test.mak delete mode 100644 TAO/IIOP/test/test.mdp delete mode 100644 TAO/IIOP/test/test1.cpp delete mode 100644 TAO/IIOP/test/test1.h delete mode 100644 TAO/IIOP/test/test1.idl delete mode 100644 TAO/IIOP/test/test1_clnt.cpp delete mode 100644 TAO/IIOP/test/test1_svr.cpp delete mode 100644 TAO/IIOP/test/tnf/Orbix.svr.summary delete mode 100644 TAO/IIOP/test/tnf/clnt.summary delete mode 100644 TAO/IIOP/test/tnf/svr.summary delete mode 100755 TAO/IIOP/tests/Cubit/Build/clnt.bld delete mode 100755 TAO/IIOP/tests/Cubit/Build/default.bld delete mode 100755 TAO/IIOP/tests/Cubit/Build/svr.bld delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/server.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/client/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/client/client.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/client/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/client/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/client/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/client.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.hh delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/orb.mk delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/server.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/server.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.h delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/tps.cpp delete mode 100644 TAO/IIOP/tests/Cubit/Orbix/tps/tps.h delete mode 100644 TAO/IIOP/tests/Cubit/README delete mode 100644 TAO/IIOP/tests/Cubit/TAO/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/TAO/clnt.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubit.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubit.h delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubitC.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubitC.h delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubitS.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubitS.h delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubit_i.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/cubit_i.h delete mode 100644 TAO/IIOP/tests/Cubit/TAO/method_db.i delete mode 100644 TAO/IIOP/tests/Cubit/TAO/svr.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test.mak delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test.mdp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test1.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test1.h delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test1.idl delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test1_clnt.cpp delete mode 100644 TAO/IIOP/tests/Cubit/TAO/test1_svr.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.h delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.h delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/server.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/base_server/stdmk delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/Makefile delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.h delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/client.cpp delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/cubit.idl delete mode 100644 TAO/IIOP/tests/Cubit/VisiBroker/client/stdmk delete mode 100644 TAO/IIOP/tests/Cubit/results/Orbix delete mode 100644 TAO/IIOP/tests/Cubit/results/TAO delete mode 100644 TAO/IIOP/tests/Cubit/results/Visibroker delete mode 100644 TAO/IIOP/tests/Cubit/results/orbs.xls delete mode 100644 TAO/IIOP/tests/Thruput_test/Makefile delete mode 100644 TAO/IIOP/tests/Thruput_test/README delete mode 100644 TAO/IIOP/tests/Thruput_test/client.cpp delete mode 100755 TAO/IIOP/tests/Thruput_test/run delete mode 100755 TAO/IIOP/tests/Thruput_test/run_client delete mode 100755 TAO/IIOP/tests/Thruput_test/run_server delete mode 100755 TAO/IIOP/tests/Thruput_test/run_test delete mode 100644 TAO/IIOP/tests/Thruput_test/server.cpp delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcp.idl delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcpC.cpp delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcpC.h delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcpS.cpp delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcpS.h delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcp_decl.h delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcp_i.cpp delete mode 100644 TAO/IIOP/tests/Thruput_test/ttcp_i.h delete mode 100644 TAO/IIOP/tests/Thruput_test/utils.cpp delete mode 100644 TAO/TAOACE.dsw delete mode 100644 TAO/TAO_IDL/be/be_union.cpp delete mode 100644 TAO/TAO_IDL/be/be_union_branch.cpp delete mode 100644 TAO/TAO_IDL/be/be_union_label.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/argument.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/post_docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/pre_docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/pre_upcall_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/array.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_attribute.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_constant.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_context.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_decl.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_enum.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_enum/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/exception.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_field.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_module.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_module/any_op.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_module/module.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/argument.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/collocated_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/collocated_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_post_docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_post_upcall_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_pre_docall_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/any_op.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_sh.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_si.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_root/root_ss.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_scope.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/structure.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/structure_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typecode.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/union.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp delete mode 100644 TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp delete mode 100644 TAO/TAO_IDL/be_include/be.h delete mode 100644 TAO/TAO_IDL/be_include/be_argument.h delete mode 100644 TAO/TAO_IDL/be_include/be_array.h delete mode 100644 TAO/TAO_IDL/be_include/be_attribute.h delete mode 100644 TAO/TAO_IDL/be_include/be_codegen.h delete mode 100644 TAO/TAO_IDL/be_include/be_constant.h delete mode 100644 TAO/TAO_IDL/be_include/be_decl.h delete mode 100644 TAO/TAO_IDL/be_include/be_enum.h delete mode 100644 TAO/TAO_IDL/be_include/be_enum_val.h delete mode 100644 TAO/TAO_IDL/be_include/be_exception.h delete mode 100644 TAO/TAO_IDL/be_include/be_expression.h delete mode 100644 TAO/TAO_IDL/be_include/be_factory.h delete mode 100644 TAO/TAO_IDL/be_include/be_field.h delete mode 100644 TAO/TAO_IDL/be_include/be_generator.h delete mode 100644 TAO/TAO_IDL/be_include/be_helper.h delete mode 100644 TAO/TAO_IDL/be_include/be_interface.h delete mode 100644 TAO/TAO_IDL/be_include/be_interface_fwd.h delete mode 100644 TAO/TAO_IDL/be_include/be_interpretive.h delete mode 100644 TAO/TAO_IDL/be_include/be_module.h delete mode 100644 TAO/TAO_IDL/be_include/be_native.h delete mode 100644 TAO/TAO_IDL/be_include/be_operation.h delete mode 100644 TAO/TAO_IDL/be_include/be_predefined_type.h delete mode 100644 TAO/TAO_IDL/be_include/be_root.h delete mode 100644 TAO/TAO_IDL/be_include/be_scope.h delete mode 100644 TAO/TAO_IDL/be_include/be_sequence.h delete mode 100644 TAO/TAO_IDL/be_include/be_state.h delete mode 100644 TAO/TAO_IDL/be_include/be_string.h delete mode 100644 TAO/TAO_IDL/be_include/be_structure.h delete mode 100644 TAO/TAO_IDL/be_include/be_sunsoft.h delete mode 100644 TAO/TAO_IDL/be_include/be_type.h delete mode 100644 TAO/TAO_IDL/be_include/be_typedef.h delete mode 100644 TAO/TAO_IDL/be_include/be_union.h delete mode 100644 TAO/TAO_IDL/be_include/be_union_branch.h delete mode 100644 TAO/TAO_IDL/be_include/be_union_label.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/argument.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/array.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/array_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/array_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_attribute.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_attribute/attribute.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_constant.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_constant/constant_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_constant/constant_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_context.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_decl.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_enum.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_enum/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_enum/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_enum/enum_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_enum/enum_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/ctor.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/ctor_assign.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/exception.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/exception_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/exception_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/exception_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_exception/exception_ctor.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_field.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_field/field_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_field/field_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_field/field_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/collocated_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/collocated_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/tie_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface/tie_si.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_module.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_module/any_op.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_module/module.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_module/module_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_module/module_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/argument.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/any_op.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_sh.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_si.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_root/root_ss.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_scope.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/buffer_type.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/elemtype.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_base.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/structure.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/structure_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/structure_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_structure/structure_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typecode.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_decl.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/typedef.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/any_op_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/discriminant_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/union.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/union_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/union_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union/union_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch/private_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch/public_assign_cs.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ch.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ci.h delete mode 100644 TAO/TAO_IDL/be_include/be_visitor_union_branch/public_cs.h delete mode 100644 TAO/TAO_IDL/docs/ANNOUNCEMENT delete mode 100644 TAO/TAO_IDL/docs/BUG_REPORT delete mode 100644 TAO/TAO_IDL/docs/CHANGES delete mode 100644 TAO/TAO_IDL/docs/CLI delete mode 100644 TAO/TAO_IDL/docs/COPYRIGHT delete mode 100644 TAO/TAO_IDL/docs/INSTALL delete mode 100644 TAO/TAO_IDL/docs/PROBLEMS delete mode 100644 TAO/TAO_IDL/docs/README delete mode 100644 TAO/TAO_IDL/docs/ROADMAP delete mode 100644 TAO/TAO_IDL/docs/WRITING_A_BE delete mode 100644 TAO/TAO_IDL/driver/Makefile delete mode 100644 TAO/TAO_IDL/driver/drv_args.cpp delete mode 100644 TAO/TAO_IDL/driver/drv_fork.cpp delete mode 100644 TAO/TAO_IDL/driver/drv_init.cpp delete mode 100644 TAO/TAO_IDL/driver/drv_link.cpp delete mode 100644 TAO/TAO_IDL/driver/drv_preproc.cpp delete mode 100644 TAO/TAO_IDL/driver/drv_private.cpp delete mode 100644 TAO/TAO_IDL/fe/Makefile delete mode 100644 TAO/TAO_IDL/fe/fe_declarator.cpp delete mode 100644 TAO/TAO_IDL/fe/fe_extern.cpp delete mode 100644 TAO/TAO_IDL/fe/fe_init.cpp delete mode 100644 TAO/TAO_IDL/fe/fe_interface_header.cpp delete mode 100644 TAO/TAO_IDL/fe/fe_private.cpp delete mode 100644 TAO/TAO_IDL/fe/idl.ll delete mode 100644 TAO/TAO_IDL/fe/idl.yy delete mode 100644 TAO/TAO_IDL/fe/lex.yy.cpp delete mode 100644 TAO/TAO_IDL/fe/lex.yy.cpp.diff delete mode 100644 TAO/TAO_IDL/fe/y.tab.cpp delete mode 100644 TAO/TAO_IDL/fe/y.tab.cpp.diff delete mode 100644 TAO/TAO_IDL/fe/y.tab.h delete mode 100644 TAO/TAO_IDL/idl_specs/array.idl delete mode 100644 TAO/TAO_IDL/idl_specs/constant.idl delete mode 100644 TAO/TAO_IDL/idl_specs/dif2.idl delete mode 100644 TAO/TAO_IDL/idl_specs/inherit.idl delete mode 100644 TAO/TAO_IDL/idl_specs/module.idl delete mode 100644 TAO/TAO_IDL/idl_specs/primtypes.idl delete mode 100644 TAO/TAO_IDL/idl_specs/sequence.idl delete mode 100644 TAO/TAO_IDL/idl_specs/simple.idl delete mode 100644 TAO/TAO_IDL/idl_specs/simple2.idl delete mode 100644 TAO/TAO_IDL/idl_specs/struct.idl delete mode 100644 TAO/TAO_IDL/idl_specs/union.idl delete mode 100644 TAO/TAO_IDL/idl_specs/union2.idl delete mode 100644 TAO/TAO_IDL/include/ast.h delete mode 100644 TAO/TAO_IDL/include/ast_argument.h delete mode 100644 TAO/TAO_IDL/include/ast_array.h delete mode 100644 TAO/TAO_IDL/include/ast_attribute.h delete mode 100644 TAO/TAO_IDL/include/ast_concrete_type.h delete mode 100644 TAO/TAO_IDL/include/ast_constant.h delete mode 100644 TAO/TAO_IDL/include/ast_decl.h delete mode 100644 TAO/TAO_IDL/include/ast_enum.h delete mode 100644 TAO/TAO_IDL/include/ast_enum_val.h delete mode 100644 TAO/TAO_IDL/include/ast_exception.h delete mode 100644 TAO/TAO_IDL/include/ast_expression.h delete mode 100644 TAO/TAO_IDL/include/ast_extern.h delete mode 100644 TAO/TAO_IDL/include/ast_field.h delete mode 100644 TAO/TAO_IDL/include/ast_generator.h delete mode 100644 TAO/TAO_IDL/include/ast_interface.h delete mode 100644 TAO/TAO_IDL/include/ast_interface_fwd.h delete mode 100644 TAO/TAO_IDL/include/ast_module.h delete mode 100644 TAO/TAO_IDL/include/ast_native.h delete mode 100644 TAO/TAO_IDL/include/ast_operation.h delete mode 100644 TAO/TAO_IDL/include/ast_predefined_type.h delete mode 100644 TAO/TAO_IDL/include/ast_root.h delete mode 100644 TAO/TAO_IDL/include/ast_sequence.h delete mode 100644 TAO/TAO_IDL/include/ast_string.h delete mode 100644 TAO/TAO_IDL/include/ast_structure.h delete mode 100644 TAO/TAO_IDL/include/ast_type.h delete mode 100644 TAO/TAO_IDL/include/ast_typedef.h delete mode 100644 TAO/TAO_IDL/include/ast_union.h delete mode 100644 TAO/TAO_IDL/include/ast_union_branch.h delete mode 100644 TAO/TAO_IDL/include/ast_union_label.h delete mode 100644 TAO/TAO_IDL/include/be_extern.h delete mode 100644 TAO/TAO_IDL/include/drv_extern.h delete mode 100644 TAO/TAO_IDL/include/drv_link.h delete mode 100644 TAO/TAO_IDL/include/drv_private.h delete mode 100644 TAO/TAO_IDL/include/fe_declarator.h delete mode 100644 TAO/TAO_IDL/include/fe_extern.h delete mode 100644 TAO/TAO_IDL/include/fe_interface_header.h delete mode 100644 TAO/TAO_IDL/include/fe_private.h delete mode 100644 TAO/TAO_IDL/include/global_extern.h delete mode 100644 TAO/TAO_IDL/include/idl.h delete mode 100644 TAO/TAO_IDL/include/idl_bool.h delete mode 100644 TAO/TAO_IDL/include/idl_defines.h delete mode 100644 TAO/TAO_IDL/include/idl_extern.h delete mode 100644 TAO/TAO_IDL/include/idl_fwd.h delete mode 100644 TAO/TAO_IDL/include/idl_global.h delete mode 100644 TAO/TAO_IDL/include/idl_narrow.h delete mode 100644 TAO/TAO_IDL/include/intlmacros.h delete mode 100644 TAO/TAO_IDL/include/nr_extern.h delete mode 100644 TAO/TAO_IDL/include/util.h delete mode 100644 TAO/TAO_IDL/include/utl_decllist.h delete mode 100644 TAO/TAO_IDL/include/utl_err.h delete mode 100644 TAO/TAO_IDL/include/utl_error.h delete mode 100644 TAO/TAO_IDL/include/utl_exceptlist.h delete mode 100644 TAO/TAO_IDL/include/utl_exprlist.h delete mode 100644 TAO/TAO_IDL/include/utl_identifier.h delete mode 100644 TAO/TAO_IDL/include/utl_idlist.h delete mode 100644 TAO/TAO_IDL/include/utl_indenter.h delete mode 100644 TAO/TAO_IDL/include/utl_labellist.h delete mode 100644 TAO/TAO_IDL/include/utl_list.h delete mode 100644 TAO/TAO_IDL/include/utl_namelist.h delete mode 100644 TAO/TAO_IDL/include/utl_scope.h delete mode 100644 TAO/TAO_IDL/include/utl_scoped_name.h delete mode 100644 TAO/TAO_IDL/include/utl_stack.h delete mode 100644 TAO/TAO_IDL/include/utl_string.h delete mode 100644 TAO/TAO_IDL/include/utl_strlist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_list.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h delete mode 100644 TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h delete mode 100644 TAO/TAO_IDL/narrow/Makefile delete mode 100644 TAO/TAO_IDL/narrow/narrow.cpp delete mode 100644 TAO/TAO_IDL/util/Makefile delete mode 100644 TAO/TAO_IDL/util/utl_decllist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_err.cpp delete mode 100644 TAO/TAO_IDL/util/utl_error.cpp delete mode 100644 TAO/TAO_IDL/util/utl_exceptlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_exprlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_global.cpp delete mode 100644 TAO/TAO_IDL/util/utl_identifier.cpp delete mode 100644 TAO/TAO_IDL/util/utl_idlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_indenter.cpp delete mode 100644 TAO/TAO_IDL/util/utl_labellist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_list.cpp delete mode 100644 TAO/TAO_IDL/util/utl_namelist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_scope.cpp delete mode 100644 TAO/TAO_IDL/util/utl_stack.cpp delete mode 100644 TAO/TAO_IDL/util/utl_string.cpp delete mode 100644 TAO/TAO_IDL/util/utl_strlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_decllist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_exprlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_idlist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_labellist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_list.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_namelist.cpp delete mode 100644 TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp delete mode 100755 TAO/announcement delete mode 100644 TAO/examples/Simulator/DOVEBrowser/AnswerEvent.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/AnswerListener.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.html delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DOVEBrowserApplet.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DataHandler.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DemoCore.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DemoObservable.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/DoubleVisComp.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/NS_Resolve.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/NavigationVisComp.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/ObservablesDialog.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/Properties.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/PushConsumer.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/PushConsumer.java.JDK1.2 delete mode 100644 TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2 delete mode 100644 TAO/examples/Simulator/DOVEBrowser/Queue.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/VisComp.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/VisCompFactory.java delete mode 100644 TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java delete mode 100755 TAO/examples/Simulator/DOVEBrowser/make.bat delete mode 100644 TAO/examples/Simulator/DOVEMIB/AnyAnalyser.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/AnyAnalyser.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/DOVEMIB.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsp delete mode 100644 TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsw delete mode 100644 TAO/examples/Simulator/DOVEMIB/DOVEMIB.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/DOVEMIBx.dsp delete mode 100644 TAO/examples/Simulator/DOVEMIB/Makefile delete mode 100644 TAO/examples/Simulator/DOVEMIB/Node.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/Node.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/NodeVisitor.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/PrintVisitor.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/PrintVisitor.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/TestClient.dsp delete mode 100644 TAO/examples/Simulator/DOVEMIB/any_test.idl delete mode 100644 TAO/examples/Simulator/DOVEMIB/any_test_i.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/any_test_i.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/clnt.cpp delete mode 100644 TAO/examples/Simulator/DOVEMIB/clnt.h delete mode 100644 TAO/examples/Simulator/DOVEMIB/svc.conf delete mode 100644 TAO/examples/Simulator/DOVEMIB/svr.cpp delete mode 100644 TAO/examples/Simulator/Event_Supplier/EDF.dat delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Con.cpp delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Con.h delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Sup.cpp delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Sup.dsp delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Sup.dsw delete mode 100644 TAO/examples/Simulator/Event_Supplier/Event_Sup.h delete mode 100644 TAO/examples/Simulator/Event_Supplier/MLF.dat delete mode 100644 TAO/examples/Simulator/Event_Supplier/MUF.dat delete mode 100644 TAO/examples/Simulator/Event_Supplier/Makefile delete mode 100644 TAO/examples/Simulator/Event_Supplier/RMS.dat delete mode 100644 TAO/examples/Simulator/Event_Supplier/RMS_Dyn.dat delete mode 100644 TAO/examples/Simulator/Event_Supplier/svc.conf delete mode 100644 TAO/examples/Simulator/NavWeap.idl delete mode 100644 TAO/examples/Simulator/README delete mode 100644 TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp delete mode 100644 TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsp delete mode 100644 TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsw delete mode 100644 TAO/orbsvcs/Concurrency_Service/Concurrency_Service.h delete mode 100644 TAO/orbsvcs/Concurrency_Service/Makefile delete mode 100644 TAO/orbsvcs/Concurrency_Service/README delete mode 100644 TAO/orbsvcs/Concurrency_Service/svc.conf delete mode 100644 TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp delete mode 100644 TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsp delete mode 100644 TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsw delete mode 100644 TAO/orbsvcs/Dump_Schedule/Makefile delete mode 100644 TAO/orbsvcs/Dump_Schedule/svc.conf delete mode 100644 TAO/orbsvcs/Event_Service/Event_Service.cpp delete mode 100644 TAO/orbsvcs/Event_Service/Event_Service.dsp delete mode 100644 TAO/orbsvcs/Event_Service/Event_Service.dsw delete mode 100644 TAO/orbsvcs/Event_Service/Makefile delete mode 100644 TAO/orbsvcs/Event_Service/svc.conf delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.h delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Factory_Trader.cpp delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Factory_Trader.h delete mode 100644 TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsp delete mode 100644 TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsw delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.cpp delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.h delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.cpp delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.h delete mode 100644 TAO/orbsvcs/LifeCycle_Service/Makefile delete mode 100644 TAO/orbsvcs/LifeCycle_Service/svc.conf delete mode 100644 TAO/orbsvcs/Makefile delete mode 100644 TAO/orbsvcs/Naming_Service/Makefile delete mode 100644 TAO/orbsvcs/Naming_Service/Naming_Service.cpp delete mode 100644 TAO/orbsvcs/Naming_Service/Naming_Service.dsp delete mode 100644 TAO/orbsvcs/Naming_Service/Naming_Service.dsw delete mode 100644 TAO/orbsvcs/Naming_Service/Naming_Service.h delete mode 100644 TAO/orbsvcs/Naming_Service/README delete mode 100644 TAO/orbsvcs/Naming_Service/svc.conf delete mode 100644 TAO/orbsvcs/Scheduling_Service/Makefile delete mode 100644 TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp delete mode 100644 TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsp delete mode 100644 TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsw delete mode 100644 TAO/orbsvcs/Scheduling_Service/svc.conf delete mode 100644 TAO/orbsvcs/Trading_Service/Makefile delete mode 100644 TAO/orbsvcs/Trading_Service/svc.conf delete mode 100644 TAO/orbsvcs/Trading_Service/trader.cpp delete mode 100755 TAO/orbsvcs/default.bld delete mode 100644 TAO/orbsvcs/orbsvcs.dsw delete mode 100644 TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h delete mode 100644 TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h delete mode 100644 TAO/orbsvcs/orbsvcs/AV/README delete mode 100644 TAO/orbsvcs/orbsvcs/AVStreams.idl delete mode 100644 TAO/orbsvcs/orbsvcs/AVStreams_Full.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Channel_Clients.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Channel_Clients.h delete mode 100644 TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Channel_Clients_T.h delete mode 100644 TAO/orbsvcs/orbsvcs/Channel_Clients_T.i delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.h delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.h delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h delete mode 100644 TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl delete mode 100644 TAO/orbsvcs/orbsvcs/CosLifeCycle.idl delete mode 100644 TAO/orbsvcs/orbsvcs/CosNaming.idl delete mode 100644 TAO/orbsvcs/orbsvcs/CosPropertyService.idl delete mode 100644 TAO/orbsvcs/orbsvcs/CosTimeBase.idl delete mode 100644 TAO/orbsvcs/orbsvcs/CosTrading.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Event/BCU.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/BCU.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Channel_Clients.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Channel_Clients_T.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/EC_Gateway.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Event_Channel.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Event_Channel.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Fast_Reactor.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/GPlot_File.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/GPlot_File.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/GPlot_File.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Local_ESTypes.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Memory_Pools.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Memory_Pools.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Memory_Pools.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/RT_Task.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/RT_Task.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/RT_Task.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event/ReactorTask.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/ReactorTask.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Task_Manager.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Task_Manager.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event/Task_Manager.i delete mode 100644 TAO/orbsvcs/orbsvcs/Event_Service_Constants.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event_Utilities.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Event_Utilities.h delete mode 100644 TAO/orbsvcs/orbsvcs/Event_Utilities.i delete mode 100644 TAO/orbsvcs/orbsvcs/IOR_Multicast.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/IOR_Multicast.h delete mode 100644 TAO/orbsvcs/orbsvcs/LifeCycleService.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Log/Logger_i.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Log/Logger_i.h delete mode 100644 TAO/orbsvcs/orbsvcs/Logger.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Makefile delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/CosNaming_i.h delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/Entries.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/Entries.h delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/Naming_Utils.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Naming/Naming_Utils.h delete mode 100644 TAO/orbsvcs/orbsvcs/Null_MediaCtrl.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Property/CosPropertyService_i.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Property/CosPropertyService_i.h delete mode 100644 TAO/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl delete mode 100644 TAO/orbsvcs/orbsvcs/RtecEventComm.idl delete mode 100644 TAO/orbsvcs/orbsvcs/RtecScheduler.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Runtime_Scheduler.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Runtime_Scheduler.h delete mode 100644 TAO/orbsvcs/orbsvcs/Runtime_Scheduler.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Config_Scheduler.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/DynSched.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/DynSched.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/DynSched.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/SchedEntry.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/SchedEntry.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/SchedEntry.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Scheduler_Generic.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h delete mode 100644 TAO/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.i delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Factory.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Factory.h delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Factory.i delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Utilities.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Utilities.h delete mode 100644 TAO/orbsvcs/orbsvcs/Scheduler_Utilities.i delete mode 100644 TAO/orbsvcs/orbsvcs/Sequences.idl delete mode 100644 TAO/orbsvcs/orbsvcs/Time_Utilities.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Time_Utilities.h delete mode 100644 TAO/orbsvcs/orbsvcs/Time_Utilities.i delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Admin.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Admin.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Attributes.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Attributes.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Attributes_T.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Attributes_T.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Evaluator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Evaluator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Interpreter.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Nodes.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Tokens.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Validator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Validator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_Visitor.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_l.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Constraint_y.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Dynamic_Property.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Dynamic_Property.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Interpreter.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Interpreter.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Link.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Link.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Locking.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Lookup.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Lookup.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Filter.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Filter.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Id_Iterator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Id_Iterator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator_Collection.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Iterator_Collection.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Modifier.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Offer_Modifier.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Policies.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Policies.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Policy_Manager.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Policy_Manager.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Preference_Interpreter.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Preference_Interpreter.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Property_Evaluator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Property_Evaluator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Property_Filter.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Property_Filter.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Proxy.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Proxy.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Query_Only_Offer_Iterator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Query_Only_Offer_Iterator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Register.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Register.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Register_Offer_Iterator.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Register_Offer_Iterator.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Service_Type_Map.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Service_Type_Map.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Service_Type_Repository.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Trader.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Trader.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Trader_T.cpp delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/Trader_T.h delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/constraint.l delete mode 100644 TAO/orbsvcs/orbsvcs/Trader/constraint.y delete mode 100644 TAO/orbsvcs/orbsvcs/orbsvcs.dsp delete mode 100644 TAO/orbsvcs/orbsvcs/orbsvcs.dsw delete mode 100644 TAO/orbsvcs/orbsvcs/orbsvcs_export.h delete mode 100644 TAO/orbsvcs/orbsvcs/orbsvcs_lib.dsp delete mode 100644 TAO/orbsvcs/orbsvcs/sfp.idl delete mode 100644 TAO/orbsvcs/orbsvcs/tmplinst-orbsvcs.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/Machine_Properties.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/Machine_Properties.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/Property_Exporter.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/Property_Exporter.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/README delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/child.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/child.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/client.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/client.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/clnt.conf delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/benchmark/svc.conf delete mode 100644 TAO/orbsvcs/tests/AVStreams/client.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/client.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/ANNOUNCE delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/BUGS delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/COPYING delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/INSTALL delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/INSTALL.UCB delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/PatchLevel delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/README delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/README.MI delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/README.UCB delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/VERSION delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/TODO delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/client/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/client/svc.conf delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/client/vcr.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/include/common.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/24bit.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/2x2.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Command_Handler.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ab.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/audio.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ctr.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/decoders.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/decoders.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/dither.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/file.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/fs2.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/fs2.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/fs2fast.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/fs4.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/fs4.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/global.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/global.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/gray.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/hybrid.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/hybriderr.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/info.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/Info.mib delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/MW.mib delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/MainWindow.mib delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/fb.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/ff.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/loop.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/old.MainWindow.mib delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/play.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/rewind.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/step.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/interface/stop.xbm delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/jrevdct.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/mb_ordered.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/mibload.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/mono.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/motionvector.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/newproto.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ordered.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ordered2.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/para.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/parseblock.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/prog.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/proto.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ui.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/ui.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/util32.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/vb.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/vd.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/video.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/video.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_client/vp.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibButton.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibDrawArea.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibFrame.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibLabel.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibList.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibMenu.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibRadioBox.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibScale.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibScrollBar.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibTextBig.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibTextBox.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibToggle.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibload.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibload.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_mib/mibwidgets.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Control_State.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Control_State.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Control_i.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Control_i.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/as.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/las.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/lvs.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/vs.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_Control.idl delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_Control.idl delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/svc.conf delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vcrs.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 delete mode 100644 TAO/orbsvcs/tests/AVStreams/mpeg/vcrs.1 delete mode 100644 TAO/orbsvcs/tests/AVStreams/server.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/server.h delete mode 100644 TAO/orbsvcs/tests/AVStreams/server_discovery/Discover_Server.java delete mode 100644 TAO/orbsvcs/tests/AVStreams/server_discovery/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/server_discovery/Property_Evaluator.java delete mode 100644 TAO/orbsvcs/tests/AVStreams/server_discovery/TS_Resolve.java delete mode 100755 TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote delete mode 100755 TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote-new delete mode 100644 TAO/orbsvcs/tests/AVStreams/sfp/Makefile delete mode 100644 TAO/orbsvcs/tests/AVStreams/sfp/client.cpp delete mode 100644 TAO/orbsvcs/tests/AVStreams/sfp/svc.conf delete mode 100644 TAO/orbsvcs/tests/AVStreams/svc.conf delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_client.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_client.dsp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_client.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.l delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp.diff delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.tab.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_command.y delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_naming_service.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_naming_service.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_test_utils.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_test_utils.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_tests.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/CC_tests.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/Concurrency.dsw delete mode 100644 TAO/orbsvcs/tests/Concurrency/Makefile delete mode 100644 TAO/orbsvcs/tests/Concurrency/NS_client.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/NS_client.h delete mode 100644 TAO/orbsvcs/tests/Concurrency/README delete mode 100644 TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp delete mode 100644 TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff delete mode 100644 TAO/orbsvcs/tests/Concurrency/svc.conf delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.basic delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.dinphil delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.e1 delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.extended delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.phil1 delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.phil2 delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.phil3 delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.phil4 delete mode 100644 TAO/orbsvcs/tests/Concurrency/test.phil5 delete mode 100644 TAO/orbsvcs/tests/Concurrency/tmplinst.cpp delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/Makefile delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/client.cpp delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/client.h delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/main.cpp delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/server.cpp delete mode 100644 TAO/orbsvcs/tests/CosPropertyService/server.h delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsp delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsw delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/Makefile delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/README delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/gen_latency delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/gen_overhead delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/gen_throughput delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/gen_utilization delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/histo.pl delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/run_latency delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/run_overhead delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/run_schedule delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/run_throughput delete mode 100755 TAO/orbsvcs/tests/EC_Multiple/run_utilization delete mode 100644 TAO/orbsvcs/tests/EC_Multiple/svc.conf delete mode 100644 TAO/orbsvcs/tests/Event_Latency/Event_Latency.cpp delete mode 100644 TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsp delete mode 100644 TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsw delete mode 100644 TAO/orbsvcs/tests/Event_Latency/Event_Latency.h delete mode 100644 TAO/orbsvcs/tests/Event_Latency/Makefile delete mode 100644 TAO/orbsvcs/tests/Event_Latency/svc.conf delete mode 100644 TAO/orbsvcs/tests/Logger/Logger.dsw delete mode 100644 TAO/orbsvcs/tests/Logger/Makefile delete mode 100644 TAO/orbsvcs/tests/Logger/client.dsp delete mode 100644 TAO/orbsvcs/tests/Logger/clnt.cpp delete mode 100644 TAO/orbsvcs/tests/Logger/clnt.h delete mode 100644 TAO/orbsvcs/tests/Logger/server.dsp delete mode 100644 TAO/orbsvcs/tests/Logger/svc.conf delete mode 100644 TAO/orbsvcs/tests/Logger/svr.cpp delete mode 100644 TAO/orbsvcs/tests/Makefile delete mode 100755 TAO/orbsvcs/tests/Naming/Makefile delete mode 100644 TAO/orbsvcs/tests/Naming/README delete mode 100644 TAO/orbsvcs/tests/Naming/ns_tree.cpp delete mode 100644 TAO/orbsvcs/tests/Naming/test_object.idl delete mode 100644 TAO/orbsvcs/tests/Property/Makefile delete mode 100644 TAO/orbsvcs/tests/Property/client.cpp delete mode 100644 TAO/orbsvcs/tests/Property/client.h delete mode 100644 TAO/orbsvcs/tests/Property/main.cpp delete mode 100644 TAO/orbsvcs/tests/Property/server.cpp delete mode 100644 TAO/orbsvcs/tests/Property/server.h delete mode 100644 TAO/orbsvcs/tests/Sched/DynSched_Test.cpp delete mode 100644 TAO/orbsvcs/tests/Sched/Makefile delete mode 100644 TAO/orbsvcs/tests/Sched_Conf/Makefile delete mode 100644 TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp delete mode 100644 TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsp delete mode 100644 TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsw delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/Makefile delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/Simple_Naming.dsw delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/client.dsp delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/clnt.cpp delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/clnt.h delete mode 100644 TAO/orbsvcs/tests/Simple_Naming/svc.conf delete mode 100644 TAO/orbsvcs/tests/Trading/Makefile delete mode 100644 TAO/orbsvcs/tests/Trading/Offer_Exporter.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/Offer_Exporter.h delete mode 100644 TAO/orbsvcs/tests/Trading/Offer_Importer.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/Offer_Importer.h delete mode 100644 TAO/orbsvcs/tests/Trading/Service_Type_Exporter.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/Service_Type_Exporter.h delete mode 100644 TAO/orbsvcs/tests/Trading/TT_Info.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/TT_Info.h delete mode 100644 TAO/orbsvcs/tests/Trading/TTest.idl delete mode 100644 TAO/orbsvcs/tests/Trading/colocated_test.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/export_test.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/import_test.cpp delete mode 100644 TAO/orbsvcs/tests/Trading/svc.conf delete mode 100755 TAO/orbsvcs/tests/start_services delete mode 100644 TAO/orbsvcs/tests/tests.dsw delete mode 100755 TAO/performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/Makefile delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/README delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/README.tests delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.h delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/client.cpp delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit.idl delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.cpp delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.h delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/server.cpp delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/server.h delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/svc.conf delete mode 100644 TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp delete mode 100755 TAO/release.pl delete mode 100644 TAO/tao/CORBA.cpp delete mode 100644 TAO/tao/factories.h delete mode 100644 TAO/tests/CDR/CDR.dsw delete mode 100644 TAO/tests/CDR/Makefile delete mode 100644 TAO/tests/CDR/README delete mode 100644 TAO/tests/CDR/basic_types.cpp delete mode 100644 TAO/tests/CDR/basic_types.dsp delete mode 100644 TAO/tests/CDR/growth.cpp delete mode 100644 TAO/tests/CDR/growth.dsp delete mode 100644 TAO/tests/CDR/growth.dsw delete mode 100644 TAO/tests/CDR/tc.cpp delete mode 100644 TAO/tests/CDR/tc.dsp delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/README delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/client.h delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp delete mode 100644 TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/README delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/client.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/client.h delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.cpp delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.h delete mode 100644 TAO/tests/Cubit/COOL/MT_Cubit/server.cpp delete mode 100644 TAO/tests/Cubit/COOL/Makefile delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/README delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.h delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h delete mode 100644 TAO/tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/README delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Makefile delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.h delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/client/cubit.idl delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/server/Makefile delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit.idl delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.h delete mode 100644 TAO/tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp delete mode 100644 TAO/tests/Cubit/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/base_server/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/base_server/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/base_server/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/Orbix/base_server/cubit_impl.h delete mode 100644 TAO/tests/Cubit/Orbix/base_server/server.cpp delete mode 100644 TAO/tests/Cubit/Orbix/client/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/client/client.cpp delete mode 100644 TAO/tests/Cubit/Orbix/client/cubit.h delete mode 100644 TAO/tests/Cubit/Orbix/client/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/client/cubitC.cpp delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/client.cpp delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/cubit.h delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/cubit.hh delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/cubitC.cpp delete mode 100644 TAO/tests/Cubit/Orbix/factory_client/cubitS.cpp delete mode 100644 TAO/tests/Cubit/Orbix/orb.mk delete mode 100644 TAO/tests/Cubit/Orbix/tpool/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubit.h delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubitC.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubitS.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpool/cubit_impl.h delete mode 100644 TAO/tests/Cubit/Orbix/tpool/server.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpool/tpool.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpool/tpool.h delete mode 100644 TAO/tests/Cubit/Orbix/tpr/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubit.h delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubitC.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubitC.h delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubitS.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubitS.h delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpr/cubit_impl.h delete mode 100644 TAO/tests/Cubit/Orbix/tpr/server.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpr/tpr.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tpr/tpr.h delete mode 100644 TAO/tests/Cubit/Orbix/tps/Makefile delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubit.h delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubit.idl delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubitC.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubitS.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tps/cubit_impl.h delete mode 100644 TAO/tests/Cubit/Orbix/tps/tps.cpp delete mode 100644 TAO/tests/Cubit/Orbix/tps/tps.h delete mode 100644 TAO/tests/Cubit/README delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/README delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/client.dsp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/clnt.bld delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/clnt.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubit.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubit.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubitC.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubitC.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubitS.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubitS.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/default.bld delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/method_db.i delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/server.dsp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/svc.conf delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/svr.bld delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test.mak delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test.mdp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test1.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test1.h delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test1.idl delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test1_clnt.cpp delete mode 100644 TAO/tests/Cubit/TAO/DII_Cubit/test1_svr.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mak delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mdp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit_Test.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/README delete mode 100755 TAO/tests/Cubit/TAO/IDL_Cubit/client.bld delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/client.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/client.dsp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/client_i.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/client_i.h delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.h delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/default.bld delete mode 100755 TAO/tests/Cubit/TAO/IDL_Cubit/run_test.pl delete mode 100755 TAO/tests/Cubit/TAO/IDL_Cubit/server.bld delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/server.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/server.dsp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/server_i.cpp delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/server_i.h delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/svc.conf delete mode 100644 TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw delete mode 100755 TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/Makefile delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/README delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/README.tests delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/client.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/client.dsp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/client.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/clnt.bld delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/cubit.idl delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/default.bld delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/server.cpp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/server.dsp delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/server.h delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/svc.conf delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/svr.bld delete mode 100644 TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp delete mode 100644 TAO/tests/Cubit/TAO/Makefile delete mode 100644 TAO/tests/Cubit/TAO/README delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/Makefile delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.h delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/cubit.idl delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.h delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/server.cpp delete mode 100644 TAO/tests/Cubit/VisiBroker/base_server/stdmk delete mode 100644 TAO/tests/Cubit/VisiBroker/client/Makefile delete mode 100644 TAO/tests/Cubit/VisiBroker/client/Profile_Timer.cpp delete mode 100644 TAO/tests/Cubit/VisiBroker/client/Profile_Timer.h delete mode 100644 TAO/tests/Cubit/VisiBroker/client/client.cpp delete mode 100644 TAO/tests/Cubit/VisiBroker/client/cubit.idl delete mode 100644 TAO/tests/Cubit/VisiBroker/client/stdmk delete mode 100644 TAO/tests/Cubit/results/Orbix delete mode 100644 TAO/tests/Cubit/results/TAO delete mode 100644 TAO/tests/Cubit/results/Visibroker delete mode 100644 TAO/tests/Cubit/results/orbs.xls delete mode 100644 TAO/tests/Demux_Test/CodeGen/Makefile delete mode 100644 TAO/tests/Demux_Test/CodeGen/README delete mode 100644 TAO/tests/Demux_Test/CodeGen/client.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/gen.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/impl.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/objcreate.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/perf.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/skel.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/stub.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/tao.cpp delete mode 100644 TAO/tests/Demux_Test/CodeGen/tao.h delete mode 100755 TAO/tests/Demux_Test/Makefile delete mode 100644 TAO/tests/Demux_Test/README delete mode 100755 TAO/tests/Demux_Test/client.cpp delete mode 100755 TAO/tests/Demux_Test/gen_bin delete mode 100755 TAO/tests/Demux_Test/make_all delete mode 100755 TAO/tests/Demux_Test/run_all_client delete mode 100755 TAO/tests/Demux_Test/run_all_server delete mode 100755 TAO/tests/Demux_Test/run_client delete mode 100755 TAO/tests/Demux_Test/run_server delete mode 100755 TAO/tests/Demux_Test/server.cpp delete mode 100644 TAO/tests/Makefile delete mode 100644 TAO/tests/NestedUpcall/Makefile delete mode 100644 TAO/tests/NestedUpcall/NestedUpCalls_Test.cpp delete mode 100644 TAO/tests/NestedUpcall/NestedUpCalls_i.h delete mode 100644 TAO/tests/NestedUpcall/NestedUpcall.dsw delete mode 100644 TAO/tests/NestedUpcall/README delete mode 100644 TAO/tests/NestedUpcall/Reactor.idl delete mode 100644 TAO/tests/NestedUpcall/client.cpp delete mode 100644 TAO/tests/NestedUpcall/client.dsp delete mode 100644 TAO/tests/NestedUpcall/client.h delete mode 100644 TAO/tests/NestedUpcall/eh_i.cpp delete mode 100644 TAO/tests/NestedUpcall/eh_i.h delete mode 100644 TAO/tests/NestedUpcall/reactor_i.cpp delete mode 100644 TAO/tests/NestedUpcall/reactor_i.h delete mode 100644 TAO/tests/NestedUpcall/server.cpp delete mode 100644 TAO/tests/NestedUpcall/server.dsp delete mode 100644 TAO/tests/NestedUpcall/server.h delete mode 100644 TAO/tests/NestedUpcall/svc.conf delete mode 100644 TAO/tests/OctetSeq/Makefile delete mode 100644 TAO/tests/OctetSeq/OctetSeq.cpp delete mode 100644 TAO/tests/OctetSeq/OctetSeq.dsp delete mode 100644 TAO/tests/OctetSeq/OctetSeq.dsw delete mode 100644 TAO/tests/OctetSeq/svc.conf delete mode 100644 TAO/tests/OctetSeq/test.idl delete mode 100644 TAO/tests/POA/DSI/DSI.DSW delete mode 100644 TAO/tests/POA/DSI/Database.idl delete mode 100644 TAO/tests/POA/DSI/Database_i.cpp delete mode 100644 TAO/tests/POA/DSI/Database_i.h delete mode 100644 TAO/tests/POA/DSI/Makefile delete mode 100644 TAO/tests/POA/DSI/client.cpp delete mode 100644 TAO/tests/POA/DSI/client.dsp delete mode 100644 TAO/tests/POA/DSI/server.cpp delete mode 100644 TAO/tests/POA/DSI/server.dsp delete mode 100644 TAO/tests/POA/Default_Servant/Default_Servant.dsw delete mode 100644 TAO/tests/POA/Default_Servant/File.idl delete mode 100644 TAO/tests/POA/Default_Servant/File_i.cpp delete mode 100644 TAO/tests/POA/Default_Servant/File_i.h delete mode 100644 TAO/tests/POA/Default_Servant/Makefile delete mode 100644 TAO/tests/POA/Default_Servant/README delete mode 100644 TAO/tests/POA/Default_Servant/client.cpp delete mode 100644 TAO/tests/POA/Default_Servant/client.dsp delete mode 100644 TAO/tests/POA/Default_Servant/server.cpp delete mode 100644 TAO/tests/POA/Default_Servant/server.dsp delete mode 100644 TAO/tests/POA/Default_Servant/svc.conf delete mode 100644 TAO/tests/POA/Explicit_Activation/Explicit_Activation.dsw delete mode 100644 TAO/tests/POA/Explicit_Activation/Makefile delete mode 100644 TAO/tests/POA/Explicit_Activation/README delete mode 100644 TAO/tests/POA/Explicit_Activation/server.cpp delete mode 100644 TAO/tests/POA/Explicit_Activation/server.dsp delete mode 100644 TAO/tests/POA/Explicit_Activation/svc.conf delete mode 100644 TAO/tests/POA/FindPOA/FindPOA.cpp delete mode 100644 TAO/tests/POA/FindPOA/FindPOA.dsp delete mode 100644 TAO/tests/POA/FindPOA/FindPOA.dsw delete mode 100644 TAO/tests/POA/FindPOA/Makefile delete mode 100644 TAO/tests/POA/FindPOA/README delete mode 100644 TAO/tests/POA/Forwarding/Foo.idl delete mode 100644 TAO/tests/POA/Forwarding/Forwarding.dsw delete mode 100644 TAO/tests/POA/Forwarding/Makefile delete mode 100644 TAO/tests/POA/Forwarding/MyFooServant.cpp delete mode 100644 TAO/tests/POA/Forwarding/MyFooServant.h delete mode 100644 TAO/tests/POA/Forwarding/README delete mode 100644 TAO/tests/POA/Forwarding/Servant_Locator.cpp delete mode 100644 TAO/tests/POA/Forwarding/Servant_Locator.h delete mode 100644 TAO/tests/POA/Forwarding/client.cpp delete mode 100644 TAO/tests/POA/Forwarding/client.dsp delete mode 100644 TAO/tests/POA/Forwarding/server.cpp delete mode 100644 TAO/tests/POA/Forwarding/server.dsp delete mode 100644 TAO/tests/POA/Forwarding/svc.conf delete mode 100644 TAO/tests/POA/Generic_Servant/Foo.idl delete mode 100644 TAO/tests/POA/Generic_Servant/Generic_Servant.dsw delete mode 100644 TAO/tests/POA/Generic_Servant/Makefile delete mode 100644 TAO/tests/POA/Generic_Servant/MyFooServant.cpp delete mode 100644 TAO/tests/POA/Generic_Servant/MyFooServant.h delete mode 100644 TAO/tests/POA/Generic_Servant/README delete mode 100644 TAO/tests/POA/Generic_Servant/client.cpp delete mode 100644 TAO/tests/POA/Generic_Servant/client.dsp delete mode 100644 TAO/tests/POA/Generic_Servant/generic_servant_export.h delete mode 100644 TAO/tests/POA/Generic_Servant/server.dsp delete mode 100644 TAO/tests/POA/Makefile delete mode 100644 TAO/tests/POA/NewPOA/Makefile delete mode 100644 TAO/tests/POA/NewPOA/NewPOA.cpp delete mode 100644 TAO/tests/POA/NewPOA/NewPOA.dsp delete mode 100644 TAO/tests/POA/NewPOA/NewPOA.dsw delete mode 100644 TAO/tests/POA/NewPOA/README delete mode 100644 TAO/tests/POA/On_Demand_Activation/Makefile delete mode 100644 TAO/tests/POA/On_Demand_Activation/On_Demand_Activation.dsw delete mode 100644 TAO/tests/POA/On_Demand_Activation/README delete mode 100644 TAO/tests/POA/On_Demand_Activation/Servant_Activator.cpp delete mode 100644 TAO/tests/POA/On_Demand_Activation/Servant_Activator.h delete mode 100644 TAO/tests/POA/On_Demand_Activation/Servant_Locator.cpp delete mode 100644 TAO/tests/POA/On_Demand_Activation/Servant_Locator.h delete mode 100644 TAO/tests/POA/On_Demand_Activation/server.cpp delete mode 100644 TAO/tests/POA/On_Demand_Activation/server.dsp delete mode 100644 TAO/tests/POA/On_Demand_Activation/svc.conf delete mode 100644 TAO/tests/POA/README delete mode 100644 TAO/tests/POA/RootPOA/Makefile delete mode 100644 TAO/tests/POA/RootPOA/README delete mode 100644 TAO/tests/POA/RootPOA/RootPOA.cpp delete mode 100644 TAO/tests/POA/RootPOA/RootPOA.dsp delete mode 100644 TAO/tests/POA/RootPOA/RootPOA.dsw delete mode 100644 TAO/tests/POA/TIE/Foo.idl delete mode 100644 TAO/tests/POA/TIE/Foo_i.cpp delete mode 100644 TAO/tests/POA/TIE/Foo_i.h delete mode 100644 TAO/tests/POA/TIE/Makefile delete mode 100644 TAO/tests/POA/TIE/TIE.dsw delete mode 100644 TAO/tests/POA/TIE/client.cpp delete mode 100644 TAO/tests/POA/TIE/client.dsp delete mode 100644 TAO/tests/POA/TIE/server.cpp delete mode 100644 TAO/tests/POA/TIE/server.dsp delete mode 100644 TAO/tests/POA/locking/Makefile delete mode 100644 TAO/tests/POA/locking/locking.cpp delete mode 100644 TAO/tests/POA/locking/locking.dsp delete mode 100644 TAO/tests/POA/locking/locking.dsw delete mode 100644 TAO/tests/Param_Test/Makefile delete mode 100644 TAO/tests/Param_Test/Param_Test.dsw delete mode 100644 TAO/tests/Param_Test/README delete mode 100644 TAO/tests/Param_Test/client.cpp delete mode 100644 TAO/tests/Param_Test/client.dsp delete mode 100644 TAO/tests/Param_Test/client.h delete mode 100644 TAO/tests/Param_Test/driver.cpp delete mode 100644 TAO/tests/Param_Test/driver.h delete mode 100644 TAO/tests/Param_Test/helper.cpp delete mode 100644 TAO/tests/Param_Test/helper.h delete mode 100644 TAO/tests/Param_Test/options.cpp delete mode 100644 TAO/tests/Param_Test/options.h delete mode 100644 TAO/tests/Param_Test/param_test.idl delete mode 100644 TAO/tests/Param_Test/param_test_i.cpp delete mode 100644 TAO/tests/Param_Test/param_test_i.h delete mode 100644 TAO/tests/Param_Test/results.cpp delete mode 100644 TAO/tests/Param_Test/results.h delete mode 100755 TAO/tests/Param_Test/run_test.pl delete mode 100755 TAO/tests/Param_Test/run_test.sh delete mode 100644 TAO/tests/Param_Test/server.cpp delete mode 100644 TAO/tests/Param_Test/server.dsp delete mode 100644 TAO/tests/Param_Test/svc.conf delete mode 100644 TAO/tests/Param_Test/tests.cpp delete mode 100644 TAO/tests/Param_Test/tests.h delete mode 100644 TAO/tests/Param_Test/tmplinst.cpp delete mode 100644 TAO/tests/Quoter/Documentation delete mode 100755 TAO/tests/Quoter/FactoryFinder.exe delete mode 100644 TAO/tests/Quoter/Factory_Finder.cpp delete mode 100644 TAO/tests/Quoter/Factory_Finder.dsp delete mode 100644 TAO/tests/Quoter/Factory_Finder.h delete mode 100644 TAO/tests/Quoter/Factory_Finder_Impl.cpp delete mode 100644 TAO/tests/Quoter/Factory_Finder_Impl.h delete mode 100644 TAO/tests/Quoter/Generic_Factory.cpp delete mode 100644 TAO/tests/Quoter/Generic_Factory.dsp delete mode 100644 TAO/tests/Quoter/Generic_Factory.h delete mode 100644 TAO/tests/Quoter/Generic_Factory_Impl.cpp delete mode 100644 TAO/tests/Quoter/Generic_Factory_Impl.h delete mode 100644 TAO/tests/Quoter/Makefile delete mode 100644 TAO/tests/Quoter/Quoter.dsw delete mode 100644 TAO/tests/Quoter/Quoter.idl delete mode 100644 TAO/tests/Quoter/Quoter_Impl.cpp delete mode 100644 TAO/tests/Quoter/Quoter_Impl.h delete mode 100644 TAO/tests/Quoter/README delete mode 100644 TAO/tests/Quoter/client.conf delete mode 100644 TAO/tests/Quoter/client.cpp delete mode 100644 TAO/tests/Quoter/client.dsp delete mode 100644 TAO/tests/Quoter/client.h delete mode 100644 TAO/tests/Quoter/ns.btm delete mode 100644 TAO/tests/Quoter/run_test.btm delete mode 100755 TAO/tests/Quoter/run_test.pl delete mode 100755 TAO/tests/Quoter/run_test.sh delete mode 100644 TAO/tests/Quoter/server.conf delete mode 100644 TAO/tests/Quoter/server.cpp delete mode 100644 TAO/tests/Quoter/server.dsp delete mode 100644 TAO/tests/Quoter/server.h delete mode 100644 TAO/tests/Quoter/sv.btm delete mode 100644 TAO/tests/Quoter/svc.conf delete mode 100755 TAO/tests/Quoter/testall.pl delete mode 100644 TAO/tests/README delete mode 100644 TAO/tests/Thruput/COOL/Makefile delete mode 100644 TAO/tests/Thruput/COOL/README delete mode 100644 TAO/tests/Thruput/COOL/client.cpp delete mode 100644 TAO/tests/Thruput/COOL/server.cpp delete mode 100644 TAO/tests/Thruput/COOL/ttcp.idl delete mode 100644 TAO/tests/Thruput/COOL/ttcp_decl.h delete mode 100644 TAO/tests/Thruput/COOL/ttcp_i.cpp delete mode 100644 TAO/tests/Thruput/COOL/ttcp_i.h delete mode 100644 TAO/tests/Thruput/COOL/utils.cpp delete mode 100644 TAO/tests/Thruput/CORBAplus/Makefile delete mode 100644 TAO/tests/Thruput/CORBAplus/README delete mode 100644 TAO/tests/Thruput/CORBAplus/client.cpp delete mode 100644 TAO/tests/Thruput/CORBAplus/extract delete mode 100644 TAO/tests/Thruput/CORBAplus/run delete mode 100644 TAO/tests/Thruput/CORBAplus/run_client delete mode 100644 TAO/tests/Thruput/CORBAplus/run_server delete mode 100644 TAO/tests/Thruput/CORBAplus/run_test delete mode 100644 TAO/tests/Thruput/CORBAplus/run_tests delete mode 100644 TAO/tests/Thruput/CORBAplus/server.cpp delete mode 100644 TAO/tests/Thruput/CORBAplus/ttcp.idl delete mode 100644 TAO/tests/Thruput/CORBAplus/ttcp_decl.h delete mode 100644 TAO/tests/Thruput/CORBAplus/ttcp_i.cpp delete mode 100644 TAO/tests/Thruput/CORBAplus/ttcp_i.h delete mode 100644 TAO/tests/Thruput/CORBAplus/utils.cpp delete mode 100644 TAO/tests/Thruput/Makefile delete mode 100644 TAO/tests/Thruput/Orbix/Client.cpp delete mode 100644 TAO/tests/Thruput/Orbix/Makefile delete mode 100644 TAO/tests/Thruput/Orbix/README delete mode 100644 TAO/tests/Thruput/Orbix/Srv_Main.cpp delete mode 100644 TAO/tests/Thruput/Orbix/extract delete mode 100644 TAO/tests/Thruput/Orbix/loop64 delete mode 100644 TAO/tests/Thruput/Orbix/orbixsol2s4.mk delete mode 100644 TAO/tests/Thruput/Orbix/run delete mode 100644 TAO/tests/Thruput/Orbix/run_client delete mode 100644 TAO/tests/Thruput/Orbix/run_server delete mode 100644 TAO/tests/Thruput/Orbix/run_test delete mode 100644 TAO/tests/Thruput/Orbix/run_tests delete mode 100644 TAO/tests/Thruput/Orbix/ttcp.idl delete mode 100644 TAO/tests/Thruput/Orbix/ttcp_decl.h delete mode 100644 TAO/tests/Thruput/Orbix/ttcp_i.cpp delete mode 100644 TAO/tests/Thruput/Orbix/ttcp_i.h delete mode 100644 TAO/tests/Thruput/Orbix/utils.cpp delete mode 100644 TAO/tests/Thruput/TAO/Makefile delete mode 100644 TAO/tests/Thruput/TAO/README delete mode 100644 TAO/tests/Thruput/TAO/client.cpp delete mode 100644 TAO/tests/Thruput/TAO/run delete mode 100644 TAO/tests/Thruput/TAO/run_client delete mode 100644 TAO/tests/Thruput/TAO/run_server delete mode 100644 TAO/tests/Thruput/TAO/run_test delete mode 100644 TAO/tests/Thruput/TAO/server.cpp delete mode 100644 TAO/tests/Thruput/TAO/svc.conf delete mode 100644 TAO/tests/Thruput/TAO/tmplinst.cpp delete mode 100644 TAO/tests/Thruput/TAO/ttcp.idl delete mode 100644 TAO/tests/Thruput/TAO/ttcp_decl.h delete mode 100644 TAO/tests/Thruput/TAO/ttcp_i.cpp delete mode 100644 TAO/tests/Thruput/TAO/ttcp_i.h delete mode 100644 TAO/tests/Thruput/TAO/utils.cpp delete mode 100644 VERSION delete mode 100644 WindozeCE/ACEApp.cpp delete mode 100644 WindozeCE/ACEApp.h delete mode 100644 WindozeCE/README delete mode 100644 WindozeCE/StdAfx.cpp delete mode 100644 WindozeCE/StdAfx.h delete mode 100644 WindozeCE/WindozeCE.aps delete mode 100644 WindozeCE/WindozeCE.clw delete mode 100644 WindozeCE/WindozeCE.cpp delete mode 100644 WindozeCE/WindozeCE.dsp delete mode 100644 WindozeCE/WindozeCE.h delete mode 100644 WindozeCE/WindozeCE.plg delete mode 100644 WindozeCE/WindozeCE.rc delete mode 100644 WindozeCE/WindozeCEDlg.cpp delete mode 100644 WindozeCE/WindozeCEDlg.h delete mode 100644 WindozeCE/res/WindozeCE.ico delete mode 100644 WindozeCE/res/WindozeCE.rc2 delete mode 100644 WindozeCE/resource.h delete mode 100644 ace/ACE.bpg delete mode 100644 ace/ACE.cpp delete mode 100644 ace/ACE.h delete mode 100644 ace/ACE.i delete mode 100644 ace/ACED.bpr delete mode 100644 ace/ACED.cpp delete mode 100644 ace/ACER.bpr delete mode 100644 ace/ACER.cpp delete mode 100644 ace/ACE_Library.mak delete mode 100644 ace/ACE_Library.mdp delete mode 100644 ace/ARGV.cpp delete mode 100644 ace/ARGV.h delete mode 100644 ace/ARGV.i delete mode 100644 ace/Acceptor.cpp delete mode 100644 ace/Acceptor.h delete mode 100644 ace/Acceptor.i delete mode 100644 ace/Activation_Queue.cpp delete mode 100644 ace/Activation_Queue.h delete mode 100644 ace/Activation_Queue.i delete mode 100644 ace/Addr.cpp delete mode 100644 ace/Addr.h delete mode 100644 ace/Addr.i delete mode 100644 ace/Arg_Shifter.cpp delete mode 100644 ace/Arg_Shifter.h delete mode 100644 ace/Array.cpp delete mode 100644 ace/Array.h delete mode 100644 ace/Array.i delete mode 100644 ace/Asynch_Acceptor.cpp delete mode 100644 ace/Asynch_Acceptor.h delete mode 100644 ace/Asynch_Acceptor.i delete mode 100644 ace/Asynch_IO.cpp delete mode 100644 ace/Asynch_IO.h delete mode 100644 ace/Asynch_IO.i delete mode 100644 ace/Atomic_Op.i delete mode 100644 ace/Auto_Ptr.cpp delete mode 100644 ace/Auto_Ptr.h delete mode 100644 ace/Auto_Ptr.i delete mode 100644 ace/Basic_Types.cpp delete mode 100644 ace/Basic_Types.h delete mode 100644 ace/Basic_Types.i delete mode 100644 ace/CLASSIX/Acceptor.cpp delete mode 100644 ace/CLASSIX/Acceptor.h delete mode 100644 ace/CLASSIX/Acceptor.i delete mode 100644 ace/CLASSIX/Addr.cpp delete mode 100644 ace/CLASSIX/Addr.h delete mode 100644 ace/CLASSIX/Addr.i delete mode 100644 ace/CLASSIX/Connector.cpp delete mode 100644 ace/CLASSIX/Connector.h delete mode 100644 ace/CLASSIX/Connector.i delete mode 100644 ace/CLASSIX/Dgram_Mcast.cpp delete mode 100644 ace/CLASSIX/Dgram_Mcast.h delete mode 100644 ace/CLASSIX/Group.cpp delete mode 100644 ace/CLASSIX/Group.h delete mode 100644 ace/CLASSIX/Group.i delete mode 100644 ace/CLASSIX/Group_Dynamic.cpp delete mode 100644 ace/CLASSIX/Group_Dynamic.h delete mode 100644 ace/CLASSIX/Group_Dynamic.i delete mode 100644 ace/CLASSIX/Group_Stamp.cpp delete mode 100644 ace/CLASSIX/Group_Stamp.h delete mode 100644 ace/CLASSIX/Group_Stamp.i delete mode 100644 ace/CLASSIX/OS.cpp delete mode 100644 ace/CLASSIX/OS.h delete mode 100644 ace/CLASSIX/OS.i delete mode 100644 ace/CLASSIX/Peer_SAP.cpp delete mode 100644 ace/CLASSIX/Peer_SAP.h delete mode 100644 ace/CLASSIX/Peer_SAP.i delete mode 100644 ace/CLASSIX/Port.cpp delete mode 100644 ace/CLASSIX/Port.h delete mode 100644 ace/CLASSIX/Port.i delete mode 100644 ace/CLASSIX/Port_Core.cpp delete mode 100644 ace/CLASSIX/Port_Core.h delete mode 100644 ace/CLASSIX/Port_Core.i delete mode 100644 ace/CLASSIX/Port_Default.cpp delete mode 100644 ace/CLASSIX/Port_Default.h delete mode 100644 ace/CLASSIX/Port_Default.i delete mode 100644 ace/CLASSIX/SAP.cpp delete mode 100644 ace/CLASSIX/SAP.h delete mode 100644 ace/CLASSIX/SAP.i delete mode 100644 ace/CLASSIX/Select_Reactor.cpp delete mode 100644 ace/CLASSIX/Select_Reactor.h delete mode 100644 ace/CLASSIX/Stream.cpp delete mode 100644 ace/CLASSIX/Stream.h delete mode 100644 ace/CLASSIX/Stream.i delete mode 100644 ace/CORBA_Handler.cpp delete mode 100644 ace/CORBA_Handler.h delete mode 100644 ace/CORBA_Handler.i delete mode 100644 ace/CORBA_Ref.cpp delete mode 100644 ace/CORBA_Ref.h delete mode 100644 ace/CORBA_Ref.i delete mode 100644 ace/Connector.cpp delete mode 100644 ace/Connector.h delete mode 100644 ace/Connector.i delete mode 100644 ace/Containers.cpp delete mode 100644 ace/Containers.h delete mode 100644 ace/Containers.i delete mode 100644 ace/DEV.cpp delete mode 100644 ace/DEV.h delete mode 100644 ace/DEV.i delete mode 100644 ace/DEV_Addr.cpp delete mode 100644 ace/DEV_Addr.h delete mode 100644 ace/DEV_Addr.i delete mode 100644 ace/DEV_Connector.cpp delete mode 100644 ace/DEV_Connector.h delete mode 100644 ace/DEV_Connector.i delete mode 100644 ace/DEV_IO.cpp delete mode 100644 ace/DEV_IO.h delete mode 100644 ace/DEV_IO.i delete mode 100644 ace/Date_Time.cpp delete mode 100644 ace/Date_Time.h delete mode 100644 ace/Date_Time.i delete mode 100644 ace/Dump.cpp delete mode 100644 ace/Dump.h delete mode 100644 ace/Dump_T.cpp delete mode 100644 ace/Dump_T.h delete mode 100644 ace/Dynamic.cpp delete mode 100644 ace/Dynamic.h delete mode 100644 ace/Dynamic.i delete mode 100644 ace/Dynamic_Service.cpp delete mode 100644 ace/Dynamic_Service.h delete mode 100644 ace/Dynamic_Service.i delete mode 100644 ace/Env_Value_T.cpp delete mode 100644 ace/Env_Value_T.h delete mode 100644 ace/Env_Value_T.i delete mode 100644 ace/Event_Handler.cpp delete mode 100644 ace/Event_Handler.h delete mode 100644 ace/Event_Handler.i delete mode 100644 ace/Event_Handler_T.cpp delete mode 100644 ace/Event_Handler_T.h delete mode 100644 ace/Event_Handler_T.i delete mode 100644 ace/FIFO.cpp delete mode 100644 ace/FIFO.h delete mode 100644 ace/FIFO.i delete mode 100644 ace/FIFO_Recv.cpp delete mode 100644 ace/FIFO_Recv.h delete mode 100644 ace/FIFO_Recv.i delete mode 100644 ace/FIFO_Recv_Msg.cpp delete mode 100644 ace/FIFO_Recv_Msg.h delete mode 100644 ace/FIFO_Recv_Msg.i delete mode 100644 ace/FIFO_Send.cpp delete mode 100644 ace/FIFO_Send.h delete mode 100644 ace/FIFO_Send.i delete mode 100644 ace/FIFO_Send_Msg.cpp delete mode 100644 ace/FIFO_Send_Msg.h delete mode 100644 ace/FIFO_Send_Msg.i delete mode 100644 ace/FILE.cpp delete mode 100644 ace/FILE.h delete mode 100644 ace/FILE.i delete mode 100644 ace/FILE_Addr.cpp delete mode 100644 ace/FILE_Addr.h delete mode 100644 ace/FILE_Addr.i delete mode 100644 ace/FILE_Connector.cpp delete mode 100644 ace/FILE_Connector.h delete mode 100644 ace/FILE_Connector.i delete mode 100644 ace/FILE_IO.cpp delete mode 100644 ace/FILE_IO.h delete mode 100644 ace/FILE_IO.i delete mode 100644 ace/Filecache.cpp delete mode 100644 ace/Filecache.h delete mode 100644 ace/Free_List.cpp delete mode 100644 ace/Free_List.h delete mode 100644 ace/Free_List.i delete mode 100644 ace/Future.cpp delete mode 100644 ace/Future.h delete mode 100644 ace/Get_Opt.cpp delete mode 100644 ace/Get_Opt.h delete mode 100644 ace/Get_Opt.i delete mode 100644 ace/Handle_Set.cpp delete mode 100644 ace/Handle_Set.h delete mode 100644 ace/Handle_Set.i delete mode 100644 ace/Hash_Map_Manager.cpp delete mode 100644 ace/Hash_Map_Manager.h delete mode 100644 ace/High_Res_Timer.cpp delete mode 100644 ace/High_Res_Timer.h delete mode 100644 ace/High_Res_Timer.i delete mode 100644 ace/INET_Addr.cpp delete mode 100644 ace/INET_Addr.h delete mode 100644 ace/INET_Addr.i delete mode 100644 ace/IOStream.cpp delete mode 100644 ace/IOStream.h delete mode 100644 ace/IOStream_T.cpp delete mode 100644 ace/IOStream_T.h delete mode 100644 ace/IOStream_T.i delete mode 100644 ace/IO_Cntl_Msg.cpp delete mode 100644 ace/IO_Cntl_Msg.h delete mode 100644 ace/IO_Cntl_Msg.i delete mode 100644 ace/IO_SAP.cpp delete mode 100644 ace/IO_SAP.h delete mode 100644 ace/IO_SAP.i delete mode 100644 ace/IPC_SAP.cpp delete mode 100644 ace/IPC_SAP.h delete mode 100644 ace/IPC_SAP.i delete mode 100644 ace/LOCK_SOCK_Acceptor.cpp delete mode 100644 ace/LOCK_SOCK_Acceptor.h delete mode 100644 ace/LSOCK.cpp delete mode 100644 ace/LSOCK.h delete mode 100644 ace/LSOCK.i delete mode 100644 ace/LSOCK_Acceptor.cpp delete mode 100644 ace/LSOCK_Acceptor.h delete mode 100644 ace/LSOCK_Acceptor.i delete mode 100644 ace/LSOCK_CODgram.cpp delete mode 100644 ace/LSOCK_CODgram.h delete mode 100644 ace/LSOCK_CODgram.i delete mode 100644 ace/LSOCK_Connector.cpp delete mode 100644 ace/LSOCK_Connector.h delete mode 100644 ace/LSOCK_Connector.i delete mode 100644 ace/LSOCK_Dgram.cpp delete mode 100644 ace/LSOCK_Dgram.h delete mode 100644 ace/LSOCK_Dgram.i delete mode 100644 ace/LSOCK_Stream.cpp delete mode 100644 ace/LSOCK_Stream.h delete mode 100644 ace/LSOCK_Stream.i delete mode 100644 ace/Local_Name_Space.cpp delete mode 100644 ace/Local_Name_Space.h delete mode 100644 ace/Local_Name_Space_T.cpp delete mode 100644 ace/Local_Name_Space_T.h delete mode 100644 ace/Local_Tokens.cpp delete mode 100644 ace/Local_Tokens.h delete mode 100644 ace/Local_Tokens.i delete mode 100644 ace/Log_Msg.cpp delete mode 100644 ace/Log_Msg.h delete mode 100644 ace/Log_Msg.i delete mode 100644 ace/Log_Priority.h delete mode 100644 ace/Log_Record.cpp delete mode 100644 ace/Log_Record.h delete mode 100644 ace/Log_Record.i delete mode 100644 ace/Makefile delete mode 100644 ace/Malloc.cpp delete mode 100644 ace/Malloc.h delete mode 100644 ace/Malloc.i delete mode 100644 ace/Malloc_Base.h delete mode 100644 ace/Malloc_T.cpp delete mode 100644 ace/Malloc_T.h delete mode 100644 ace/Malloc_T.i delete mode 100644 ace/Managed_Object.cpp delete mode 100644 ace/Managed_Object.h delete mode 100644 ace/Managed_Object.i delete mode 100644 ace/Map_Manager.cpp delete mode 100644 ace/Map_Manager.h delete mode 100644 ace/Map_Manager.i delete mode 100644 ace/Mem_Map.cpp delete mode 100644 ace/Mem_Map.h delete mode 100644 ace/Mem_Map.i delete mode 100644 ace/Memory_Pool.cpp delete mode 100644 ace/Memory_Pool.h delete mode 100644 ace/Memory_Pool.i delete mode 100644 ace/Message_Block.cpp delete mode 100644 ace/Message_Block.h delete mode 100644 ace/Message_Block.i delete mode 100644 ace/Message_Queue.cpp delete mode 100644 ace/Message_Queue.h delete mode 100644 ace/Message_Queue.i delete mode 100644 ace/Method_Object.cpp delete mode 100644 ace/Method_Object.h delete mode 100644 ace/Module.cpp delete mode 100644 ace/Module.h delete mode 100644 ace/Module.i delete mode 100644 ace/Msg_WFMO_Reactor.cpp delete mode 100644 ace/Msg_WFMO_Reactor.h delete mode 100644 ace/Msg_WFMO_Reactor.i delete mode 100644 ace/Multiplexor.cpp delete mode 100644 ace/Multiplexor.h delete mode 100644 ace/Multiplexor.i delete mode 100644 ace/Name_Proxy.cpp delete mode 100644 ace/Name_Proxy.h delete mode 100644 ace/Name_Request_Reply.cpp delete mode 100644 ace/Name_Request_Reply.h delete mode 100644 ace/Name_Space.cpp delete mode 100644 ace/Name_Space.h delete mode 100644 ace/Naming_Context.cpp delete mode 100644 ace/Naming_Context.h delete mode 100644 ace/OS.cpp delete mode 100644 ace/OS.h delete mode 100644 ace/OS.i delete mode 100644 ace/Object_Manager.cpp delete mode 100644 ace/Object_Manager.h delete mode 100644 ace/Object_Manager.i delete mode 100644 ace/Obstack.cpp delete mode 100644 ace/Obstack.h delete mode 100644 ace/Obstack.i delete mode 100644 ace/Parse_Node.cpp delete mode 100644 ace/Parse_Node.h delete mode 100644 ace/Parse_Node.i delete mode 100644 ace/Pipe.cpp delete mode 100644 ace/Pipe.h delete mode 100644 ace/Pipe.i delete mode 100644 ace/Priority_Reactor.cpp delete mode 100644 ace/Priority_Reactor.h delete mode 100644 ace/Priority_Reactor.i delete mode 100644 ace/Proactor.cpp delete mode 100644 ace/Proactor.h delete mode 100644 ace/Proactor.i delete mode 100644 ace/Process.cpp delete mode 100644 ace/Process.h delete mode 100644 ace/Process.i delete mode 100644 ace/Process_Manager.cpp delete mode 100644 ace/Process_Manager.h delete mode 100644 ace/Process_Manager.i delete mode 100644 ace/Profile_Timer.cpp delete mode 100644 ace/Profile_Timer.h delete mode 100644 ace/Profile_Timer.i delete mode 100644 ace/RB_Tree.cpp delete mode 100644 ace/RB_Tree.h delete mode 100644 ace/RB_Tree.i delete mode 100644 ace/README delete mode 100644 ace/Reactor.cpp delete mode 100644 ace/Reactor.h delete mode 100644 ace/Reactor.i delete mode 100644 ace/Reactor_Impl.h delete mode 100644 ace/Read_Buffer.cpp delete mode 100644 ace/Read_Buffer.h delete mode 100644 ace/Read_Buffer.i delete mode 100644 ace/Registry.cpp delete mode 100644 ace/Registry.h delete mode 100644 ace/Registry_Name_Space.cpp delete mode 100644 ace/Registry_Name_Space.h delete mode 100644 ace/Remote_Name_Space.cpp delete mode 100644 ace/Remote_Name_Space.h delete mode 100644 ace/Remote_Tokens.cpp delete mode 100644 ace/Remote_Tokens.h delete mode 100644 ace/Remote_Tokens.i delete mode 100644 ace/SOCK.cpp delete mode 100644 ace/SOCK.h delete mode 100644 ace/SOCK.i delete mode 100644 ace/SOCK_Acceptor.cpp delete mode 100644 ace/SOCK_Acceptor.h delete mode 100644 ace/SOCK_Acceptor.i delete mode 100644 ace/SOCK_CODgram.cpp delete mode 100644 ace/SOCK_CODgram.h delete mode 100644 ace/SOCK_CODgram.i delete mode 100644 ace/SOCK_Connector.cpp delete mode 100644 ace/SOCK_Connector.h delete mode 100644 ace/SOCK_Connector.i delete mode 100644 ace/SOCK_Dgram.cpp delete mode 100644 ace/SOCK_Dgram.h delete mode 100644 ace/SOCK_Dgram.i delete mode 100644 ace/SOCK_Dgram_Bcast.cpp delete mode 100644 ace/SOCK_Dgram_Bcast.h delete mode 100644 ace/SOCK_Dgram_Bcast.i delete mode 100644 ace/SOCK_Dgram_Mcast.cpp delete mode 100644 ace/SOCK_Dgram_Mcast.h delete mode 100644 ace/SOCK_Dgram_Mcast.i delete mode 100644 ace/SOCK_IO.cpp delete mode 100644 ace/SOCK_IO.h delete mode 100644 ace/SOCK_IO.i delete mode 100644 ace/SOCK_Stream.cpp delete mode 100644 ace/SOCK_Stream.h delete mode 100644 ace/SOCK_Stream.i delete mode 100644 ace/SPIPE.cpp delete mode 100644 ace/SPIPE.h delete mode 100644 ace/SPIPE.i delete mode 100644 ace/SPIPE_Acceptor.cpp delete mode 100644 ace/SPIPE_Acceptor.h delete mode 100644 ace/SPIPE_Acceptor.i delete mode 100644 ace/SPIPE_Addr.cpp delete mode 100644 ace/SPIPE_Addr.h delete mode 100644 ace/SPIPE_Addr.i delete mode 100644 ace/SPIPE_Connector.cpp delete mode 100644 ace/SPIPE_Connector.h delete mode 100644 ace/SPIPE_Connector.i delete mode 100644 ace/SPIPE_Stream.cpp delete mode 100644 ace/SPIPE_Stream.h delete mode 100644 ace/SPIPE_Stream.i delete mode 100644 ace/SString.cpp delete mode 100644 ace/SString.h delete mode 100644 ace/SString.i delete mode 100644 ace/SV_Message.cpp delete mode 100644 ace/SV_Message.h delete mode 100644 ace/SV_Message.i delete mode 100644 ace/SV_Message_Queue.cpp delete mode 100644 ace/SV_Message_Queue.h delete mode 100644 ace/SV_Message_Queue.i delete mode 100644 ace/SV_Semaphore_Complex.cpp delete mode 100644 ace/SV_Semaphore_Complex.h delete mode 100644 ace/SV_Semaphore_Complex.i delete mode 100644 ace/SV_Semaphore_Simple.cpp delete mode 100644 ace/SV_Semaphore_Simple.h delete mode 100644 ace/SV_Semaphore_Simple.i delete mode 100644 ace/SV_Shared_Memory.cpp delete mode 100644 ace/SV_Shared_Memory.h delete mode 100644 ace/SV_Shared_Memory.i delete mode 100644 ace/Sched_Params.cpp delete mode 100644 ace/Sched_Params.h delete mode 100644 ace/Sched_Params.i delete mode 100644 ace/Select_Reactor.cpp delete mode 100644 ace/Select_Reactor.h delete mode 100644 ace/Select_Reactor.i delete mode 100644 ace/Service_Config.cpp delete mode 100644 ace/Service_Config.h delete mode 100644 ace/Service_Config.i delete mode 100644 ace/Service_Manager.cpp delete mode 100644 ace/Service_Manager.h delete mode 100644 ace/Service_Manager.i delete mode 100644 ace/Service_Object.cpp delete mode 100644 ace/Service_Object.h delete mode 100644 ace/Service_Object.i delete mode 100644 ace/Service_Repository.cpp delete mode 100644 ace/Service_Repository.h delete mode 100644 ace/Service_Repository.i delete mode 100644 ace/Service_Types.cpp delete mode 100644 ace/Service_Types.h delete mode 100644 ace/Service_Types.i delete mode 100644 ace/Shared_Memory.cpp delete mode 100644 ace/Shared_Memory.h delete mode 100644 ace/Shared_Memory_MM.cpp delete mode 100644 ace/Shared_Memory_MM.h delete mode 100644 ace/Shared_Memory_MM.i delete mode 100644 ace/Shared_Memory_SV.cpp delete mode 100644 ace/Shared_Memory_SV.h delete mode 100644 ace/Shared_Memory_SV.i delete mode 100644 ace/Shared_Object.cpp delete mode 100644 ace/Shared_Object.h delete mode 100644 ace/Shared_Object.i delete mode 100644 ace/Signal.cpp delete mode 100644 ace/Signal.h delete mode 100644 ace/Signal.i delete mode 100644 ace/Singleton.cpp delete mode 100644 ace/Singleton.h delete mode 100644 ace/Singleton.i delete mode 100644 ace/Stats.cpp delete mode 100644 ace/Stats.h delete mode 100644 ace/Stats.i delete mode 100644 ace/Strategies.cpp delete mode 100644 ace/Strategies.h delete mode 100644 ace/Strategies.i delete mode 100644 ace/Strategies_T.cpp delete mode 100644 ace/Strategies_T.h delete mode 100644 ace/Strategies_T.i delete mode 100644 ace/Stream.cpp delete mode 100644 ace/Stream.h delete mode 100644 ace/Stream.i delete mode 100644 ace/Stream_Modules.cpp delete mode 100644 ace/Stream_Modules.h delete mode 100644 ace/Stream_Modules.i delete mode 100644 ace/Svc_Conf.h delete mode 100644 ace/Svc_Conf.l delete mode 100644 ace/Svc_Conf.y delete mode 100644 ace/Svc_Conf_Tokens.h delete mode 100644 ace/Svc_Conf_l.cpp delete mode 100644 ace/Svc_Conf_y.cpp delete mode 100644 ace/Svc_Handler.cpp delete mode 100644 ace/Svc_Handler.h delete mode 100644 ace/Svc_Handler.i delete mode 100644 ace/Synch.cpp delete mode 100644 ace/Synch.h delete mode 100644 ace/Synch.i delete mode 100644 ace/Synch_Options.cpp delete mode 100644 ace/Synch_Options.h delete mode 100644 ace/Synch_Options.i delete mode 100644 ace/Synch_T.cpp delete mode 100644 ace/Synch_T.h delete mode 100644 ace/Synch_T.i delete mode 100644 ace/System_Time.cpp delete mode 100644 ace/System_Time.h delete mode 100644 ace/TLI.cpp delete mode 100644 ace/TLI.h delete mode 100644 ace/TLI.i delete mode 100644 ace/TLI_Acceptor.cpp delete mode 100644 ace/TLI_Acceptor.h delete mode 100644 ace/TLI_Acceptor.i delete mode 100644 ace/TLI_Connector.cpp delete mode 100644 ace/TLI_Connector.h delete mode 100644 ace/TLI_Connector.i delete mode 100644 ace/TLI_Stream.cpp delete mode 100644 ace/TLI_Stream.h delete mode 100644 ace/TLI_Stream.i delete mode 100644 ace/TTY_IO.cpp delete mode 100644 ace/TTY_IO.h delete mode 100644 ace/Task.cpp delete mode 100644 ace/Task.h delete mode 100644 ace/Task.i delete mode 100644 ace/Task_T.cpp delete mode 100644 ace/Task_T.h delete mode 100644 ace/Task_T.i delete mode 100644 ace/Thread.cpp delete mode 100644 ace/Thread.h delete mode 100644 ace/Thread.i delete mode 100644 ace/Thread_Manager.cpp delete mode 100644 ace/Thread_Manager.h delete mode 100644 ace/Thread_Manager.i delete mode 100644 ace/Time_Request_Reply.cpp delete mode 100644 ace/Time_Request_Reply.h delete mode 100644 ace/Time_Value.h delete mode 100644 ace/Timeprobe.cpp delete mode 100644 ace/Timeprobe.h delete mode 100644 ace/Timeprobe.i delete mode 100644 ace/Timeprobe_T.cpp delete mode 100644 ace/Timeprobe_T.h delete mode 100644 ace/Timer_Hash.cpp delete mode 100644 ace/Timer_Hash.h delete mode 100644 ace/Timer_Hash_T.cpp delete mode 100644 ace/Timer_Hash_T.h delete mode 100644 ace/Timer_Heap.cpp delete mode 100644 ace/Timer_Heap.h delete mode 100644 ace/Timer_Heap_T.cpp delete mode 100644 ace/Timer_Heap_T.h delete mode 100644 ace/Timer_List.cpp delete mode 100644 ace/Timer_List.h delete mode 100644 ace/Timer_List_T.cpp delete mode 100644 ace/Timer_List_T.h delete mode 100644 ace/Timer_Queue.cpp delete mode 100644 ace/Timer_Queue.h delete mode 100644 ace/Timer_Queue.i delete mode 100644 ace/Timer_Queue_Adapters.cpp delete mode 100644 ace/Timer_Queue_Adapters.h delete mode 100644 ace/Timer_Queue_Adapters.i delete mode 100644 ace/Timer_Queue_T.cpp delete mode 100644 ace/Timer_Queue_T.h delete mode 100644 ace/Timer_Queue_T.i delete mode 100644 ace/Timer_Wheel.cpp delete mode 100644 ace/Timer_Wheel.h delete mode 100644 ace/Timer_Wheel_T.cpp delete mode 100644 ace/Timer_Wheel_T.h delete mode 100644 ace/Token.cpp delete mode 100644 ace/Token.h delete mode 100644 ace/Token.i delete mode 100644 ace/Token_Collection.cpp delete mode 100644 ace/Token_Collection.h delete mode 100644 ace/Token_Collection.i delete mode 100644 ace/Token_Invariants.cpp delete mode 100644 ace/Token_Invariants.h delete mode 100644 ace/Token_Invariants.i delete mode 100644 ace/Token_Manager.cpp delete mode 100644 ace/Token_Manager.h delete mode 100644 ace/Token_Manager.i delete mode 100644 ace/Token_Request_Reply.cpp delete mode 100644 ace/Token_Request_Reply.h delete mode 100644 ace/Token_Request_Reply.i delete mode 100644 ace/Trace.cpp delete mode 100644 ace/Trace.h delete mode 100644 ace/Trace.i delete mode 100644 ace/Typed_SV_Message.cpp delete mode 100644 ace/Typed_SV_Message.h delete mode 100644 ace/Typed_SV_Message.i delete mode 100644 ace/Typed_SV_Message_Queue.cpp delete mode 100644 ace/Typed_SV_Message_Queue.h delete mode 100644 ace/Typed_SV_Message_Queue.i delete mode 100644 ace/UNIX_Addr.cpp delete mode 100644 ace/UNIX_Addr.h delete mode 100644 ace/UNIX_Addr.i delete mode 100644 ace/UPIPE_Acceptor.cpp delete mode 100644 ace/UPIPE_Acceptor.h delete mode 100644 ace/UPIPE_Acceptor.i delete mode 100644 ace/UPIPE_Addr.h delete mode 100644 ace/UPIPE_Connector.cpp delete mode 100644 ace/UPIPE_Connector.h delete mode 100644 ace/UPIPE_Connector.i delete mode 100644 ace/UPIPE_Stream.cpp delete mode 100644 ace/UPIPE_Stream.h delete mode 100644 ace/UPIPE_Stream.i delete mode 100644 ace/Version.h delete mode 100644 ace/WFMO_Reactor.cpp delete mode 100644 ace/WFMO_Reactor.h delete mode 100644 ace/WFMO_Reactor.i delete mode 100644 ace/XtReactor.cpp delete mode 100644 ace/XtReactor.h delete mode 100644 ace/ace.dsw delete mode 100644 ace/ace_bcc.ide delete mode 100644 ace/ace_ce.dsw delete mode 100644 ace/ace_ce_dll.cfg delete mode 100644 ace/ace_ce_dll.dsp delete mode 100644 ace/ace_dll.dsp delete mode 100644 ace/ace_lib.dsp delete mode 100644 ace/config-WinCE.h delete mode 100644 ace/config-aix-3.2.5.h delete mode 100644 ace/config-aix-4.1.x.h delete mode 100644 ace/config-aix-4.2.x.h delete mode 100644 ace/config-chorus.h delete mode 100644 ace/config-dgux-4.11-epc.h delete mode 100644 ace/config-dgux-4.x-ghs.h delete mode 100644 ace/config-freebsd-pthread.h delete mode 100644 ace/config-freebsd.h delete mode 100644 ace/config-fsu-pthread.h delete mode 100644 ace/config-g++-common.h delete mode 100644 ace/config-hpux-10.x-g++.h delete mode 100644 ace/config-hpux-10.x-hpc++.h delete mode 100644 ace/config-hpux-10.x.h delete mode 100644 ace/config-hpux-11.x-hpc++.h delete mode 100644 ace/config-hpux-9.x-orbix.h delete mode 100644 ace/config-hpux-9.x.h delete mode 100644 ace/config-hpux11.h delete mode 100644 ace/config-irix5.2.h delete mode 100644 ace/config-irix5.3-g++.h delete mode 100644 ace/config-irix5.3-sgic++.h delete mode 100644 ace/config-irix6.x-g++.h delete mode 100644 ace/config-irix6.x-sgic++-nothreads.h delete mode 100644 ace/config-irix6.x-sgic++.h delete mode 100644 ace/config-kcc-common.h delete mode 100644 ace/config-linux-common.h delete mode 100644 ace/config-linux-lxpthreads.h delete mode 100644 ace/config-linux-pthread.h delete mode 100644 ace/config-linux.h delete mode 100644 ace/config-lynxos.h delete mode 100644 ace/config-m88k.h delete mode 100644 ace/config-mit-pthread.h delete mode 100644 ace/config-mvs.h delete mode 100644 ace/config-netbsd.h delete mode 100644 ace/config-osf1-3.2.h delete mode 100644 ace/config-osf1-4.0.h delete mode 100644 ace/config-psosim-g++.h delete mode 100644 ace/config-sco-4.2-nothread.h delete mode 100644 ace/config-sco-5.0.0-fsu-pthread.h delete mode 100644 ace/config-sco-5.0.0-mit-pthread.h delete mode 100644 ace/config-sco-5.0.0-nothread.h delete mode 100644 ace/config-sco-5.0.0.h delete mode 100644 ace/config-sunos4-g++.h delete mode 100644 ace/config-sunos4-lucid3.2.h delete mode 100644 ace/config-sunos4-sun3.x.h delete mode 100644 ace/config-sunos4-sun4.1.4.h delete mode 100644 ace/config-sunos4-sun4.x-orbix.h delete mode 100644 ace/config-sunos4-sun4.x.h delete mode 100644 ace/config-sunos5.4-centerline-2.x.h delete mode 100644 ace/config-sunos5.4-g++.h delete mode 100644 ace/config-sunos5.4-sunc++-4.x-orbix.h delete mode 100644 ace/config-sunos5.4-sunc++-4.x.h delete mode 100644 ace/config-sunos5.5-g++.h delete mode 100644 ace/config-sunos5.5-sunc++-4.x.h delete mode 100644 ace/config-sunos5.5.h delete mode 100644 ace/config-sunos5.6.h delete mode 100644 ace/config-sunos5.x-sunc++-4.x-orbix.h delete mode 100644 ace/config-sunx86-sunc++-4.x.h delete mode 100644 ace/config-tandem.h delete mode 100644 ace/config-unixware-2.01-g++.h delete mode 100644 ace/config-unixware-2.1.2-g++.h delete mode 100644 ace/config-vxworks5.x.h delete mode 100644 ace/config-win32-common.h delete mode 100644 ace/config-win32.h delete mode 100644 ace/gethrtime.cpp delete mode 100644 ace/inc_user_config.h delete mode 100644 ace/iosfwd.h delete mode 100644 ace/makefile-light delete mode 100644 ace/streams.h delete mode 100644 ace/sys_conf.h delete mode 100644 ace/ws2tcpip.h delete mode 100644 apps/Gateway/Gateway/Channel.cpp delete mode 100644 apps/Gateway/Gateway/Channel.h delete mode 100644 apps/Gateway/Gateway/Channel_Connector.cpp delete mode 100644 apps/Gateway/Gateway/Channel_Connector.h delete mode 100644 apps/Gateway/Gateway/Concrete_Connection_Handlers.cpp delete mode 100644 apps/Gateway/Gateway/Concrete_Connection_Handlers.h delete mode 100644 apps/Gateway/Gateway/Concurrency_Strategies.h delete mode 100644 apps/Gateway/Gateway/Config_Files.cpp delete mode 100644 apps/Gateway/Gateway/Config_Files.h delete mode 100644 apps/Gateway/Gateway/Connection_Handler.cpp delete mode 100644 apps/Gateway/Gateway/Connection_Handler.h delete mode 100644 apps/Gateway/Gateway/Connection_Handler_Acceptor.cpp delete mode 100644 apps/Gateway/Gateway/Connection_Handler_Acceptor.h delete mode 100644 apps/Gateway/Gateway/Connection_Handler_Connector.cpp delete mode 100644 apps/Gateway/Gateway/Connection_Handler_Connector.h delete mode 100644 apps/Gateway/Gateway/Consumer_Dispatch_Set.h delete mode 100644 apps/Gateway/Gateway/Consumer_Entry.cpp delete mode 100644 apps/Gateway/Gateway/Consumer_Entry.h delete mode 100644 apps/Gateway/Gateway/Consumer_Map.cpp delete mode 100644 apps/Gateway/Gateway/Consumer_Map.h delete mode 100644 apps/Gateway/Gateway/Dispatch_Set.h delete mode 100644 apps/Gateway/Gateway/Event.h delete mode 100644 apps/Gateway/Gateway/Event_Channel.cpp delete mode 100644 apps/Gateway/Gateway/Event_Channel.h delete mode 100644 apps/Gateway/Gateway/Event_Forwarding_Discriminator.cpp delete mode 100644 apps/Gateway/Gateway/Event_Forwarding_Discriminator.h delete mode 100644 apps/Gateway/Gateway/File_Parser.cpp delete mode 100644 apps/Gateway/Gateway/File_Parser.h delete mode 100644 apps/Gateway/Gateway/Gateway.cpp delete mode 100644 apps/Gateway/Gateway/Gateway.dsp delete mode 100644 apps/Gateway/Gateway/Gateway.dsw delete mode 100644 apps/Gateway/Gateway/Gateway.h delete mode 100644 apps/Gateway/Gateway/Gateway4.mak delete mode 100644 apps/Gateway/Gateway/Gateway4.mdp delete mode 100644 apps/Gateway/Gateway/IO_Handler.cpp delete mode 100644 apps/Gateway/Gateway/IO_Handler.h delete mode 100644 apps/Gateway/Gateway/IO_Handler_Connector.cpp delete mode 100644 apps/Gateway/Gateway/IO_Handler_Connector.h delete mode 100644 apps/Gateway/Gateway/Makefile delete mode 100644 apps/Gateway/Gateway/Options.cpp delete mode 100644 apps/Gateway/Gateway/Options.h delete mode 100644 apps/Gateway/Gateway/Peer_Message.h delete mode 100644 apps/Gateway/Gateway/Routing_Entry.cpp delete mode 100644 apps/Gateway/Gateway/Routing_Entry.h delete mode 100644 apps/Gateway/Gateway/Routing_Table.cpp delete mode 100644 apps/Gateway/Gateway/Routing_Table.h delete mode 100644 apps/Gateway/Gateway/Thr_Channel.cpp delete mode 100644 apps/Gateway/Gateway/Thr_Channel.h delete mode 100644 apps/Gateway/Gateway/Thr_IO_Handler.cpp delete mode 100644 apps/Gateway/Gateway/Thr_IO_Handler.h delete mode 100644 apps/Gateway/Gateway/Thr_Proxy_Handler.cpp delete mode 100644 apps/Gateway/Gateway/Thr_Proxy_Handler.h delete mode 100644 apps/Gateway/Gateway/cc_config delete mode 100644 apps/Gateway/Gateway/connection_config delete mode 100644 apps/Gateway/Gateway/consumer_config delete mode 100644 apps/Gateway/Gateway/gatewayd.cpp delete mode 100644 apps/Gateway/Gateway/gatewayd.dsp delete mode 100644 apps/Gateway/Gateway/rt_config delete mode 100644 apps/Gateway/Gateway/svc.conf delete mode 100644 apps/Gateway/Makefile delete mode 100644 apps/Gateway/Peer/Event.h delete mode 100644 apps/Gateway/Peer/Gateway_Handler.cpp delete mode 100644 apps/Gateway/Peer/Gateway_Handler.h delete mode 100644 apps/Gateway/Peer/Makefile delete mode 100644 apps/Gateway/Peer/Options.cpp delete mode 100644 apps/Gateway/Peer/Options.h delete mode 100644 apps/Gateway/Peer/Peer.cpp delete mode 100644 apps/Gateway/Peer/Peer.dsp delete mode 100644 apps/Gateway/Peer/Peer.dsw delete mode 100644 apps/Gateway/Peer/Peer.h delete mode 100644 apps/Gateway/Peer/Peer4.mak delete mode 100644 apps/Gateway/Peer/Peer4.mdp delete mode 100644 apps/Gateway/Peer/Peer_Message.h delete mode 100644 apps/Gateway/Peer/peerd.cpp delete mode 100644 apps/Gateway/Peer/peerd.dsp delete mode 100644 apps/Gateway/Peer/svc.conf delete mode 100644 apps/Gateway/README delete mode 100644 apps/JAWS/ChangeLog delete mode 100644 apps/JAWS/Makefile delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10.h delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10_Parse.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10_Read.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10_Request.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_10_Write.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_Policy.cpp delete mode 100644 apps/JAWS/PROTOTYPE/HTTP_Policy.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Concurrency.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Concurrency.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Data_Block.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Data_Block.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Export.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO_Acceptor.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO_Handler.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/IO_State.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/JAWS.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Makefile delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline_Handler.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Pipeline_Tasks.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Policy.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Policy.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Server.cpp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/Server.h delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/jaws.dsp delete mode 100644 apps/JAWS/PROTOTYPE/JAWS/jaws.dsw delete mode 100644 apps/JAWS/PROTOTYPE/Makefile delete mode 100644 apps/JAWS/PROTOTYPE/main.cpp delete mode 100644 apps/JAWS/README delete mode 100644 apps/JAWS/clients/Blobby/Blob.cpp delete mode 100644 apps/JAWS/clients/Blobby/Blob.h delete mode 100644 apps/JAWS/clients/Blobby/Blob_Handler.cpp delete mode 100644 apps/JAWS/clients/Blobby/Blob_Handler.h delete mode 100644 apps/JAWS/clients/Blobby/Makefile delete mode 100644 apps/JAWS/clients/Blobby/Options.cpp delete mode 100644 apps/JAWS/clients/Blobby/Options.h delete mode 100644 apps/JAWS/clients/Blobby/README delete mode 100644 apps/JAWS/clients/Blobby/blobby.cpp delete mode 100644 apps/JAWS/clients/Blobby/blobby.mak delete mode 100644 apps/JAWS/clients/Blobby/blobby.mdp delete mode 100644 apps/JAWS/clients/Caching/Caching.mak delete mode 100644 apps/JAWS/clients/Caching/Caching.mdp delete mode 100644 apps/JAWS/clients/Caching/ID_Generator.cpp delete mode 100644 apps/JAWS/clients/Caching/ID_Generator.h delete mode 100644 apps/JAWS/clients/Caching/Local_Locator.cpp delete mode 100644 apps/JAWS/clients/Caching/Local_Locator.h delete mode 100644 apps/JAWS/clients/Caching/Local_Locator.i delete mode 100644 apps/JAWS/clients/Caching/Locator_Request_Reply.cpp delete mode 100644 apps/JAWS/clients/Caching/Locator_Request_Reply.h delete mode 100644 apps/JAWS/clients/Caching/Locator_Request_Reply.i delete mode 100644 apps/JAWS/clients/Caching/Makefile delete mode 100644 apps/JAWS/clients/Caching/README delete mode 100644 apps/JAWS/clients/Caching/URL_Array_Helper.cpp delete mode 100644 apps/JAWS/clients/Caching/URL_Array_Helper.h delete mode 100644 apps/JAWS/clients/Caching/URL_Locator.cpp delete mode 100644 apps/JAWS/clients/Caching/URL_Locator.h delete mode 100644 apps/JAWS/clients/Caching/URL_Locator.i delete mode 100644 apps/JAWS/clients/Caching/URL_Properties.cpp delete mode 100644 apps/JAWS/clients/Caching/URL_Properties.h delete mode 100644 apps/JAWS/clients/Caching/URL_Properties.i delete mode 100644 apps/JAWS/clients/Caching/http_client.cpp delete mode 100644 apps/JAWS/clients/Caching/http_handler.cpp delete mode 100644 apps/JAWS/clients/Caching/http_handler.h delete mode 100644 apps/JAWS/clients/Caching/test_URL.cpp delete mode 100644 apps/JAWS/clients/Makefile delete mode 100644 apps/JAWS/clients/README delete mode 100644 apps/JAWS/clients/WebSTONE/COPYING delete mode 100644 apps/JAWS/clients/WebSTONE/README delete mode 100644 apps/JAWS/clients/WebSTONE/README.DynamicWorkload delete mode 100644 apps/JAWS/clients/WebSTONE/README.FIRST delete mode 100644 apps/JAWS/clients/WebSTONE/WEBSTONE-VERSION-2.0 delete mode 100755 apps/JAWS/clients/WebSTONE/bin/WebStone-common.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/WebStone-manage.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/WebStone-run.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/WebStone-setup.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/checkfilelist delete mode 100755 apps/JAWS/clients/WebSTONE/bin/genfiles delete mode 100755 apps/JAWS/clients/WebSTONE/bin/genfiles-from-filelist.sh delete mode 100755 apps/JAWS/clients/WebSTONE/bin/gui-configure delete mode 100755 apps/JAWS/clients/WebSTONE/bin/killbench delete mode 100755 apps/JAWS/clients/WebSTONE/bin/killbench.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/mine-logs.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/move-filelist.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/move-runs.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/rebootall delete mode 100755 apps/JAWS/clients/WebSTONE/bin/runbench delete mode 100755 apps/JAWS/clients/WebSTONE/bin/runbench.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/tabs2html delete mode 100755 apps/JAWS/clients/WebSTONE/bin/view-results.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/webstone-gui.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/write-testbed.pl delete mode 100755 apps/JAWS/clients/WebSTONE/bin/wscollect.pl delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.cgi-heavy delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-heavy delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-light delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.dynamic-medium delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.homepage delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.sample delete mode 100644 apps/JAWS/clients/WebSTONE/conf/filelist.standard delete mode 100644 apps/JAWS/clients/WebSTONE/conf/fileset delete mode 100755 apps/JAWS/clients/WebSTONE/conf/paths.pl delete mode 100644 apps/JAWS/clients/WebSTONE/conf/paths.pl.old delete mode 100644 apps/JAWS/clients/WebSTONE/conf/paths.sh delete mode 100644 apps/JAWS/clients/WebSTONE/conf/paths.sh.old delete mode 100644 apps/JAWS/clients/WebSTONE/conf/testbed delete mode 100644 apps/JAWS/clients/WebSTONE/doc/COPYING delete mode 100644 apps/JAWS/clients/WebSTONE/doc/FAQ-webstone.html delete mode 100644 apps/JAWS/clients/WebSTONE/doc/LICENSE.html delete mode 100644 apps/JAWS/clients/WebSTONE/doc/WebStone.html delete mode 100755 apps/JAWS/clients/WebSTONE/doc/testbed.help delete mode 100644 apps/JAWS/clients/WebSTONE/doc/webstone-white-paper.ps delete mode 100644 apps/JAWS/clients/WebSTONE/doc/webstone.gif delete mode 100644 apps/JAWS/clients/WebSTONE/doc/webstone2.html delete mode 100644 apps/JAWS/clients/WebSTONE/src/Makefile delete mode 100644 apps/JAWS/clients/WebSTONE/src/Makefile.in delete mode 100755 apps/JAWS/clients/WebSTONE/src/README delete mode 100644 apps/JAWS/clients/WebSTONE/src/acconfig.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/bench.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/bench.h delete mode 100755 apps/JAWS/clients/WebSTONE/src/cgi-send delete mode 100644 apps/JAWS/clients/WebSTONE/src/cgi-send.c delete mode 100755 apps/JAWS/clients/WebSTONE/src/client/webclient.mak delete mode 100644 apps/JAWS/clients/WebSTONE/src/config.cache delete mode 100755 apps/JAWS/clients/WebSTONE/src/config.guess delete mode 100644 apps/JAWS/clients/WebSTONE/src/config.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/config.h.in delete mode 100644 apps/JAWS/clients/WebSTONE/src/config.log delete mode 100755 apps/JAWS/clients/WebSTONE/src/config.status delete mode 100755 apps/JAWS/clients/WebSTONE/src/config.sub delete mode 100755 apps/JAWS/clients/WebSTONE/src/configure delete mode 100644 apps/JAWS/clients/WebSTONE/src/configure.in delete mode 100644 apps/JAWS/clients/WebSTONE/src/debug.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/errexit.c delete mode 100755 apps/JAWS/clients/WebSTONE/src/gendata/genrand.mak delete mode 100644 apps/JAWS/clients/WebSTONE/src/genrand.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/get.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/get.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/getopt.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/gettimeofday.c delete mode 100755 apps/JAWS/clients/WebSTONE/src/install-sh delete mode 100644 apps/JAWS/clients/WebSTONE/src/logfile27859 delete mode 100755 apps/JAWS/clients/WebSTONE/src/master/webmaster.mak delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/buffer.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/cinfo.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/crit.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/daemon.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/dll.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/ereport.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/eventlog.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/file.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/minissl.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nodelock.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/nterrors.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/objndx.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/pblock.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/sem.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/session.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shexp.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/shmem.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systems.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/systhr.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/util.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/conf.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/dnfilter.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/func.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/http.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/httpact.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/ipfilter.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/log.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/object.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/objset.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/protocol.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/req.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/frame/servact.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-includes/netsite.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/nsapi-send.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/parse_file_list.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/parse_file_list.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/rexec.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/statistics.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/statistics.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/sysdep.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/sysdep.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/timefunc.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/timefunc.h delete mode 100644 apps/JAWS/clients/WebSTONE/src/webclient.c delete mode 100644 apps/JAWS/clients/WebSTONE/src/webmaster.c delete mode 100755 apps/JAWS/clients/WebSTONE/webstone delete mode 100755 apps/JAWS/remora/app/Makefile delete mode 100644 apps/JAWS/remora/app/Remora_Export.cc delete mode 100644 apps/JAWS/remora/app/Remora_Export.h delete mode 100644 apps/JAWS/remora/app/Remora_Export.i delete mode 100644 apps/JAWS/remora/app/Remora_Import.cc delete mode 100644 apps/JAWS/remora/app/Remora_Import.h delete mode 100644 apps/JAWS/remora/app/Remora_Import.i delete mode 100644 apps/JAWS/remora/app/remora.idl delete mode 100755 apps/JAWS/remora/app/stdmk delete mode 100644 apps/JAWS/remora/app/test.cc delete mode 100644 apps/JAWS/server/HTTP_Config.cpp delete mode 100644 apps/JAWS/server/HTTP_Config.h delete mode 100644 apps/JAWS/server/HTTP_Handler.cpp delete mode 100644 apps/JAWS/server/HTTP_Handler.h delete mode 100644 apps/JAWS/server/HTTP_Helpers.cpp delete mode 100644 apps/JAWS/server/HTTP_Helpers.h delete mode 100644 apps/JAWS/server/HTTP_Request.cpp delete mode 100644 apps/JAWS/server/HTTP_Request.h delete mode 100644 apps/JAWS/server/HTTP_Response.cpp delete mode 100644 apps/JAWS/server/HTTP_Response.h delete mode 100644 apps/JAWS/server/HTTP_Server.cpp delete mode 100644 apps/JAWS/server/HTTP_Server.h delete mode 100644 apps/JAWS/server/IO.cpp delete mode 100644 apps/JAWS/server/IO.h delete mode 100644 apps/JAWS/server/JAWS_Concurrency.cpp delete mode 100644 apps/JAWS/server/JAWS_Concurrency.h delete mode 100644 apps/JAWS/server/JAWS_Pipeline.cpp delete mode 100644 apps/JAWS/server/JAWS_Pipeline.h delete mode 100644 apps/JAWS/server/JAWS_Pipeline_Handler.cpp delete mode 100644 apps/JAWS/server/JAWS_Pipeline_Handler.h delete mode 100644 apps/JAWS/server/Makefile delete mode 100644 apps/JAWS/server/Parse_Headers.cpp delete mode 100644 apps/JAWS/server/Parse_Headers.h delete mode 100644 apps/JAWS/server/README delete mode 100644 apps/JAWS/server/jaws.auth delete mode 100644 apps/JAWS/server/jaws.dsp delete mode 100644 apps/JAWS/server/jaws.dsw delete mode 100644 apps/JAWS/server/jaws4.mak delete mode 100644 apps/JAWS/server/jaws4.mdp delete mode 100644 apps/JAWS/server/main.cpp delete mode 100644 apps/JAWS/server/svc.conf delete mode 100755 apps/JAWS/server/test.cgi delete mode 100644 apps/JAWS/stress_testing/Makefile delete mode 100644 apps/JAWS/stress_testing/README delete mode 100644 apps/JAWS/stress_testing/benchd.cpp delete mode 100644 apps/JAWS/stress_testing/client.h delete mode 100644 apps/JAWS/stress_testing/clients.mak delete mode 100644 apps/JAWS/stress_testing/clients.mdp delete mode 100644 apps/JAWS/stress_testing/config delete mode 100644 apps/JAWS/stress_testing/connection.cpp delete mode 100644 apps/JAWS/stress_testing/connection.h delete mode 100644 apps/JAWS/stress_testing/cp.cpp delete mode 100644 apps/JAWS/stress_testing/cp.h delete mode 100644 apps/JAWS/stress_testing/global.h delete mode 100644 apps/JAWS/stress_testing/http.h delete mode 100644 apps/JAWS/stress_testing/http_tester.cpp delete mode 100644 apps/JAWS/stress_testing/out delete mode 100644 apps/JAWS/stress_testing/stats.cpp delete mode 100644 apps/JAWS/stress_testing/stats.h delete mode 100644 apps/JAWS/stress_testing/util.cpp delete mode 100644 apps/JAWS/stress_testing/util.h delete mode 100644 apps/Makefile delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/Input_Handler.h delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/Makefile delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/Notification_Receiver_Handler.h delete mode 100644 apps/Orbix-Examples/Event_Comm/Consumer/consumer.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/Makefile delete mode 100644 apps/Orbix-Examples/Event_Comm/README delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/Input_Handler.h delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/Makefile delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/Notifier_Handler.h delete mode 100644 apps/Orbix-Examples/Event_Comm/Supplier/supplier.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/include/Event_Comm.hh delete mode 100644 apps/Orbix-Examples/Event_Comm/include/Event_Comm_i.h delete mode 100644 apps/Orbix-Examples/Event_Comm/include/Notification_Receiver_i.h delete mode 100644 apps/Orbix-Examples/Event_Comm/include/Notifier_i.h delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.hh delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm.idl delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Event_CommC.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Event_CommS.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Event_Comm_i.h delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Makefile delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notification.idl delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver.idl delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notification_Receiver_i.h delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notifier.idl delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.cpp delete mode 100644 apps/Orbix-Examples/Event_Comm/libsrc/Notifier_i.h delete mode 100644 apps/Orbix-Examples/Logger/Logger.cpp delete mode 100644 apps/Orbix-Examples/Logger/Logger.h delete mode 100644 apps/Orbix-Examples/Logger/Makefile delete mode 100644 apps/Orbix-Examples/Logger/Orbix.hostgroups delete mode 100644 apps/Orbix-Examples/Logger/Orbix.hosts delete mode 100644 apps/Orbix-Examples/Logger/README delete mode 100644 apps/Orbix-Examples/Logger/a1.tex delete mode 100644 apps/Orbix-Examples/Logger/client.cpp delete mode 100644 apps/Orbix-Examples/Logger/logger.hh delete mode 100644 apps/Orbix-Examples/Logger/logger.idl delete mode 100644 apps/Orbix-Examples/Logger/loggerS.cpp delete mode 100644 apps/Orbix-Examples/Logger/logger_i.cpp delete mode 100644 apps/Orbix-Examples/Logger/logger_i.h delete mode 100644 apps/Orbix-Examples/Logger/server.cpp delete mode 100644 apps/Orbix-Examples/Makefile delete mode 100644 apps/README delete mode 100644 apps/gperf/COPYING delete mode 100644 apps/gperf/ChangeLog delete mode 100644 apps/gperf/Makefile delete mode 100644 apps/gperf/README delete mode 100644 apps/gperf/gperf.1 delete mode 100644 apps/gperf/gperf.info delete mode 100644 apps/gperf/gperf.texi delete mode 100644 apps/gperf/src/Bool_Array.cpp delete mode 100644 apps/gperf/src/Bool_Array.h delete mode 100644 apps/gperf/src/Gen_Perf.cpp delete mode 100644 apps/gperf/src/Gen_Perf.h delete mode 100644 apps/gperf/src/Hash_Table.cpp delete mode 100644 apps/gperf/src/Hash_Table.h delete mode 100644 apps/gperf/src/Iterator.cpp delete mode 100644 apps/gperf/src/Iterator.h delete mode 100644 apps/gperf/src/Key_List.cpp delete mode 100644 apps/gperf/src/Key_List.h delete mode 100644 apps/gperf/src/List_Node.cpp delete mode 100644 apps/gperf/src/List_Node.h delete mode 100644 apps/gperf/src/Makefile delete mode 100644 apps/gperf/src/Options.cpp delete mode 100644 apps/gperf/src/Options.h delete mode 100644 apps/gperf/src/Vectors.cpp delete mode 100644 apps/gperf/src/Vectors.h delete mode 100644 apps/gperf/src/Version.cpp delete mode 100644 apps/gperf/src/gperf.cpp delete mode 100644 apps/gperf/src/new.cpp delete mode 100644 apps/gperf/tests/Makefile delete mode 100644 apps/gperf/tests/ada-pred.exp delete mode 100644 apps/gperf/tests/ada-res.exp delete mode 100644 apps/gperf/tests/ada.gperf delete mode 100644 apps/gperf/tests/adadefs.gperf delete mode 100644 apps/gperf/tests/c++.gperf delete mode 100644 apps/gperf/tests/c-parse.gperf delete mode 100644 apps/gperf/tests/c.exp delete mode 100644 apps/gperf/tests/c.gperf delete mode 100644 apps/gperf/tests/gpc.gperf delete mode 100644 apps/gperf/tests/gplus.gperf delete mode 100644 apps/gperf/tests/irc.gperf delete mode 100644 apps/gperf/tests/makeinfo.gperf delete mode 100644 apps/gperf/tests/modula.exp delete mode 100644 apps/gperf/tests/modula2.gperf delete mode 100644 apps/gperf/tests/modula3.gperf delete mode 100644 apps/gperf/tests/pascal.exp delete mode 100644 apps/gperf/tests/pascal.gperf delete mode 100644 apps/gperf/tests/test-1.exp delete mode 100644 apps/gperf/tests/test-2.exp delete mode 100644 apps/gperf/tests/test-3.exp delete mode 100644 apps/gperf/tests/test-4.exp delete mode 100644 apps/gperf/tests/test-5.exp delete mode 100644 apps/gperf/tests/test-6.exp delete mode 100644 apps/gperf/tests/test-7.exp delete mode 100644 apps/gperf/tests/test.cpp delete mode 100644 bin/Makefile delete mode 100644 bin/Process.pm delete mode 100644 bin/Process_Unix.pm delete mode 100644 bin/Process_Win32.pm delete mode 100644 bin/README.html delete mode 100755 bin/Service_Config.perl delete mode 100755 bin/ace_ld delete mode 100755 bin/auto_compile delete mode 100755 bin/auto_compile_wrapper delete mode 100755 bin/auto_ptr.perl delete mode 100755 bin/class2hxxcxx delete mode 100755 bin/class2hxxcxxsingle delete mode 100755 bin/class2info delete mode 100644 bin/class2info.awk delete mode 100755 bin/class2man delete mode 100755 bin/class2mml delete mode 100755 bin/class2src delete mode 100755 bin/classinfo.ps delete mode 100644 bin/clone.1 delete mode 100644 bin/clone.cpp delete mode 100644 bin/clone.csh delete mode 100755 bin/create_ace_build delete mode 100755 bin/dsp2dsp.pl delete mode 100755 bin/g++dep delete mode 100644 bin/hiding.fmt delete mode 100755 bin/html-windex delete mode 100755 bin/indent_macros.perl delete mode 100755 bin/info2doc.awk delete mode 100644 bin/info2doc.fmt delete mode 100755 bin/info2head delete mode 100644 bin/info2head.fmt delete mode 100755 bin/info2headsrc delete mode 100755 bin/info2man delete mode 100755 bin/info2mml delete mode 100755 bin/info2src delete mode 100755 bin/info2src.awk delete mode 100755 bin/make_release delete mode 100755 bin/man2html delete mode 100644 bin/man2html1.awk delete mode 100644 bin/man2html2.awk delete mode 100755 bin/rename-ace.pl delete mode 100755 bin/vendor.fmt delete mode 100644 docs/ACE-inheritance.pdf.gz delete mode 100644 docs/ACE-inheritance.ps.gz delete mode 100644 docs/ACE-lessons.html delete mode 100644 docs/CE-status.txt delete mode 100644 etc/ACE-guidelines.html delete mode 100644 etc/README delete mode 100644 etc/Svc_Conf_l.cpp.diff delete mode 100644 etc/Svc_Conf_y.cpp.diff delete mode 100755 etc/create-jace-release delete mode 100644 etc/purify.solaris2 delete mode 100644 examples/ASX/CCM_App/CCM_App.cpp delete mode 100644 examples/ASX/CCM_App/Makefile delete mode 100644 examples/ASX/CCM_App/SC_Client.cpp delete mode 100644 examples/ASX/CCM_App/SC_Server.cpp delete mode 100644 examples/ASX/CCM_App/svc.conf delete mode 100644 examples/ASX/Event_Server/Event_Server/Consumer_Router.cpp delete mode 100644 examples/ASX/Event_Server/Event_Server/Consumer_Router.h delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Analyzer.cpp delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Analyzer.h delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Server.dsp delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Server.dsw delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Server.mak delete mode 100644 examples/ASX/Event_Server/Event_Server/Event_Server.mdp delete mode 100644 examples/ASX/Event_Server/Event_Server/Makefile delete mode 100644 examples/ASX/Event_Server/Event_Server/Options.cpp delete mode 100644 examples/ASX/Event_Server/Event_Server/Options.h delete mode 100644 examples/ASX/Event_Server/Event_Server/Options.i delete mode 100644 examples/ASX/Event_Server/Event_Server/Peer_Router.cpp delete mode 100644 examples/ASX/Event_Server/Event_Server/Peer_Router.h delete mode 100644 examples/ASX/Event_Server/Event_Server/Supplier_Router.cpp delete mode 100644 examples/ASX/Event_Server/Event_Server/Supplier_Router.h delete mode 100644 examples/ASX/Event_Server/Event_Server/event_server.cpp delete mode 100644 examples/ASX/Event_Server/Makefile delete mode 100644 examples/ASX/Event_Server/README delete mode 100644 examples/ASX/Event_Server/Transceiver/Makefile delete mode 100644 examples/ASX/Event_Server/Transceiver/transceiver.cpp delete mode 100644 examples/ASX/Event_Server/Transceiver/transceiver.dsp delete mode 100644 examples/ASX/Event_Server/Transceiver/transceiver.dsw delete mode 100644 examples/ASX/Event_Server/Transceiver/transceiver.mak delete mode 100644 examples/ASX/Event_Server/Transceiver/transceiver.mdp delete mode 100644 examples/ASX/Makefile delete mode 100644 examples/ASX/Message_Queue/Bounded_Buffer.dsp delete mode 100644 examples/ASX/Message_Queue/Buffer_Stream.dsp delete mode 100644 examples/ASX/Message_Queue/Makefile delete mode 100644 examples/ASX/Message_Queue/Message_Queue_Example.dsw delete mode 100644 examples/ASX/Message_Queue/Priority_Buffer.dsp delete mode 100644 examples/ASX/Message_Queue/bounded_buffer.cpp delete mode 100644 examples/ASX/Message_Queue/buffer_stream.cpp delete mode 100644 examples/ASX/Message_Queue/priority_buffer.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Consumer_Router.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Consumer_Router.h delete mode 100644 examples/ASX/UPIPE_Event_Server/Event_Analyzer.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Event_Analyzer.h delete mode 100644 examples/ASX/UPIPE_Event_Server/Makefile delete mode 100644 examples/ASX/UPIPE_Event_Server/Options.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Options.h delete mode 100644 examples/ASX/UPIPE_Event_Server/Options.i delete mode 100644 examples/ASX/UPIPE_Event_Server/Peer_Router.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Peer_Router.h delete mode 100644 examples/ASX/UPIPE_Event_Server/Supplier_Router.cpp delete mode 100644 examples/ASX/UPIPE_Event_Server/Supplier_Router.h delete mode 100644 examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsp delete mode 100644 examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.dsw delete mode 100644 examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.mak delete mode 100644 examples/ASX/UPIPE_Event_Server/UPIPE_Event_Server.mdp delete mode 100644 examples/ASX/UPIPE_Event_Server/event_server.cpp delete mode 100644 examples/CORBA/Makefile delete mode 100644 examples/CORBA/Test.idl delete mode 100644 examples/CORBA/Test_i.cpp delete mode 100644 examples/CORBA/Test_i.h delete mode 100644 examples/CORBA/client.cpp delete mode 100644 examples/CORBA/server.cpp delete mode 100644 examples/Connection/Makefile delete mode 100644 examples/Connection/blocking/README delete mode 100644 examples/Connection/blocking/SPIPE-acceptor.cpp delete mode 100644 examples/Connection/blocking/SPIPE-acceptor.h delete mode 100644 examples/Connection/blocking/SPIPE-connector.cpp delete mode 100644 examples/Connection/blocking/SPIPE-connector.h delete mode 100644 examples/Connection/blocking/SPIPE.dsp delete mode 100644 examples/Connection/blocking/SPIPE.dsw delete mode 100644 examples/Connection/blocking/SPIPE.mak delete mode 100644 examples/Connection/blocking/SPIPE.mdp delete mode 100644 examples/Connection/blocking/acceptor.dsp delete mode 100644 examples/Connection/blocking/test_spipe_acceptor.cpp delete mode 100644 examples/Connection/blocking/test_spipe_connector.cpp delete mode 100644 examples/Connection/misc/Connection_Handler.cpp delete mode 100644 examples/Connection/misc/Makefile delete mode 100644 examples/Connection/misc/test_upipe.cpp delete mode 100644 examples/Connection/non_blocking/CPP-acceptor.cpp delete mode 100644 examples/Connection/non_blocking/CPP-acceptor.h delete mode 100644 examples/Connection/non_blocking/CPP-connector.cpp delete mode 100644 examples/Connection/non_blocking/CPP-connector.h delete mode 100644 examples/Connection/non_blocking/Makefile delete mode 100644 examples/Connection/non_blocking/README delete mode 100644 examples/Connection/non_blocking/non_blocking.dsp delete mode 100644 examples/Connection/non_blocking/non_blocking.dsw delete mode 100644 examples/Connection/non_blocking/non_blocking.mak delete mode 100644 examples/Connection/non_blocking/non_blocking.mdp delete mode 100644 examples/Connection/non_blocking/server.dsp delete mode 100644 examples/Connection/non_blocking/test_lsock_acceptor.cpp delete mode 100644 examples/Connection/non_blocking/test_lsock_connector.cpp delete mode 100644 examples/Connection/non_blocking/test_sock_acceptor.cpp delete mode 100644 examples/Connection/non_blocking/test_sock_connector.cpp delete mode 100644 examples/Connection/non_blocking/test_spipe_acceptor.cpp delete mode 100644 examples/Connection/non_blocking/test_spipe_connector.cpp delete mode 100644 examples/Connection/non_blocking/test_tli_acceptor.cpp delete mode 100644 examples/Connection/non_blocking/test_tli_connector.cpp delete mode 100644 examples/IOStream/Makefile delete mode 100644 examples/IOStream/README delete mode 100644 examples/IOStream/client/Makefile delete mode 100644 examples/IOStream/client/iostream_client.cpp delete mode 100644 examples/IOStream/server/Makefile delete mode 100644 examples/IOStream/server/iostream_server.cpp delete mode 100644 examples/IPC_SAP/DEV_SAP/Makefile delete mode 100644 examples/IPC_SAP/DEV_SAP/README delete mode 100644 examples/IPC_SAP/DEV_SAP/reader/Makefile delete mode 100644 examples/IPC_SAP/DEV_SAP/reader/reader.cpp delete mode 100644 examples/IPC_SAP/DEV_SAP/writer/Makefile delete mode 100644 examples/IPC_SAP/DEV_SAP/writer/writer.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/FIFO-Msg-client.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/FIFO-Msg-server.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/FIFO-client.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/FIFO-server.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/FIFO-test.cpp delete mode 100644 examples/IPC_SAP/FIFO_SAP/Makefile delete mode 100644 examples/IPC_SAP/FILE_SAP/File_sap.dsw delete mode 100644 examples/IPC_SAP/FILE_SAP/Makefile delete mode 100644 examples/IPC_SAP/FILE_SAP/client.cpp delete mode 100644 examples/IPC_SAP/FILE_SAP/client.dsp delete mode 100644 examples/IPC_SAP/FILE_SAP/testfile delete mode 100644 examples/IPC_SAP/Makefile delete mode 100644 examples/IPC_SAP/SOCK_SAP/C-inclient.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/C-inserver.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-inclient.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-inserver-fancy.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-inserver-poll.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-inserver.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-unclient.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP-unserver.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP_inclient.dsp delete mode 100644 examples/IPC_SAP/SOCK_SAP/CPP_inserver.dsp delete mode 100644 examples/IPC_SAP/SOCK_SAP/C_inserver.dsp delete mode 100644 examples/IPC_SAP/SOCK_SAP/FD-unclient.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/FD-unserver.cpp delete mode 100644 examples/IPC_SAP/SOCK_SAP/Makefile delete mode 100644 examples/IPC_SAP/SOCK_SAP/README delete mode 100644 examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsp delete mode 100644 examples/IPC_SAP/SOCK_SAP/SOCK_SAP.dsw delete mode 100644 examples/IPC_SAP/SOCK_SAP/SOCK_SAP.mak delete mode 100644 examples/IPC_SAP/SOCK_SAP/SOCK_SAP.mdp delete mode 100644 examples/IPC_SAP/SOCK_SAP/local_data delete mode 100644 examples/IPC_SAP/SPIPE_SAP/Makefile delete mode 100644 examples/IPC_SAP/SPIPE_SAP/NPClient.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/NPServer.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/client.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/consumer_msg.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/consumer_read.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/producer_msg.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/producer_read.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/server.cpp delete mode 100644 examples/IPC_SAP/SPIPE_SAP/shared.h delete mode 100644 examples/IPC_SAP/TLI_SAP/CPP-client.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/CPP-server.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/Makefile delete mode 100644 examples/IPC_SAP/TLI_SAP/db-client.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/db-server.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/ftp-client.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/ftp-server.cpp delete mode 100644 examples/IPC_SAP/TLI_SAP/signal_thread.c delete mode 100644 examples/IPC_SAP/UPIPE_SAP/Makefile delete mode 100644 examples/IPC_SAP/UPIPE_SAP/auto_builtin_ptr.h delete mode 100644 examples/IPC_SAP/UPIPE_SAP/ex1.cpp delete mode 100644 examples/IPC_SAP/UPIPE_SAP/ex2.cpp delete mode 100644 examples/IPC_SAP/UPIPE_SAP/ex3.cpp delete mode 100644 examples/Log_Msg/Log_Msg.dsp delete mode 100644 examples/Log_Msg/Log_Msg.mak delete mode 100644 examples/Log_Msg/Log_Msg.mdp delete mode 100644 examples/Log_Msg/Makefile delete mode 100644 examples/Log_Msg/README delete mode 100644 examples/Log_Msg/test_log_msg.cpp delete mode 100644 examples/Logger/Acceptor-server/Makefile delete mode 100644 examples/Logger/Acceptor-server/server_loggerd.cpp delete mode 100644 examples/Logger/Acceptor-server/server_loggerd.dsp delete mode 100644 examples/Logger/Acceptor-server/server_loggerd.dsw delete mode 100644 examples/Logger/Acceptor-server/server_loggerd.mak delete mode 100644 examples/Logger/Acceptor-server/server_loggerd.mdp delete mode 100644 examples/Logger/Makefile delete mode 100644 examples/Logger/README delete mode 100644 examples/Logger/client/Makefile delete mode 100644 examples/Logger/client/client.dsp delete mode 100644 examples/Logger/client/client.dsw delete mode 100644 examples/Logger/client/client.mak delete mode 100644 examples/Logger/client/client.mdp delete mode 100644 examples/Logger/client/logging_app.cpp delete mode 100644 examples/Logger/simple-server/Logging_Acceptor.cpp delete mode 100644 examples/Logger/simple-server/Logging_Acceptor.h delete mode 100644 examples/Logger/simple-server/Logging_Handler.cpp delete mode 100644 examples/Logger/simple-server/Logging_Handler.h delete mode 100644 examples/Logger/simple-server/Makefile delete mode 100644 examples/Logger/simple-server/Reactor_Singleton.h delete mode 100644 examples/Logger/simple-server/server_loggerd.cpp delete mode 100644 examples/Logger/simple-server/server_loggerd.dsp delete mode 100644 examples/Logger/simple-server/server_loggerd.dsw delete mode 100644 examples/Logger/simple-server/server_loggerd.mak delete mode 100644 examples/Logger/simple-server/server_loggerd.mdp delete mode 100644 examples/Makefile delete mode 100644 examples/Map_Manager/Makefile delete mode 100644 examples/Map_Manager/test_hash_map_manager.cpp delete mode 100644 examples/Mem_Map/IO-tests/IO_Test.cpp delete mode 100644 examples/Mem_Map/IO-tests/IO_Test.h delete mode 100644 examples/Mem_Map/IO-tests/Makefile delete mode 100644 examples/Mem_Map/IO-tests/test_io.cpp delete mode 100644 examples/Mem_Map/Makefile delete mode 100644 examples/Mem_Map/file-reverse/Makefile delete mode 100644 examples/Mem_Map/file-reverse/file-reverse.cpp delete mode 100644 examples/Mem_Map/file-reverse/file_reverse.dsp delete mode 100644 examples/Mem_Map/file-reverse/file_reverse.dsw delete mode 100644 examples/Misc/Makefile delete mode 100644 examples/Misc/test_XtReactor1.cpp delete mode 100644 examples/Misc/test_XtReactor2.cpp delete mode 100644 examples/Misc/test_dump.cpp delete mode 100644 examples/Misc/test_get_opt.cpp delete mode 100644 examples/Misc/test_profile_timer.cpp delete mode 100644 examples/Misc/test_read_buffer.cpp delete mode 100644 examples/Misc/test_set.cpp delete mode 100644 examples/Misc/test_sstring.cpp delete mode 100644 examples/Misc/test_trace.cpp delete mode 100644 examples/Naming/Makefile delete mode 100644 examples/Naming/Naming.dsp delete mode 100644 examples/Naming/Naming.dsw delete mode 100644 examples/Naming/Naming.mak delete mode 100644 examples/Naming/Naming.mdp delete mode 100644 examples/Naming/multiple_contexts.dsp delete mode 100644 examples/Naming/non_existent.dsp delete mode 100644 examples/Naming/test_multiple_contexts.cpp delete mode 100644 examples/Naming/test_non_existent.cpp delete mode 100644 examples/Naming/test_open.cpp delete mode 100644 examples/Naming/test_writers.cpp delete mode 100644 examples/OS/Makefile delete mode 100644 examples/OS/Process/Makefile delete mode 100644 examples/OS/Process/Process.dsp delete mode 100644 examples/OS/Process/Process.dsw delete mode 100644 examples/OS/Process/Process.mak delete mode 100644 examples/OS/Process/Process.mdp delete mode 100644 examples/OS/Process/README delete mode 100644 examples/OS/Process/imore.cpp delete mode 100644 examples/OS/Process/process.cpp delete mode 100644 examples/README delete mode 100644 examples/Reactor/Dgram/CODgram.cpp delete mode 100644 examples/Reactor/Dgram/CODgram.dsp delete mode 100644 examples/Reactor/Dgram/Dgram.cpp delete mode 100644 examples/Reactor/Dgram/Dgram.dsp delete mode 100644 examples/Reactor/Dgram/Dgram.dsw delete mode 100644 examples/Reactor/Dgram/Dgram.mak delete mode 100644 examples/Reactor/Dgram/Dgram.mdp delete mode 100644 examples/Reactor/Dgram/Makefile delete mode 100644 examples/Reactor/FIFO/Makefile delete mode 100644 examples/Reactor/FIFO/client.cpp delete mode 100644 examples/Reactor/FIFO/server.cpp delete mode 100644 examples/Reactor/Makefile delete mode 100644 examples/Reactor/Misc/Makefile delete mode 100644 examples/Reactor/Misc/Misc.dsp delete mode 100644 examples/Reactor/Misc/Misc.dsw delete mode 100644 examples/Reactor/Misc/Misc.mak delete mode 100644 examples/Reactor/Misc/Misc.mdp delete mode 100644 examples/Reactor/Misc/notification.cpp delete mode 100644 examples/Reactor/Misc/notification.dsp delete mode 100644 examples/Reactor/Misc/pingpong.cpp delete mode 100644 examples/Reactor/Misc/reactors.dsp delete mode 100644 examples/Reactor/Misc/signal_tester.cpp delete mode 100644 examples/Reactor/Misc/signals_1.dsp delete mode 100644 examples/Reactor/Misc/signals_2.dsp delete mode 100644 examples/Reactor/Misc/test_demuxing.cpp delete mode 100644 examples/Reactor/Misc/test_event_handler_t.cpp delete mode 100644 examples/Reactor/Misc/test_reactors.cpp delete mode 100644 examples/Reactor/Misc/test_signals.cpp delete mode 100644 examples/Reactor/Misc/test_signals_1.cpp delete mode 100644 examples/Reactor/Misc/test_signals_2.cpp delete mode 100644 examples/Reactor/Misc/test_time_value.cpp delete mode 100644 examples/Reactor/Misc/test_timer_queue.cpp delete mode 100644 examples/Reactor/Multicast/Log_Wrapper.cpp delete mode 100644 examples/Reactor/Multicast/Log_Wrapper.h delete mode 100644 examples/Reactor/Multicast/Makefile delete mode 100644 examples/Reactor/Multicast/Multicast.dsw delete mode 100644 examples/Reactor/Multicast/Multicast.mak delete mode 100644 examples/Reactor/Multicast/Multicast.mdp delete mode 100644 examples/Reactor/Multicast/README delete mode 100644 examples/Reactor/Multicast/client.cpp delete mode 100644 examples/Reactor/Multicast/client.dsp delete mode 100644 examples/Reactor/Multicast/server.cpp delete mode 100644 examples/Reactor/Multicast/server.dsp delete mode 100644 examples/Reactor/Ntalker/Makefile delete mode 100644 examples/Reactor/Ntalker/ntalker.cpp delete mode 100644 examples/Reactor/Ntalker/ntalker.dsp delete mode 100644 examples/Reactor/Ntalker/ntalker.dsw delete mode 100644 examples/Reactor/Ntalker/ntalker.mak delete mode 100644 examples/Reactor/Ntalker/ntalker.mdp delete mode 100644 examples/Reactor/Proactor/Makefile delete mode 100644 examples/Reactor/Proactor/test_multiple_loops.cpp delete mode 100644 examples/Reactor/Proactor/test_multiple_loops.dsp delete mode 100644 examples/Reactor/Proactor/test_proactor.cpp delete mode 100644 examples/Reactor/Proactor/test_proactor.dsp delete mode 100644 examples/Reactor/Proactor/test_proactor.dsw delete mode 100644 examples/Reactor/Proactor/test_proactor.mak delete mode 100644 examples/Reactor/Proactor/test_proactor.mdp delete mode 100644 examples/Reactor/Proactor/test_proactor_with_aio.cpp delete mode 100644 examples/Reactor/Proactor/test_timeout.cpp delete mode 100644 examples/Reactor/Proactor/test_timeout.dsp delete mode 100644 examples/Reactor/README delete mode 100644 examples/Reactor/ReactorEx/APC.DSP delete mode 100644 examples/Reactor/ReactorEx/Abondoned.dsp delete mode 100644 examples/Reactor/ReactorEx/Console_Input.dsp delete mode 100644 examples/Reactor/ReactorEx/Directory_Changes.dsp delete mode 100644 examples/Reactor/ReactorEx/Exceptions.dsp delete mode 100644 examples/Reactor/ReactorEx/Multithreading.dsp delete mode 100644 examples/Reactor/ReactorEx/Network_Events.dsp delete mode 100644 examples/Reactor/ReactorEx/Prerun_State_Changes.dsp delete mode 100644 examples/Reactor/ReactorEx/Registration.dsp delete mode 100644 examples/Reactor/ReactorEx/Registry_Changes.dsp delete mode 100644 examples/Reactor/ReactorEx/Removals.dsp delete mode 100644 examples/Reactor/ReactorEx/Talker.dsp delete mode 100644 examples/Reactor/ReactorEx/Timeouts.dsp delete mode 100644 examples/Reactor/ReactorEx/Window_Messages.dsp delete mode 100644 examples/Reactor/ReactorEx/reactorex.dsw delete mode 100644 examples/Reactor/ReactorEx/reactorex.mak delete mode 100644 examples/Reactor/ReactorEx/reactorex.mdp delete mode 100644 examples/Reactor/ReactorEx/test_abandoned.cpp delete mode 100644 examples/Reactor/ReactorEx/test_apc.cpp delete mode 100644 examples/Reactor/ReactorEx/test_console_input.cpp delete mode 100644 examples/Reactor/ReactorEx/test_directory_changes.cpp delete mode 100644 examples/Reactor/ReactorEx/test_exceptions.cpp delete mode 100644 examples/Reactor/ReactorEx/test_multithreading.cpp delete mode 100644 examples/Reactor/ReactorEx/test_network_events.cpp delete mode 100644 examples/Reactor/ReactorEx/test_prerun_state_changes.cpp delete mode 100644 examples/Reactor/ReactorEx/test_registration.cpp delete mode 100644 examples/Reactor/ReactorEx/test_registry_changes.cpp delete mode 100644 examples/Reactor/ReactorEx/test_removals.cpp delete mode 100644 examples/Reactor/ReactorEx/test_talker.cpp delete mode 100644 examples/Reactor/ReactorEx/test_timeouts.cpp delete mode 100644 examples/Reactor/ReactorEx/test_window_messages.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/APC.DSP delete mode 100644 examples/Reactor/WFMO_Reactor/Abondoned.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Console_Input.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Directory_Changes.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Exceptions.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Multithreading.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Network_Events.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Prerun_State_Changes.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Registration.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Registry_Changes.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Removals.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Talker.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Timeouts.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/Window_Messages.dsp delete mode 100644 examples/Reactor/WFMO_Reactor/reactorex.dsw delete mode 100644 examples/Reactor/WFMO_Reactor/reactorex.mak delete mode 100644 examples/Reactor/WFMO_Reactor/reactorex.mdp delete mode 100644 examples/Reactor/WFMO_Reactor/test_abandoned.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_apc.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_console_input.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_directory_changes.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_exceptions.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_multithreading.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_network_events.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_prerun_state_changes.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_registration.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_registry_changes.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_removals.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_talker.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_timeouts.cpp delete mode 100644 examples/Reactor/WFMO_Reactor/test_window_messages.cpp delete mode 100644 examples/Registry/Registry.dsp delete mode 100644 examples/Registry/Registry.dsw delete mode 100644 examples/Registry/Registry.mak delete mode 100644 examples/Registry/Registry.mdp delete mode 100644 examples/Registry/test_registry_iterator.cpp delete mode 100644 examples/Registry/test_registry_update.cpp delete mode 100644 examples/Registry/update.dsp delete mode 100644 examples/Service_Configurator/IPC-tests/Makefile delete mode 100644 examples/Service_Configurator/IPC-tests/README delete mode 100644 examples/Service_Configurator/IPC-tests/client/Makefile delete mode 100644 examples/Service_Configurator/IPC-tests/client/broadcast_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_data delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_dgram_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_fifo_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_pipe_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_spipe_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/local_stream_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_data delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_data1 delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_data2 delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_data3 delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_data4 delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_dgram_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_service_directory_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_stream_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/client/remote_thr_stream_client_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Broadcast.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_CODgram.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Dgram.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_FIFO.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Pipe.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_SPIPE.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_L_Stream.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Dgram.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Thr_Stream.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Timeout.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Timeout.h delete mode 100644 examples/Service_Configurator/IPC-tests/server/Handle_Timeout.i delete mode 100644 examples/Service_Configurator/IPC-tests/server/Makefile delete mode 100644 examples/Service_Configurator/IPC-tests/server/server_test.cpp delete mode 100644 examples/Service_Configurator/IPC-tests/server/svc.conf delete mode 100644 examples/Service_Configurator/Makefile delete mode 100644 examples/Service_Configurator/Misc/Makefile delete mode 100644 examples/Service_Configurator/Misc/Misc.dsw delete mode 100644 examples/Service_Configurator/Misc/README delete mode 100644 examples/Service_Configurator/Misc/Timer_Service.cpp delete mode 100644 examples/Service_Configurator/Misc/Timer_Service.h delete mode 100644 examples/Service_Configurator/Misc/main.cpp delete mode 100644 examples/Service_Configurator/Misc/main.dsp delete mode 100644 examples/Service_Configurator/Misc/svc.conf delete mode 100644 examples/Shared_Malloc/Makefile delete mode 100644 examples/Shared_Malloc/Malloc.cpp delete mode 100644 examples/Shared_Malloc/Malloc.h delete mode 100644 examples/Shared_Malloc/Options.cpp delete mode 100644 examples/Shared_Malloc/Options.h delete mode 100644 examples/Shared_Malloc/Shared_Malloc.mak delete mode 100644 examples/Shared_Malloc/Shared_Malloc.mdp delete mode 100644 examples/Shared_Malloc/test_malloc.cpp delete mode 100644 examples/Shared_Malloc/test_multiple_mallocs.cpp delete mode 100644 examples/Shared_Malloc/test_persistence.cpp delete mode 100644 examples/Shared_Memory/Makefile delete mode 100644 examples/Shared_Memory/test_MM.cpp delete mode 100644 examples/Shared_Memory/test_SV.cpp delete mode 100644 examples/System_V_IPC/Makefile delete mode 100644 examples/System_V_IPC/README delete mode 100644 examples/System_V_IPC/SV_Message_Queues/MQ_Client.cpp delete mode 100644 examples/System_V_IPC/SV_Message_Queues/MQ_Server.cpp delete mode 100644 examples/System_V_IPC/SV_Message_Queues/Makefile delete mode 100644 examples/System_V_IPC/SV_Message_Queues/TMQ_Client.cpp delete mode 100644 examples/System_V_IPC/SV_Message_Queues/TMQ_Server.cpp delete mode 100644 examples/System_V_IPC/SV_Message_Queues/test.h delete mode 100644 examples/System_V_IPC/SV_Semaphores/Makefile delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphore_Client.cpp delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphore_Server.cpp delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphore_Test.h delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphores.cpp delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp delete mode 100644 examples/System_V_IPC/SV_Semaphores/Semaphores_2.cpp delete mode 100644 examples/System_V_IPC/SV_Shared_Memory/Makefile delete mode 100644 examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.cpp delete mode 100644 examples/System_V_IPC/SV_Shared_Memory/SV_Shared_Memory_Test.h delete mode 100644 examples/Threads/Makefile delete mode 100644 examples/Threads/TSS_Data.h delete mode 100644 examples/Threads/TSS_Obj.h delete mode 100644 examples/Threads/TSS_Task.h delete mode 100644 examples/Threads/auto_event.cpp delete mode 100644 examples/Threads/barrier1.cpp delete mode 100644 examples/Threads/barrier1.dsp delete mode 100644 examples/Threads/barrier2.cpp delete mode 100644 examples/Threads/barrier2.dsp delete mode 100644 examples/Threads/cancel.cpp delete mode 100644 examples/Threads/cancel.dsp delete mode 100644 examples/Threads/future1.cpp delete mode 100644 examples/Threads/future1.dsp delete mode 100644 examples/Threads/future2.cpp delete mode 100644 examples/Threads/future2.dsp delete mode 100644 examples/Threads/manual_event.cpp delete mode 100644 examples/Threads/manual_event.dsp delete mode 100644 examples/Threads/process_manager.cpp delete mode 100644 examples/Threads/process_mutex.cpp delete mode 100644 examples/Threads/process_mutex.dsp delete mode 100644 examples/Threads/process_semaphore.cpp delete mode 100644 examples/Threads/process_semaphore.dsp delete mode 100644 examples/Threads/reader_writer.cpp delete mode 100644 examples/Threads/reader_writer.dsp delete mode 100644 examples/Threads/recursive_mutex.cpp delete mode 100644 examples/Threads/recursive_mutex.dsp delete mode 100644 examples/Threads/task_five.cpp delete mode 100644 examples/Threads/task_five.dsp delete mode 100644 examples/Threads/task_four.cpp delete mode 100644 examples/Threads/task_four.dsp delete mode 100644 examples/Threads/task_one.cpp delete mode 100644 examples/Threads/task_one.dsp delete mode 100644 examples/Threads/task_three.cpp delete mode 100644 examples/Threads/task_three.dsp delete mode 100644 examples/Threads/task_two.cpp delete mode 100644 examples/Threads/task_two.dsp delete mode 100644 examples/Threads/test.dsp delete mode 100644 examples/Threads/test.dsw delete mode 100644 examples/Threads/test.mak delete mode 100644 examples/Threads/test.mdp delete mode 100644 examples/Threads/test_auto_event.cpp delete mode 100644 examples/Threads/test_barrier1.cpp delete mode 100644 examples/Threads/test_barrier2.cpp delete mode 100644 examples/Threads/test_cancel.cpp delete mode 100644 examples/Threads/test_future1.cpp delete mode 100644 examples/Threads/test_future2.cpp delete mode 100644 examples/Threads/test_manual_event.cpp delete mode 100644 examples/Threads/test_process_mutex.cpp delete mode 100644 examples/Threads/test_process_semaphore.cpp delete mode 100644 examples/Threads/test_reader_writer.cpp delete mode 100644 examples/Threads/test_recursive_mutex.cpp delete mode 100644 examples/Threads/test_task.cpp delete mode 100644 examples/Threads/test_task_four.cpp delete mode 100644 examples/Threads/test_task_one.cpp delete mode 100644 examples/Threads/test_task_three.cpp delete mode 100644 examples/Threads/test_task_two.cpp delete mode 100644 examples/Threads/test_thread_manager.cpp delete mode 100644 examples/Threads/test_thread_pool.cpp delete mode 100644 examples/Threads/test_thread_specific.cpp delete mode 100644 examples/Threads/test_token.cpp delete mode 100644 examples/Threads/test_tss.cpp delete mode 100644 examples/Threads/test_tss1.cpp delete mode 100644 examples/Threads/test_tss2.cpp delete mode 100644 examples/Threads/thread_manager.cpp delete mode 100644 examples/Threads/thread_manager.dsp delete mode 100644 examples/Threads/thread_pool.cpp delete mode 100644 examples/Threads/thread_pool.dsp delete mode 100644 examples/Threads/thread_specific.cpp delete mode 100644 examples/Threads/thread_specific.dsp delete mode 100644 examples/Threads/thread_specific.h delete mode 100644 examples/Threads/token.cpp delete mode 100644 examples/Threads/token.dsp delete mode 100644 examples/Threads/tss1.cpp delete mode 100644 examples/Threads/tss1.dsp delete mode 100644 examples/Threads/tss2.cpp delete mode 100644 examples/Threads/tss2.dsp delete mode 100644 examples/Threads/wfmo.cpp delete mode 100644 examples/Timer_Queue/Async_Timer_Queue_Test.cpp delete mode 100644 examples/Timer_Queue/Async_Timer_Queue_Test.h delete mode 100644 examples/Timer_Queue/Driver.cpp delete mode 100644 examples/Timer_Queue/Driver.h delete mode 100644 examples/Timer_Queue/Makefile delete mode 100644 examples/Timer_Queue/README delete mode 100644 examples/Timer_Queue/Reactor_Timer_Queue_Test.cpp delete mode 100644 examples/Timer_Queue/Reactor_Timer_Queue_Test.dsp delete mode 100644 examples/Timer_Queue/Reactor_Timer_Queue_Test.h delete mode 100644 examples/Timer_Queue/Thread_Timer_Queue_Test.cpp delete mode 100644 examples/Timer_Queue/Thread_Timer_Queue_Test.dsp delete mode 100644 examples/Timer_Queue/Thread_Timer_Queue_Test.h delete mode 100644 examples/Timer_Queue/Timer_Queue.dsw delete mode 100644 examples/Timer_Queue/main_async.cpp delete mode 100644 examples/Timer_Queue/main_reactor.cpp delete mode 100644 examples/Timer_Queue/main_thread.cpp delete mode 100644 include/makeinclude/macros.GNU delete mode 100644 include/makeinclude/platform_aix.GNU delete mode 100644 include/makeinclude/platform_aix4.2.GNU delete mode 100644 include/makeinclude/platform_chorus.GNU delete mode 100644 include/makeinclude/platform_chorus_ghs.GNU delete mode 100644 include/makeinclude/platform_dgux4_epc.GNU delete mode 100644 include/makeinclude/platform_dgux4_ghs.GNU delete mode 100644 include/makeinclude/platform_freebsd.GNU delete mode 100644 include/makeinclude/platform_freebsd_pthread.GNU delete mode 100644 include/makeinclude/platform_hpux.GNU delete mode 100644 include/makeinclude/platform_hpux_aCC.GNU delete mode 100644 include/makeinclude/platform_hpux_gcc.GNU delete mode 100644 include/makeinclude/platform_hpux_orbix.GNU delete mode 100644 include/makeinclude/platform_irix5.2.GNU delete mode 100644 include/makeinclude/platform_irix5.3_g++.GNU delete mode 100644 include/makeinclude/platform_irix5.3_sgic++.GNU delete mode 100644 include/makeinclude/platform_irix6.x-sgic++.GNU delete mode 100644 include/makeinclude/platform_irix6.x_g++.GNU delete mode 100644 include/makeinclude/platform_linux.GNU delete mode 100644 include/makeinclude/platform_linux_kcc.GNU delete mode 100644 include/makeinclude/platform_linux_lxpthread.GNU delete mode 100644 include/makeinclude/platform_linux_lxpthreads.GNU delete mode 100644 include/makeinclude/platform_linux_pthread.GNU delete mode 100644 include/makeinclude/platform_lynxos.GNU delete mode 100644 include/makeinclude/platform_m88k.GNU delete mode 100644 include/makeinclude/platform_mvs.GNU delete mode 100644 include/makeinclude/platform_netbsd.GNU delete mode 100644 include/makeinclude/platform_osf1_3.2.GNU delete mode 100644 include/makeinclude/platform_osf1_4.0.GNU delete mode 100644 include/makeinclude/platform_osf1_4.0_g++.GNU delete mode 100644 include/makeinclude/platform_osf1_4.0_rcc.GNU delete mode 100644 include/makeinclude/platform_psosim_g++.GNU delete mode 100644 include/makeinclude/platform_sco-nothread.GNU delete mode 100644 include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU delete mode 100644 include/makeinclude/platform_sco5.0.0-mit-pthread.GNU delete mode 100644 include/makeinclude/platform_sco5.0.0-nothread.GNU delete mode 100644 include/makeinclude/platform_sunos4_g++.GNU delete mode 100644 include/makeinclude/platform_sunos4_lucid.GNU delete mode 100644 include/makeinclude/platform_sunos4_sunc++3.x.GNU delete mode 100644 include/makeinclude/platform_sunos4_sunc++4.x.GNU delete mode 100644 include/makeinclude/platform_sunos4_sunc++4.x_orbix.GNU delete mode 100644 include/makeinclude/platform_sunos5.6_sparc_sunc++_4.2.GNU delete mode 100644 include/makeinclude/platform_sunos5_centerline.GNU delete mode 100644 include/makeinclude/platform_sunos5_centerline_orbix.GNU delete mode 100644 include/makeinclude/platform_sunos5_egcs.GNU delete mode 100644 include/makeinclude/platform_sunos5_g++.GNU delete mode 100644 include/makeinclude/platform_sunos5_sunc++.GNU delete mode 100644 include/makeinclude/platform_sunos5_sunc++_orbix.GNU delete mode 100644 include/makeinclude/platform_tandem.GNU delete mode 100644 include/makeinclude/platform_unixware_g++.GNU delete mode 100644 include/makeinclude/platform_vxworks5.x_g++.GNU delete mode 100644 include/makeinclude/platform_vxworks5.x_ghs.GNU delete mode 100644 include/makeinclude/rules.bin.GNU delete mode 100644 include/makeinclude/rules.common.GNU delete mode 100644 include/makeinclude/rules.lib.GNU delete mode 100644 include/makeinclude/rules.local.GNU delete mode 100644 include/makeinclude/rules.nested.GNU delete mode 100644 include/makeinclude/rules.nolocal.GNU delete mode 100644 include/makeinclude/rules.nonested.GNU delete mode 100644 include/makeinclude/wrapper_macros.GNU delete mode 100644 java/ChangeLog delete mode 100644 java/ImageProcessing/ImageProcessing.dsp delete mode 100644 java/ImageProcessing/ImageProcessing.dsw delete mode 100644 java/ImageProcessing/filters/Assert.java delete mode 100644 java/ImageProcessing/filters/BleachFilter.java delete mode 100644 java/ImageProcessing/filters/BlurFilter.java delete mode 100644 java/ImageProcessing/filters/DarkenFilter.java delete mode 100644 java/ImageProcessing/filters/DeSpeckleFilter.java delete mode 100644 java/ImageProcessing/filters/DissolveFilter.java delete mode 100644 java/ImageProcessing/filters/EdgeDetectFilter.java delete mode 100644 java/ImageProcessing/filters/EmbossFilter.java delete mode 100644 java/ImageProcessing/filters/Makefile delete mode 100644 java/ImageProcessing/filters/MedFilter.java delete mode 100644 java/ImageProcessing/filters/OilPaintFilter.java delete mode 100644 java/ImageProcessing/filters/PixelizeFilter.java delete mode 100644 java/ImageProcessing/filters/RandomizeFilter.java delete mode 100644 java/ImageProcessing/filters/RotateFilter.java delete mode 100644 java/ImageProcessing/filters/SharpenFilter.java delete mode 100644 java/ImageProcessing/filters/SpatialFilter.java delete mode 100644 java/ImageProcessing/filters/SpreadFilter.java delete mode 100644 java/ImageProcessing/filters/Timer.java delete mode 100644 java/ImageProcessing/framework/BaseButton.java delete mode 100644 java/ImageProcessing/framework/BenchmarkApplet.java delete mode 100644 java/ImageProcessing/framework/DialogManager.java delete mode 100644 java/ImageProcessing/framework/DialogType.java delete mode 100644 java/ImageProcessing/framework/FileBrowser.java delete mode 100644 java/ImageProcessing/framework/FilePanel.java delete mode 100644 java/ImageProcessing/framework/FilterTest.java delete mode 100644 java/ImageProcessing/framework/GIFHandler.java delete mode 100644 java/ImageProcessing/framework/GifEncoder.java delete mode 100644 java/ImageProcessing/framework/Hierarchy.java delete mode 100644 java/ImageProcessing/framework/HierarchyAdapter.java delete mode 100644 java/ImageProcessing/framework/Icon.java delete mode 100644 java/ImageProcessing/framework/ImageApp.java delete mode 100644 java/ImageProcessing/framework/ImageByteCounter.java delete mode 100644 java/ImageProcessing/framework/ImageCanvas.java delete mode 100644 java/ImageProcessing/framework/ImageEncoder.java delete mode 100644 java/ImageProcessing/framework/ImageProcessor.java delete mode 100644 java/ImageProcessing/framework/ImageSender.java delete mode 100644 java/ImageProcessing/framework/IntHashtable.java delete mode 100644 java/ImageProcessing/framework/ListFiles.java delete mode 100755 java/ImageProcessing/framework/LoadURLFrame.java delete mode 100644 java/ImageProcessing/framework/Makefile delete mode 100644 java/ImageProcessing/framework/MedJava.html delete mode 100644 java/ImageProcessing/framework/Options.java delete mode 100755 java/ImageProcessing/framework/SaveURLFrame.java delete mode 100644 java/ImageProcessing/framework/Separator.java delete mode 100644 java/ImageProcessing/framework/ServerHandler.java delete mode 100644 java/ImageProcessing/framework/ServerTest.java delete mode 100644 java/ImageProcessing/framework/StatusDisplay.java delete mode 100644 java/ImageProcessing/framework/StatusIndicator.java delete mode 100644 java/ImageProcessing/framework/TestHandler.java delete mode 100644 java/ImageProcessing/framework/Tester.java delete mode 100644 java/ImageProcessing/framework/doc01.gif delete mode 100644 java/ImageProcessing/framework/file03.gif delete mode 100644 java/ImageProcessing/framework/filter.conf delete mode 100644 java/ImageProcessing/framework/help.conf delete mode 100644 java/ImageProcessing/framework/test.html delete mode 100644 java/ImageProcessing/framework/testFilter.conf delete mode 100644 java/VERSION delete mode 100644 java/apps/NexusII/README delete mode 100644 java/apps/NexusII/classes/ClientHandler.class delete mode 100644 java/apps/NexusII/classes/FrameHandler.class delete mode 100644 java/apps/NexusII/classes/ImageCanvas.class delete mode 100644 java/apps/NexusII/classes/NexusClientApplet.class delete mode 100644 java/apps/NexusII/classes/NexusIIserver.class delete mode 100644 java/apps/NexusII/classes/Room.class delete mode 100644 java/apps/NexusII/classes/RoomFactory.class delete mode 100644 java/apps/NexusII/classes/RoomFrame.class delete mode 100644 java/apps/NexusII/classes/RoomThread.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CApplet.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CApplet.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CButton.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CButton.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CCanvas.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CCanvas.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CFrame.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CFrame.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CList.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CList.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CPanel.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CPanel.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CTextArea.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CTextArea.java delete mode 100644 java/apps/NexusII/classes/awtCommand/CTextField.class delete mode 100644 java/apps/NexusII/classes/awtCommand/CTextField.java delete mode 100644 java/apps/NexusII/classes/awtCommand/Command.class delete mode 100644 java/apps/NexusII/classes/awtCommand/Command.java delete mode 100644 java/apps/NexusII/classes/commandHandler.class delete mode 100644 java/apps/NexusII/classes/commandParser.class delete mode 100644 java/apps/NexusII/classes/connectionHandler.class delete mode 100644 java/apps/NexusII/classes/joinHandler.class delete mode 100644 java/apps/NexusII/classes/roomHandler.class delete mode 100644 java/apps/NexusII/classes/textHandler.class delete mode 100644 java/apps/NexusII/src/Consumer.java delete mode 100644 java/apps/NexusII/src/MT_Bounded_Queue.java delete mode 100644 java/apps/NexusII/src/MT_Bounded_Queue_Group.java delete mode 100644 java/apps/NexusII/src/NexusClientApplet.java delete mode 100644 java/apps/NexusII/src/NexusIIserver.java delete mode 100644 java/apps/NexusII/src/Producer.java delete mode 100644 java/apps/NexusII/src/Room.java delete mode 100644 java/apps/NexusII/src/RoomFrame.java delete mode 100644 java/apps/NexusII/src/RoomSpace.java delete mode 100644 java/apps/NexusII/src/Timed_Wait.java delete mode 100644 java/apps/NexusII/src/Timer.java delete mode 100644 java/apps/NexusII/src/commandHandler.java delete mode 100644 java/apps/NexusII/src/commandParser.java delete mode 100644 java/apps/NexusII/src/connectionHandler.java delete mode 100644 java/apps/NexusII/src/consts.java delete mode 100644 java/apps/NexusII/src/dataPacket.java delete mode 100644 java/apps/NexusII/src/joinHandler.java delete mode 100644 java/apps/NexusII/src/makefile delete mode 100644 java/apps/NexusII/src/nexusDemuxThread.java delete mode 100644 java/apps/NexusII/src/roomHandler.java delete mode 100644 java/apps/NexusII/src/socketReaderThread.java delete mode 100644 java/apps/NexusII/src/socketWriterThread.java delete mode 100644 java/apps/NexusII/src/url_to_url.java delete mode 100755 java/apps/NexusII/start delete mode 100644 java/apps/NexusII/start.html delete mode 100644 java/classes/README.TXT delete mode 100644 java/doc/images/GridBagEx.gif delete mode 100644 java/doc/images/OpenBookIcon.gif delete mode 100644 java/doc/images/blue-ball-small.gif delete mode 100644 java/doc/images/blue-ball.gif delete mode 100644 java/doc/images/class-index.gif delete mode 100644 java/doc/images/constructor-index.gif delete mode 100644 java/doc/images/constructors.gif delete mode 100644 java/doc/images/cyan-ball-small.gif delete mode 100644 java/doc/images/cyan-ball.gif delete mode 100644 java/doc/images/error-index.gif delete mode 100644 java/doc/images/exception-index.gif delete mode 100644 java/doc/images/green-ball-small.gif delete mode 100644 java/doc/images/green-ball.gif delete mode 100644 java/doc/images/interface-index.gif delete mode 100644 java/doc/images/magenta-ball-small.gif delete mode 100644 java/doc/images/magenta-ball.gif delete mode 100644 java/doc/images/method-index.gif delete mode 100644 java/doc/images/methods.gif delete mode 100644 java/doc/images/package-index.gif delete mode 100644 java/doc/images/red-ball-small.gif delete mode 100644 java/doc/images/red-ball.gif delete mode 100644 java/doc/images/variable-index.gif delete mode 100644 java/doc/images/variables.gif delete mode 100644 java/doc/images/yellow-ball-small.gif delete mode 100644 java/doc/images/yellow-ball.gif delete mode 100644 java/examples/Logger/README delete mode 100644 java/examples/Logger/simple-server/LogRecord.java delete mode 100644 java/examples/Logger/simple-server/LoggerConstants.java delete mode 100644 java/examples/Logger/simple-server/LoggingAcceptor.java delete mode 100644 java/examples/Logger/simple-server/LoggingClient.java delete mode 100644 java/examples/Logger/simple-server/LoggingHandler.java delete mode 100644 java/examples/Logger/simple-server/Makefile delete mode 100644 java/examples/Logger/simple-server/README delete mode 100644 java/examples/Logger/simple-server/SimpleLogger.java delete mode 100644 java/gjt/Assert.java delete mode 100644 java/gjt/Bargauge.java delete mode 100644 java/gjt/Border.java delete mode 100644 java/gjt/Box.java delete mode 100644 java/gjt/BulletinLayout.java delete mode 100644 java/gjt/ButtonPanel.java delete mode 100644 java/gjt/CardPanel.java delete mode 100644 java/gjt/ChoiceCardPanel.java delete mode 100644 java/gjt/ColumnLayout.java delete mode 100644 java/gjt/ComponentScroller.java delete mode 100644 java/gjt/DialogClient.java delete mode 100644 java/gjt/DrawingPanel.java delete mode 100644 java/gjt/DrawnRectangle.java delete mode 100644 java/gjt/EtchedBorder.java delete mode 100644 java/gjt/EtchedRectangle.java delete mode 100644 java/gjt/Etching.java delete mode 100644 java/gjt/ExclusiveImageButtonPanel.java delete mode 100644 java/gjt/FontDialog.java delete mode 100644 java/gjt/GJT.DSP delete mode 100644 java/gjt/GJT.DSW delete mode 100644 java/gjt/GJTDialog.java delete mode 100644 java/gjt/IconCardPanel.java delete mode 100644 java/gjt/ImageButton.java delete mode 100644 java/gjt/ImageButtonController.java delete mode 100644 java/gjt/ImageButtonEvent.java delete mode 100644 java/gjt/ImageButtonPanel.java delete mode 100644 java/gjt/ImageButtonPanelController.java delete mode 100644 java/gjt/ImageCanvas.java delete mode 100644 java/gjt/ImageScroller.java delete mode 100644 java/gjt/LabelCanvas.java delete mode 100644 java/gjt/Makefile delete mode 100644 java/gjt/MessageDialog.java delete mode 100644 java/gjt/MouseController.java delete mode 100644 java/gjt/Orientation.java delete mode 100644 java/gjt/ProgressDialog.java delete mode 100644 java/gjt/QuestionDialog.java delete mode 100644 java/gjt/RadioImageButtonPanelController.java delete mode 100644 java/gjt/RowLayout.java delete mode 100644 java/gjt/Scroller.java delete mode 100644 java/gjt/ScrollerLayout.java delete mode 100644 java/gjt/SelectionEvent.java delete mode 100644 java/gjt/Separator.java delete mode 100644 java/gjt/SpringyImageButtonController.java delete mode 100644 java/gjt/StateButton.java delete mode 100644 java/gjt/StateButtonController.java delete mode 100644 java/gjt/StickyImageButtonController.java delete mode 100644 java/gjt/Stopwatch.java delete mode 100644 java/gjt/StopwatchClient.java delete mode 100644 java/gjt/ThreeDBorder.java delete mode 100644 java/gjt/ThreeDBorderStyle.java delete mode 100644 java/gjt/ThreeDRectangle.java delete mode 100644 java/gjt/Toolbar.java delete mode 100644 java/gjt/Util.java delete mode 100644 java/gjt/YesNoDialog.java delete mode 100644 java/gjt/animation/CollisionArena.java delete mode 100644 java/gjt/animation/CollisionDetector.java delete mode 100644 java/gjt/animation/EdgeCollisionDetector.java delete mode 100644 java/gjt/animation/Playfield.java delete mode 100644 java/gjt/animation/Sequence.java delete mode 100644 java/gjt/animation/Sprite.java delete mode 100644 java/gjt/animation/SpriteCollisionDetector.java delete mode 100644 java/gjt/image/BleachImageFilter.java delete mode 100644 java/gjt/image/DissolveFilter.java delete mode 100644 java/gjt/image/ImageDissolver.java delete mode 100644 java/gjt/rubberband/Rubberband.java delete mode 100644 java/gjt/rubberband/RubberbandEllipse.java delete mode 100644 java/gjt/rubberband/RubberbandLine.java delete mode 100644 java/gjt/rubberband/RubberbandPanel.java delete mode 100644 java/gjt/rubberband/RubberbandRectangle.java delete mode 100644 java/gjt/test/AttributesPanel.java delete mode 100644 java/gjt/test/BargaugeTest.java delete mode 100644 java/gjt/test/BleachImageFilterTest.java delete mode 100644 java/gjt/test/BorderTest.java delete mode 100644 java/gjt/test/BoxTest.java delete mode 100644 java/gjt/test/BumpAnimationTest.java delete mode 100644 java/gjt/test/ChoiceCardPanelTest.java delete mode 100644 java/gjt/test/ColumnLayoutTest.java delete mode 100644 java/gjt/test/ComponentScrollerTest.java delete mode 100644 java/gjt/test/ConnectionsPanel.java delete mode 100644 java/gjt/test/DialogTest.java delete mode 100644 java/gjt/test/DrawnRectangleTest.java delete mode 100644 java/gjt/test/FontDialogTest.java delete mode 100644 java/gjt/test/IconCardPanelTest.java delete mode 100644 java/gjt/test/ImageButtonTest.java delete mode 100644 java/gjt/test/ImageDissolverTest.java delete mode 100644 java/gjt/test/ImageScrollerTest.java delete mode 100644 java/gjt/test/LabelCanvasTest.java delete mode 100644 java/gjt/test/MessageDialogTest.java delete mode 100644 java/gjt/test/OccupationOracle.java delete mode 100644 java/gjt/test/RowLayoutTest.java delete mode 100644 java/gjt/test/RubberbandTest.java delete mode 100644 java/gjt/test/SeparatorTest.java delete mode 100644 java/gjt/test/SimpleAnimationTest.java delete mode 100644 java/gjt/test/SimpleBargaugeTest.java delete mode 100644 java/gjt/test/StateButtonTest.java delete mode 100644 java/gjt/test/TenPixelBorder.java delete mode 100644 java/gjt/test/TitledPanel.java delete mode 100644 java/gjt/test/ToolbarTest.java delete mode 100644 java/gjt/test/TwoDrinkersAnimationTest.java delete mode 100644 java/gjt/test/UnitTest.java delete mode 100644 java/netsvcs/Logger/DefaultLMR.java delete mode 100644 java/netsvcs/Logger/LogMessageReceiver.java delete mode 100644 java/netsvcs/Logger/LogRecord.java delete mode 100644 java/netsvcs/Logger/Makefile delete mode 100644 java/netsvcs/Logger/ServerLoggingAcceptor.java delete mode 100644 java/netsvcs/Logger/ServerLoggingHandler.java delete mode 100644 java/netsvcs/Naming/Makefile delete mode 100644 java/netsvcs/Naming/NameAcceptor.java delete mode 100644 java/netsvcs/Naming/NameHandler.java delete mode 100644 java/netsvcs/Naming/NameProxy.java delete mode 100644 java/netsvcs/Naming/NameReply.java delete mode 100644 java/netsvcs/Naming/NameRequest.java delete mode 100755 java/netsvcs/Time/Clerk.java delete mode 100755 java/netsvcs/Time/Makefile delete mode 100755 java/netsvcs/Time/Server.java delete mode 100755 java/netsvcs/Time/TSClerkHandler.java delete mode 100755 java/netsvcs/Time/TSClerkProcessor.java delete mode 100755 java/netsvcs/Time/TSRequestAcceptor.java delete mode 100755 java/netsvcs/Time/TSRequestHandler.java delete mode 100755 java/netsvcs/Time/TSServerAcceptor.java delete mode 100755 java/netsvcs/Time/TSServerHandler.java delete mode 100644 java/src/ACE.java delete mode 100644 java/src/AcceptStrategy.java delete mode 100644 java/src/Acceptor.java delete mode 100644 java/src/ActivateStrategy.java delete mode 100644 java/src/AddServiceObjectNode.java delete mode 100644 java/src/Blob.java delete mode 100644 java/src/BlobHandler.java delete mode 100644 java/src/BlobReader.java delete mode 100644 java/src/BlobWriter.java delete mode 100644 java/src/ClassNameGenerator.java delete mode 100644 java/src/ClassReader.java delete mode 100644 java/src/Condition.java delete mode 100644 java/src/Connector.java delete mode 100644 java/src/CreationStrategy.java delete mode 100644 java/src/EventHandler.java delete mode 100644 java/src/GetOpt.java delete mode 100644 java/src/HTTPHelper.java delete mode 100644 java/src/INETAddr.java delete mode 100644 java/src/IOCntlCmds.java delete mode 100644 java/src/IOCntlMsg.java delete mode 100644 java/src/JACE.DSP delete mode 100644 java/src/JACE.DSW delete mode 100644 java/src/Makefile delete mode 100644 java/src/MessageBlock.java delete mode 100644 java/src/MessageQueue.java delete mode 100644 java/src/MessageType.java delete mode 100644 java/src/Module.java delete mode 100644 java/src/Mutex.java delete mode 100644 java/src/OS.java delete mode 100644 java/src/ParseNode.java delete mode 100644 java/src/ProfileTimer.java delete mode 100644 java/src/README delete mode 100644 java/src/RWMutex.java delete mode 100644 java/src/RemoveNode.java delete mode 100644 java/src/ResumeNode.java delete mode 100644 java/src/SOCKAcceptor.java delete mode 100644 java/src/SOCKConnector.java delete mode 100644 java/src/SOCKStream.java delete mode 100644 java/src/Semaphore.java delete mode 100644 java/src/ServiceConfig.java delete mode 100644 java/src/ServiceLoader.java delete mode 100644 java/src/ServiceObject.java delete mode 100644 java/src/ServiceObjectRecord.java delete mode 100644 java/src/ServiceRecord.java delete mode 100644 java/src/ServiceRepository.java delete mode 100644 java/src/StrategyAcceptor.java delete mode 100644 java/src/Stream.java delete mode 100644 java/src/StreamHead.java delete mode 100644 java/src/StreamTail.java delete mode 100644 java/src/SuspendNode.java delete mode 100644 java/src/SvcHandler.java delete mode 100644 java/src/Task.java delete mode 100644 java/src/TaskFlags.java delete mode 100644 java/src/ThreadManager.java delete mode 100644 java/src/ThruTask.java delete mode 100644 java/src/TimeValue.java delete mode 100644 java/src/TimedWait.java delete mode 100644 java/src/TimeoutException.java delete mode 100644 java/src/TimerQueue.java delete mode 100644 java/src/Token.java delete mode 100644 java/tests/ASX/BufferStreamTest.dsp delete mode 100644 java/tests/ASX/BufferStreamTest.java delete mode 100644 java/tests/ASX/Makefile delete mode 100644 java/tests/ASX/MessageQueueTest.dsp delete mode 100644 java/tests/ASX/MessageQueueTest.java delete mode 100644 java/tests/ASX/PriorityBufferTest.dsp delete mode 100644 java/tests/ASX/PriorityBufferTest.java delete mode 100644 java/tests/ASX/TaskTest.dsp delete mode 100644 java/tests/ASX/TaskTest.java delete mode 100644 java/tests/ASX/ThreadPoolTest.dsp delete mode 100644 java/tests/ASX/ThreadPoolTest.java delete mode 100644 java/tests/Concurrency/Condition/Condition.dsp delete mode 100644 java/tests/Concurrency/Condition/Consumer.java delete mode 100644 java/tests/Concurrency/Condition/JoinableThreadGroup.java delete mode 100644 java/tests/Concurrency/Condition/Makefile delete mode 100644 java/tests/Concurrency/Condition/Producer.java delete mode 100644 java/tests/Concurrency/Condition/QueueTest.java delete mode 100644 java/tests/Concurrency/Condition/SimpleMessageQueue.java delete mode 100644 java/tests/Concurrency/Makefile delete mode 100644 java/tests/Concurrency/MutexTest.dsp delete mode 100644 java/tests/Concurrency/MutexTest.java delete mode 100644 java/tests/Concurrency/RWMutexTest.dsp delete mode 100644 java/tests/Concurrency/RWMutexTest.java delete mode 100644 java/tests/Concurrency/SemaphoreTest.dsp delete mode 100644 java/tests/Concurrency/SemaphoreTest.java delete mode 100644 java/tests/Concurrency/TokenTest.dsp delete mode 100644 java/tests/Concurrency/TokenTest.java delete mode 100644 java/tests/Connection/AcceptorTest.dsp delete mode 100644 java/tests/Connection/AcceptorTest.java delete mode 100644 java/tests/Connection/ClientHandler.dsp delete mode 100644 java/tests/Connection/ClientHandler.java delete mode 100644 java/tests/Connection/ConnectorTest.dsp delete mode 100644 java/tests/Connection/ConnectorTest.java delete mode 100644 java/tests/Connection/HTTPHelperTest.java delete mode 100644 java/tests/Connection/Makefile delete mode 100644 java/tests/Connection/ServerHandler.dsp delete mode 100644 java/tests/Connection/ServerHandler.java delete mode 100644 java/tests/Misc/Makefile delete mode 100644 java/tests/Misc/ParseArgsTest.dsp delete mode 100644 java/tests/Misc/ParseArgsTest.java delete mode 100644 java/tests/Reactor/Makefile delete mode 100644 java/tests/Reactor/TimeValueTest.dsp delete mode 100644 java/tests/Reactor/TimeValueTest.java delete mode 100644 java/tests/Reactor/TimerQueueTest.dsp delete mode 100644 java/tests/Reactor/TimerQueueTest.java delete mode 100644 java/tests/SOCK_SAP/Makefile delete mode 100644 java/tests/SOCK_SAP/SOCKAcceptorTest.dsp delete mode 100644 java/tests/SOCK_SAP/SOCKAcceptorTest.java delete mode 100644 java/tests/SOCK_SAP/SOCKConnectorTest.dsp delete mode 100644 java/tests/SOCK_SAP/SOCKConnectorTest.java delete mode 100644 java/tests/ServiceConfigurator/Makefile delete mode 100644 java/tests/ServiceConfigurator/ServiceConfigurator.dsp delete mode 100644 java/tests/ServiceConfigurator/TestService.java delete mode 100644 java/tests/ServiceConfigurator/reloadTest.java delete mode 100644 java/tests/ServiceConfigurator/suspendTest.java delete mode 100644 java/tests/ServiceConfigurator/suspendTest1.conf delete mode 100644 java/tests/ServiceConfigurator/suspendTest2.conf delete mode 100644 java/tests/ServiceConfigurator/suspendTest3.conf delete mode 100644 java/tests/ServiceConfigurator/svc.conf delete mode 100644 java/tests/Tests.dsw delete mode 100644 java/tests/netsvcs/Logger/LoggerTest.java delete mode 100644 java/tests/netsvcs/Logger/Makefile delete mode 100644 java/tests/netsvcs/Naming/ClientTest.java delete mode 100644 java/tests/netsvcs/Naming/Makefile delete mode 100644 netsvcs/ACE-netsvcs.html delete mode 100644 netsvcs/Makefile delete mode 100644 netsvcs/README delete mode 100644 netsvcs/clients/Logger/Logger.dsw delete mode 100644 netsvcs/clients/Logger/Logger.mak delete mode 100644 netsvcs/clients/Logger/Logger.mdp delete mode 100644 netsvcs/clients/Logger/Makefile delete mode 100644 netsvcs/clients/Logger/README delete mode 100644 netsvcs/clients/Logger/direct_logging.cpp delete mode 100644 netsvcs/clients/Logger/direct_logging.dsp delete mode 100644 netsvcs/clients/Logger/indirect_logging.cpp delete mode 100644 netsvcs/clients/Logger/indirect_logging.dsp delete mode 100644 netsvcs/clients/Makefile delete mode 100644 netsvcs/clients/Naming/Client/Client.dsw delete mode 100644 netsvcs/clients/Naming/Client/Client_Test.cpp delete mode 100644 netsvcs/clients/Naming/Client/Client_Test.dsp delete mode 100644 netsvcs/clients/Naming/Client/Client_Test.h delete mode 100644 netsvcs/clients/Naming/Client/Makefile delete mode 100644 netsvcs/clients/Naming/Client/main.cpp delete mode 100644 netsvcs/clients/Naming/Client/main.dsp delete mode 100644 netsvcs/clients/Naming/Client/svc.conf delete mode 100644 netsvcs/clients/Naming/Client/svc2.conf delete mode 100644 netsvcs/clients/Naming/Dump_Restore/Dump_Restore.cpp delete mode 100644 netsvcs/clients/Naming/Dump_Restore/Dump_Restore.h delete mode 100644 netsvcs/clients/Naming/Dump_Restore/Makefile delete mode 100644 netsvcs/clients/Naming/Dump_Restore/README delete mode 100644 netsvcs/clients/Naming/Dump_Restore/createfile.cpp delete mode 100644 netsvcs/clients/Naming/Dump_Restore/main.cpp delete mode 100644 netsvcs/clients/Naming/Dump_Restore/nametest.cpp delete mode 100644 netsvcs/clients/Naming/Dump_Restore/nametest.h delete mode 100644 netsvcs/clients/Naming/Makefile delete mode 100644 netsvcs/clients/Naming/README delete mode 100644 netsvcs/clients/README delete mode 100644 netsvcs/clients/Tokens/Makefile delete mode 100644 netsvcs/clients/Tokens/README delete mode 100644 netsvcs/clients/Tokens/collection/Makefile delete mode 100644 netsvcs/clients/Tokens/collection/README delete mode 100644 netsvcs/clients/Tokens/collection/collection.cpp delete mode 100644 netsvcs/clients/Tokens/collection/rw_locks.cpp delete mode 100644 netsvcs/clients/Tokens/deadlock/Makefile delete mode 100644 netsvcs/clients/Tokens/deadlock/README delete mode 100644 netsvcs/clients/Tokens/deadlock/deadlock_detection_test.cpp delete mode 100644 netsvcs/clients/Tokens/invariant/Makefile delete mode 100644 netsvcs/clients/Tokens/invariant/README delete mode 100644 netsvcs/clients/Tokens/invariant/invariant.cpp delete mode 100644 netsvcs/clients/Tokens/manual/Makefile delete mode 100644 netsvcs/clients/Tokens/manual/README delete mode 100644 netsvcs/clients/Tokens/manual/manual.cpp delete mode 100644 netsvcs/clients/Tokens/mutex/Makefile delete mode 100644 netsvcs/clients/Tokens/mutex/README delete mode 100644 netsvcs/clients/Tokens/mutex/test_mutex.cpp delete mode 100644 netsvcs/clients/Tokens/rw_lock/Makefile delete mode 100644 netsvcs/clients/Tokens/rw_lock/README delete mode 100644 netsvcs/clients/Tokens/rw_lock/rw_locks.cpp delete mode 100644 netsvcs/lib/Base_Optimizer.cpp delete mode 100644 netsvcs/lib/Base_Optimizer.h delete mode 100644 netsvcs/lib/Client_Logging_Handler.cpp delete mode 100644 netsvcs/lib/Client_Logging_Handler.h delete mode 100644 netsvcs/lib/Client_Logging_Handler.i delete mode 100644 netsvcs/lib/Log_Message_Receiver.cpp delete mode 100644 netsvcs/lib/Log_Message_Receiver.h delete mode 100644 netsvcs/lib/Logging_Strategy.cpp delete mode 100644 netsvcs/lib/Logging_Strategy.h delete mode 100644 netsvcs/lib/Makefile delete mode 100644 netsvcs/lib/Name_Handler.cpp delete mode 100644 netsvcs/lib/Name_Handler.h delete mode 100644 netsvcs/lib/README delete mode 100644 netsvcs/lib/Server_Logging_Handler.cpp delete mode 100644 netsvcs/lib/Server_Logging_Handler.h delete mode 100644 netsvcs/lib/Server_Logging_Handler.i delete mode 100644 netsvcs/lib/Server_Logging_Handler_T.cpp delete mode 100644 netsvcs/lib/Server_Logging_Handler_T.h delete mode 100644 netsvcs/lib/TS_Clerk_Handler.cpp delete mode 100644 netsvcs/lib/TS_Clerk_Handler.h delete mode 100644 netsvcs/lib/TS_Server_Handler.cpp delete mode 100644 netsvcs/lib/TS_Server_Handler.h delete mode 100644 netsvcs/lib/Token_Handler.cpp delete mode 100644 netsvcs/lib/Token_Handler.h delete mode 100644 netsvcs/lib/netsvcs.dsp delete mode 100644 netsvcs/lib/netsvcs.dsw delete mode 100644 netsvcs/lib/netsvcs4.mak delete mode 100644 netsvcs/lib/netsvcs4.mdp delete mode 100644 netsvcs/servers/Makefile delete mode 100644 netsvcs/servers/README delete mode 100644 netsvcs/servers/cli.conf delete mode 100644 netsvcs/servers/main.cpp delete mode 100644 netsvcs/servers/ntsvc.conf delete mode 100644 netsvcs/servers/servers.dsp delete mode 100644 netsvcs/servers/servers.dsw delete mode 100644 netsvcs/servers/servers4.mak delete mode 100644 netsvcs/servers/servers4.mdp delete mode 100644 netsvcs/servers/svc.conf delete mode 100644 os-patches/linux-patches.html delete mode 100644 os-patches/lynxos-patches.html delete mode 100644 performance-tests/Makefile delete mode 100644 performance-tests/Misc/Makefile delete mode 100644 performance-tests/Misc/basic_func.cpp delete mode 100644 performance-tests/Misc/basic_func.h delete mode 100644 performance-tests/Misc/basic_perf.cpp delete mode 100644 performance-tests/Misc/basic_perf.dsp delete mode 100644 performance-tests/Misc/childbirth_time.cpp delete mode 100644 performance-tests/Misc/childbirth_time.dsp delete mode 100644 performance-tests/Misc/context_switch_time.cpp delete mode 100644 performance-tests/Misc/context_switch_time.dsp delete mode 100644 performance-tests/Misc/misc.dsw delete mode 100644 performance-tests/Misc/misc.mak delete mode 100644 performance-tests/Misc/misc.mdp delete mode 100644 performance-tests/Misc/preempt.cpp delete mode 100644 performance-tests/Misc/test_mutex.cpp delete mode 100644 performance-tests/Misc/test_mutex.dsp delete mode 100644 performance-tests/Misc/test_naming.cpp delete mode 100644 performance-tests/Misc/test_naming.dsp delete mode 100644 performance-tests/Misc/test_singleton.cpp delete mode 100644 performance-tests/Misc/test_singleton.dsp delete mode 100644 performance-tests/README delete mode 100644 performance-tests/Synch-Benchmarks/Benchmark.cpp delete mode 100644 performance-tests/Synch-Benchmarks/Benchmark.h delete mode 100644 performance-tests/Synch-Benchmarks/Makefile delete mode 100644 performance-tests/Synch-Benchmarks/Makefile.driver delete mode 100644 performance-tests/Synch-Benchmarks/Makefile.synch_tests delete mode 100644 performance-tests/Synch-Benchmarks/Options.cpp delete mode 100644 performance-tests/Synch-Benchmarks/Options.h delete mode 100644 performance-tests/Synch-Benchmarks/Options.i delete mode 100644 performance-tests/Synch-Benchmarks/README delete mode 100644 performance-tests/Synch-Benchmarks/Synch_Tests.dsp delete mode 100644 performance-tests/Synch-Benchmarks/Synch_Tests.dsw delete mode 100644 performance-tests/Synch-Benchmarks/Synch_Tests.mak delete mode 100644 performance-tests/Synch-Benchmarks/Synch_Tests.mdp delete mode 100644 performance-tests/Synch-Benchmarks/benchmarks delete mode 100644 performance-tests/Synch-Benchmarks/condb_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/conds_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/context.c delete mode 100644 performance-tests/Synch-Benchmarks/context.csh delete mode 100644 performance-tests/Synch-Benchmarks/context_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/memory_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/mutex_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/orig-results delete mode 100644 performance-tests/Synch-Benchmarks/pipe_proc_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/pipe_thr_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/recursive_lock_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/rwrd_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/rwwr_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/sema_test.cpp delete mode 100644 performance-tests/Synch-Benchmarks/svc.conf delete mode 100644 performance-tests/Synch-Benchmarks/synch_driver.cpp delete mode 100644 performance-tests/Synch-Benchmarks/synch_driver.dsp delete mode 100644 performance-tests/Synch-Benchmarks/sysvsema_test.cpp delete mode 100644 performance-tests/TTCP/ACE-C++/How_to_run_tests delete mode 100644 performance-tests/TTCP/ACE-C++/Makefile delete mode 100644 performance-tests/TTCP/ACE-C++/run_test delete mode 100644 performance-tests/TTCP/ACE-C++/wrapper-new-ttcp.cpp delete mode 100644 performance-tests/TTCP/C/How_to_run_tests delete mode 100644 performance-tests/TTCP/C/Makefile delete mode 100644 performance-tests/TTCP/C/README delete mode 100644 performance-tests/TTCP/C/new-ttcp.cpp delete mode 100644 performance-tests/TTCP/C/run_test delete mode 100644 performance-tests/TTCP/Makefile delete mode 100755 performance-tests/TTCP/NT/SLEEP.EXE delete mode 100755 performance-tests/TTCP/NT/TTCP.EXE delete mode 100755 performance-tests/TTCP/NT/TTCPR.BAT delete mode 100755 performance-tests/TTCP/NT/TTCPX.BAT delete mode 100644 performance-tests/TTCP/NT/how-to-use.txt delete mode 100644 performance-tests/TTCP/ORBeline/How_to_run_tests delete mode 100644 performance-tests/TTCP/ORBeline/Makefile delete mode 100644 performance-tests/TTCP/ORBeline/run_test delete mode 100644 performance-tests/TTCP/ORBeline/ser delete mode 100644 performance-tests/TTCP/ORBeline/stdmk delete mode 100644 performance-tests/TTCP/ORBeline/tango_clt delete mode 100644 performance-tests/TTCP/ORBeline/ttcp.idl delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_c.cc delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_c.hh delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_i.cpp delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_i.h delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_s.cc delete mode 100644 performance-tests/TTCP/ORBeline/ttcp_s.hh delete mode 100644 performance-tests/TTCP/Orbix/How_to_run_tests delete mode 100644 performance-tests/TTCP/Orbix/Makefile delete mode 100644 performance-tests/TTCP/Orbix/README delete mode 100644 performance-tests/TTCP/Orbix/orbix_defaults.mk delete mode 100644 performance-tests/TTCP/Orbix/run_test delete mode 100644 performance-tests/TTCP/Orbix/ttcp.hh delete mode 100644 performance-tests/TTCP/Orbix/ttcp.idl delete mode 100644 performance-tests/TTCP/Orbix/ttcpC.cpp delete mode 100644 performance-tests/TTCP/Orbix/ttcpS.cpp delete mode 100644 performance-tests/TTCP/Orbix/ttcp_i.cpp delete mode 100644 performance-tests/TTCP/Orbix/ttcp_i.h delete mode 100644 performance-tests/UDP/Makefile delete mode 100644 performance-tests/UDP/README delete mode 100644 performance-tests/UDP/udp_test.cpp delete mode 100644 psosim/Makefile delete mode 100644 psosim/drv_conf.c delete mode 100644 rpc++/.dependencies delete mode 100644 rpc++/COPYING delete mode 100644 rpc++/Makefile delete mode 100644 rpc++/Proj.make delete mode 100644 rpc++/README delete mode 100644 rpc++/README.ORIG delete mode 100644 rpc++/StdHdrs/Makefile delete mode 100644 rpc++/StdHdrs/README delete mode 100644 rpc++/StdHdrs/rpc/auth.h delete mode 100644 rpc++/StdHdrs/rpc/c_types.h delete mode 100644 rpc++/StdHdrs/rpc/clnt.h delete mode 100644 rpc++/StdHdrs/rpc/pmap_clnt.h delete mode 100644 rpc++/StdHdrs/rpc/svc.h delete mode 100644 rpc++/StdHdrs/rpc/xdr.h delete mode 100644 rpc++/callback.cc delete mode 100644 rpc++/example/Makefile delete mode 100644 rpc++/example/calcsvc.cc delete mode 100644 rpc++/example/calcsvc.h delete mode 100644 rpc++/example/client.cc delete mode 100644 rpc++/example/server.cc delete mode 100644 rpc++/gcc-2.2.fix delete mode 100644 rpc++/request.cc delete mode 100644 rpc++/rpc++.cp delete mode 100644 rpc++/rpc++.fn delete mode 100644 rpc++/rpc++.ky delete mode 100644 rpc++/rpc++.pg delete mode 100644 rpc++/rpc++.texi delete mode 100644 rpc++/rpc++.toc delete mode 100644 rpc++/rpc++.tp delete mode 100644 rpc++/rpc++.vr delete mode 100644 rpc++/rpc++/callback.h delete mode 100644 rpc++/rpc++/request.h delete mode 100644 rpc++/rpc++/service.h delete mode 100644 rpc++/rpc++/stub.h delete mode 100644 rpc++/rpc++/xdr++.h delete mode 100644 rpc++/service.cc delete mode 100644 rpc++/stub.cc delete mode 100644 rpc++/version.h delete mode 100644 rpc++/xdr++.cc delete mode 100644 tests/Aio_Platform_Test.bpr delete mode 100644 tests/Aio_Platform_Test.cpp delete mode 100644 tests/Atomic_Op_Test.bpr delete mode 100644 tests/Atomic_Op_Test.cpp delete mode 100644 tests/Atomic_Op_Test.dsp delete mode 100644 tests/Barrier_Test.bpr delete mode 100644 tests/Barrier_Test.cpp delete mode 100644 tests/Barrier_Test.dsp delete mode 100644 tests/Basic_Types_Test.bpr delete mode 100644 tests/Basic_Types_Test.cpp delete mode 100644 tests/Basic_Types_Test.dsp delete mode 100644 tests/Buffer_Stream_Test.bpr delete mode 100644 tests/Buffer_Stream_Test.cpp delete mode 100644 tests/Buffer_Stream_Test.dsp delete mode 100644 tests/CLASSIX/Addr_Test.cpp delete mode 100644 tests/CLASSIX/CLD_Connector_Test.cpp delete mode 100644 tests/CLASSIX/Con_Acc_Test.cpp delete mode 100644 tests/CLASSIX/Con_Acc_Test.h delete mode 100644 tests/CLASSIX/Group_Test.cpp delete mode 100644 tests/CLASSIX/Notify_Test.cpp delete mode 100644 tests/CLASSIX/OS.cpp delete mode 100644 tests/CLASSIX/OS_Test.cpp delete mode 100644 tests/CLASSIX/README delete mode 100644 tests/CLASSIX/Reactor_Test.cpp delete mode 100644 tests/CLASSIX/Reactor_Test.h delete mode 100644 tests/CLASSIX/SOCK_Test.cpp delete mode 100644 tests/CLASSIX/Select_Reactor_Test.cpp delete mode 100644 tests/CLASSIX/Select_Reactor_Test.h delete mode 100644 tests/CLASSIX/Stream_Test.cpp delete mode 100644 tests/CLASSIX/test_config.h delete mode 100644 tests/CPP_Test.cpp delete mode 100644 tests/Conn_Test.bpr delete mode 100644 tests/Conn_Test.cpp delete mode 100644 tests/Conn_Test.dsp delete mode 100644 tests/Conn_Test.h delete mode 100644 tests/Enum_Interfaces_Test.bpr delete mode 100644 tests/Enum_Interfaces_Test.cpp delete mode 100644 tests/Enum_Interfaces_Test.dsp delete mode 100644 tests/Env_Value_Test.bpr delete mode 100644 tests/Env_Value_Test.cpp delete mode 100644 tests/Env_Value_Test.dsp delete mode 100644 tests/Future_Test.bpr delete mode 100644 tests/Future_Test.cpp delete mode 100644 tests/Future_Test.dsp delete mode 100644 tests/Handle_Set_Test.bpr delete mode 100644 tests/Handle_Set_Test.cpp delete mode 100644 tests/Handle_Set_Test.dsp delete mode 100644 tests/Hash_Map_Manager_Test.bpr delete mode 100644 tests/Hash_Map_Manager_Test.cpp delete mode 100644 tests/Hash_Map_Manager_Test.dsp delete mode 100644 tests/Hash_Map_Manager_Test.h delete mode 100644 tests/IOStream_Test.bpr delete mode 100644 tests/IOStream_Test.cpp delete mode 100644 tests/IOStream_Test.dsp delete mode 100644 tests/MM_Shared_Memory_Test.bpr delete mode 100644 tests/MM_Shared_Memory_Test.cpp delete mode 100644 tests/MM_Shared_Memory_Test.dsp delete mode 100644 tests/MT_Reactor_Timer_Test.bpr delete mode 100644 tests/MT_Reactor_Timer_Test.cpp delete mode 100644 tests/MT_Reactor_Timer_Test.h delete mode 100644 tests/MT_SOCK_Test.bpr delete mode 100644 tests/MT_SOCK_Test.cpp delete mode 100644 tests/MT_SOCK_Test.dsp delete mode 100644 tests/Makefile delete mode 100644 tests/Map_Manager_Test.bpr delete mode 100644 tests/Map_Manager_Test.cpp delete mode 100644 tests/Map_Manager_Test.dsp delete mode 100644 tests/Mem_Map_Test.bpr delete mode 100644 tests/Mem_Map_Test.cpp delete mode 100644 tests/Mem_Map_Test.dsp delete mode 100644 tests/Message_Block_Test.bpr delete mode 100644 tests/Message_Block_Test.cpp delete mode 100644 tests/Message_Block_Test.dsp delete mode 100644 tests/Message_Queue_Notifications_Test.bpr delete mode 100644 tests/Message_Queue_Notifications_Test.cpp delete mode 100644 tests/Message_Queue_Notifications_Test.dsp delete mode 100644 tests/Message_Queue_Test.bpr delete mode 100644 tests/Message_Queue_Test.cpp delete mode 100644 tests/Message_Queue_Test.dsp delete mode 100644 tests/Naming_Test.bpr delete mode 100644 tests/Naming_Test.cpp delete mode 100644 tests/Naming_Test.dsp delete mode 100644 tests/Notify_Performance_Test.bpr delete mode 100644 tests/Notify_Performance_Test.cpp delete mode 100644 tests/Notify_Performance_Test.dsp delete mode 100644 tests/OrdMultiSet_Test.bpr delete mode 100644 tests/OrdMultiSet_Test.cpp delete mode 100644 tests/OrdMultiSet_Test.dsp delete mode 100644 tests/Pipe_Test.bpr delete mode 100644 tests/Pipe_Test.cpp delete mode 100644 tests/Pipe_Test.dsp delete mode 100644 tests/Priority_Buffer_Test.bpr delete mode 100644 tests/Priority_Buffer_Test.cpp delete mode 100644 tests/Priority_Buffer_Test.dsp delete mode 100644 tests/Priority_Reactor_Test.bpr delete mode 100644 tests/Priority_Reactor_Test.cpp delete mode 100644 tests/Priority_Reactor_Test.dsp delete mode 100644 tests/Priority_Reactor_Test.h delete mode 100644 tests/Priority_Task_Test.bpr delete mode 100644 tests/Priority_Task_Test.cpp delete mode 100644 tests/Priority_Task_Test.dsp delete mode 100644 tests/Process_Mutex_Test.bpr delete mode 100644 tests/Process_Mutex_Test.cpp delete mode 100644 tests/Process_Mutex_Test.dsp delete mode 100644 tests/Process_Strategy_Test.bpr delete mode 100644 tests/Process_Strategy_Test.cpp delete mode 100644 tests/Process_Strategy_Test.dsp delete mode 100644 tests/Process_Strategy_Test.h delete mode 100644 tests/README delete mode 100644 tests/Reactor_Exceptions_Test.bpr delete mode 100644 tests/Reactor_Exceptions_Test.cpp delete mode 100644 tests/Reactor_Exceptions_Test.dsp delete mode 100644 tests/Reactor_Notify_Test.bpr delete mode 100644 tests/Reactor_Notify_Test.cpp delete mode 100644 tests/Reactor_Notify_Test.dsp delete mode 100644 tests/Reactor_Performance_Test.bpr delete mode 100644 tests/Reactor_Performance_Test.cpp delete mode 100644 tests/Reactor_Performance_Test.dsp delete mode 100644 tests/Reactor_Performance_Test.h delete mode 100644 tests/Reactor_Timer_Test.bpr delete mode 100644 tests/Reactor_Timer_Test.cpp delete mode 100644 tests/Reactor_Timer_Test.dsp delete mode 100644 tests/Reactors_Test.bpr delete mode 100644 tests/Reactors_Test.cpp delete mode 100644 tests/Reactors_Test.dsp delete mode 100644 tests/Reader_Writer_Test.bpr delete mode 100644 tests/Reader_Writer_Test.cpp delete mode 100644 tests/Reader_Writer_Test.dsp delete mode 100644 tests/Recursive_Mutex_Test.bpr delete mode 100644 tests/Recursive_Mutex_Test.cpp delete mode 100644 tests/Recursive_Mutex_Test.dsp delete mode 100644 tests/SOCK_Connector_Test.bpr delete mode 100644 tests/SOCK_Connector_Test.cpp delete mode 100644 tests/SOCK_Connector_Test.dsp delete mode 100644 tests/SOCK_Test.bpr delete mode 100644 tests/SOCK_Test.cpp delete mode 100644 tests/SOCK_Test.dsp delete mode 100644 tests/SPIPE_Test.bpr delete mode 100644 tests/SPIPE_Test.cpp delete mode 100644 tests/SPIPE_Test.dsp delete mode 100644 tests/SString_Test.bpr delete mode 100644 tests/SString_Test.cpp delete mode 100644 tests/SString_Test.dsp delete mode 100644 tests/SV_Shared_Memory_Test.bpr delete mode 100644 tests/SV_Shared_Memory_Test.cpp delete mode 100644 tests/SV_Shared_Memory_Test.dsp delete mode 100644 tests/Semaphore_Test.bpr delete mode 100644 tests/Semaphore_Test.cpp delete mode 100644 tests/Semaphore_Test.dsp delete mode 100644 tests/Service_Config_Test.bpr delete mode 100644 tests/Service_Config_Test.cpp delete mode 100644 tests/Service_Config_Test.dsp delete mode 100644 tests/Shared_Memory_SV_Test.cpp delete mode 100644 tests/Sigset_Ops_Test.bpr delete mode 100644 tests/Sigset_Ops_Test.cpp delete mode 100644 tests/Sigset_Ops_Test.dsp delete mode 100644 tests/Simple_Message_Block_Test.bpr delete mode 100644 tests/Simple_Message_Block_Test.cpp delete mode 100644 tests/Simple_Message_Block_Test.dsp delete mode 100644 tests/TSS_Test.bpr delete mode 100644 tests/TSS_Test.cpp delete mode 100644 tests/TSS_Test.dsp delete mode 100644 tests/TSS_Test_Errno.h delete mode 100644 tests/Task_Test.bpr delete mode 100644 tests/Task_Test.cpp delete mode 100644 tests/Task_Test.dsp delete mode 100644 tests/Thread_Manager_Test.bpr delete mode 100644 tests/Thread_Manager_Test.cpp delete mode 100644 tests/Thread_Manager_Test.dsp delete mode 100644 tests/Thread_Manager_Test.h delete mode 100644 tests/Thread_Mutex_Test.bpr delete mode 100644 tests/Thread_Mutex_Test.cpp delete mode 100644 tests/Thread_Mutex_Test.dsp delete mode 100644 tests/Thread_Pool_Test.bpr delete mode 100644 tests/Thread_Pool_Test.cpp delete mode 100644 tests/Thread_Pool_Test.dsp delete mode 100644 tests/Time_Service_Test.bpr delete mode 100644 tests/Time_Service_Test.cpp delete mode 100644 tests/Time_Service_Test.dsp delete mode 100644 tests/Time_Value_Test.bpr delete mode 100644 tests/Time_Value_Test.cpp delete mode 100644 tests/Time_Value_Test.dsp delete mode 100644 tests/Timeprobe_Test.cpp delete mode 100644 tests/Timeprobe_Test.dsp delete mode 100644 tests/Timer_Queue_Test.bpr delete mode 100644 tests/Timer_Queue_Test.cpp delete mode 100644 tests/Timer_Queue_Test.dsp delete mode 100644 tests/Tokens_Test.bpr delete mode 100644 tests/Tokens_Test.cpp delete mode 100644 tests/Tokens_Test.dsp delete mode 100644 tests/UNIXclerk.conf delete mode 100644 tests/UNIXserver.conf delete mode 100644 tests/UNIXtokens.conf delete mode 100644 tests/UPIPE_SAP_Test.bpr delete mode 100644 tests/UPIPE_SAP_Test.cpp delete mode 100644 tests/UPIPE_SAP_Test.dsp delete mode 100644 tests/Win32clerk.conf delete mode 100644 tests/Win32server.conf delete mode 100644 tests/Win32tokens.conf delete mode 100644 tests/WinCE/Atomic_Op_Test.dsp delete mode 100644 tests/WinCE/Barrier_Test.dsp delete mode 100644 tests/WinCE/Basic_Types_Test.dsp delete mode 100644 tests/WinCE/Buffer_Stream_Test.dsp delete mode 100644 tests/WinCE/Conn_Test.dsp delete mode 100644 tests/WinCE/Enum_Interfaces_Test.dsp delete mode 100644 tests/WinCE/Future_Test.dsp delete mode 100644 tests/WinCE/Handle_Set_Test.dsp delete mode 100644 tests/WinCE/Hash_Map_Manager_Test.dsp delete mode 100644 tests/WinCE/MT_Reactor_Timer_Test.dsp delete mode 100644 tests/WinCE/MT_SOCK_Test.dsp delete mode 100644 tests/WinCE/Map_Manager_Test.dsp delete mode 100644 tests/WinCE/Mem_Map_Test.dsp delete mode 100644 tests/WinCE/Message_Block_Test.dsp delete mode 100644 tests/WinCE/Message_Queue_Test.dsp delete mode 100644 tests/WinCE/Notify_Performance_Test.dsp delete mode 100644 tests/WinCE/OrdMultiSet_Test.dsp delete mode 100644 tests/WinCE/Priority_Buffer_Test.dsp delete mode 100644 tests/WinCE/Priority_Task_Test.dsp delete mode 100644 tests/WinCE/Reactor_Exceptions_Test.dsp delete mode 100644 tests/WinCE/Reactor_Notify_Test.dsp delete mode 100644 tests/WinCE/Reactor_Timer_Test.dsp delete mode 100644 tests/WinCE/Reactors_Test.dsp delete mode 100644 tests/WinCE/Reader_Writer_Test.dsp delete mode 100644 tests/WinCE/Recursive_Mutex_Test.dsp delete mode 100644 tests/WinCE/SOCK_Connector_Test.dsp delete mode 100644 tests/WinCE/SOCK_Test.dsp delete mode 100644 tests/WinCE/SString_Test.dsp delete mode 100644 tests/WinCE/Semaphore_Test.dsp delete mode 100644 tests/WinCE/Sigset_Ops_Test.dsp delete mode 100644 tests/WinCE/Simple_Message_Block_Test.dsp delete mode 100644 tests/WinCE/TSS_Test.dsp delete mode 100644 tests/WinCE/Task_Test.dsp delete mode 100644 tests/WinCE/Thread_Manager_Test.dsp delete mode 100644 tests/WinCE/Thread_Mutex_Test.dsp delete mode 100644 tests/WinCE/Thread_Pool_Test.dsp delete mode 100644 tests/WinCE/Time_Value_Test.dsp delete mode 100644 tests/WinCE/Timer_Queue_Test.dsp delete mode 100644 tests/WinCE/ce_tests.dsw delete mode 100644 tests/XtReactor_Test.cpp delete mode 100644 tests/run_tests.bat delete mode 100755 tests/run_tests.check delete mode 100755 tests/run_tests.ksh delete mode 100755 tests/run_tests.psosim delete mode 100755 tests/run_tests.sh delete mode 100644 tests/run_tests.vxworks delete mode 100644 tests/test_config.h delete mode 100644 tests/tests.bpg delete mode 100644 tests/tests.dsw delete mode 100644 tests/tests.mak delete mode 100644 tests/tests.mdp delete mode 100644 tests/tests_bcc.ide delete mode 100644 tests/version_tests/Barrier_Test.dsp delete mode 100644 tests/version_tests/Basic_Types_Test.dsp delete mode 100644 tests/version_tests/Buffer_Stream_Test.dsp delete mode 100644 tests/version_tests/Conn_Test.dsp delete mode 100644 tests/version_tests/Enum_Interfaces_Test.dsp delete mode 100644 tests/version_tests/Env_Value_Test.dsp delete mode 100644 tests/version_tests/Future_Test.dsp delete mode 100644 tests/version_tests/Handle_Set_Test.dsp delete mode 100644 tests/version_tests/Hash_Map_Manager_Test.dsp delete mode 100644 tests/version_tests/IOStream_Test.dsp delete mode 100644 tests/version_tests/MM_Shared_Memory_Test.dsp delete mode 100644 tests/version_tests/MT_SOCK_Test.dsp delete mode 100644 tests/version_tests/Map_Manager_Test.dsp delete mode 100644 tests/version_tests/Mem_Map_Test.dsp delete mode 100644 tests/version_tests/Message_Block_Test.dsp delete mode 100644 tests/version_tests/Message_Queue_Notification_Test.dsp delete mode 100644 tests/version_tests/Message_Queue_Test.dsp delete mode 100644 tests/version_tests/Naming_Test.dsp delete mode 100644 tests/version_tests/Notify_Performance_Test.dsp delete mode 100644 tests/version_tests/OrdMultiSet_Test.dsp delete mode 100644 tests/version_tests/Pipe_Test.dsp delete mode 100644 tests/version_tests/Priority_Buffer_Test.dsp delete mode 100644 tests/version_tests/Priority_Reactor_Test.dsp delete mode 100644 tests/version_tests/Priority_Task_Test.dsp delete mode 100644 tests/version_tests/Process_Mutex_Test.dsp delete mode 100644 tests/version_tests/Process_Strategy_Test.dsp delete mode 100644 tests/version_tests/Reactor_Exception_Test.dsp delete mode 100644 tests/version_tests/Reactor_Notify_Test.dsp delete mode 100644 tests/version_tests/Reactor_Performance_Test.dsp delete mode 100644 tests/version_tests/Reactor_Timer_Test.dsp delete mode 100644 tests/version_tests/Reactors_Test.dsp delete mode 100644 tests/version_tests/Reader_Writer_Test.dsp delete mode 100644 tests/version_tests/Recursive_Mutex_Test.dsp delete mode 100644 tests/version_tests/SOCK_Connector_Test.dsp delete mode 100644 tests/version_tests/SOCK_Test.dsp delete mode 100644 tests/version_tests/SPIPE_Test.dsp delete mode 100644 tests/version_tests/SString_Test.dsp delete mode 100644 tests/version_tests/SV_Shared_Memory_Test.dsp delete mode 100644 tests/version_tests/Semaphore_Test.dsp delete mode 100644 tests/version_tests/Service_Config_Test.dsp delete mode 100644 tests/version_tests/Sigset_Op_Test.dsp delete mode 100644 tests/version_tests/Simple_Message_Block_Test.dsp delete mode 100644 tests/version_tests/TSS_Test.dsp delete mode 100644 tests/version_tests/Task_Test.dsp delete mode 100644 tests/version_tests/Thread_Manager_Test.dsp delete mode 100644 tests/version_tests/Thread_Mutex_Test.dsp delete mode 100644 tests/version_tests/Thread_Pool_Test.dsp delete mode 100644 tests/version_tests/Time_Service_Test.dsp delete mode 100644 tests/version_tests/Time_Value_Test.dsp delete mode 100644 tests/version_tests/Timeprobe_Test.dsp delete mode 100644 tests/version_tests/Timer_Queue_Test.dsp delete mode 100644 tests/version_tests/Tokens_Test.dsp delete mode 100644 tests/version_tests/UPIPE_SAP_Test.dsp delete mode 100755 tests/version_tests/run_all_tests.bat delete mode 100644 tests/version_tests/version_tests.dsp delete mode 100644 tests/version_tests/version_tests.dsw delete mode 100644 tests/version_tests/version_tests.mak delete mode 100644 tests/version_tests/version_tests.mdp diff --git a/ACE-INSTALL.html b/ACE-INSTALL.html deleted file mode 100644 index e29edc82dfa..00000000000 --- a/ACE-INSTALL.html +++ /dev/null @@ -1,1300 +0,0 @@ - - - - - Building and Installing ACE and Its Network Services - - - - - -
-

Building and Installing ACE and Its Network Services

- -

Synopsis

- -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 ChangeLog file -to see whether any recent changes to the release will affect your -code. In addition, you might want to read the ACE FAQ before building and installing ACE. - -

Document Index

- - - -


-

Supported Platforms and Compilers

- -

The ADAPTIVE Communication Environment has been ported and tested -extensively on a wide range of C++ compilers and uni-processor and -multi-processor OS platforms including Win32, i.e., WinNT/i386, -WinNT/Alpha, Win95, and Windows CE; most versions of UNIX, e.g., SunOS -4.x and 5.x, SGI IRIX, DG/UX, HP-UX, OSF/1 a.k.a. DEC UNIX, AIX 4.x, -Linux, SCO, UnixWare, FreeBSD, -MVS -OpenEdition, and LynxOS; VxWorks; and PSoS. If you have a -problem compiling the ACE wrappers on the platforms shown below please -send email to either ACE -Newsgroup or the ACE -mailing list and we'll try to fix it for you. - -

The following table summarizes those platforms for which ACE -is known to support well.

- - - - - - - - - - - - - - - - - - -
Fully supported, i.e., continually tested and used dailySolaris 2.5, Windows NT (MSVC++ 4.x and 5.0), - DEC Alpha Windows NT (MSVC++ 5.0), Linux/Intel, - Linux/Alpha, VxWorks, LynxOS, Digital UNIX 4.0, - HP/UX, AIX -
Nearly fully supported, i.e., periodically testedSolaris 2.6, Windows 95, Windows CE, IRIX 6.x, MVS -
Partially supported, i.e., infrequently tested - PSoS, Tandem, Chorus, SCO, UnixWare, SunOS 4.x, - FreeBSD, NetBSD -
Planned support, i.e., pending - Windows CE -
- -

In general, any UNIX/POSIX variation is a potential target platform -for ACE. Ideally, ACE will compile on any POSIX conforming OS. - -


-

Installation Notes for Supported Platforms

- - - -
-

Compiling ACE with GNU g++

- -If you use the GNU GCC g++ compiler please note the following: - - - -


- -

Building and Installing ACE

- -The following explains how to build the ACE on UNIX and Win32. - -

Building and Installing ACE on UNIX

- -Building and installing ACE on UNIX is relatively simple (the process for Win32 is different). Here's what you -need to do:

- -

    -
  1. Install GNU make 3.7 or greater on your system (available via - anonymous ftp from prep.ai.mit.edu in the pub/gnu directory). - You must use GNU make or ACE won't compile.

    - -

  2. 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:

    - -

    
    -% setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
    -

    - -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: - -

    
    -% setenv ACE_ROOT $cwd
    -
    - -
  3. 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.

    - -

  4. Set the $ACE_ROOT/ace/config.h file to point to the appropriate - platform/compiler-specific header configurations (such as - config-sunos5-sunc++-4.x.h). This file contains the #defines that - are used throughout ACE to indicate which features your system - supports (see the $ACE_ROOT/ace/OS.h file for many - examples of how the ACE build configuration is affected by these - macro settings).

    - - 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.

    - -

  5. Set the $ACE_ROOT/include/makeinclude/platform_macros.GNU file - to point to the appropriate platform/compiler-specific Makefile - configurations, e.g., platform_sunos5_sunc++.GNU. This file - contains the compiler and Makefile directives that are - platform/compiler-specific

    - -

  6. Note that since 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

    - -

    
    -% setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
    -

    - -

  7. When all this is done, hopefully all you'll need to do is type:

    - -

    
    -% make
    -

    - -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, however. Therefore, you might -consider cd'ing into the $ACE_ROOT/ace/ directory and running -make there to build just the ACE library. As a sanity -check, you might also want to build and run the automated ``one-button'' tests in -$ACE_ROOT/tests/.

    - -

  8. If you need to regenerate the Svc_Conf_y.cpp file, you'll need to -get Berkeley -YACC. However, you should rarely, if ever, need to do this.

    - -

- -


-

Building and Installing ACE on Win32

- -ACE contains project files for Microsoft Visual C++ 4.x (*.mdp) and -5.0 with Service Pack 2 or 3 (*.dsw), as well as Borland C++ 5.x (ace.ide). -

- -There are also project group files (BPG) to compile ACE and the -one-button tests with Borland C++ Builder 3.0. This port has not -been completed yet, so basically you are on your own here. The -port was started by -Gonzalo A. Diethelm, so contact him for any further directions.

- -Note concerning MSVC 5.0 and Service Pack 3: 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 -Bill Fulton, -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. -

-So, if you are experiencing problems with SP3, get a newer one - it'll -probably work. Sheesh... -

-Note, however, that regardless of the version of SP3, -there are some STL bugs in SP3 which you should get corrected. Please see - -http://www.dinkumware.com/vc_fixes.html for details. -Thank you to Ben Eng for the pointer to -the STL fixes. - -

    -
  1. Create a directory, e.g., C:\ACE, and copy all of the ACE - distribution into it. This directory will be referred to as - ACE_ROOT in the rest of this discussion.

    -
  2. Create a file called config.h in the ACE_ROOT\ace directory - that contains:
    -
    - #include "ace/config-win32.h"
    -
    -
  3. Now load up the project file for ACE (ACE_ROOT\ace\ACE_Library.mdp or - ACE_ROOT\ace\ace.dsw). If you are using MSVC 4.x, you will - need to add paths to your global settings. In - Tools|Options|Directories, add ACE_ROOT to your include path - and ACE_ROOT\ace to your library path.

    -
  4. Each project will contain 8 different configurations. These - are a mixture of Debug/Release, Unicode/non-Unicode, and - Static/Dynamic library versions for both i386 and Alpha machines. - Note: If you - use the dynamic libraries, make sure you include ACE_ROOT\ace - in your PATH whenever you run programs that use ACE.

    -
  5. If you are building for Windows NT and plan to use the STL - implementation that comes with ACE, then you can start building - now. If you are building on Windows 95, then you should add - the line
    -
    - #define ACE_HAS_WINNT4 0
    -
    - before the #include statement in ACE_ROOT\ace\config.h and it - will turn off Windows NT 4 specific code.
    -
    - If you want to use the standard C++ headers (iostream, cstdio, ... - as defined by the C++ Standard Draft 2) that comes with MSVC 5, - then add the line
    -
    - #define ACE_HAS_STANDARD_CPP_LIBRARY 1
    -
    - before the #include statement in ACE_ROOT\ace\config.h.
    - If you are building for Windows CE, you need to add the line
    -
    - #define ACE_HAS_WINCE -
    - before including <ace/config-win32.h>. Notice that CE uses a - different set of dsw/dsp files.

    - - The default project files which build ACE library have various - configurations to build dynamic/static, with or without Unicode - support. Although we recommend using the dynamic library, if, - for some reasons, you would rather work with static library, - you'll need to add the line
    -
    - #define ACE_HAS_DLL 0
    -
    - before the #include statement in ACE_ROOT\ace\config.h. - Optionally but highly recommended, you can also add the line
    -
    - #define __ACE_INLINE__ 0
    -
    - before the #include statement in ACE_ROOT\ace\config.h to disable - inline function and reduce the size of static libraries (and your - executables.)

    -
- -ACE TESTS

- -The tests are located in ACE_ROOT\tests. There are two corresponding -project files in that directory also (tests.mdp and tests.dsp).

- -Once you build all the tests (Batch Build works well for this) you can -run the batch file run_tests.bat in that directory to try all the -tests.

- - BUILDING ACE ON A WIN32 MACHINE THAT LACKS A NETWORK CARD

- -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:

- -

    -
  1. Run Control Panel -
  2. Choose Network from Control Panel -
  3. Add Adapter: MS Loopback Adapter -
  4. Configure MS Loopback Adapter with 802.3 (default) -
  5. Add Software: TCP/IP Protocol -
  6. Configure TCP/IP Protocol with a valid IP address and subnet mask. - Leave everything else at the default settings. -
  7. Add Software: Workstation -
  8. Exit and Restart System -
  9. Run Control Panel again -
  10. Choose Services from Control Panel -
  11. The following services are not necessary and may - be set to Disabled Startup:
    - Alerter
    - Computer Browser
    - Net logon
    - Messanger
    -
  12. Choose Network from Control Panel -
  13. Confirm the following setup. This is all you need to run ACE:
    - Installed Software:
    - Computer Browser
    - MS Loopback Adapter Driver
    - TCP/IP Protocol
    - Workstation
    - Installed Adapter Cards:
    - MS Loopback Adapter

    -

- - -
-

Building and Installing ACE on VxWorks

-For the most part, you should be able to follow the instructions above -to build ACE and applications that use it. Start with the -Unix instructions above to build ACE and the -applications that use it. Please see below for mroe information on -building ACE on NT hosts for VxWorks targets.

- -A few notes on VxWorks builds (thanks to -Paul von Behren -for these notes):

-

- -You'll have to let ACE know the target type at compile time. -There are several ways to do this; please see the -$ACE_ROOT/include/makeinclude/platform_vxworks5.x_g++.GNU -platform file for detailed information.

- -The VxWorks platform_vxworks*.GNU files are set up so that shared -libraries are not built on VxWorks. 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.

- -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.

- -These non-default VxWorks kernel configuration #defines -are required with ACE:

- -

-#define INCLUDE_CPLUS		/* include C++ support */
-#define INCLUDE_CPLUS_IOSTREAMS	/* include iostreams classes */
-#define INCLUDE_POSIX_ALL       /* include all available POSIX functions */
-
- -For completeness, here are the non-default #defines that -we used for VxWorks 5.3.1/g++ 2.7.2: - -
-#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 */
-
- -It probably wouldn't take much effort to modify the -ACE library to not require INCLUDE_CPLUS_IOSTREAMS, -if necessary. - -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.

- -Please note that the main entry point is renamed to -ace_main (configurable via ACE_MAIN) on VxWorks with g++, -to comply with its restriction against using main. -In addition, ACE_HAS_NONSTATIC_OBJECT_MANAGER is enabled by default -to cleanly support construction and destruction of static objects. -This requires that main be declared with its arguments -even if they're not used, and with int return type: - -


-  int
-  main (int, char *[])
-
- -Alternatively, this feature can be disabled by commenting out the -#define ACE_HAS_NONSTATIC_OBJECT_MANAGER in your ace/config.h. -But, that will make repeated testing more difficult on VxWorks. -You'd either have to call static constructors and destructors -manually or unload/load the program between runs.

- -WARNING: -ACE on VxWorks assumes that your main function is named -main when using ACE_HAS_NONSTATIC_OBJECT_MANAGER. Any -violation of this assumption is at your peril. If you really need to -call your entry point something other than main, you'll -need to construct an ACE_Object_Manager. Please see the -#define of main (int, char *[]) in -ace/OS.h to see how ACE does that for entry points named -main.

- -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 "==ace_t==" are forbidden because -that prefix is used internally by ACE.

- -You can spawn a new task to run ace_main, using either -VxWorks sp, or ACE'S spa. -spa can be used from the VxWorks shell to pass arguments -to ace_main. Its usage is: - -


-  spa ace_main, "arg1" [, ...]
-
- -All arguments must be quoted, even numbers.

- -By default, the ACE Makefiles link the ACE library into every -executable. If you want to run multiple ACE executables but just use -a single ACE library, it should be possible, though I haven't tried -it. Just link the first executable to be loaded onto the target with -the ACE library, as usual. All other executables can be linked -without the ACE library by added ACELIB= to the make -invocation when building them. When they are loaded onto the target, -the should load against the symbols from the ACE library from the -first executable that was loaded.

- -

Building ACE on Tornado/NT hosts for VxWorks targets.
-The following, very useful information was contributed by -Chris Ryan -and Paul von Behren. -Please submit corrections, additions, or clarifications to the -the ACE mailing list.

- -A few additional Windows Notes, from Paul von Behren:

-

- -And Chris Ryan's instructions for building for VxWorks targets -on Windows NT hosts: - -
    -
  1. Create UNIX-like environment in NT Command Prompt windows by - downloading GNU bash, perl, and so forth from your favorite ftp - site. I went to ftp://ftp.cygnus.com/pub/gnu-win32/latest/ - and downloaded cdk.exe and installed that on my NT box. - I downloaded perl5.0 from where I can't remember. There may have been - bits and pieces from other places for things like vi and - less. - -
  2. Download latest ACE. Create 2 parallel trees, say - /ace/ACE_wrappers.NT and - /ace/ACE_wrappers.vxworks. The NT tree is for building - aced.dll and tao_idl.exe as currently - documented for ACE/TAO on NT/VC++5.0. The VxWorks tree is the - cross compilation tree. - -
  3. Path setting that seems to be working is:

    -

    -/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
    -
    - - Other environment variables:

    -

    -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
    -
    - -
  4. /tornado is the root of the Tornado install - ($WIND_BASE). - -
  5. /gnuwin32 is the root of a Cygnus GNU download and install. - -
  6. /bin content is:

    -

    -aced.dll
    -cygwin.dll
    -perl.exe
    -rm.exe
    -sh.exe
    -true
    -
    - - aced.dll is produced in an ACE NT source tree according to - documented procedure for NT VC++5.0 ACE build. - - cygwin.dll is from the Cygnus GNU software download and install. - -
  7. Basically, follow documented procedure for ACE build/install on UNIX - platform. Create a $ACE_ROOT/ace/config.h that looks like:

    -

    -#define __ACE_INLINE__ 0
    -#define ACE_HAS_DLL 0
    -#include "config-vxworks5.x.h"
    -
    - - And create a $ACE_ROOT/include/makeinclude/platform_macros.GNU - that looks like:

    -

    -WIND_BASE = /tornado
    -WIND_HOST_TYPE = x86-win32
    -PATH += :$(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin
    -CPU = I80486
    -include $(ACE_ROOT)/include/makeinclude/platform_NTvxworks5.x_g++.GNU
    -
    - - (But, I guess the PATH+= line is superfluous based on the PATH as shown - previously). - - Finally, create a - $ACE_ROOT/include/makeinclude/platform_NTvxworks5.x_g++.GNU - with diff output from 'diff platform_vxworks5.x_g++.GNU - platform_NTvxworks5.x_g++.GNU' that looks like: - -
    -58c58
    -< HOST_DIR        = $(WIND_BASE)/host/sun4-solaris2
    ----
    -> HOST_DIR        = $(WIND_BASE)/host/x86-win32
    -62,63c62,63
    -< CXX             = g++$(TOOLENV)
    -< CFLAGS          += -DVXWORKS -D_REENTRANT -ansi -fno-builtin
    --fno-defer-pop -fvolatile -nostdinc -nostdlib -pipe -Wall
    ----
    -> CXX             = $(CC)
    -> CFLAGS          += -DVXWORKS -D_REENTRANT -ansi -fno-builtin -fno-defer-pop \
    -                -fvolatile -nostdinc -nostdlib -Wall #-pipe
    -
    - -
  8. Now, follow the existing documentation for a UNIX platform build of ACE - such as: -
    -        cd $ACE_ROOT/ace; make
    -        
    - -
  9. To build $ACE_ROOT/tests, I had to use the make.exe in the - /gnuwin32/b18/H-i386-cygwin32/bin directory as I couldn't get - make shipped with Tornado to run ace_ld and I couldn't figure out any - other work around.

    - -

    -    cd $ACE_ROOT/tests; /gnuwin32/b18/H-i386-cygwin32/bin/make
    -    
    - - Also, running the tests works as already documented. -
- -
TAO on NT Tornado host, VxWorks target.
- -
    -
  1. Build ACE and TAO_IDL in the NT tree as already documented. As - mentioned above, I put aced.dll in /bin. - -
  2. Copy TAO_IDL/tao_idl.exe to TAO_IDL directory in the ACE/TAO vxworks - source tree. (I didn't spend any time yet looking for the place where the - makefiles are using the absolute path to tao_idl.exe.) - -
  3. Build orbsvcs. -
    -    CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
    -    cd $TAO_ROOT/orbsvcs/orbsvcs
    -    /gnuwin32/b18/H-i386-cygwin32/bin/make
    -    
    - -
  4. Build $TAO_ROOT/tao -
    -    CPP_LOCATION=/Program Files/DevStudio/VC/bin/CL.exe
    -    cd $TAO_ROOT/tao
    -    /gnuwin32/b18/H-i386-cygwin32/bin/make
    -    
    - -
  5. Build $TAO_ROOT/tests -
- - -
-

Building and Installing ACE Network Services

- -The following explains how to build the ACE network services on UNIX and Win32. - -

Building and Installing ACE Network Services on UNIX

- -Building and installing ACE Network Services on UNIX is relatively -simple (the process for Win32 is different). -Here's what you need to do:

- -

    - -
  1. Build and install ACE on UNIX as described earlier. 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 -(main) contained in -$ACE_ROOT/netsvcs/servers/main.cpp should also be compiled and ready to run.

    - -

  2. 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

    - -

    
    -% setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$LD_LIBRARY_PATH
    -

    - -

  3. By default, if the shared object library is built, the services - are linked into the main driver program dynamically. - To specify which services should be linked in and executed, edit the - -$ACE_ROOT/netsvcs/servers/svc.conf 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 Service Configurator - documentation to learn how the configuration file is parsed and - how the services are dynamically linked and executed. In - addition, refer to the Network - Services documentation to learn more about how to configure - each network service.

    - -

  4. If you only want to link the services statically, simply remove - or rename the svc.conf file.

    -

- -

Building and Installing ACE Network Services on Win32

- -Once again, there are supplied project for both MSVC 4.x and 5.0 for -the Network Services.

- -If you are using MSVC 4.x, you will need to add another directory to -your global include and library paths, ACE_ROOT/netsvcs/lib. When you -use the dynamic libraries, make sure to also include ACE_ROOT/netsvcs/lib -in your PATH.

- -


-

Advanced Topics

- - - -

Cloning the Source Tree

- -On UNIX platforms, I typically like to support multiple platform -builds using the same ACE source tree. This idiom is supported by ACE -using the $(ACE_ROOT)/bin/clone.c program. To build clone, -perform the following steps:

- -

-% cd $ACE_ROOT/bin
-% make
-% mv clone ~/bin
-% rehash
-

- -Then create a ./build subdirectory someplace, e.g., under -$ACE_ROOT, and then invoke the top-level Makefile with the -``clone'' target, e.g.:

- -

-% cd $ACE_ROOT
-% mkdir build-SunOS5
-% cd build-SunOS5
-% make -f ../Makefile clone
-% (cd ace; ln -s config-sunos5.5-g++.h config.h)
-% (cd include/makeincludes; ln -s platform_sunos5-g++.h platform_macros.GNU)
-% setenv ACE_ROOT $cwd
-% make
-

- -This will establish a complete tree of links. Note that you must -build a config.h and platform_macros.GNU in cloned directory. In -addition, make sure you set your LD_LIBRARY_PATH to -$ACE_ROOT/ace:$LD_LIBRARY_PATH on SVR4 UNIX platforms.

- -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.

- - VERY IMPORTANT!

- -If you use the ``clone trick'' 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.

- -Alternatively, the perl script -ACE_wrappers/bin/create_ace_build can be used to create -build trees. It creates them below ACE_wrappers/build. -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. - -


-

Building CORBA Versions of ACE

- -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 the symbolic links for -$ACE_ROOT/include/makeinclude/platform_macros.GNU and -$ACE_ROOT/ace/config.h to point to the the config* and platform* -files that have "-orbix" in them! - -


-

Additional Build Tips for MVS

- -For all intents and purpose, MVS OpenEdition (OE) is another flavor of -UNIX, therefore, the instructions under Building -and Installing ACE on Unix can be used along with the following -additional tips:

- - You can get a copy of GNU make that has been ported to MVS OpenEdition from - the IBM OpenEdition web site. - 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.

- - Note that the environment variable LD_LIBRARY_PATH is called LIBPATH - on MVS.

- - 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.

- - 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.

- -


-

Makefile Flags

- -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).
-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.
-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).
-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.
-xt_reactor	 Build the XtReactor
-
-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++.
-
-
-

- -Back to the ACE -home page. - - - - diff --git a/ACE-categories b/ACE-categories deleted file mode 100644 index 0ee7074906d..00000000000 --- a/ACE-categories +++ /dev/null @@ -1,538 +0,0 @@ --*- mode: outline; outline-regexp: " *\\[" -*- - -This file groups each file in $ACE_ROOT/ace into its appropriate -class category. - -[ACE] - [CORBA] - CORBA_Handler.cpp - CORBA_Handler.h - CORBA_Handler.i - CORBA_Ref.cpp - CORBA_Ref.h - CORBA_Ref.i - [Collections] - Array.cpp - Array.h - Array.i - Containers.cpp - Containers.i - Containers.h - Hash_Map_Manager.cpp - Hash_Map_Manager.h - Filecache.cpp - Filecache.h - Free_List.cpp - Free_List.i - Free_List.h - Managed_Object.cpp - Managed_Object.h - Managed_Object.i - Map_Manager.cpp - Map_Manager.h - Map_Manager.i - Object_Manager.cpp - Object_Manager.i - Object_Manager.h - SString.cpp - SString.h - SString.i - [Concurrency] - Activation_Queue.h - Activation_Queue.cpp - Atomic_Op.i - Future.h - Future.cpp - Method_Object.h - Method_Object.cpp - Process.cpp - Process.h - Process.i - Process_Manager.cpp - Process_Manager.h - Process_Manager.i - Sched_Params.cpp - Sched_Params.h - Sched_Params.i - Synch.cpp - Synch.h - Synch.i - Synch_Options.cpp - Synch_Options.h - Synch_Options.i - Synch_T.cpp - Synch_T.h - Synch_T.i - Thread.cpp - Thread.h - Thread.i - Thread_Manager.cpp - Thread_Manager.h - Thread_Manager.i - Token.cpp - Token.h - Token.i - [Config] - config.h - Basic_Types.cpp - Basic_Types.h - Basic_Types.i - Version.h - [Connection] - Acceptor.cpp - Acceptor.h - Acceptor.i - Asynch_Acceptor.cpp - Asynch_Acceptor.h - Asynch_Acceptor.i - Asynch_IO.cpp - Asynch_IO.h - Asynch_IO.i - Connector.cpp - Connector.h - Connector.i - Dynamic_Service.cpp - Dynamic_Service.h - Dynamic_Service.i - Strategies.cpp - Strategies.h - Strategies.i - Strategies_T.cpp - Strategies_T.h - Strategies_T.i - Svc_Handler.cpp - Svc_Handler.h - Svc_Handler.i - [IPC] - [IO_SAP] - IO_SAP.cpp - IO_SAP.h - IO_SAP.i - [DEV_SAP] - DEV.cpp - DEV.h - DEV.i - DEV_Connector.cpp - DEV_Connector.h - DEV_Connector.i - DEV_IO.cpp - DEV_IO.h - DEV_IO.i - TTY_IO.cpp - TTY_IO.h - [FILE_SAP] - FILE.cpp - FILE.h - FILE.i - FILE_Connector.cpp - FILE_Connector.h - FILE_Connector.i - FILE_IO.cpp - FILE_IO.h - FILE_IO.i - [IPC_SAP] - IPC_SAP.cpp - IPC_SAP.h - IPC_SAP.i - [Addr] - Addr.cpp - Addr.h - Addr.i - DEV_Addr.cpp - DEV_Addr.h - DEV_Addr.i - FILE_Addr.cpp - FILE_Addr.h - FILE_Addr.i - INET_Addr.cpp - INET_Addr.h - INET_Addr.i - SPIPE_Addr.cpp - SPIPE_Addr.h - SPIPE_Addr.i - UNIX_Addr.cpp - UNIX_Addr.h - UNIX_Addr.i - UPIPE_Addr.h - [FIFO_SAP] - FIFO.cpp - FIFO.h - FIFO.i - FIFO_Recv.cpp - FIFO_Recv.h - FIFO_Recv.i - FIFO_Recv_Msg.cpp - FIFO_Recv_Msg.h - FIFO_Recv_Msg.i - FIFO_Send.cpp - FIFO_Send.h - FIFO_Send.i - FIFO_Send_Msg.cpp - FIFO_Send_Msg.h - FIFO_Send_Msg.i - [SOCK_SAP] - LOCK_SOCK_Acceptor.cpp - LOCK_SOCK_Acceptor.h - LSOCK.cpp - LSOCK.h - LSOCK.i - LSOCK_Acceptor.cpp - LSOCK_Acceptor.h - LSOCK_Acceptor.i - LSOCK_CODgram.cpp - LSOCK_CODgram.h - LSOCK_CODgram.i - LSOCK_Connector.cpp - LSOCK_Connector.h - LSOCK_Connector.i - LSOCK_Dgram.cpp - LSOCK_Dgram.h - LSOCK_Dgram.i - LSOCK_Stream.cpp - LSOCK_Stream.h - LSOCK_Stream.i - SOCK.cpp - SOCK.h - SOCK.i - SOCK_Acceptor.cpp - SOCK_Acceptor.h - SOCK_Acceptor.i - SOCK_CODgram.cpp - SOCK_CODgram.h - SOCK_CODgram.i - SOCK_Connector.cpp - SOCK_Connector.h - SOCK_Connector.i - SOCK_Dgram.cpp - SOCK_Dgram.h - SOCK_Dgram.i - SOCK_Dgram_Bcast.cpp - SOCK_Dgram_Bcast.h - SOCK_Dgram_Bcast.i - SOCK_Dgram_Mcast.cpp - SOCK_Dgram_Mcast.h - SOCK_Dgram_Mcast.i - SOCK_IO.cpp - SOCK_IO.h - SOCK_IO.i - SOCK_Stream.cpp - SOCK_Stream.h - SOCK_Stream.i - [SPIPE_SAP] - SPIPE.cpp - SPIPE.h - SPIPE.i - SPIPE_Acceptor.cpp - SPIPE_Acceptor.h - SPIPE_Acceptor.i - SPIPE_Connector.cpp - SPIPE_Connector.h - SPIPE_Connector.i - SPIPE_Stream.cpp - SPIPE_Stream.h - SPIPE_Stream.i - [TLI_SAP] - TLI.cpp - TLI.h - TLI.i - TLI_Acceptor.cpp - TLI_Acceptor.h - TLI_Acceptor.i - TLI_Connector.cpp - TLI_Connector.h - TLI_Connector.i - TLI_Stream.cpp - TLI_Stream.h - TLI_Stream.i - [UPIPE_SAP] - UPIPE_Acceptor.cpp - UPIPE_Acceptor.h - UPIPE_Acceptor.i - UPIPE_Connector.cpp - UPIPE_Connector.h - UPIPE_Connector.i - UPIPE_Stream.cpp - UPIPE_Stream.h - UPIPE_Stream.i - [Utils] - IOStream.cpp - IOStream.h - IOStream_T.cpp - IOStream_T.h - IOStream_T.i - Pipe.cpp - Pipe.h - Pipe.i - Signal.cpp - Signal.h - Signal.i - [Logging and Tracing] - Dump.cpp - Dump.h - Dump_T.cpp - Dump_T.h - Log_Msg.cpp - Log_Msg.h - Log_Msg.i - Log_Priority.h - Log_Record.cpp - Log_Record.h - Log_Record.i - Trace.cpp - Trace.h - Trace.i - [Memory] - [Mem_Map] - Mem_Map.cpp - Mem_Map.h - Mem_Map.i - [Shared_Malloc] - Malloc.cpp - Malloc.h - Malloc.i - Malloc_T.cpp - Malloc_T.h - Malloc_T.i - Memory_Pool.cpp - Memory_Pool.h - Memory_Pool.i - [Shared_Memory] - Shared_Memory.h - Shared_Memory_MM.cpp - Shared_Memory_MM.h - Shared_Memory_MM.i - Shared_Memory_SV.cpp - Shared_Memory_SV.h - Shared_Memory_SV.i - [Utils] - Obstack.cpp - Obstack.h - Read_Buffer.cpp - Read_Buffer.h - Read_Buffer.i - [Misc] - ARGV.cpp - ARGV.h - ARGV.i - Auto_Ptr.cpp - Auto_Ptr.h - Auto_Ptr.i - Date_Time.cpp - Date_Time.h - Date_Time.i - Dynamic.cpp - Dynamic.h - Dynamic.i - Get_Opt.cpp - Get_Opt.h - Get_Opt.i - Registry.cpp - Registry.h - Singleton.cpp - Singleton.h - Singleton.i - System_Time.cpp - System_Time.h - [Name_Service] - Local_Name_Space.cpp - Local_Name_Space.h - Local_Name_Space_T.cpp - Local_Name_Space_T.h - Name_Options.cpp - Name_Options.h - Name_Proxy.cpp - Name_Proxy.h - Name_Request_Reply.cpp - Name_Request_Reply.h - Name_Space.cpp - Name_Space.h - Naming_Context.cpp - Naming_Context.h - Registry_Name_Space.cpp - Registry_Name_Space.h - Remote_Name_Space.cpp - Remote_Name_Space.h - [OS Adapters] - ACE.cpp - ACE.h - ACE.i - OS.cpp - OS.h - OS.i - [Reactor] - Event_Handler.cpp - Event_Handler.h - Event_Handler.i - Event_Handler_T.cpp - Event_Handler_T.h - Event_Handler_T.i - Handle_Set.cpp - Handle_Set.h - Handle_Set.i - Priority_Reactor.cpp - Priority_Reactor.i - Priority_Reactor.h - Proactor.h - Proactor.i - Proactor.cpp - Reactor.cpp - Reactor.h - Reactor.i - ReactorEx.cpp - ReactorEx.h - ReactorEx.i - Reactor_Impl.h - Select_Reactor.cpp - Select_Reactor.h - Select_Reactor.i - WFMO_Reactor.cpp - WFMO_Reactor.h - WFMO_Reactor.i - XtReactor.cpp - XtReactor.h - [Service_Configurator] - Parse_Node.cpp - Parse_Node.h - Parse_Node.i - Service_Config.cpp - Service_Config.h - Service_Config.i - Service_Main.cpp - Service_Manager.cpp - Service_Manager.h - Service_Manager.i - Service_Object.cpp - Service_Object.h - Service_Object.i - Service_Record.cpp - Service_Record.h - Service_Record.i - Service_Repository.cpp - Service_Repository.h - Service_Repository.i - Service_Types.cpp - Service_Types.i - Service_Types.h - Shared_Object.cpp - Shared_Object.h - Shared_Object.i - Svc_Conf.h - Svc_Conf_l.cpp - Svc_Conf_y.cpp - Svc_Conf_Tokens.h - [Streams] - IO_Cntl_Msg.cpp - IO_Cntl_Msg.h - IO_Cntl_Msg.i - Message_Block.cpp - Message_Block.h - Message_Block.i - Message_Queue.cpp - Message_Queue.h - Message_Queue.i - Module.cpp - Module.h - Module.i - Multiplexor.cpp - Multiplexor.h - Multiplexor.i - Stream.cpp - Stream.h - Stream.i - Stream_Modules.cpp - Stream_Modules.h - Stream_Modules.i - Task.cpp - Task.h - Task.i - Task_T.cpp - Task_T.h - Task_T.i - [System_V_IPC] - [System_V_Message_Queues] - SV_Message.cpp - SV_Message.h - SV_Message.i - SV_Message_Queue.cpp - SV_Message_Queue.h - SV_Message_Queue.i - Typed_SV_Message.cpp - Typed_SV_Message.h - Typed_SV_Message.i - Typed_SV_Message_Queue.cpp - Typed_SV_Message_Queue.h - Typed_SV_Message_Queue.i - [System_V_Semaphores] - SV_Semaphore_Complex.cpp - SV_Semaphore_Complex.h - SV_Semaphore_Complex.i - SV_Semaphore_Simple.cpp - SV_Semaphore_Simple.h - SV_Semaphore_Simple.i - [System_V_Shared_Memory] - SV_Shared_Memory.cpp - SV_Shared_Memory.h - SV_Shared_Memory.i - [Timers] - - High_Res_Timer.cpp - High_Res_Timer.h - High_Res_Timer.i - Profile_Timer.cpp - Profile_Timer.h - Profile_Timer.i - Time_Request_Reply.cpp - Time_Request_Reply.h - Time_Value.cpp - Time_Value.h - Time_Value.i - Timer_Hash.cpp - Timer_Hash.h - Timer_Hash_T.cpp - Timer_Hash_T.h - Timer_Heap.cpp - Timer_Heap.h - Timer_Heap.i - Timer_Heap_T.cpp - Timer_Heap_T.h - Timer_Heap_T.i - Timer_List.cpp - Timer_List.h - Timer_List.i - Timer_List_T.cpp - Timer_List_T.h - Timer_List_T.i - Timer_Queue.cpp - Timer_Queue.h - Timer_Queue.i - Timer_Queue_Adapters.cpp - Timer_Queue_Adapters.h - Timer_Queue_Adapters.i - Timer_Queue_T.cpp - Timer_Queue_T.h - Timer_Queue_T.i - Timer_Wheel.cpp - Timer_Wheel.h - Timer_Wheel.i - Timer_Wheel_T.cpp - Timer_Wheel_T.h - Timer_Wheel_T.i - [Token_Service] - Local_Tokens.cpp - Local_Tokens.h - Local_Tokens.i - Remote_Tokens.cpp - Remote_Tokens.h - Remote_Tokens.i - Token_Collection.cpp - Token_Collection.h - Token_Collection.i - Token_Manager.cpp - Token_Manager.h - Token_Manager.i - Token_Request_Reply.cpp - Token_Request_Reply.h - Token_Request_Reply.i - Token_Invariants.h - Token_Invariants.i - Token_Invariants.cpp 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 -# -# 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=" : 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 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 ${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 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 ..." -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/ACE.DSW b/ACE.DSW deleted file mode 100644 index bfdfb40ff40..00000000000 --- a/ACE.DSW +++ /dev/null @@ -1,1217 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Atomic_Op_Test"=.\tests\Atomic_Op_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Barrier_Test"=.\tests\Barrier_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Buffer_Stream_Test"=.\tests\Buffer_Stream_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "CPP_inclient"=.\examples\IPC_SAP\SOCK_SAP\CPP_inclient.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "CPP_inserver"=.\examples\IPC_SAP\SOCK_SAP\CPP_inserver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "C_inclient"=.\examples\IPC_SAP\SOCK_SAP\SOCK_SAP.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "C_inserver"=.\examples\IPC_SAP\SOCK_SAP\C_inserver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Conn_Test"=.\tests\Conn_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Enum_Interfaces_Test"=.\tests\Enum_Interfaces_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Event_Server"=.\examples\ASX\Event_Server\Event_Server\Event_Server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Exceptions"=.\examples\Reactor\ReactorEx\Exceptions.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Future_Test"=.\tests\Future_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Handle_Set_Test"=.\tests\Handle_Set_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Hash_Map_Manager_Test"=.\tests\Hash_Map_Manager_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "IOStream_Test"=.\tests\IOStream_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Log_Msg"=.\examples\Log_Msg\Log_Msg.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "MM_Shared_Memory_Test"=.\tests\MM_Shared_Memory_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Map_Manager_Test"=.\tests\Map_Manager_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Mem_Map_Test"=.\tests\Mem_Map_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Message_Block_Test"=.\tests\Message_Block_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Message_Queue_Notifications_Test"=.\tests\Message_Queue_Notifications_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Message_Queue_Test"=.\tests\Message_Queue_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Multithreading"=.\examples\Reactor\ReactorEx\Multithreading.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Mutex_Test"=.\tests\Mutex_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Naming_Test"=.\tests\Naming_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Network_Events"=.\examples\Reactor\ReactorEx\Network_Events.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Pipe_Test"=.\tests\Pipe_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Priority_Buffer_Test"=.\tests\Priority_Buffer_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Priority_Task_Test"=.\tests\Priority_Task_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Process"=.\examples\OS\Process\Process.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Process_Mutex_Test"=.\tests\Process_Mutex_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Process_Strategy_Test"=.\tests\Process_Strategy_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Reactor_Exceptions_Test"=.\tests\Reactor_Exceptions_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Reactor_Notify_Test"=.\tests\Reactor_Notify_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Reactor_Timer_Test"=.\tests\Reactor_Timer_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Reactors_Test"=.\tests\Reactors_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Reader_Writer_Test"=.\tests\Reader_Writer_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Recursive_Mutex_Test"=.\tests\Recursive_Mutex_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Registration"=.\examples\Reactor\ReactorEx\Registration.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Removals"=.\examples\Reactor\ReactorEx\Removals.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SOCK_Test"=.\tests\SOCK_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SPIPE_Test"=.\tests\SPIPE_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SString_Test"=.\tests\SString_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "SV_Shared_Memory_Test"=.\tests\SV_Shared_Memory_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Semaphore_Test"=.\tests\Semaphore_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Service_Config_Test"=.\tests\Service_Config_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Sigset_Ops_Test"=.\tests\Sigset_Ops_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Simple_Message_Block_Test"=.\tests\Simple_Message_Block_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "TSS_Test"=.\tests\TSS_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Talker"=.\examples\Reactor\ReactorEx\Talker.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Task_Test"=.\tests\Task_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Thread_Manager_Test"=.\tests\Thread_Manager_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Thread_Pool_Test"=.\tests\Thread_Pool_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Time_Service_Test"=.\tests\Time_Service_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Time_Value_Test"=.\tests\Time_Value_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Timeouts"=.\examples\Reactor\ReactorEx\Timeouts.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Timer_Queue_Test"=.\tests\Timer_Queue_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Tokens_Test"=.\tests\Tokens_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Transceiver"=.\examples\ASX\Event_Server\Transceiver\transceiver.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "UPIPE_Event_Server"=.\examples\ASX\UPIPE_Event_Server\UPIPE_Event_Server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "UPIPE_SAP_Test"=.\tests\UPIPE_SAP_Test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "acceptor"=.\examples\Connection\blocking\acceptor.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "auto_event"=.\examples\Threads\test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "barrier1"=.\examples\Threads\barrier1.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "barrier2"=.\examples\Threads\barrier2.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "cancel"=.\examples\Threads\cancel.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "client"=.\examples\Connection\non_blocking\non_blocking.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "connector"=.\examples\Connection\blocking\SPIPE.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "future1"=.\examples\Threads\future1.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "future2"=.\examples\Threads\future2.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "iterator"=.\examples\Registry\Registry.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "manual_event"=.\examples\Threads\manual_event.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "multiple_contexts"=.\examples\Naming\multiple_contexts.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "netsvcs"=.\netsvcs\lib\netsvcs.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "non_existent"=.\examples\Naming\non_existent.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "notification"=.\examples\Reactor\Misc\notification.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "ntalker"=.\examples\Reactor\Ntalker\ntalker.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "process_mutex"=.\examples\Threads\process_mutex.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "process_semaphore"=.\examples\Threads\process_semaphore.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "reader_writer"=.\examples\Threads\reader_writer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "recursive_mutex"=.\examples\Threads\recursive_mutex.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\examples\Connection\non_blocking\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server_loggerd"=".\examples\Logger\Acceptor-server\server_loggerd.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "servers"=.\netsvcs\servers\servers.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "task_four"=.\examples\Threads\task_four.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "task_one"=.\examples\Threads\task_one.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "task_three"=.\examples\Threads\task_three.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "task_two"=.\examples\Threads\task_two.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "test_multiple_loops"=.\examples\Reactor\Proactor\test_multiple_loops.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "test_proactor"=.\examples\Reactor\Proactor\test_proactor.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "test_timeout"=.\examples\Reactor\Proactor\test_timeout.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "thread_manager"=.\examples\Threads\thread_manager.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "thread_pool"=.\examples\Threads\thread_pool.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "thread_specific"=.\examples\Threads\thread_specific.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "timer_queue"=.\examples\Reactor\Misc\Misc.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "token"=.\examples\Threads\token.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "tss1"=.\examples\Threads\tss1.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "tss2"=.\examples\Threads\tss2.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "update"=.\examples\Registry\update.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "writers"=.\examples\Naming\Naming.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - 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 5f580da72f7..00000000000 --- a/ASNMP/ChangeLog +++ /dev/null @@ -1,243 +0,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 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 - * Thanks to Eric Newton's 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 - - * 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 - - * clean up two memory leaks in octet class and one umr - -Thu Aug 21 20:59:23 1997 Mike MacFaden - - * 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 - * 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 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 - - * 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 - - - * 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 - - * 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 31a3f679ca9..00000000000 --- a/ASNMP/README +++ /dev/null @@ -1,166 +0,0 @@ -Fri Jan 30 15:34:05 CST 1998 -==================================================================== -ASNMP = ACE+SNMP++ Version 1.9 -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 wathing. - http://www.ietf.org/html.charters/snmpv3-charter.html - -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/...). - -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 -YAGO Systems, Inc. -795 Vaqueros Ave -Sunnyvale, CA 94086 -408-774-2900 x251 -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 043ccfa45e0..00000000000 --- a/ASNMP/agent/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# Sample SNMPv1 Agent -# Makefile for Solaris 2.x -# $Id$ - -OBJS = main.o snmp_agent.o agent_impl.o -INCL = -I$(ACE_ROOT) -I$(ACE_ROOT)/ASNMP -CC=CC -SOL_FLAGS=-mt -R $(ACE_ROOT)/ASNMP/asnmp:$(ACE_ROOT)/ace -DEBUG = -g $(SOL_FLAGS) -CFLAGS =$(INCL) $(DEBUG) -RUNPATH = -LIBS = -L $(ACE_ROOT)/ASNMP/asnmp -lasnmp -L $(ACE_ROOT)/ace -lACE -ldl - -agent: $(OBJS) - $(CC) -o agent $(DEBUG) $(OBJS) $(LIBS) $(RUNPATH) - - -main.o: main.cpp - $(CC) -c $(CFLAGS) main.cpp - -snmp_agent.o: snmp_agent.cpp snmp_agent.h - $(CC) -c $(CFLAGS) snmp_agent.cpp - -agent_impl.o: agent_impl.cpp agent_impl.h - $(CC) -c $(CFLAGS) agent_impl.cpp - -clean: - -rm *.o agent *~ diff --git a/ASNMP/agent/agent_impl.cpp b/ASNMP/agent/agent_impl.cpp deleted file mode 100644 index 9f04793e7e2..00000000000 --- a/ASNMP/agent/agent_impl.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// implement a prototype SNMP Agent using ASNMP and ACE - -#include -#include -#include - -#include "agent_impl.h" - -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 ee107a88a99..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 -// -// ============================================================================ - -#if !defined (AGENT_IMPL_H) -#define AGENT_IMPL_H - -#include -#include -#include -#include -#include -#include - -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 1aa15d00025..00000000000 --- a/ASNMP/agent/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* -*-C++-*- */ -// $Id$ - -// This server daemon processes SNMP Version 1 get, get-next, and set -// commands. over the MIB II "System" group only. -// - -#include "snmp_agent.h" - -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 81a7c2c6f70..00000000000 --- a/ASNMP/agent/snmp_agent.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- C++ -*- */ -// $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" - -// 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 72184ddb14a..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 6c119ba1323..00000000000 --- a/ASNMP/asnmp-overview.html +++ /dev/null @@ -1,133 +0,0 @@ - - -ASNMP Overview - -

ASNMP Overview

- -

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. - -

ASNMP is targeted to programmers that want to write command and -control (C&C) applications. C&C Applications communicate with -a variety of objects: - -

  • network devices such as ATM switches, Internet routers, -LAN bridges and LAN printers -
  • Routing protocols such as OSPF -
  • database servers such as ORACLE or Informix. - -

    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) - -

  • 1155 -
  • 1157 -
  • 1213 -
  • 1215 - -

    Also see the RFC 1902 spec for new SMI datatypes such as Counter64. - -

    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. - -

    ASNMP can be used for either manager applications or agent applications. -The Snmp class contains the interface for manager applications. The -sagent class contains the interface for agent applications. A -trivial agent that implements the mib II system group per rfc1213 is -in the agents/ directory. - -

    Class Heirarchy

    - -
    -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.        
    -
    -

    The Structure of Managment Information (SMI) datatypes -and related types are: -

      -
    • Address->IpAddress->UdpAddress as well as MAC, IPX, IPXSOCK, Netbios -
    • Unsigned Integer -
    • Gauge32 -
    • Integer32 -
    • Counter32 -
    • Counter64 -
    • TimeTicks -
    • OctetStr -
    • Oid -
    - -
    - -

    Sample program

    -

    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_ = "" - } - - int get_description(OctetStr& description) { - description = desc_; - return 0; - } - -private: - OctetStr desc_; -}; - -

    Future Directions

    -

    Here are some areas for further work - -

  • Add OO mib parser and mib code generator -
  • Collapse the CMU/HP code into one set of classes. -
  • Add full V2c support. -
  • Size/Speed improvements - - -

    References

    - - diff --git a/ASNMP/asnmp/ChangeLog b/ASNMP/asnmp/ChangeLog deleted file mode 100644 index 629a17d12f5..00000000000 --- a/ASNMP/asnmp/ChangeLog +++ /dev/null @@ -1,114 +0,0 @@ -Wed Aug 20 15:11:23 1997 Mike MacFaden - - * 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 - - - * 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 - - * 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 cdf97cfc908..00000000000 --- a/ASNMP/asnmp/Makefile +++ /dev/null @@ -1,593 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# 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/ - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -address.o: address.cpp /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h -asn1.o: asn1.cpp /home/cs/guest/mrm/ASNMP/asnmp/asn1.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/snmp.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Atomic_Op.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Time_Value.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /home/cs/guest/mrm/ASNMP/asnmp/pdu.h -counter.o: counter.cpp /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h -ctr64.o: ctr64.cpp /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i -gauge.o: gauge.cpp /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i -integer.o: integer.cpp /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i -octet.o: octet.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h -oid.o: oid.cpp /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h -pdu.o: pdu.cpp /home/cs/guest/mrm/ASNMP/asnmp/snmp.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Atomic_Op.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Time_Value.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /home/cs/guest/mrm/ASNMP/asnmp/pdu.h -snmp.o: snmp.cpp /home/cs/guest/mrm/ASNMP/asnmp/snmp.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Atomic_Op.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Time_Value.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /home/cs/guest/mrm/ASNMP/asnmp/pdu.h \ - /home/cs/guest/mrm/ASNMP/asnmp/enttraps.h \ - /home/cs/guest/mrm/ASNMP/asnmp/asn1.h \ - /home/cs/guest/mrm/ASNMP/asnmp/wpdu.h \ - /home/cs/guest/mrm/ASNMP/asnmp/transaction.h -target.o: target.cpp /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h -timetick.o: timetick.cpp /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i -transaction.o: transaction.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Atomic_Op.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Time_Value.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.i \ - /home/cs/guest/mrm/ASNMP/asnmp/transaction.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/pdu.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/wpdu.h \ - /home/cs/guest/mrm/ASNMP/asnmp/asn1.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmp.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.i -vb.o: vb.cpp /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h -wpdu.o: wpdu.cpp /home/cs/guest/mrm/ASNMP/asnmp/wpdu.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/asn1.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmp.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Handle_Set.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Simple.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SV_Semaphore_Complex.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Event_Handler.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Synch_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Thread.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Atomic_Op.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Time_Value.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Free_List.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Timer_Queue_T.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Signal.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Token.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Pipe.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/IPC_SAP.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_IO.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Stream.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Reactor.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/SOCK_Dgram.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /home/cs/guest/mrm/ASNMP/asnmp/pdu.h \ - /home/cs/guest/mrm/ASNMP/asnmp/enttraps.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 17706a02ade..00000000000 --- a/ASNMP/asnmp/address.cpp +++ /dev/null @@ -1,2687 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -//================================================================= -//======== 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 TRUE; - else - return FALSE; -} - -//----------------------------------------------------------------------- -// 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 TRUE; - else - return FALSE; -} - -// overloaded >= operator, is a1 > a2 -int operator>=( const Address &lhs,const Address &rhs) -{ - if (( lhs > rhs) || ( lhs == rhs)) - return TRUE; - else - return FALSE; -} - -// overloaded < operator, is a1 <= a2 -int operator<=( const Address &lhs,const Address &rhs) -{ - if (( lhs < rhs) || ( lhs == rhs)) - return TRUE; - else - return FALSE; - -} - - -//----------------------------------------------------------------- -// overloaded < operator, is a1 < a2 -int operator<( const Address &lhs, const Address &rhs) -{ - if ( strcmp( (const char*) lhs, (const char*)rhs)<0) - return TRUE; - else - return FALSE; -} - -//------------------------------------------------------------------ -// equivlence operator overloaded, are an address and a string equal? -int operator==( const Address &lhs,const char *rhs) -{ - if (!rhs && !lhs.valid()) - return TRUE; - if (strcmp( (const char *) lhs, rhs)== 0) - return TRUE; - else - return FALSE; -} - -//------------------------------------------------------------------ -// 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 > NULL, else invalid !> NULL - if (strcmp( (const char *) lhs, rhs)> 0) - return TRUE; - else - return FALSE; -} - -//------------------------------------------------------------------ -// overloaded >= , is a >= inaddr -int operator>=( const Address &lhs,const char *rhs) -{ - if (!rhs) - return TRUE; // always >= NULL - if (strcmp( (const char *) lhs, rhs)>= 0) - return TRUE; - else - return FALSE; -} - -//----------------------------------------------------------------- -// overloaded < , are an address and a string equal? -int operator<( const Address &lhs,const char *rhs) -{ - if (!rhs) - return FALSE; // always >= NULL - if (strcmp( (const char *) lhs, rhs)< 0) - return TRUE; - else - return FALSE; -} - -//----------------------------------------------------------------- -// overloaded <= , is a <= inaddr -int operator<=( const Address &lhs,const char *rhs) -{ - if (!rhs) - return !lhs.valid(); // invalid == NULL, else valid > NULL - if (strcmp( (const char *) lhs, rhs)<= 0) - return TRUE; - else - return FALSE; -} - - -//===================================================================== -//============ 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 = FALSE; - 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 = FALSE; - 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 FALSE; -} - -int IpAddress::is_multicast() const -{ - if (valid()) { - return (IN_MULTICAST(*(u_long *)&address_buffer)); - } - return FALSE; -} - -// 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 TRUE; - if (address_buffer[0] == 172 && address_buffer[1] == 16) - return TRUE; - if (address_buffer[0] == 192 && address_buffer[1] == 168 && - address_buffer[2] == 0) - return TRUE; - } - return FALSE; -} - - -// 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 FALSE; -} - -//-----[ 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 TRUE 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 = FALSE; - 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 FALSE; - ACE_OS::strcpy( temp, inaddr); - trim_white_space( temp); - if ( ACE_OS::strlen( temp) > 15) - return FALSE; - - // 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 FALSE; - - // look for dot token separator - ip_token = strtok( (char *) temp,"."); - - // while more tokens.. - while ( ip_token != NULL) { - // verify that the token is all numerics - w = ACE_OS::strlen( ip_token); - if (w>3) - return FALSE; - for (z=0;z '9')) - return FALSE; - - value = ( unsigned int) strtod(ip_token,NULL); - 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 = TRUE; - token_count++; - ip_token = strtok( NULL, "."); - } - - // gota be four in len - if ( token_count != 4) - return FALSE; - - // any parsing errors? - if ( error_status) - return FALSE; - - return TRUE; -} - -//-----[ 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 TRUE; - } - 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 FALSE; - - // save the friendly name - ACE_OS::strcpy( iv_friendly_name_, inaddr); - return TRUE; - - } // end if lookup result - else { - iv_friendly_name_status_ = rc; - return FALSE; - } - } // end else not a dotted string - return TRUE; -} - -// 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_(FALSE), 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 != NULL; ++n, ++pc); - count_ = n; // plus first one - entry_ = lookupResult_.h_addr_list; -} - -int Address_Iter::valid() const -{ - return (valid_ == TRUE); -} - -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_ == NULL) - 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 = FALSE; - - // 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 TRUE 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 = FALSE; - return FALSE; - } - // 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==NULL) - tmp = ACE_OS::strstr(buffer,"/"); - - if ( tmp != NULL) { - *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=FALSE; - 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 FALSE; // invalid - - if (ACE_OS::strncmp(address, "IBM", 3) == 0) - return FALSE; // 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 FALSE; //invalid service type - - ACE_OS::memset(address_buffer, 0, NETBIOSLEN); - ACE_OS::memcpy(address_buffer, address, NETBIOSLEN); - - return TRUE; // 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 = FALSE; - // 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 TRUE 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 TRUE 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=FALSE; - 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 = FALSE; - // 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 TRUE 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 TRUE or FALSE -// -// 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 FALSE; - 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 FALSE; - - // 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= '0') && (*tmp <= '9'))|| // good 0-9 - ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f - tmp++; - else - return FALSE; - - // 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 FALSE; - - // 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 TRUE; -} - -//----[ 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 TRUE; - else - return FALSE; - } - else - return FALSE; -} - - -//------[ 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 = FALSE; - 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 TRUE 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 = FALSE; - return FALSE; - } - // 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 != NULL) - { - *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=FALSE; - 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 = FALSE; - // 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 TRUE 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 TRUE or FALSE -// -// 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 FALSE; - ACE_OS::strcpy( temp, inaddr); - trim_white_space( temp); - - // bad total length check - if ( ACE_OS::strlen(temp) != 17) - return FALSE; - - // check for colons - if ((temp[2] != ':')||(temp[5] != ':')||(temp[8]!=':')||(temp[11]!=':') - ||(temp[14] !=':')) - return FALSE; - - // 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= '0') && (*tmp <= '9'))|| // good 0-9 - ((*tmp >= 'a') && (*tmp <= 'f'))) // or a-f - tmp++; - else - return FALSE; - - // 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 TRUE; -} - -//----[ 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 = FALSE; - // 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 ::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 ::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 = FALSE; - - // 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 ::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 = FALSE; - - // 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 ::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 = FALSE; - 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 ::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 = FALSE; // will get set to TRUE 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 ::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 TRUE; // 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 TRUE; // 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 TRUE; // 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 TRUE; // 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 TRUE; // 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 TRUE; // ok, its a mac - } - break; - - case APPLETKLEN: - ACE_NEW_RETURN(address, AppleTalkAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return TRUE; // ok, its a mac - } - break; - - case DECNETLEN: - ACE_NEW_RETURN(address, DecNetAddress( addr), -1); - valid_flag = address->valid(); - if ( valid_flag) { - format_output(); - return TRUE; // ok, its a mac - } - break; - - } - // otherwise its invalid - delete address; - address = 0; - format_output(); - return FALSE; -} - -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=FALSE; - 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 = FALSE; - // 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 TRUE 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 FALSE; // invalid - - ACE_OS::memset(address_buffer, 0, DECNETLEN); - ACE_OS::memcpy(address_buffer, address, DECNETLEN); - - return TRUE; // 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=FALSE; - 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 = FALSE; - // 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 TRUE 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 FALSE; // invalid - - ACE_OS::memset(address_buffer, 0, APPLETKLEN); - ACE_OS::memcpy(address_buffer, address, APPLETKLEN); - - return TRUE; // 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 5640a607f98..00000000000 --- a/ASNMP/asnmp/address.h +++ /dev/null @@ -1,807 +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 "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 (TRUE/FALSE) - 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 46f821784d6..00000000000 --- a/ASNMP/asnmp/asn1.cpp +++ /dev/null @@ -1,1726 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -/* - * 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 NULL 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 NULL; - } - *type = *bufp++; - bufp =asn1::parse_length(bufp, &asn_length); - if (bufp == NULL){ - ASNERROR("bad length"); - return NULL; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - if ((int)asn_length > intsize){ - ASNERROR("I don't support such large integers"); - return NULL; - } - *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 NULL 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 NULL; - } - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == NULL){ - ASNERROR("bad length"); - return NULL; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - if (((int)asn_length > (intsize + 1)) || - (((int)asn_length == intsize + 1) && *bufp != 0x00)){ - ASNERROR("I don't support such large integers"); - return NULL; - } - *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 NULL 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 NULL; - 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 == NULL) - return NULL; - if (*datalength < intsize) - return NULL; - *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 NULL 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 NULL; - 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 == NULL) - return NULL; - if (*datalength < intsize) - return NULL; - *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 NULL 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 == NULL) - return NULL; - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - if ((int)asn_length > *strlength){ - ASNERROR("I don't support such long strings"); - return NULL; - } - // 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 NULL 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 == NULL) - return NULL; - if (*datalength < strlength) - return NULL; - // 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 NULL 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 NULL; - } - *type = *bufp; - bufp = asn1::parse_length(bufp + 1, &asn_length); - if (bufp == NULL) - return NULL; - header_len = bufp - data; - if ((int)(header_len + asn_length) > *datalength){ - ASNERROR("asn length too long"); - return NULL; - } - *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 NULL 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 NULL; - *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 NULL 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 NULL; - } - *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 NULL 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 NULL; - } - if (lengthbyte > sizeof(long)){ - ASNERROR("we can't support data lengths that long"); - return NULL; - } - // 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 NULL; - } - *data++ = (u_char)length; - } else if (length <= 0xFF){ - if (*datalength < 2){ - ASNERROR("build_length"); - return NULL; - } - *data++ = (u_char)(0x01 | ASN_LONG_LEN); - *data++ = (u_char)length; - } else { /* 0xFF < length <= 0xFFFF */ - if (*datalength < 3){ - ASNERROR("build_length"); - return NULL; - } - *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 NULL 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 == NULL) - return NULL; - if ((int)asn_length + (bufp - data) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - *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 NULL; - } - *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 NULL 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 == NULL) - return NULL; - if (*datalength < asnlength) - return NULL; - // 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 NULL 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 == NULL) - return NULL; - if (asn_length != 0){ - ASNERROR("Malformed NULL"); - return NULL; - } - *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 NULL 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 NULL 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 == NULL) - return NULL; - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - if ((int) asn_length > *strlength){ - ASNERROR("I don't support such long bitstrings"); - return NULL; - } - if (asn_length < 1){ - ASNERROR("Invalid bitstring"); - return NULL; - } - if (*bufp > 7){ - ASNERROR("Invalid bitstring"); - return NULL; - } - // 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 NULL 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 NULL; - } - data = asn1::build_header(data, datalength, type, strlength); - if (data == NULL) - return NULL; - if (*datalength < strlength) - return NULL; - // 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 NULL 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 NULL; - } - *type = *bufp++; - bufp = asn1::parse_length(bufp, &asn_length); - if (bufp == NULL){ - ASNERROR("bad length"); - return NULL; - } - if ((int)(asn_length + (bufp - data)) > *datalength){ - ASNERROR("overflow of message"); - return NULL; - } - if (((int)asn_length > (intsize * 2 + 1)) || - (((int)asn_length == (intsize * 2) + 1) && *bufp != 0x00)){ - ASNERROR("I don't support such large integers"); - return NULL; - } - *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 NULL 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 NULL; - 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 == NULL) - return NULL; - if (*datalength < intsize) - return NULL; - *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 = NULL; - pdu->enterprise_length = 0; - pdu->variables = NULL; - 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 == NULL) { - 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 = NULL; - - // hook in the Oid portion - ACE_NEW(vars->name, oid[(name_length * sizeof(oid))]); - - // 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 = NULL; - 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 == NULL){ - ASNERROR("buildheader"); - return NULL; - } - data = asn1::build_int(data, - length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&version, - sizeof(version)); - if (data == NULL){ - ASNERROR("buildint"); - return NULL; - } - - data = asn1::build_string(data, - length, - (u_char)(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR), - params, - plen ); - if (data == NULL){ - ASNERROR("buildstring"); - return NULL; - } - - 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 NULL; - - 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 == NULL) { - ASNERROR(""); - return NULL; - } - - // 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 NULL; - } - if (data == NULL) { - ASNERROR(""); - return NULL; - } - 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 == NULL) - 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 == NULL) - 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 == NULL) - 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 == NULL) - 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 == NULL) - 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 == NULL) - return -1; - - // agent-addr - cp = asn1::build_string(cp, - &length, - (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 == NULL) - 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 == NULL) - 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 == NULL) - return -1; - - // timestamp - cp = asn1::build_int(cp, - &length, - (u_char )(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_INTEGER), - (long *)&pdu->time, - sizeof(pdu->time)); - if (cp == NULL) - 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 == NULL) - 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 == NULL) - 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 == NULL){ - ASNERROR("bad header"); - return NULL; - } - - if (type != (ASN_SEQUENCE | ASN_CONSTRUCTOR)) { - ASNERROR("wrong auth header type"); - return NULL; - } - - // get the version - data = asn1::parse_int(data, length, &type, version, sizeof(*version)); - if (data == NULL) { - ASNERROR("bad parse of version"); - return NULL; - } - - // get the community name - data = asn1::parse_string(data, length, &type, sid, slen); - if (data == NULL) { - ASNERROR("bad parse of community"); - return NULL; - } - - 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 == NULL){ - ASNERROR(""); - return NULL; - } - if (var_op_type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR)) - return NULL; - data = asn1::parse_objid(data, &var_op_len, &var_op_type, var_name, var_name_len); - if (data == NULL) { - ASNERROR(""); - return NULL; - } - if (var_op_type != (u_char) - (ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OBJECT_ID)) - return NULL; - *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 == NULL) { - ASNERROR(""); - return NULL; - } - *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 == NULL) - 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 == NULL) - 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 == NULL) - return -1; - // get the error status - data = asn1::parse_int(data, - &length, - &type, - (long *)&pdu->errstat, - sizeof(pdu->errstat)); - if (data == NULL) - return -1; - // get the error index - data = asn1::parse_int(data, - &length, - &type, - (long *)&pdu->errindex, - sizeof(pdu->errindex)); - if (data == NULL) - 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 == NULL) - 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 == NULL) - return -1; - - // get trap type - data = asn1::parse_int(data, &length, &type, (long *)&pdu->trap_type, - sizeof(pdu->trap_type)); - if (data == NULL) - return -1; - - // trap type - data = asn1::parse_int(data, &length, &type, (long *)&pdu->specific_type, - sizeof(pdu->specific_type)); - if (data == NULL) - return -1; - - // timestamp - data = asn1::parse_int(data, &length, &type, (long *)&pdu->time, - sizeof(pdu->time)); - if (data == NULL) - return -1; - } - - // get the vb list - data = asn1::parse_header(data, &length, &type); - if (data == NULL) - return -1; - - if (type != (u_char)(ASN_SEQUENCE | ASN_CONSTRUCTOR)) - return -1; - - while((int)length > 0) { - if (pdu->variables == NULL) { - 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 = NULL; - vp->val.string = NULL; - vp->name = NULL; - 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 == NULL) - 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 ce0256c43df..00000000000 --- a/ASNMP/asnmp/asn1.h +++ /dev/null @@ -1,337 +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" -#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; // NULL 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 77081fe84fe..00000000000 --- a/ASNMP/asnmp/counter.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -// 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 a4cac10eec7..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 571209c5e41..00000000000 --- a/ASNMP/asnmp/ctr64.cpp +++ /dev/null @@ -1,211 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -#define MAX32 4294967295 - -//-----------[ 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 fc2d00149c6..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 130f7bdfffe..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 d00bc486b55..00000000000 --- a/ASNMP/asnmp/gauge.cpp +++ /dev/null @@ -1,113 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -// 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 612f4b1c3c5..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 9650c3417b4..00000000000 --- a/ASNMP/asnmp/integer.cpp +++ /dev/null @@ -1,227 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -// 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 38d94bf7d68..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 244b525a914..00000000000 --- a/ASNMP/asnmp/octet.cpp +++ /dev/null @@ -1,593 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -//============[ 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 = NULL; - smi.value.string.len = 0; -} - -inline -int copy_octet_smi(SmiVALUE& smi, int size, const char *src, int& valid_flag) -{ - valid_flag = FALSE; - - 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 = TRUE; - return 0; -} - -//============[ default constructor ]========================= -OctetStr::OctetStr( const char * string, long size): - output_buffer(NULL), validity(FALSE) -{ - - 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 = FALSE; - 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(NULL), validity(TRUE) -{ - 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 == FALSE) { - validity = FALSE; - 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 = TRUE; - 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 = TRUE; - 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 TRUE; - else - return FALSE; -} - -//==============[ not equivlence operator overloaded ]================ -int operator!=( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)!=0) - return TRUE; - else - return FALSE; -} - -//==============[ less than < overloaded ]============================ -int operator<( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)<0) - return TRUE; - else - return FALSE; -} - -//==============[ 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 TRUE; - else - return FALSE; -} - -//===============[ greater than > overloaded ]======================== -int operator>( const OctetStr &lhs, const OctetStr &rhs) -{ - if( lhs.left_comparison( rhs.smival.value.string.len, rhs)>0) - return TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 TRUE; - else - return FALSE; -} - -//===============[ 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 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 != NULL) - 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=FALSE; - 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 != NULL) - 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 d17290dc646..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 e021f437133..00000000000 --- a/ASNMP/asnmp/oid.cpp +++ /dev/null @@ -1,799 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 -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 (!(x0)) { - 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 = NULL; - 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 = NULL; - 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 = NULL; - return -1; - } - - ACE_NEW_RETURN(temp, SmiUINT32[ nz], -1); - while (*string!=0 && indexptr, 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 ? TRUE : FALSE ); -} - -//================[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 c1a3af2131b..00000000000 --- a/ASNMP/asnmp/oid.h +++ /dev/null @@ -1,165 +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" -#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 c32c4d0e1f8..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 2ca7516b6fd..00000000000 --- a/ASNMP/asnmp/pdu.cpp +++ /dev/null @@ -1,495 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -//=====================[ constructor no args ]========================= -Pdu::Pdu( void): vb_count_(0), error_status_(0), error_index_(0), -validity_(FALSE), 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_(FALSE), request_id_(0), pdu_type_(0), notify_timestamp_(0), -output_(0) -{ - int z; // looping variable - - // zero is ok - if ( pvb_count == 0) { - validity_ = TRUE; - return; - } - - // check for over then max - if ( pvb_count > MAX_VBS) { - validity_ = FALSE; - return; - } - - // loop through and assign internal vbs_ - for (z = 0;z < pvb_count; z++) { - validity_ = FALSE; - ACE_NEW(vbs_[z], Vb( pvbs[z])); - validity_ = TRUE; - } - - // assign the vb count - vb_count_ = pvb_count; - - validity_ = TRUE; -} - -//=====================[ constructor with another Pdu instance ]======== -Pdu::Pdu( const Pdu &pdu): vb_count_(0), -error_index_(0), validity_(FALSE), 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_ = TRUE; - - // 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_ = FALSE; - ACE_NEW_RETURN(vbs_[z], Vb ( *(pdu.vbs_[z])), *this); - validity_ = TRUE; - } - - 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_ = FALSE; - ACE_NEW_RETURN(vbs_[vb_count_], Vb (vb), *this); - // set up validity_ - validity_ = TRUE; - - // 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 FALSE; - - // loop through all vbs_ and assign to params - int z; - for (z = 0; z < pvb_count; z++) - pvbs[z] = *vbs_[z]; - - return TRUE; - -} - -//=====================[ 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 FALSE; - - // 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_ = TRUE; - error_status_ = 0; - error_index_ = 0; - request_id_ = 0; - return FALSE; - } - - - // loop through all vbs_ and reassign them - for ( z = 0; z < pvb_count; z++) { - validity_ = FALSE; - ACE_NEW_RETURN(vbs_[z], Vb (pvbs[z]), FALSE); - validity_ = TRUE; - } - - 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_ = TRUE; - - return TRUE; -} - -//===================[ 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 FALSE; - - // can't ask for something not there - if ( index > (vb_count_ - 1)) - return FALSE; - - // asssign it - vb = *vbs_[index]; - - return TRUE; -} - -//===================[ 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 FALSE; - - // can't ask for something not there - if ( index > (vb_count_ - 1)) - return FALSE; - - // delete what is there - delete vbs_[index]; - - // assign it - validity_ = FALSE; - ACE_NEW_RETURN(vbs_[index], Vb (vb), FALSE); - validity_ = TRUE; - - return TRUE; - -} - -//=====================[ 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 FALSE; - - while ( lp != 0) { - if ( vb_count_ > 0) { - delete vbs_[vb_count_ - 1]; - vb_count_--; - } - lp--; - } - return TRUE; -} - - - -// 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 FALSE; - - // safe to remove it - delete vbs_[ p]; - - for ( int z=p;z < (vb_count_-1);z++) { - vbs_[z] = vbs_[z+1]; - } - vb_count_--; - - return TRUE; -} - -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 c778b83f241..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 1f93502aaf7..00000000000 --- a/ASNMP/asnmp/sagent.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -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 d2b64492679..00000000000 --- a/ASNMP/asnmp/sagent.h +++ /dev/null @@ -1,78 +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" -#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 6a67ebcd061..00000000000 --- a/ASNMP/asnmp/smi.h +++ /dev/null @@ -1,149 +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" - -//----------[ 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 dff38438490..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_ */ - 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 173d6d21723..00000000000 --- a/ASNMP/asnmp/snmp.cpp +++ /dev/null @@ -1,249 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -const coldStartOid coldStart; -const warmStartOid warmStart; -const linkDownOid linkDown; -const linkUpOid linkUp; -const authenticationFailureOid authenticationFailure; -const egpNeighborLossOid egpNeighborLoss; -const snmpTrapEnterpriseOid snmpTrapEnterprise; - -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(NULL); - - 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; -} - -Snmp_Result::~Snmp_Result() {} - diff --git a/ASNMP/asnmp/snmp.h b/ASNMP/asnmp/snmp.h deleted file mode 100644 index 725a80dfadb..00000000000 --- a/ASNMP/asnmp/snmp.h +++ /dev/null @@ -1,122 +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" -#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 - - 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 -}; - -#endif //SNMP_CLS_ - diff --git a/ASNMP/asnmp/snmperrs.h b/ASNMP/asnmp/snmperrs.h deleted file mode 100644 index a51fcc68f48..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 f7c01d1c13b..00000000000 --- a/ASNMP/asnmp/target.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -//---------------------------------------------------------------------- -//--------[ 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_(FALSE), 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_ = FALSE; - 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_ = TRUE; - 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_ = TRUE; - else - validity_ = FALSE; - - 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 fe1e3f8898d..00000000000 --- a/ASNMP/asnmp/target.h +++ /dev/null @@ -1,247 +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" -#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 ff89700f176..00000000000 --- a/ASNMP/asnmp/timetick.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -// 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 cc959df4f8b..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 -// -// ============================================================================ -/*=================================================================== - 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 1098c647128..00000000000 --- a/ASNMP/asnmp/transaction.cpp +++ /dev/null @@ -1,201 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -// 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 = FALSE; - 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 4db2e83f63c..00000000000 --- a/ASNMP/asnmp/transaction.h +++ /dev/null @@ -1,75 +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" -#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 9d0dbfc40b8..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 584356b64cf..00000000000 --- a/ASNMP/asnmp/vb.cpp +++ /dev/null @@ -1,396 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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 - -//---------------[ Vb::Vb( void) ]-------------------------------------- -// constructor with no arguments -// makes an vb, unitialized -Vb::Vb( void): output_(NULL), iv_vb_value_(NULL), - 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_(NULL), iv_vb_oid_(oid), iv_vb_value_(NULL), - 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_(NULL), iv_vb_oid_(oid), iv_vb_value_(NULL), 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_(NULL), iv_vb_value_(NULL) -{ - *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 TRUE; - else - return FALSE; -} - - -//---------------[ 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_ == NULL) { - iv_vb_value_ = NULL; - } - 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_ = NULL; -} - -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 FALSE; - - 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 FALSE; -} - diff --git a/ASNMP/asnmp/vb.h b/ASNMP/asnmp/vb.h deleted file mode 100644 index 1dd823fb2d6..00000000000 --- a/ASNMP/asnmp/vb.h +++ /dev/null @@ -1,200 +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" - -#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 55d672c7c30..00000000000 --- a/ASNMP/asnmp/wpdu.cpp +++ /dev/null @@ -1,501 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -#define DEFINE_TRAP_CONSTANTS_ -#include "asnmp/enttraps.h" - -#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: - 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 != 6) // TODO: fix these magic numbers with defines - pdu.get_notify_enterprise( enterprise); - if ( enterprise.length() > 0) { - // note!! - // 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(); - raw_pdu->enterprise = rawOid->ptr; - raw_pdu->enterprise_length = (int) rawOid->len; - } - - TimeTicks timestamp; - pdu.get_notify_timestamp( timestamp); - raw_pdu->time = ( unsigned long) timestamp; - return 0; -} - -wpdu::wpdu(const iovec& iov): valid_flag_(FALSE),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_(FALSE), 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 = NULL; - 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 85caf6c33f7..00000000000 --- a/ASNMP/asnmp/wpdu.h +++ /dev/null @@ -1,80 +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" -#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 cd06fb9ea08..00000000000 --- a/ASNMP/examples/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE+SNMP examples directory -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = get \ - next \ - set \ - trap \ - info \ - 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 6849f0d6fd8..00000000000 --- a/ASNMP/examples/get/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# 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. diff --git a/ASNMP/examples/get/get.cpp b/ASNMP/examples/get/get.cpp deleted file mode 100644 index 4b7fc1f04f7..00000000000 --- a/ASNMP/examples/get/get.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// $Id$ - -/* -*-C++-*- */ -// ============================================================================ -// -// = 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" - -// -// 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( 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 a10705ce78b..00000000000 --- a/ASNMP/tests/Address_Test.cpp +++ /dev/null @@ -1,556 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -// 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Counter64_Test.cpp b/ASNMP/tests/Counter64_Test.cpp deleted file mode 100644 index 506c8a85873..00000000000 --- a/ASNMP/tests/Counter64_Test.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -// 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) 0x7fffffffffffffff; - LLONG mll = (LLONG) ((-ll) - 1); - ULLONG ull = (ULLONG) 0xffffffffffffffff; - 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; -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Counter_Test.cpp b/ASNMP/tests/Counter_Test.cpp deleted file mode 100644 index 061f469f6a5..00000000000 --- a/ASNMP/tests/Counter_Test.cpp +++ /dev/null @@ -1,145 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - - -/* - 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; -} - - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Gauge_Test.cpp b/ASNMP/tests/Gauge_Test.cpp deleted file mode 100644 index 9594f9b3b4d..00000000000 --- a/ASNMP/tests/Gauge_Test.cpp +++ /dev/null @@ -1,135 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Integer_Test.cpp b/ASNMP/tests/Integer_Test.cpp deleted file mode 100644 index c42afdc42ef..00000000000 --- a/ASNMP/tests/Integer_Test.cpp +++ /dev/null @@ -1,201 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -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; - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Makefile b/ASNMP/tests/Makefile deleted file mode 100644 index cb45092ebec..00000000000 --- a/ASNMP/tests/Makefile +++ /dev/null @@ -1,223 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# 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 -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. - -Address_Test.o: Address_Test.cpp \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Counter64_Test.o: Counter64_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Counter_Test.o: Counter_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Gauge_Test.o: Gauge_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Integer_Test.o: Integer_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Octet_Test.o: Octet_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Oid_Test.o: Oid_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Target_Test.o: Target_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/target.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Addr.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/INET_Addr.i \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.i -Varbind_Test.o: Varbind_Test.cpp \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/streams.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/OS.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Trace.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Msg.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/ACE.i \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Priority.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Log_Record.i \ - /home/cs/guest/mrm/ASNMP/asnmp/oid.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smival.h \ - /home/cs/guest/mrm/ASNMP/asnmp/smi.h \ - /home/cs/guest/mrm/ASNMP/asnmp/vb.h \ - /home/cs/guest/mrm/ASNMP/asnmp/snmperrs.h \ - /home/cs/guest/mrm/ASNMP/asnmp/timetick.h \ - /home/cs/guest/mrm/ASNMP/asnmp/integer.h \ - /home/cs/guest/mrm/ASNMP/asnmp/counter.h \ - /home/cs/guest/mrm/ASNMP/asnmp/gauge.h \ - /home/cs/guest/mrm/ASNMP/asnmp/ctr64.h \ - /home/cs/guest/mrm/ASNMP/asnmp/octet.h \ - /home/cs/guest/mrm/ASNMP/asnmp/address.h test_config.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.h \ - /project/adaptive/ACE_wrappers/build/SunOS5.5/ace/Containers.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 618893e57dd..00000000000 --- a/ASNMP/tests/Octet_Test.cpp +++ /dev/null @@ -1,163 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Oid_Test.cpp b/ASNMP/tests/Oid_Test.cpp deleted file mode 100644 index 56af2271b3f..00000000000 --- a/ASNMP/tests/Oid_Test.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Target_Test.cpp b/ASNMP/tests/Target_Test.cpp deleted file mode 100644 index d843057215d..00000000000 --- a/ASNMP/tests/Target_Test.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif diff --git a/ASNMP/tests/Varbind_Test.cpp b/ASNMP/tests/Varbind_Test.cpp deleted file mode 100644 index a4d9c77113a..00000000000 --- a/ASNMP/tests/Varbind_Test.cpp +++ /dev/null @@ -1,203 +0,0 @@ -/* -*- C++ -*- */ -// $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 -// -// ============================================================================ - -/*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -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" - - -// hack: do this so when linking SUNC 4.x compiler will instantiate template -#include "ace/Containers.h" -ACE_Unbounded_Set x; - -/* - 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(12345678901234), 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; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Set; -#endif 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 f8ebb06fdd4..00000000000 --- a/ASNMP/tests/run_tests.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -f -# This is the UNIX version of the one-button ACE tests. -# Contributed by Michael Rueger -# 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 [ "$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 cec49951d40..00000000000 --- a/ASNMP/tests/test_config.h +++ /dev/null @@ -1,223 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// = FILENAME -// test_config.h -// -// = AUTHOR -// Prashant Jain , Tim Harrison -// , and David Levine -// -// ============================================================================ - -#if !defined (ACE_TEST_CONFIG_H) -#define ACE_TEST_CONFIG_H - -#include -#include - -#if !defined (ACE_HAS_TEMPLATE_SPECIALIZATION) -class KEY -// ============================================================================ -// = TITLE -// Define a key for use with the Map_Manager_Test. -// -// = DESCRIPTION -// This class is put into the test_config.h header file to work -// around AIX C++ compiler "features" related to template -// instantiation... It is only used by Map_Manager_Test.cpp -// ============================================================================ -{ -public: - KEY (size_t v = 0): value_ (v) - { } - - size_t hash (void) const { return this->value_; } - operator size_t () const { return this->value_; } - -private: - size_t value_; -}; -#else -typedef size_t KEY; -#endif /* ACE_HAS_TEMPLATE_SPECIALIZATION */ - -#if defined (ACE_WIN32) - -#define ACE_DEFAULT_TEST_FILE_A "C:\\temp\\ace_test_file" -#define ACE_TEMP_FILE_NAME_A "C:\\temp\\ace_temp_file" -#define ACE_LOG_DIRECTORY_A "C:\\temp\\log\\" -#define MAKE_PIPE_NAME_A(X) "\\\\.\\pipe\\"#X - -#define ACE_DEFAULT_TEST_FILE_W L"C:\\temp\\ace_test_file" -#define ACE_TEMP_FILE_NAME_W L"C:\\temp\\ace_temp_file" -#define ACE_LOG_DIRECTORY_W L"C:\\temp\\log\\" -#define MAKE_PIPE_NAME_W(X) L"\\\\.\\pipe\\"#X - -#else - -#define ACE_DEFAULT_TEST_FILE_A "/tmp/ace_test_file" -#define ACE_TEMP_FILE_NAME_A "/tmp/ace_temp_file" -#define ACE_LOG_DIRECTORY_A "log/" -#define MAKE_PIPE_NAME_A(X) X - -#if defined (ACE_HAS_UNICODE) -#define ACE_DEFAULT_TEST_FILE_W L"/tmp/ace_test_file" -#define ACE_TEMP_FILE_NAME_W L"/tmp/ace_temp_file" -#define ACE_LOG_DIRECTORY_W L"log/" -#define MAKE_PIPE_NAME_W(X) L##X -#else -#define ACE_DEFAULT_TEST_FILE_W "/tmp/ace_test_file" -#define ACE_TEMP_FILE_NAME_W "/tmp/ace_temp_file" -#define ACE_LOG_DIRECTORY_W "log/" -#define MAKE_PIPE_NAME_W(X) X -#endif /* ACE_HAS_UNICODE */ - -#endif /* ACE_WIN32 */ - -#if defined (UNICODE) -#define ACE_DEFAULT_TEST_FILE ACE_DEFAULT_TEST_FILE_W -#define ACE_TEMP_FILE_NAME ACE_TEMP_FILE_NAME_W -#define ACE_LOG_DIRECTORY ACE_LOG_DIRECTORY_W -#define MAKE_PIPE_NAME MAKE_PIPE_NAME_W -#else -#define ACE_DEFAULT_TEST_FILE ACE_DEFAULT_TEST_FILE_A -#define ACE_TEMP_FILE_NAME ACE_TEMP_FILE_NAME_A -#define ACE_LOG_DIRECTORY ACE_LOG_DIRECTORY_A -#define MAKE_PIPE_NAME MAKE_PIPE_NAME_A -#endif /* UNICODE */ - -#define ACE_START_TEST(NAME) \ - const char *program = NAME; \ - ACE_LOG_MSG->open (program, ACE_Log_Msg::OSTREAM); \ - if (ace_file_stream.set_output (program) != 0) \ - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "set_output failed"), -1); \ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) starting %s test at %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_A, \ - ACE::basename (NAME, ACE_DIRECTORY_SEPARATOR_CHAR_A), \ - ".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_A); - ACE_OS::sprintf (temp, "%s%s%s", - ACE_LOG_DIRECTORY_A, - ACE::basename (filename, ACE_DIRECTORY_SEPARATOR_CHAR_A), - ".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/BIBLIOGRAPHY b/BIBLIOGRAPHY deleted file mode 100644 index 6ee6da4dd94..00000000000 --- a/BIBLIOGRAPHY +++ /dev/null @@ -1,752 +0,0 @@ -The following articles document and describe various aspects of the -object-oriented network programming components and the underlying -design patterns included in ACE, TAO, and JAWS. A complete list of -publications is available at - -http://www.cs.wustl.edu/~schmidt/resume.html - -======================================== - -@article{Schmidt:97r, - AUTHOR = {Douglas C. Schmidt and Chris Cleeland}, - TITLE = "{Applying Patterns to Develop Extensible and Maintainable ORB Middleware}", - JOURNAL = "Communications of the ACM (Special Issue on - Software Maintenance)", - EDITORS={W. Tsai}, - VOLUME = 40, - NUMBER = 12, - YEAR = 1997, - MONTH = "December" -} - -@article{Schmidt:97q, - AUTHOR = {Douglas C. Schmidt and David L. Levine and Sumedh Mungee}, - TITLE = "{The Design and Performance of Real-Time Object Request Brokers}", - JOURNAL = "Computer Communications", - YEAR = 1997, -} - -@incollection{Schmidt:97n, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Applying Design Patterns and Frameworks to Develop - Object-Oriented Communication Software}", - BOOKTITLE = "Handbook of Programming Languages", - EDITOR="Peter Salus", - PUBLISHER = "MacMillan Computer Publishing", - YEAR = 1997 -} - -@inproceedings{Schmidt:97m, - AUTHOR = "Douglas C. Schmidt and Tim Harrison and Nat Pryce", - TITLE = "{Thread-Specific Storage -- An Object Behavioral - Pattern for Accessing per-Thread State Efficiently}", - BOOKTITLE = "Submitted to the $4^{th}$ Pattern - Languages of Programming Conference", - LOCATION="Allerton Park, IL", - YEAR = 1997, - MONTH = "September", -} - -@inproceedings{Schmidt:97l, - AUTHOR = "Tim Harrison and Irfan Pyrarli and Douglas C. Schmidt and Thomas Jordan", - TITLE = "{Proactor -- An Object Behavioral Pattern for - Dispatching Asynchronous Event Handlers}", - BOOKTITLE="The $4^{th}$ Pattern Languages of Programming Conference", - YEAR = 1997, - MONTH = "September", - ABSTRACT = "" -} - -@inproceedings{Schmidt:97k, - AUTHOR = "James Hu and Irfan Pyrarli and Douglas C. Schmidt", - TITLE = "{Measuring the Impact of Event Dispatching and Concurrency Models on Web - Server Performance Over High-speed Networks}", - BOOKTITLE="Proceedings of the $2^{nd}$ Global Internet Conference", - ORGANIZATION={IEEE}, - YEAR = 1997, - MONTH = "November", - ABSTRACT = "", -} - -@inproceedings{Schmidt:97j, - AUTHOR = "Aniruddha Gokhale and Douglas C. Schmidt", - TITLE = "{Evaluating the Performance of Demultiplexing Strategies for Real-time CORBA}", - BOOKTITLE="Proceedings of GLOBECOM '97", - ADDRESS={Phoenix, AZ}, - ORGANIZATION="IEEE", - YEAR = 1997, - MONTH = "November", - ABSTRACT = "" -} - -@inproceedings{Schmidt:97i, - AUTHOR = "Timothy H. Harrison and David L. Levine and Douglas C. Schmidt", - TITLE = "{The Design and Performance of a Real-time CORBA Event Service}", - BOOKTITLE="Proceedings of OOPSLA '97", - ADDRESS={Atlanta, GA}, - ORGANIZATION="ACM", - YEAR = 1997, - MONTH = "October", - ABSTRACT = "", -} - -@inproceedings{Schmidt:97g, - AUTHOR = "James Hu and Sumedh Mungee and Douglas C. Schmidt", - TITLE = "{Principles for Developing and Measuring - High-performance Web Servers over ATM}", - BOOKTITLE="Submitted to INFOCOM '97 (Washington University Technical Report \#WUCS-97-10)", - YEAR = 1997, - MONTH = "February", - ABSTRACT = "" -} - -@inproceedings{Schmidt:97f, - AUTHOR = "Aniruddha Gokhale and Douglas C. Schmidt", - TITLE = "{Principles for Optimizing CORBA Internet - Inter-ORB Protocol Performance}", - BOOKTITLE="Submitted to the Hawaiian International Conference on System Sciences (Washington University Technical Report \#WUCS-97-10)", - YEAR = 1998, - MONTH = "January", - ABSTRACT = "" -} - -@incollection{Schmidt:97e, - AUTHOR = "Chris Cleeland and Tim Harrison and Douglas C. Schmidt", - TITLE = "{External Polymorphism -- An - Object Structural Pattern for Transparently Extending Concrete - Data Types}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="Robert Martin and Frank Buschmann and Dirk Riehle", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1997, -} - -@incollection{Schmidt:97d, - AUTHOR = "Douglas C. Schmidt and Tim Harrison", - TITLE = "{Double-Checked Locking -- An Object Behavioral - Pattern for Initializing and Accessing Thread-safe Objects - Efficiently}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="Robert Martin and Frank Buschmann and Dirk Riehle", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1997, -} - -@incollection{Schmidt:97c, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Acceptor and Connector: - Design Patterns for Initializing Communication Services}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="Robert Martin and Frank Buschmann and Dirk Riehle", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1997, - ANNOTE = http://www.cs.wustl.edu/~schmidt/, -} - -@inproceedings{Schmidt:97b, - AUTHOR = "Prashant Jain and Douglas C. Schmidt", - TITLE = "{Service Configurator: - A Pattern for Dynamic Configuration of Services}", - BOOKTITLE="Proceedings of the $3^{rd}$ Conference on - Object-Oriented Technologies and Systems", - PUBLISHER = "USENIX", - LOCATION="Portland, OR", - YEAR = 1997, - MONTH = "June", -} - -@incollection{Schmidt:97a, - AUTHOR = "Irfan Pyarali and Timothy H. Harrison and Douglas C. Schmidt", - TITLE = "{Asynchronous Completion Token: an Object Behavioral Pattern for - Efficient Asynchronous Event Handling}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="Robert Martin and Frank Buschmann and Dirk Riehle", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1997, -} - -@article{Schmidt:96v, - AUTHOR = "Prashant Jain and Douglas Schmidt", - TITLE = "{Experiences Converting a C++ Communication Software - Framework to Java}", - JOURNAL = "C++ Report", - YEAR = 1997, - VOLUME = 9, - NUMBER = 1, - MONTH = "January", - ABSTRACT = "" -} - -@incollection{Schmidt:96n, - AUTHOR = "Irfan Pyarali and Timothy H. Harrison and Douglas C. Schmidt", - TITLE="{Design and Performance of an Object-Oriented Framework - for High-Performance Electronic Medical Imaging}", - BOOKTITLE="USENIX Computing Systems", - PUBLISHER="MIT Press", - YEAR = 1996, - MONTH = "November/December", - EDITOR={Douglas C. Schmidt}, - ABSTRACT = "" -} - -@inproceedings{Schmidt:96g, - AUTHOR = "Aniruddha Gokhale and Douglas C. Schmidt", - TITLE = "{Performance of the CORBA Dynamic Invocation Interface and - Internet Inter-ORB Protocol over High-Speed ATM Networks}", - BOOKTITLE="Proceedings of GLOBECOM '96", - ADDRESS={London, England}, - ORGANIZATION="IEEE", - YEAR = 1996, - MONTH = "November", - ABSTRACT = "" -} - -@inproceedings{Schmidt:96f, - AUTHOR = "Aniruddha Gokhale and Douglas C. Schmidt", - TITLE = "{Measuring the Performance of Communication Middleware on - High-Speed Networks}", - BOOKTITLE="Proceedings of SIGCOMM '96", - ADDRESS={Stanford, CA}, - ORGANIZATION="ACM", - YEAR = 1996, - MONTH = "August", - ABSTRACT = "" -} - -@inproceedings{Schmidt:96e, - AUTHOR = "Irfan Pyarali and Timothy H. Harrison and Douglas C. Schmidt", - TITLE="{Design and Performance of an Object-Oriented Framework - for High-Performance Electronic Medical Imaging}", - BOOKTITLE="Proceedings of the $2^{nd}$ Conference on - Object-Oriented Technologies and Systems", - ADDRESS={Toronto, Canada}, - ORGANIZATION="USENIX", - YEAR = 1996, - MONTH = "June", - ABSTRACT = "" -} - -@inproceedings{Schmidt:96d, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{A Family of Design Patterns For Flexibly - Configuring Network Services in Distributed Systems}", - BOOKTITLE = "International Conference on Configurable - Distributed Systems", - LOCATION="Annapolis, Maryland", - YEAR = 1996, - MONTH = "May 6--8", -} - -@inproceedings{Schmidt:96c, - AUTHOR = "Tim Harrison and Douglas C. Schmidt", - TITLE = "{Thread-Specific Storage -- An Object Behavioral - Pattern for Accessing per-Thread State Efficiently}", - BOOKTITLE = "Submitted to the $3^{rd}$ Pattern Languages of Programming - Conference", - LOCATION="Allerton Park, Illinois", - YEAR = 1996, - MONTH = "September", - ABSTRACT = "http://www.cs.wustl.edu/~schmidt/TSS-pattern.ps.gz" -} - -@inproceedings{Schmidt:96b, - AUTHOR = "R. Greg Lavender and Douglas C. Schmidt", - TITLE = "{Active Object: an Object Behavioral Pattern for - Concurrent Programming}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="James O. Coplien and John Vlissides and Norm Kerth", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1996, -} - -@inproceedings{Schmidt:96a, - AUTHOR = "Douglas C. Schmidt and Charles D. Cranor", - TITLE = "{Half-Sync/Half-Async: an Architectural Pattern for - Efficient and Well-structured Concurrent I/O}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="James O. Coplien and John Vlissides and Norm Kerth", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1996, -} - -@article{Schmidt:95p, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Connector: a Design Pattern for Actively - Initializing Network Services}", - JOURNAL = "C++ Report", - YEAR = 1996, - VOLUME = 8, - NUMBER = 1, - MONTH = "January" -} - -@inproceedings{Schmidt:95o, - AUTHOR = "Douglas C. Schmidt and Timothy H. Harrison and Irfan Pyarali", - TITLE = "{Experience Developing an Object-Oriented Framework - for High-Performance Electronic Medical Imaging using CORBA - and C++}", - BOOKTITLE = "Proceedings of the ``Software Technology Applied to Imaging and Multimedia - Applications mini-conference'' at the Symposium on Electronic - Imaging in the International Symposia Photonics West", - ORGANIZATION={SPIE}, - LOCATION="San Jose, CA", - YEAR = 1996, - MONTH = "January" -} - -@article{Schmidt:95m, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Design Patterns for Initializing Network Services: - Introducing the Acceptor and Connector Patterns}", - JOURNAL = "C++ Report", - YEAR = 1995, - VOLUME = 7, - NUMBER = 9, - MONTH = "November/December" -} - -@inproceedings{Schmidt:95k, - AUTHOR = "Tim Harrison and Douglas C. Schmidt", - TITLE = "{Thread-Specific Storage: A Pattern for Reducing Locking Overhead in Concurrent Programs}", - BOOKTITLE = "OOPSLA Workshop on Design Patterns for Concurrent, Parallel, and Distributed Systems", - ORGANIZATION={ACM}, - LOCATION="Austin, TX", - YEAR = 1995, - MONTH = "October" -} - -@article{Schmidt:95j, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Experience Using Design Patterns to Develop - Reuseable Object-Oriented Communication Software}", - BOOKTITLE = "Communications of the ACM (Special Issue on - Object-Oriented Experiences)", - VOLUME = 38, - NUMBER = 10, - YEAR = 1995, - MONTH = "October" -} - -@inproceedings{Schmidt:95h, - AUTHOR = "Douglas C. Schmidt and Charles D. Cranor", - TITLE = "{Half-Sync/Half-Async: an Architectural Pattern for - Efficient and Well-structured Concurrent I/O}", - BOOKTITLE = "Proceedings of the $2^{nd}$ Annual Conference on - the Pattern Languages of Programs", - ADDRESS={Monticello, Illinois}, - PAGES="1--10", - YEAR = 1995, - MONTH = "September" -} - -@inproceedings{Schmidt:95i, - AUTHOR = "R. Greg Lavender and Douglas C. Schmidt", - TITLE = "{Active Object: an Object Behavioral Pattern for - Concurrent Programming}", - BOOKTITLE = "Proceedings of the $2^{nd}$ - Annual Conference on the Pattern Languages of Programs", - ADDRESS={Monticello, Illinois}, - PAGES="1--7", - YEAR = 1995, - MONTH = "September" -} - -@article{Schmidt:95g, - AUTHOR = "Douglas C. Schmidt", - TITLE="{A Family of Design Patterns for - Application-level Gateways}", - JOURNAL="The Theory and Practice of - Object Systems (Special Issue on Patterns and Pattern Languages)", - EDITOR={Stephen P. Berczuk}, - PUBLISHER="Wiley and Sons", - YEAR = 1996, - VOLUME = 2, - NUMBER = 1, - ABSTRACT = "" -} - -@book{Schmidt:95f, - TITLE = "{Pattern Languages of Program Design}", - EDITOR="James O. Coplien and Douglas C. Schmidt", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1995, -} - -@inproceedings{Schmidt:95e, - AUTHOR = "Douglas C. Schmidt and Tim Harrison and Ehab Al-Shaer", - TITLE="{Object-Oriented Components for High-speed Network Programming}", - BOOKTITLE="Proceedings of the Conference on Object-Oriented Technologies", - ADDRESS={Monterey, CA}, - ORGANIZATION="USENIX", - YEAR = 1995, - MONTH = "June", -} - -@inproceedings{Schmidt:95d, - AUTHOR = "Douglas C. Schmidt", - TITLE="{Acceptor and Connector: Design Patterns for Active and Passive Establishment - of Network Connections}", - BOOKTITLE=" Workshop on Pattern Languages of Object-Oriented - Programs at ECOOP '95", - MONTH={August}, - YEAR=1995, - ADDRESS={Aarhus, Denmark}, - ABSTRACT = "" -} - -@article{Schmidt:95c, - AUTHOR = "Douglas C. Schmidt and Paul Stephenson", - TITLE="{Using Design Patterns to Evolve System Software from - UNIX to Windows NT}", - JOURNAL = "C++ Report", - YEAR = 1995, - VOLUME = 7, - NUMBER = 3, - MONTH = "March/April", - ABSTRACT = "This is a different version of the ECOOP paper that - goes into a lot more gory details about how the - Reactor and Acceptor patterns were implemented - on Windows NT and UNIX." -} - -@inproceedings{Schmidt:95b, - AUTHOR = "Douglas C. Schmidt and Paul Stephenson", - TITLE="{Experiences Using Design Patterns to - Evolve System Software Across Diverse OS Platforms}", - BOOKTITLE="Proceedings of the $9^{th}$ European Conference on - Object-Oriented Programming", - ADDRESS={Aarhus, Denmark}, - MONTH={August}, - YEAR=1995 -} - -@incollection{Schmidt:95a, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Reactor: An Object Behavioral Pattern for Concurrent - Event Demultiplexing and Event Handler Dispatching}", - BOOKTITLE = "Pattern Languages of Program Design", - EDITOR="James O. Coplien and Douglas C. Schmidt", - PUBLISHER = "Addison-Wesley", - ADDRESS={Reading, MA}, - YEAR = 1995, - MONTH = "June" - ABSTRACT = "This is a polished up version of the PLoP paper" -} - -@inproceedings{Schmidt:94l, - AUTHOR = "Douglas C. Schmidt and Paul Stephenson", - TITLE="{Achieving Reuse Through Design Patterns}", - BOOKTITLE="Proceedings of the Third C++ World Conference", - ORGANIZATION="SIGS", - ADDRESS={Austin, Texas}, - MONTH=Nov, - YEAR=1994 -} - -@inproceedings{Schmidt:94i, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Reactor: An Object Behavioral Pattern for Concurrent - Event Demultiplexing and Dispatching}", - BOOKTITLE = "Proceedings of the $1^{st}$ Annual Conference on the - Pattern Languages of Programs (PLoP)", - ADDRESS={Monticello, Illinois}, - YEAR = 1994, - MONTH = "August" -} - -@inproceedings{Schmidt:94j, - AUTHOR = "Douglas C. Schmidt", - TITLE="{The ADAPTIVE Communication Environment: - An Object-Oriented Network Programming Toolkit for Developing - Communication Software}", - BOOKTITLE="Proceedings of the $12^{th}$ Annual Sun Users Group - Conference", - ORGANIZATION="SUG", - ADDRESS={San Francisco, CA}, - PAGES="214-225", - MONTH={June}, - YEAR=1994, -} - -@article{Schmidt:94g, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Transparently Parameterizing Synchronization into a - Concurrent Distributed Application}", - JOURNAL = "C++ Report", - YEAR = 1994, - VOLUME = July/August, - NUMBER = 6, - MONTH = "March/April", -} - -@article{Schmidt:94d, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{A Domain Analysis of Network Daemon Design Dimensions}", - JOURNAL = "C++ Report", - YEAR = 1994, - VOLUME = 6, - NUMBER = 3, - MONTH = "March/April", -} - -@inproceedings{Schmidt:94a, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{ASX: an Object-Oriented Framework for Developing - Distributed Applications}", - BOOKTITLE = "Proceedings of the $6^{th}$ USENIX C++ Technical Conference", - ORGANIZATION="USENIX", - ADDRESS={Cambridge, Massachusetts}, - MONTH = "April", - YEAR = {1994} -} - -@inproceedings{Schmidt:93i, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE="{The Service Configurator Framework: An Extensible - Architecture for Dynamically Configuring Concurrent, Multi-Service - Network Daemons}", - BOOKTITLE="The Proceedings of the Second International Workshop on - Configurable Distributed Systems", - ORGANIZATION="IEEE", - ADDRESS={Pittsburgh, PA}, - MONTH=mar, - YEAR=1994, -} - -@inproceedings{Schmidt:93k, - AUTHOR = "Douglas C. Schmidt", - TITLE="{The ADAPTIVE Communication Environment: - Object-Oriented Network Programming Components for Developing - Client/Server Applications}", - BOOKTITLE="Proceedings of the $11^{th}$ Annual Sun Users Group Conference", - ORGANIZATION="SUG", - ADDRESS={San Jose, CA}, - MONTH=Dec, - YEAR=1993, -} - -@inproceedings{Schmidt:93j, - AUTHOR = "Douglas C. Schmidt", - TITLE="{Object-Oriented Techniques for Developing Extensible - Network Servers}", - BOOKTITLE="Proceedings of the Second C++ World Conference", - ORGANIZATION="SIGS", - ADDRESS={Dallas, Texas}, - MONTH=Oct, - YEAR=1993, -} - -@inproceedings{Schmidt:93h, - AUTHOR = "Douglas C. Schmidt and Paul Stephenson", - TITLE="{An Object-Oriented Framework for Developing - Network Server Daemons}", - BOOKTITLE="Proceedings of the Second C++ World Conference", - ORGANIZATION="SIGS", - ADDRESS={Dallas, Texas}, - MONTH=Oct, - YEAR=1993, -} - -@article{Schmidt:93c, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{The Object-Oriented Design and Implementation of the - Reactor: A C++ Wrapper for UNIX I/O Multiplexing (Part 2 of 2)}", - JOURNAL = "C++ Report", - YEAR = 1993, - MONTH = "September/October", - ABSTRACT = "" -} - -@article{Schmidt:93b, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{The Reactor: An Object-Oriented Interface for - Event-Driven UNIX I/O Multiplexing (Part 1 of 2)}", - JOURNAL = "C++ Report", - YEAR = 1993, - MONTH = "February", - ABSTRACT = "" -} - -@article{Schmidt:92e, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{IPC_SAP: An Object-Oriented Interface to - Interprocess Communication Services}", - JOURNAL = "C++ Report", - YEAR = 1992, - MONTH = "November/December", - ABSTRACT = "" -} - -@article{Schmidt:92d, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Systems Programming with C++ Wrappers: Encapsulating - Interprocess Communication Services with Object-Oriented Interfaces}", - JOURNAL = "C++ Report", - YEAR = 1992, - MONTH = "September/October", - ABSTRACT = "" -} - ----------------------------------------- -In addition, here are some articles that discuss various aspects of -the ADAPTIVE project. - -@inproceedings{Schmidt:94r, - AUTHOR = {Douglas C. Schmidt}, - TITLE = "{High-Performance Event Filtering for Dynamic Multi-point Applications}", - BOOKTITLE= "$1^{st}$ Workshop on High Performance Protocol - Architectures (HIPPARCH)", - MONTH={December}, - YEAR = {1994}, - ADDRESS={Sophia Antipolis, France}, - ORGANIZATION = {INRIA} -} - -@inproceedings{Schmidt:94p, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "Measuring the Performance of Parallel Message-based - Process Architectures," - BOOKTITLE = "{\em Proceedings of the INFOCOM Conference on Computer Communications}", - ORGANIZATION= "IEEE", - ADDRESS="Boston, MA", - MONTH = "April", - YEAR = {1995} -} - -@article{Schmidt:94k, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "{An Object-Oriented Framework for Dynamically - Configuring Extensible Distributed Communication Systems}", - JOURNAL = "IEE Distributed Systems Engineering Journal - (Special Issue on Configurable Distributed Systems)", - YEAR = 1994, - MONTH = "December" -} - -@inproceedings{Schmidt:94e, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Experiences with an Object-Oriented Architecture for - Developing Extensible Network Management Software}", - BOOKTITLE = "Globecom Conference", - ORGANIZATION="IEEE", - ADDRESS={San Francisco, CA}, - MONTH = "November", - YEAR = {1994} -} - -@inproceedings{Schmidt:94h, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "{Measuring the Impact of Alternative Parallel Process - Architectures on Communication Subsystem Performance}", - BOOKTITLE = "Proceedings of the $4^{th}$ International Workshop - on Protocols for High-Speed Networks", - ORGANIZATION="IFIP", - ADDRESS={Vancouver, British Columbia}, - YEAR = 1994, - MONTH = "August" -} - -@inproceedings{Schmidt:94b, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "{The ADAPTIVE Service eXecutive: an Object-Oriented - Architecture for Configuring Concurrent Distributed Applications}", - BOOKTITLE = "The proceedings of the $8^{th}$ International Working - Conference on Upper Layer Protocols, Architectures, and - Applications", - ORGANIZATION="IFIP", - ADDRESS={Barcelona, Spain}, - MONTH = "June", - YEAR = {1994} -} - -@inproceedings{Schmidt:93g, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE="{A Framework for Developing and Experimenting with - Parallel Process Architectures to Support High-Performance - Transport Systems}", - ORGANIZATION="IEEE", - BOOKTITLE="Proceedings of the Second Workshop on the - Architecture and Implementation of High Performance - Communication Subsystems", - ADDRESS={Williamsburg, Virgina}, - MONTH={September}, - YEAR=1993, -} - -@inproceedings{Schmidt:93f, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "{ADAPTIVE: A Framework for Experimenting with - High-Performance Transport System Process Architectures}", - BOOKTITLE="{Proceedings of the $2^{\rm nd}$ International - Conference on Computer Communication Networks}", - ORGANIZATION="ISCA", - ADDRESS={San Diego, California}, - YEAR=1993, - MONTH=jun, - PAGES="", - ABSTRACT="" -} - -@article{Schmidt:93a, - AUTHOR = "Douglas C. Schmidt and Donald F. Box and Tatsuya Suda", - TITLE = "{ADAPTIVE: A Dynamically Assembled Protocol - Transformation, Integration, and eValuation Environment}", - JOURNAL="Journal of Concurrency: Practice and - Experience", - YEAR = 1993, - MONTH=jun, - ABSTRACT = "" -} - -@inproceedings{Box:93a, - AUTHOR="Donald F. Box and Douglas C. Schmidt and Tatsuya Suda", - TITLE="{ADAPTIVE: An Object-Oriented Framework for Flexible - and Adaptive Communication Protocols}", - BOOKTITLE="{Proceedings of the 4$^{th}$ IFIP Conference on High - Performance Networking}", - ORGANIZATION="IFIP", - ADDRESS="Liege, Belgium", - YEAR=1993, - ABSTRACT = "" -} - -@inproceedings{Schmidt:92f, - AUTHOR = "Douglas C. Schmidt", - TITLE = "{Hosting the ADAPTIVE System in the {\em - x}-Kernel and System V STREAMS}", - BOOKTITLE = "Proceedings of the {\em x}-kernel Workshop", - MONTH = {November}, - ADDRESS = {Tucson, Arizona}, - YEAR = 1992, -} - -@inproceedings{Schmidt:92c, - AUTHOR = "Douglas C. Schmidt and Donald F. Box and Tatsuya - Suda", - TITLE = "{ADAPTIVE: A Flexible and Adaptive Transport System - Architecture to Support Lightweight Protocols for Multimedia - Applications on High-Speed Networks}", - BOOKTITLE = "Proceedings of the First Symposium on High Performance - Distributed Computing", - MONTH = {September}, - ORGANIZATION = {IEEE}, - ADDRESS = {Syracuse, New York}, - YEAR = 1992, -} - -@article{Schmidt:92a, - AUTHOR = "Douglas C. Schmidt and Tatsuya Suda", - TITLE = "{Transport System Architecture Services for - High-Speed Communications Systems}", - JOURNAL="IEEE Journal on Selected Areas in Communication", - MONTH=may, - YEAR = 1993, -} - diff --git a/COPYING b/COPYING deleted file mode 100644 index cc021e42434..00000000000 --- a/COPYING +++ /dev/null @@ -1,35 +0,0 @@ -COPYRIGHT INFORMATION FOR ACE - -ACE is copyrighted by Douglas C. Schmidt and his research group at -Washington University, Copyright (c) 1993-1997, all rights reserved. -You are free to do anything you like with the ACE source code (and -object code produced from the source). For instance, you can include -it in commercial software, as long as you include this copyright -statement along with code built using ACE. - -You are under no obligation to freely redistribute any of your source -code that is built using ACE. Please note, however, that you may not -do anything to the ACE code that will prevent it from being -distributed freely (such as copyrighting it yourself or claiming -authorship of the ACE code). - -ACE is 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. - -ACE is 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. - -Washington University, its employees, and students shall have no -liability with respect to the infringement of copyrights, trade -secrets or any patents by ACE or any part thereof. - -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. - - Douglas C. Schmidt - schmidt@cs.wustl.edu - diff --git a/ChangeLog-93 b/ChangeLog-93 deleted file mode 100644 index 0beb8e6321f..00000000000 --- a/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/ChangeLog-94 b/ChangeLog-94 deleted file mode 100644 index 09465ce823f..00000000000 --- a/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 <> 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 - . - -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/ChangeLog-95 b/ChangeLog-95 deleted file mode 100644 index 429e5681fdc..00000000000 --- a/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 for . 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 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: . 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 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 - . - - * 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 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 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 - 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 - 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 - 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 - 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 updates for Windows - NT. - - * include/ace/Malloc.h: Added a forward declaration for - ACE_Malloc_Iterator right before ACE_Malloc. Thanks to Antonio - Tortorici for reporting it. - - * libsrc/Threads/Synch_T.h: Fixed a small typo in - ACE_Null_Condition. Thanks to Antonio Tortorici - 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 new - test program that exercises the new features of ACE_Malloc that - are described in the following bullet. - - * libsrc/Shared_Malloc: Added Irfan Pyarali - 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 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 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 - 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 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 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 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 - for finding this! - - * Removed all traces of ACE_Condition 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 - . - - * 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 - 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 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 - 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 - 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 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 == 0 then we don't try to do a - putit (previously, this check used , which is less - useful...). - - * libsrc/CORBA/CORBA_Handler.C (activate_service): Removed the - 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 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 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 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 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 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 - 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 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 - 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 ACE_Acceptor { /* ... */ - virtual int open (const PEER_ADDR &); - }; - - that are currently used like this: - - ACE_Acceptor acc; - - can be replaced with - - template - class ACE_Acceptor { /* ... */ - virtual int open (const PEER_ACCEPTOR::PEER_ADDR &); - }; - - that are used like this: - - ACE_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 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 - 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 - 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 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 - . - - 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 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 - 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 - 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 - and Chris Cleeland - 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 for detecting this issue and - implementing a solution. - - * include/ace/sysincludes.h: Added #ifdef support for HP/UX, which - fails to properly wrap 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 - for noticing this. - - * libsrc/Connection: Changed all uses of ADDR to PEER_ADDR to - avoid a name clash in Linux... Thanks to James Morris - 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 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 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. 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 - - 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 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 - - * 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 - - * /libsrc/Connection/Acceptor.i: Fixed a potential memory leak in - handle_input(). - -Thu Mar 9 11:59:54 1995 Doug Schmidt - - * 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 - - * 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 - 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/ChangeLog-96a b/ChangeLog-96a deleted file mode 100644 index 5aa3c9b69fc..00000000000 --- a/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 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 - 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 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 m (lock_) to ACE_GUARD - (LOCK, lock_), which is a macro that is defined as follows: - - ACE_Guard 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 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 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 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 and - Eric Beser for helping with this. - - * ace: Added support for the m88k OS. Thanks to Gary Salsbery - and Eric Beser - 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 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 for reporting this. - - * ace/Makefile: Changed things back so that both static and - dynamic libs are built by default... Thanks to Brad Brown - 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 - 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 - 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 - 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 - 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 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 - 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 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 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 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 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 - 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 - 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 "", 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 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 - 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 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 for - suggesting this. - - * examples/Threads/test_thread_manager.cpp (main): Changed argv[1] - to argv[2]. Thanks to Andres Kruse 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 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 - for finding this. - - * ace/Malloc.h: Added a very important #else... Thanks to Alex - Karev 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 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 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 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 - 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 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 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 - 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 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 - 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 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 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 - 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 . 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 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 for - pointing this out. - - * ace/Synch_T.cpp (ts_get): at line 270 (within - ACE_TSS::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 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 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 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 - 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 - 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 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* (or ), 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 - 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 - 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 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 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 for this fix. - - * ace/OS.h: Added a couple of fixes for the SCO port. Thanks - again to Matt Newhook - - * 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 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 - for reporting this. - - * ace/Reactor.cpp (advance): Fixed a bug that prevented the - iterator from advancing. Thanks to Mark Zusman - 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 - 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 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 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 - 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 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 - for contributing this. - -Sat Mar 30 12:41:16 1996 Douglas C. Schmidt - - * 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 "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 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 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 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 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 - . - - * man: Included a shell script to automatically generate an - acewindex.html file. This file is useful just after running - man2html. Thanks to Vincent Pommier - 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 - 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 - 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 - 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 - 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 - and Alex V. Maclinovsky - 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::operator ACE_TPQ_Entry *(); - - with - - return (ACE_TPQ_Entry *) (*((ACE_TSS *) 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 for this recommendation. - - * ace/Shared_Memory.h: The conditional compilation wrapper was out - of date, so I renamed it. Thanks to Alex V Maclinovsky - 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 - 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 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 - #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 - 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 - 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 - for reporting this. - - * ace/Typed_SV_Message.i (length): Fixed a minor typo that caused - a bigger bug ;-). Thanks to Alexandre Karev - 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 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 - 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 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 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 - 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 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 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 - 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 for noticing this. - - * include/makeinclude: Added a new config file from Bryon G. Rigg - , 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 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 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 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 - 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 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 TYPE * - ACE_TSS::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. 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 - 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 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 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 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 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 method to decide if we need to delete ... - 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 - 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 - 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 - 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 - 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 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 - 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 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 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 - 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 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 - 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 - 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 - for this. - -Fri Jan 12 00:47:57 1996 Douglas C. Schmidt (schmidt@tango.cs.wustl.edu) - - * ace/Time_Value.h: #included 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 . - 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 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 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 - 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 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 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 - 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 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/ChangeLog-96b b/ChangeLog-96b deleted file mode 100644 index c2217f16f89..00000000000 --- a/ChangeLog-96b +++ /dev/null @@ -1,5879 +0,0 @@ -Tue Dec 31 18:27:50 1996 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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; - 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; - 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 - - * 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 - - * 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 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 - - * 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 - - * 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 for this. - - * ace/config-linux-[lx]pthreads.h: Added a #define for the - ACE_HAS_THREAD_SPECIFIC_STORAGE symbol. Thanks to James CE - Johnson 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 - 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 - for this fix. - - * ace/OS.i: Added DCE pthreads fixes for OSF/1 3.2. Thanks to - Harry Gunnarsson for these. - -Sat Dec 21 13:54:45 1996 Douglas C. Schmidt - - * 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::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 - 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.{h,i} and ace/INET_Addr.cpp: more VxWorks - gethostbyname () tweaks - -Wed Dec 18 15:24:13 1996 Tim H. Harrison - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 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 - - * ace/OS.i: removed spurious "*/" after an #endif. Thanks to - Harry Gunnarsson 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 for pointing - this out. - - * netsvcs/servers/svc.conf: changed _make_ACE_Logger() to - _make_ACE_Logging_Strategy() svc.conf. Thanks to Per Andersson - for reporting this. - -Sun Dec 15 13:01:17 1996 David L. Levine - - * 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 - - * 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 - for reporting this. - -Sat Dec 14 14:25:38 1996 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * ace: Replaced all uses of - - #if defined (.....) // .... - - with - - #if defined (.....) /* ... */ - - so that broken C++ compilers won't complain. Thanks to - John Cosby for reporting this. - - * ace/Thread.i: Updated the signature of getprio() and setprio() - so that they take ACE_hthread_t. Thanks to Wayne Vucenic - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Synch_T.h: Added a warning that indicates why it isn't - possible to use ACE_Process_Condition 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 - - * 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 - - * 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 - 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 - . - - * 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 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 - for this suggestion. - -Mon Dec 9 22:03:30 1996 Douglas C. Schmidt - - * 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 - 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 - for reporting this. - -Mon Dec 9 02:06:48 1996 Irfan Pyarali - - * 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 - - * 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 - - * 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 - for reporting this. - - * netsvcs/servers/main.cpp (main): Fixed several small bugs in the - netsvcs main test program. Thanks to Alexandre Karev - 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 - , 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 - for suggesting this. - -Sun Dec 8 14:39:53 1996 Tim H. Harrison - - * 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 - - * 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 - - * 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 - for reporting this. - -Sat Dec 7 16:55:37 1996 Matthias Kerkhoff - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for suggesting this. - -Mon Dec 2 14:13:44 1996 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 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 - - * 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 - - * 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 - 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 - - * ace/config-vxworks*.h: Removed #define ACE_HAS_STRBUF_T: - copy and paste error - -Sun Dec 1 00:15:45 1996 Irfan Pyarali - - * 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 - - * 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 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 - for reporting this. - -Sat Nov 20 12:23:45 1996 Prashant Jain - - * 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 - - * 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 - - * 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 - - * 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 - 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 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 - - * 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 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 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 - 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 - 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 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 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 - 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 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 - 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 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 - 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 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 - 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 - for this. - -Wed Nov 27 16:12:00 1996 Tim H. Harrison - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - 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 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 - - * ace: Added Chuck Gehr's 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 for reporting this problem. - -Sat Nov 23 12:39:03 1996 Douglas C. Schmidt - - * 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 - 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 - - * 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 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 - - * 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 - - * 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 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 - - we use - - #include /**/ - - Please let me know if this causes problems for any - pre-processors. Thanks to Matthias Kerkhoff - 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 - 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - for this info. - -Tue Nov 19 23:09:08 1996 Tim H. Harrison - - * 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 - - * 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 for fixing this. - - * ace/OS.h: Improved the support for RLIMIT_NOFILE. Thanks to - Alan Stewart 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 - 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 - 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 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 - for reporting this. - - * ace/Message_Queue.h: Fixed a bug where - - ACE_Message_Queue &queue_; - - should be: - - ACE_Message_Queue &queue_; - - Thanks to Rick Orr for - reporting this. - - * apps/Makefile: Updated the Makefile so that it no longer tries - to look for Synch-Benchmarks. Thanks to Amos Shapira - 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 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 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 - for reporting this. - -Tue Nov 19 21:14:15 1996 David L. Levine - - * 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 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 - - * 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 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 - - * 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 for finding the BSD code. - -Mon Nov 18 00:13:25 1996 Tim H. Harrison - - * 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 - - * 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 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 - - * ace: Added Thilo Kielmann's - 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 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 - - * 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 - - * 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 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 for reporting this. - -Thu Nov 14 16:20:20 1996 Douglas C. Schmidt - - * 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 for this. - -Wed Nov 13 01:22:16 1996 Douglas C. Schmidt - - * 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 for suggesting this. - - * ace/System_Time.h: Made ACE_System_Time::get_local_time() a - static member function. Thanks to Matthias Kerkhoff - 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 - 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 for - reporting this. - -Tue Nov 12 19:43:12 1996 Douglas C. Schmidt - - * ace/Thread_Manager.cpp (spawn_n): Was missing a 0 after ?. - Thanks to Thilo Kielmann 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 - - * 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 - - * 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 . - - * 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 - for suggesting this. - -Sun Nov 10 13:56:38 1996 Prashant Jain - - * 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 - - * 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 for reporting - this. - -Sat Nov 9 01:44:15 1996 Irfan Pyarali - - * 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 - - * 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 for - reporting this. - -Wed Nov 6 00:38:02 1996 Douglas C. Schmidt - - * 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 - - * 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 ). - However, we put it here to be complete. Thanks to Hamutal Yanay - 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 - - * 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 - for originally creating run_tests.sh, and - for maintaining it, and to Alan Stewart 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 - - * 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 - - * 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 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 - 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 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 - - * 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 or - 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 - and ACE_Task. - - 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 - and Ari Erev's - for suggesting these changes. - - * ace/Thread_Manager: Changed the use of ACE_Task 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 - - * ace/OS.h: Changed MAXHOSTNAMELEN on Win32 from - (MAX_COMPUTERNAME_LENGTH+1) (which is around 16 or so) to 256. - Thanks to Tilo Christ 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::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 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 - - * 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 - - * ace/ACE.cpp (send): Integrated a new and simpler version of - timed ACE::send(). Thanks to Vital Aza 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 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 - for reporting this. - -Tue Oct 29 00:02:44 1996 Douglas C. Schmidt - - * 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 - 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 . - - * 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 - - * 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 - Yanay & Ari Erev's - 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 - - * 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 - - * 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 - for suggesting this. - -Sat Oct 26 15:55:02 1996 Irfan Pyarali - - * 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 - - * 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 - - * examples/Connection/misc/Makefile: The Makefile in - ACE_wrappers/examples/Connection/misc seems to have been - truncated. I replaced it. Thanks to Alan Stewart - 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 - - * 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 - - * 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 - - * 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 for providing these. - - * ace/OS.h: Added many new ACE_LACKS* and ACE_HAS* macros to - support the MVS port. Thanks to Chuck Gehr - for these. - -Tue Oct 15 11:56:59 1996 Douglas C. Schmidt - - * 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 for suggesting this. - - * ace/Local_Tokens.h: Removed an unnecessary parameter name - that was unused. Thanks to Stuart Powell - for reporting this. - -Tue Oct 15 17:03:37 1996 Tim H. Harrison - - * 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 - 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 - - * tests: Added a new version of run_tests.sh, which was - contributed by Michael Rueger . - - * 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 - for suggesting this. - -Mon Oct 14 11:09:42 1996 Prashant Jain - - * 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 - - * 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 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 - - * 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 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 - - * 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 - - * 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 - 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 for - contributing this. - -Wed Oct 9 14:34:19 1996 Douglas C. Schmidt - - * 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 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 - - * 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 - - * ace/DEV.cpp (ACE_DEV): Removed a stray call to - ACE_IO_SAP::dump(). Thanks to Brad Flood - 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 - - * ace/OS.i: Added David Levine's new ACE_OS::mktemp() implementation. - -Wed Oct 2 13:26:20 1996 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - 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 for - suggesting this. - -Mon Sep 30 22:59:38 1996 Douglas C. Schmidt - - * 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 - for this fix. - - * ace/OS: Added a new macro called ACE_HAS_TIMEZONE_GETTIMEOFDAY - that handles problems on MVS. Thanks to Chuck Gehr - for this fix. - -Mon Sep 30 13:45:10 1996 Tim H. Harrison - - * ace/Local_Tokens.h: Updated some documentation in all the Token - files. - -Mon Sep 30 18:01:12 1996 Prashant Jain - - * 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 - - * ace/OS.h: Added Chuck Gehr fixes for - MVS to enable signals to work correctly. - - * ace/Time_Value.h: Added an extern "C" { } block around #include - to solve a problem with Linux. Thanks to Padhu - Ramalingam 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 - 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 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 for reporting - this. - - * ace/Synch_T.h: #include'd "ace/Event_Handler.h". Thanks to - Gonzalo Diethelm for reporting this. - - * ace/Synch.h: The parameter name gives warnings when - instantiating templates. Thanks to Gonzalo Diethelm - 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 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 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 - 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 - - * 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 - - * 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 - - * 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 for getting this rolling! - -Thu Sep 26 00:15:46 1996 Douglas C. Schmidt - - * 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 - 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 - - * 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 prototypes on that platform. - -Fri Sep 20 00:15:29 1996 Douglas C. Schmidt - - * 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 - 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 - 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 - - * 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 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 if the platform has RPC! - Thanks to Chuck Gehr 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 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 - 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 - 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 for reporting this. - -Wed Sep 18 00:36:01 1996 Douglas C. Schmidt - - * 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 - 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 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 - - * 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 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 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 - 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 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 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 - - * 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 - - * 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 - 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 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 for - reporting this! - - * ace/Log_Msg.cpp (open): Added a check for the OSTREAM flag in - the ACE logger. Thanks to Rick Orr - 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 - - * 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 - - * 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 - for suggesting this change. - -Sun Sep 15 00:55:59 1996 Douglas C. Schmidt - - * 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 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.h: Changed the order of #includes so that - comes before . This fixes some bugs with the - Siemens SVR4 C++. Thanks to Antonio Tortorici - 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 - 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 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 - and Steve Weismuller - 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 - - * 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 - - * ace/DEV_IO: Added methods get_local_addr() and get_remote_addr() - so that ACE_Connector will work correctly. Thanks to Brad Flood - 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" for clarifying this. - - * ace/Proactor.cpp (initiate): Fixed an incorrect set of return - values -- they were reversed. Thanks to Brad Flood - 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 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 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 for - reporting this. - - * ace/Thread_Manager.h: Implemented a non-synchronized version of - the lookup function for the . 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 for - reporting this. - - * examples/Reactor/ReactorEx/test_reactorEx.cpp - (register_thread_exit_hook): Changed hthread_t to ACE_hthread_t. - Thanks to Luca Priorelli 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 - - * 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 for suggesting this. - - * ace/Pipe: Added a new constructor that makes it possible to - initialize the from the and 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" for reporting this. - - * ace/{ACE,Log_Msg}.cpp: Added fixes for hexdump(). Thanks to - Luca Priorelli" 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 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 for the fixes. - - * ace/OS.cpp (thr_create): Added yet another fix for the IRIX 6.2 - pthreads implementation. Thanks to Gonzalo Diethelm - 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 - 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 - for recommending this. - -Tue Sep 10 00:26:52 1996 Douglas C. Schmidt - - * 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 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 for reporting - this. - - * ace: Changed the ACE_NO_POSIX_PROTO #define to something more - meaningful: ACE_LACKS_POSIX_PROTO. Thanks to Jonathan Biggar - for suggesting this. - - * ace/config-sunos4-g++.h: Added the #define ACE_NEEDS_SYSTIME_H. - Thanks to Alexandre Karev 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 - 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 for reporting this. - - * ace/Local_Tokens.h: Fixed a broken use of "friend", which was - missing the keyword "class." Thanks to Dave Trumble - for reporting this. - - * ace/config-osf1-4.0.h: Included Dave Trumble's - config file for OSF/1 4.0. - - * include/makeinclude/platform_osf1_4.0.GNU: Included Dave - Trumble's 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 - 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 - - * 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 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 - 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 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 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 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 - 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 - for reporting this. - -Sun Sep 8 14:11:08 1996 Tim H. Harrison - - * 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 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 - 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 - 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 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 - 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 - 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 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 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 - 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 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 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 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 - . Thanks to Gonzalo Diethelm - 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 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 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 - 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 - 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 for those platforms - that don't already do this in (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 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 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 - 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 to , returning a pointer to the end of the copied - region (rather than the beginning, a la . - -Thu Aug 22 15:43:58 1996 - - * 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 - 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 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 - 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 for suggesting this. - - * ace/config-win32-msvc4.0.h: Added - - #define _WINSOCKAPI_ - - To avoid multiple inclusions. Thanks to Luca Priorelli - 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 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 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 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 - 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 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 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 - 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 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 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 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 - 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 - for sending these. - - * ace/config-osf1-3.2.h: Updated this file with fixes for OSF/1 by - Martin Schoeckle . - - * 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 - for this fix and the explanation - above. - - * ace/OS.h: Added support for Borland 5.0's uint64. Thanks to - Hani Yakan 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 - 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 - for recommending this. - - * examples/Misc/test_XtReactor1.cpp: Added a new test of the - XtReactor, courtesy of Eric Newton . - - * ace/config-hpux-10.x.h: According to Eugene K. Plaude - , 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 - - * After a long hiatus, released version 4.0.28 for testing. - -Thu Aug 15 21:04:35 1996 Douglas C. Schmidt - - * 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 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 - 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 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 - 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 - 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 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 for fixing this! - - * ace/config-hpux-10.x.h: Added support for TLI since according to - Eugene K. Plaude this should work. If not, - please let me know. - -Wed Aug 14 21:29:46 1996 Douglas C. Schmidt - - * 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 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 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 for - pointing this out. - -Wed Aug 14 01:25:47 1996 - - * 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 - - * 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 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 - 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 - 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 - 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 - 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 test case for - his XtReactor integration. - - * ace: Included Eric Newton's 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 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 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 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 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 - 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 - 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 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 - - 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 - , 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 - 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 for reporting this. - - * examples/IPC_SAP/TLI_SAP/ftp-server.cpp: Fixed some typos that - were causing problems on AIX. Thanks to Greg Wilson - 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 - 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 - 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 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 - 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 - 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 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/ChangeLog-97a b/ChangeLog-97a deleted file mode 100644 index 0563ae1c093..00000000000 --- a/ChangeLog-97a +++ /dev/null @@ -1,9203 +0,0 @@ -Thu Jul 3 20:36:19 1997 Nanbor Wang - - * 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 - - * ace/Reactor.cpp (remove_handler): added ACE_UNUSED_ARG - when NSIG != 0. - -Wed Jul 2 23:41:43 1997 Nanbor Wang - - * performance-tests/Misc/childbirth_time.cpp: Fixed some typos. - -Wed Jul 2 23:13:10 1997 Douglas C. Schmidt - - * performance-tests/Misc/childbirth_time.cpp: Revised the - code to use ACE programming style. - -Wed Jul 02 23:02:24 1997 Douglas C. Schmidt - - * ACE version 4.2.15, released Wed Jul 02 23:02:24 1997. - -Wed Jul 2 22:23:49 1997 Douglas C. Schmidt - - * 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 - - * ace/Hash_Map_Manager.cpp: Clarified the behavior of close_i() a - bit more. - -Wed Jul 2 09:54:36 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.14, released Wed Jul 02 00:16:07 1997. - -Tue Jul 1 22:49:58 1997 Douglas C. Schmidt - - * 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 - for reporting this. - -Tue Jul 01 14:47:22 1997 David L. Levine - - * 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 - - * 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 - - * include/makeinclude/platform_vxworks5.x_g++.GNU: added -lgcc - to LDFLAGS. - -Mon Jun 30 12:00:02 1997 Douglas C. Schmidt - - * ACE version 4.2.13, released Mon Jun 30 12:00:02 1997. - -Sat Jun 28 08:27:27 1997 David L. Levine - - * 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 - - * 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 - - * ace/Svc_Conf.y: Finished the sanity checks started below. - -Fri Jun 27 11:55:13 1997 Darrell Brunsch - - * ace/Timer_Queue_T.cpp: added a check for an empty queue in expire - -Fri Jun 27 07:53:58 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - for reporting this. - -Thu Jun 26 12:38:16 1997 Douglas C. Schmidt - - * ACE version 4.2.12, released Thu Jun 26 12:38:16 1997. - -Thu Jun 26 01:11:10 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.11, released Wed Jun 25 00:37:56 1997. - -Tue Jun 24 21:30:53 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for - pointing this out. - - * tests/Timer_Queue_Test.cpp: Updated to correctly test this. - -Tue Jun 24 13:02:51 1997 David L. Levine - - * ace/SString.h (ACE_SString ctor): changed "allocator" to "alloc". - Thanks to Brian Mendel for reporting this. - -Tue Jun 24 12:58:28 1997 James C Hu - - * include/makeinclude/platform_irix6.4*: Shuts up useless warnings - about multiply defined template instances. - -Tue Jun 24 12:50:52 1997 Douglas C. Schmidt - - * ACE version 4.2.10, released Tue Jun 24 12:50:52 1997. - -Tue Jun 24 00:44:30 1997 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 and - Satoshi Ueno 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 - - * ace/Auto_Ptr.i (auto_array_ptr): Fixed a typo. - -Mon Jun 23 08:03:46 1997 Darrell Brunsch - - * 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 - - * 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 - - * 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 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 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 - - * examples/Threads/process_manager.cpp (main): replaced call to - kill with terminate. - -Sat Jun 21 10:48:34 1997 Douglas C. Schmidt - - * examples/Reactor/FIFO: Added a new example that illustrates - how the Reactor and the FIFO wrappers work together. Thanks - to Johannes Gutleber 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 - for these fixes. - - * examples/Reactor/Misc/notification.cpp: Added patches to run - this example under Chorus. Thanks to Wei Chiang - 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 - 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 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 for this - test. - - * examples/Reactor/Misc/pingpong.cpp: Added support for Chorus. - Thanks to Wei Chiang 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 for these fixes. - - * ace/config-tandem.h: Added a new config file for the - Tandem NonStop-UX 4.2MP platform. Thanks to Jan Perman - 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 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 - - * ace/OS.h (VxWorks/g++ only): added horrible hack to work around - mismatch of memcmp, etc., prototypes in . - - * 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 - - * 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 - - * ace/Signal.cpp: 'removed "const" from #define of - ACE_MAX_SIGNAL_HANDLERS because it broke Irix 6.2 build. Thanks - to Gonzalo A. Diethelm 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 - - * examples/Threads/{task_four,token}.cpp: Changed the use of - cerr/cout to ACE_DEBUG macro. Thanks to Chuck Gehr - for pointing these out. - -Tue Jun 17 15:11:09 1997 David L. Levine - - * 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 - 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 - - * 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 - - * 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 for reporting this problem. - -Tue Jun 17 09:41:48 1997 David L. Levine - - * 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 - - * 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 - for reporting this bug. - -Mon Jun 16 22:25:18 1997 Steve Huston - - * 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 - - * 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 - - * 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 for catching this. - -Sun Jun 15 03:44:21 1997 Nanbor Wang - - * 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 - 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 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 - - * 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 - - * 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 - - * ace/config-win32-common.h: Added a "pragma comment" directive to - direct MSVC to link in mswsock.lib automatically. Thanks to - Bill Tang for reminding this. - - * ace/ace.{mak,mdp}: Removed explicit inclusion of mswsock.lib. - Thanks to Bill Tang 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for - pointing these out. - -Tue Jun 10 12:16:04 1997 Darrell Brunsch - - * 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 - - * 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 - - * 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 - - * 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 for pointing this out. - -Mon Jun 9 02:31:36 1997 Nanbor Wang - - * 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 - - * 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 - 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 - - * 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 - - * ace/SString.h (string.): Added a substring() member function to - ACE_*String classes. Thanks to Michael MacFaden - 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 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 for suggesting this. - -Fri Jun 06 21:30:57 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.i (sigaddset, sigdelset, sigismember): NSIG itself is - invalid and must be excluded. - -Wed Jun 04 21:24:35 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 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 and ACE_Locked_Free_List. 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 - - * 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 - for reporting this. - -Mon Jun 2 16:29:48 1997 James C Hu - - * 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 - - * 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 - - * 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 - - * 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 - - * CPP-inclient.cpp (main): Properly compare to the "quit" - string. Thanks to "Andre Arpin" 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/config-hpux-10.x-decthreads.h: Added support for HP/UX 10.10 - with DCE threads. Thanks to Shankar Krishnamoorthy - 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 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 - - * 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 - - * tests/Future_Test.cpp: added ACE_Future{_Rep} template - specializations. - -Tue May 27 07:49:03 1997 Douglas C. Schmidt - - * ace/Future.cpp: Made a few minor reformatting changes to Per's - new Future enhancements. - -Tue May 27 14:19:14 1997 Per Andersson - - * 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 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 - - * 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 - - * 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 - for reporting this. - -Sat May 24 23:42:32 1997 David L. Levine - - * 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 - - * 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 - 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 for - reporting this. - - * ace/Connector.cpp (connect): Make sure to save/restore errno - since svc_handler->close() may change it. Thanks to Michael - Hartman 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 - - * 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 - for reporting this problem. - -Sat May 24 03:19:38 1997 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 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 for reporting - this problem. - -Fri May 23 20:12:33 1997 James C Hu - - * 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 - - * 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 - - * tests/Tokens_Test.cpp: added deletes to avoid memory leaks. - -Wed May 21 16:15:48 1997 David L. Levine - - * 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 and Amos Shapira - 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 - - * 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 - - * 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 - - * Released version 4.2. - - * ace/Acceptor.cpp (activate_svc_handler ): Removed an unnecessary - return 0. Thanks to Amos Shapira 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 for reporting this. - -Wed May 21 01:17:40 1997 Per Andersson - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * examples/Threads/tss2.cpp: added second parameter to - ACE_TSS_Singleton template specialization. - -Sun May 18 09:20:15 1997 Douglas C. Schmidt - - * 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 - - * 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 for - reporting this. - - * examples/Threads/tss2.cpp: added ACE_TSS template - specialization. - -Sat May 17 23:24:34 1997 Nanbor Wang - - * ace/OS.i (sigismember): Corrected the code when - ACE_LACKS_SIGSET. - -Sat May 17 00:06:04 1997 - - * 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 . - - * 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 - - * 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 - - * 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 for reporting and helping - debug on his FreeBSD 2.1.7R box. - -Sat May 17 00:06:04 1997 - - * 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 - - * ace/config-freebsd.h: Minor modification for working on FreeBSD - 2.1.x platform. Added includion of and - . 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 for reporting this. - -Fri May 16 12:25:32 1997 Douglas C. Schmidt - - * 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 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 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 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 - 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 - - * 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 - - * 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 - - * 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 - 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 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 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 /**/ from the Chorus-specific - part of OS.h since it's already included elsewhere. Thanks to - Wei Chiang 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 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - 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 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 - - * Makefile: use cpio instead of tar to allow easy filtering - of CVS files from the release. - -Wed May 14 15:00:58 1997 - - * 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 - - * 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 & operator>>( ACE_Time_Value *& tv ); - - Thanks to Chuck Gehr for this fix. - -Tue May 13 21:32:12 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/config-mvs.h: conditionally use ACE_HAS_UCONTEXT_T or - ACE_LACKS_UCONTEXT_H depending on __COMPILER_VER__. Thanks to - Chuck Gehr 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 - - * ace/config-freebsd-pthread.h: - * ace/config-freebsd.h: Added ACE_LACKS_RWLOCK_T to FreeBSD config - files. Thanks to Amancio Hasty for - noticing this. - -Mon May 12 17:11:50 1997 Tim H. Harrison - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/config-freebsd*.h: added support for FreeBSD 2.1.7R. - Thanks to Satoshi Ueno for figuring - out the differences and to Nanbor Wang - for updating the config files. - -Sun May 11 17:36:59 1997 - - * 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 - - * 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 - - * 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 - - * 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 for reporting - this. - -Fri May 09 16:37:48 1997 David L. Levine - - * 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 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 - - * 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 - 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 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 - 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 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 - for this. - - * ace/Containers.i (size): Changed to so that this - compiles on the Alpha. Thanks to James CE Johnson - for this. - - * ace/IOStream.h: Include the std_macros header on the Alpha. - Thanks to James CE Johnson for this. - - * include/makeinclude/platform_osf1_4.0.GNU (SOBUILD): Removed - -lACE from the link line. Thanks to James CE Johnson - 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 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 - - * 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 - - * 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::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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Makefile: added Timer_Wheel to FILES. Thanks to Thilo - Kielmann 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 for reporting - this problem and Eric Dean Russell - 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 - - * 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 - 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/config-linux*.h: added ACE_HAS_STRING_CLASS. Thanks to - Luis Lopes for reporting this. - -Mon May 05 19:58:16 1997 - - * 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 - - * 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 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 - 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 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 - 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 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 - for reporting this. - -Mon May 5 17:16:41 1997 Carlos O'Ryan - - * 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 - - * netsvcs/lib/Server_Logging_Handler.cpp: fixed ACE_Svc_Handler - specializations, yet again, for Linux w/LXPthreads. Thanks to - Luis Lopes 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 for reporting this. - -Sun May 4 12:34:09 1997 Douglas C. Schmidt - - * 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 - - * ace/Timer_Heap_T.cpp: changed some more int declarations to longs. - -Sat May 3 17:38:19 1997 Douglas C. Schmidt - - * 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 - 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 for reporting - this. - - * ace/IOStream: Added a number of minor changes for DEC UNIX. - Thanks to James CE Johnson 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 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 - - * ace/Map_Manager.cpp (dtor): removed void return (typo). - - * ace/Set.cpp (ACE_Fixed_Set::operator =): typo: fs instead of bs. - - * ace/Set.cpp (ACE_Fixed_Set::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 - - * 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 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 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 for this. - - * ace/IOStream: Added the ACE_HAS_STRING_CLASS macro to - replace the nasty #ifdefs we had previously. Thanks to - James CE Johnson 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 - - * examples/ASX/Event_Server/Transceiver/transceiver.cpp: removed - specializations of ACE Guards because they're in libGateway. - Thanks to Joey Zhu 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 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 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 - - * 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 - - * 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 &); - void operator= (const ACE_Timer_Wheel_T &); - - 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 - - * ace/OS.i, ace/OS.h: added mktime(). - -Wed Apr 30 14:17:34 1997 David L. Levine - - * ace/config-vxworks*.h: added ACE_LACKS_PWD_FUNCTIONS. Thanks - to Dave Mayerhoefer 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 - for reporting this problem. - -Wed Apr 30 08:42:55 1997 Douglas C. Schmidt - - * 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 for these. - -Wed Apr 30 07:44:36 1997 David L. Levine - - * 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 for - this and the above config file patches. - - * ace/IOStream.{h,cpp}: James CE Johnson 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 - for reporting these. - -Tue Apr 29 20:03:38 1997 - - * 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 - - * 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 - - * ace/config-mvs.h: Added #define ACE_LACKS_LINEBUFFERED_STREAMBUF - for MVS. Thanks to Chuck Gehr 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 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 - for these patches. - -Tue Apr 29 14:27:19 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for - reporting this. - - * ace/Timer_List_T.h: Replaced the use of - ITERATOR with ACE_Timer_Queue_Iterator_T to - work around problems with SGI C++. Thanks to - Torbjorn Lindgren for reporting this. - - * ace/Timer_List_T.cpp: Removed the use of NODE * and replaced it - with ACE_Timer_Node_T in order to work around - bugs with certain C++ compilers (i.e., SGI). Thanks to Torbjorn - Lindgren for reporting this. - - * tests/Conn_Test.cpp: Removed some extraneous template - specializations. Thanks to Nanbor Wang 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 - - * 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 - 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 and - ACE_TSS 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 * 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 - - * ace/Proactor.h: Added Timer_Wheel support. - -Sun Apr 27 18:13:24 1997 Sumedh Mungee - - * 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 - - * 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 - 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 - - * 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 - for reporting this. - -Sat Apr 26 13:41:15 1997 Douglas C. Schmidt - - * ace/config-sco-5.0.0-mit-pthread.h: Added - ACE_LACKS_PTHREAD_CANCEL. Thanks to Arturo Montes - 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 - - * 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 - - * 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 for reporting - this. - -Fri Apr 25 14:58:38 1997 Irfan Pyarali - - * 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 - - * 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 _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 - - * ace/SOCK_Dgram.cpp: Added support for FreeBSD (i.e., BSD 4.4) - features for passing file descriptors between processes. Thanks - to Nanbor Wang 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 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 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 - 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 - 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 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 for - reporting this. - - * apps/JAWS/server/HTTP_Helpers.cpp (instance): Changed the - return type from const char * to const char **. Thanks to - Amos Shapira for reporting this. - - * ace/OS.i (getpwnam_r): Added a missing #else. Thanks to - Amos Shapira 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.cpp (thr_create): Removed errant preprocessor conditional - for determining the scheduling priority. Thanks to Thilo Kielmann - for reporting this. - -Wed Apr 23 09:06:52 1997 Douglas C. Schmidt - - * 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 - for reporting this. - - * apps/JAWS/client/Blob[_Handler].cpp: Added casts for free ((void - *) filename_);. Thanks to Amos Shapira 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 for reporting this. - -Wed Apr 23 03:15:11 1997 James C Hu - - * apps/JAWS/server/README: Updated to add some clarity and more - useful information. - -Tue Apr 22 20:17:00 1997 Douglas C. Schmidt - - * 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.so. (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 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 for reporting this. - -Tue Apr 22 17:46:30 1997 - - * Process.cpp (start): We must pass in 0 instead of "" to - CreateProcess for the current working directory. - -Tue Apr 22 01:38:14 1997 - - * ace/Timer_Queue: Added ACE_Upcall_Strategy as a parameter to the - constructor. will call upcall> if - is not 0. Else it will call - on the . 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 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 method of this - object is called, the '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 - - * ace/config-win32-common.h: Added checks around _AFXDLL before - defining it. Thanks to Bruce Meyer for - pointing this out. - -Mon Apr 21 11:31:16 1997 Chris Cleeland - - * 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 - - * 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 - - * 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 - - * 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 - - * include/makeinclude: Removed the platform_irix6.2_sgiCC.GNU - from the release. Thanks to Torbjorn Lindgren - for these fixes. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Updated the SGI - C++ platform config file. Thanks to Torbjorn Lindgren - for these fixes. - - * ace/Log_Msg.cpp (log_hexdump): The char * arguments should be - const char *'s. Thanks to Matthias Kerkhoff - for reporting this. - -Sat Apr 19 18:52:44 1997 David L. Levine - - * (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 - - * ace/Memory_Pool.h: Fixed a couple of typos in Memory_Pool - classes. Thanks to Neil B. Cohen 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::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 for reporting - this. - -Thu Apr 17 16:33:21 1997 David L. Levine - - * 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 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 - - * ace/Memory_Pool.cpp (acquire): Added code to enable a minimum - bytes field with the Shared_Memory_Pool. Thanks to Fred LaBar - 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 for suggesting this. - - * Added a whole slew of minor fixes for unused variables in - the tests and examples. Thanks to Torbjorn Lindgren - 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 for - reporting this. - -Wed Apr 16 21:34:53 1997 David L. Levine - - * tests/Process_Strategy_Test.cpp: added template specializations. - -Wed Apr 16 15:46:58 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for fixing - these bugs. - -Tue Apr 15 17:09:33 1997 Douglas C. Schmidt - - * 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 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 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 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 - for reporting this. - - * ace/XtReactor.cpp (register_handler_i): Added "[]" to delete - this->ids_ since it is an array. Thanks to Jean-Marc Strauss - 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 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 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 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 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 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 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 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 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 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 - 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 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 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 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 for - reporting this. - -Tue Apr 15 23:16:43 1997 - - * 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 - - * examples/Logger: Added MSVC++ makefile to Acceptor-server - and client. - -Tue Apr 15 21:51:45 1997 James C Hu - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for - reporting both of these. - -Mon Apr 14 00:02:39 1997 Douglas C. Schmidt - - * ace/OS.i (getpgid): Removed the extraneous return in front of - ACE_NOTSUP_RETURN. Thanks to Mike Bernat 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 - - * 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 - 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 - 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 - 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 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 - 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 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 for - pointing this out. - - * netsvcs/lib/Server_Logging_Handler.cpp: Replaced the use of - ACE_TLI* with LOGGING_PEER*. Thanks to Tom Wright - 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 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 - for these fixes. - -Sat Apr 12 20:42:11 1997 David L. Levine - - * 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 - - * 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 - - * tests/Conn_Test.cpp: moved declaration of "result" out of - loop because it's used after the loop. Thanks to - Thilo Kielmann 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 - 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 - - * tests/Conn_Test.cpp: Added several explicit template - instantiations. - -Fri Apr 11 13:49:04 1997 David L. Levine - - * ace/OS.h: VxWorks changes only: added taskHookLib.h. Thanks - to Dave Mayerhoefer 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 - 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 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 - - * 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 - - * 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 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 - for suggesting this. - -Wed Apr 9 21:11:38 1997 Douglas C. Schmidt - - * 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 for reporting this. - - * ace: Added a bunch of changes to improve ACE support on SCO 5.0. - Thanks to Ganesh Pai 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 - 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 , - 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 - for reporting this. - - * ace/OS.i: Fixed a typo in the new condition variable - implementation for Win32. Thanks to Norbert Rapp - for reporting this. - -Wed Apr 09 22:06:23 1997 - - * 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 - - * 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 for - reporting these. - -Wed Apr 9 03:12:24 1997 Irfan Pyarali - - * 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 - for suggesting this. - -Tue Apr 8 22:45:28 1997 Prashant Jain - - * 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 - - * 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 - for reporting this. - -Tue Apr 8 00:04:22 1997 Douglas C. Schmidt - - * ace/Task_T.cpp: Added a hack to work around the new weird HP/UX - aCC template semantics. Thanks to Neil B. Cohen - for reporting this. - - * ace/config-hpux-10.x[-g++].h: Added #define - ACE_HAS_CLOCK_GETTIME. Thanks to Neil B. Cohen - 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 - 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 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 - for reporting this. - - * ace/config-hpux-10.x[-g++].h: Added #define ACE_HAS_STREAMS on - the recommendation of Neil B. Cohen . - -Mon Apr 07 12:08:21 1997 - - * 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 - - * ace/config-win32.h: enabled ACE_HAS_UNICODE by default. - Thanks to Matthias Kerkhoff 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 - 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 - - * 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 - - * 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 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 for this. - - * ace/Process: Added new support for setting the environment - variable and the current working directory. Thanks to Gonzalo - A. Diethelm for this enhancement. - - * ace/OS.h: "sys/stat.h" was being included more than once, so I - fixed this. Thanks to Gonzalo A. Diethelm - 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 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 - 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 for - pointing out this subtlety. - -Sun Apr 06 20:01:57 1997 David L. Levine - - * 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 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 - - * java/: Changed package name from ACE to JACE across all directories. - -Sat Apr 5 13:12:37 1997 Douglas C. Schmidt - - * 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 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 - 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 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 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 - 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 - for figuring this out. - -Sat Apr 5 19:11:46 1997 Tim H. Harrison - - * 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 - - * 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 - - * 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 - 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 - - * ace/config-mvs.h: removed ACE_HAS_IP_MULTICAST because MVS - doesn't define ip_mreq. Thanks to Chuck Gehr - for reporting this. - - * ace/OS.i (mutex_init): fixed the extra braces once and for all. - Thanks to Chuck Gehr 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 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 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) - to ACE_OPERATOR{G,P}_SET macros. Thanks to Chuck Gehr - for providing this fix. - -Thu Apr 3 22:17:53 1997 Irfan Pyarali - - * ace/Registry.cpp: Changed STRING_SEPARATOR from Istring to - LPCTSTR. Thanks to Matthias Kerkhoff for - suggesting this. - -Thu Apr 3 21:39:45 1997 Chris Cleeland - - * 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 - - * ace/OS.h,OS.cpp,Sched_Params.cpp: added /**/ to some #include - directives. Thanks to Matthias Kerkhoff - 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 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 for reporting - this. - - * include/makeinclude/platform_sco5.0.0-nothread.GNU: - updated CCFLAGS and added LD=$(CXX). Thanks to - Ganesh Pai for these fixes. - - * ace/OS.h: added #include of for SCO only. - Thanks to Ganesh Pai for this fix. - - * ace/config-sco-5.0.0*.h: added #define ACE_HAS_IP_MULTICAST. - Thanks to Ganesh Pai 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 - - * 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 - - * 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 - - * 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 - - * 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 - 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 - - * 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 - for this fix. - -Tue Apr 01 09:55:07 1997 David L. Levine - - * 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 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 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 for - reporting this. - -Mon Mar 31 18:18:35 1997 Carlos O'Ryan - - * 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 - - * ace/Service_Config.cpp (process_directives): Return -1 if - ace_yyerrno > 0. Thanks to Alan Cabrera - for reporting this. - -Mon Mar 31 17:38:08 1997 Chris Cleeland - - * 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 - - * 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 - - * 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 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 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 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 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 - - * ace/OS.h: moved #defin of RTLD_LAZY after #include of dlfcn.h. - Thanks to Chris Lahey 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 - - * 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 - - * 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 - 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 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 - - * 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 for pointing this - out, and to James CE Johnson 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 - - * 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 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 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 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 - for reporting this. - -Thu Mar 27 15:54:10 1997 Chris Cleeland - - * 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 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 - 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 for these - changes. Also added ACE_MAX and ACE_MIN macros. - -Thu Mar 27 11:25:38 1997 David L. Levine - - * netsvcs/servers/Makefile: removed SHOBJ so that main.so is not - built, because it wasn't needed. Thanks to Sandro Doro - 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 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 - - * 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 - - * 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 - for these changes. - - * ace/OS.h: Moved the ACE_LACKS_UTSNAME_T block into the right - part of the code. Thanks to Jonathan Biggar 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 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 for this suggestion. - -Wed Mar 26 08:47:24 1997 David L. Levine - - * 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 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 - - * 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 for pointing - this out. - -Tue Mar 25 22:54:49 1997 Irfan Pyarali - - * ace/OS.i: Added UNICODE support for ACE_OS::chdir(). Thanks to - Ivan Murphy for the code. - -Tue Mar 25 21:26:10 1997 David L. Levine - - * 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 - and Gonzalo Diethelm - 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 - 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 - - * 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 - - * 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 - . 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 - - * 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 - 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 . - - Thanks to Paul Han 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 - for reporting this. - - * netsvcs/lib/Server_Logging_Handler.cpp: Added a check for - platforms that lack threads. Thanks to Hakan Kallberg - 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 - 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 for reporting this. - - * netsvcs/lib/Makefile: Reincluded the LIB target so that we'll - build a static library. Thanks to Scott Halstead - 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 for this. - - * ace/OS.cpp (readv): Added several more changes for the readv() - emulation. Thanks to Alan Cabrera - and Adam Porter for these fixes. - -Mon Mar 24 14:22:17 1997 David L. Levine - - * 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 - 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 - - * 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 - - * ace/High_Res_Timer.h: Removed 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 - - * 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 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 - 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 - 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 - 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 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 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 - - * 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 - - * 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 - - * 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 - 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 - - * 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 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 - 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 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 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 - for pointing this out. - -Thu Mar 20 22:38:27 1997 David L. Levine - - * 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 - 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 for figuring these out. - -Thu Mar 20 12:25:30 1997 - - * 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 - - * ace: Added zillions of minor changes so that ACE will compile on - the new aCC compiler for HPUX. Thanks to Gonzalo A. Diethelm - and Carlos O'Ryan 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 for - reporting this. - - * ace: Added a slew of changes to support CHORUS. Thanks to - Wei Chiang for these changes. - - * ace/config-sunos4.*.h: Added #define ACE_HAS_UNION_WAIT based - on the recommendation of Kumar Neelakantan - . - - * 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 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 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 - for reporting this. - -Wed Mar 19 16:06:32 1997 David L. Levine - - * 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 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 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 for pointing - this out. - - * ace/OS.i (thr_setcanceltype): added ACE_UNUSED_ARGS for STHREADS - case. Thanks to Chuck Gehr for - providing this fix. - -Tue Mar 18 21:53:03 1997 Douglas C. Schmidt - - * 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 for this feature. - -Tue Mar 18 13:20:59 1997 Irfan Pyarali - - * 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 - - * ace/Svc_Conf_y.cpp,Makefile: replaced "y.tab.c" string with - "Svc_Conf_y.cpp" to ease debugging. Thanks to Luca Priorelli - for suggesting this. - - * ace/IOStream.cpp (close): replaced call to - ACE_SOCK_Stream::close () with one to generic STREAM::close (). - Thanks to Kumar Neelakantan 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 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 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 - 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 - - * 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 - - * 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 - . Thanks for the contribution. - -Mon Mar 17 12:59:56 1997 David L. Levine - - * 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 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 - - * 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 - - * 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 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 for reporting - this. - -Thu Mar 13 18:21:15 1997 Irfan Pyarali - - * ace/ReactorEx.h: Change protection of methods/variables of - ReactorEx from private to protected. Thanks to Matthias Kerkhoff - for suggesting this. - -Thu Mar 13 16:31:54 1997 David L. Levine - - * ace/OS.i (thr_getprio): Added missing ACE_NOTSUP_RETURN - for the case of pthreads && !defined (ACE_LACKS_SETSCHED). - Thanks to Chuck Gehr for - reporting this. - -Thu Mar 13 00:12:15 1997 Irfan Pyarali - - * 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 - - * 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 - - * ace/config-linux-lxpthreads.h: Added ACE_HAS_IP_MULTICAST. - -Wed Mar 12 16:07:07 1997 David L. Levine - - * 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 - - * ace/OS.i (open): Improved support for passing flags through to - CreateFile (). - -Tue Mar 11 14:30:12 1997 David L. Levine - - * ace/config-vxworks-ghs-1.8.h: added ACE_LACKS_SYS_NERR. - Thanks to Dave Mayerhoefer for - reporting this. - - * ace/OS.{i,cpp} (uname, hostname): added VxWorks support. - Thanks to Dave Mayerhoefer 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 - 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 - for pointing this out. - - * ace/Reactor.cpp (unbind): cast "index" to int to avoid - signed/unsigned comparison. Thanks to Matthias Kerkhoff - 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 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 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 - 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 - - * 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 - 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 for - reporting this. - -Sun Mar 10 13:06:04 1997 Douglas C. Schmidt - - * 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 - for reporting this. - -Sun Mar 9 18:24:37 1997 Prashant Jain - - * 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 - - * 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 for reporting this. - -Sun Mar 9 13:06:04 1997 Douglas C. Schmidt - - * 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 - 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 - for reporting this. - -Sat Mar 8 12:37:44 1997 Douglas C. Schmidt - - * 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 - for helping track this down. - - * Added support for SCO 5.0. Thanks to Auturo - for these patches. - -Thu Mar 06 13:24:04 1997 David L. Levine - - * 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 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 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 - - * 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 for reporting - this. - -Wed Mar 05 14:47:14 1997 David L. Levine - - * 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 - 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 - - * 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 - - * 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 for reporting - this. - -Tue Mar 4 16:37:26 1997 Douglas C. Schmidt - - * 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 - for suggesting this. - -Sun Mar 02 19:58:00 1997 David L. Levine - - * 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 - - * 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 - - * 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 - 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 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 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 - - * ace/OS.h: fixed definition of ACE_TIMER_SKEW. Thanks - to Chuck Gehr for pointing this out. - -Thu Feb 27 21:36:28 1997 David L. Levine - - * 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 - for pointing this out. - -Thu Feb 27 17:06:12 1997 - - * 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 - - * ACE-install.sh: Added some fixes for the ACE-install.sh script. - Thanks to Eugene R. Somdahl 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 for this - suggestion. - -Tue Feb 25 21:19:57 1997 David L. Levine - - * 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 - - * 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 - - * 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" for this. - -Tue Feb 25 01:33:06 1997 Douglas C. Schmidt - - * ace/OS.h: Moved 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 for reporting this. - -Tue Feb 25 16:20:29 1997 Irfan Pyarali - - * 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 - - * 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 for - reporting this. - - * ace/Synch.cpp (acquire): Simplified the recursive mutex logic - for acquire(). Thanks to Arthur J. Lewis" - 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 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 for - reporting this problem. - -Mon Feb 24 20:28:10 1997 David L. Levine - - * ace/OS.h: use signed __int64 for ACE_hrtime_t because VC++ - won't convert unsigned __int64 to double. Thanks to Irfan - 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 - 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 - - * 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 - - * 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 for pointing this - out! - - * ace/OS.i (thr_cancel): Corrected erroneous macro argument. - Thanks to James CE Johnson for pointing - this out! - -Sat Feb 22 17:00:59 1997 - - * ace/OS.i (gethrtime): Added support for intel's RDTSC - instruction for pentium architectures. - -Sat Feb 22 10:57:47 1997 Douglas C. Schmidt - - * 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 - - * 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 for reporting this. - -Fri Feb 21 11:01:22 1997 David L. Levine - - * ace/Thread_Priority.cpp: fixed return type of - convert_to_os_priority () for Linux. Thanks to - James CE Johnson 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 - - * 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 - - * 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 - - * 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 - for reporting this. - -Wed Feb 19 00:39:50 1997 Douglas C. Schmidt - - * 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 for suggesting this. - - * include/makeinclude: Removed the default symlink for - platform_macros.GNU since it is "Solaris-biased" ;-). Thanks to - Amos Shapira for reporting this. - -Wed Feb 19 14:41:18 1997 Tim H. Harrison - - * 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 - - * include/makeinclude: Added minor enhancements to rules.local.GNU - and wrapper_macros.GNU so that it works with MVS. Thanks to - Chuck Gehr for this. - - * include/makeinclude: Added a new platform_mvs.GNU file that - supports builds on MVS! Thanks to Chuck Gehr - 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 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 - - * ace/ReactorEx: - - (a) Made wakeup_all_threads() public. Thanks to Hamutal Yanay - 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 - - * 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 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 - - * ace/ace.mdp, ace/mak: Modified release configuration to build - acer.dll. - -Tue Feb 18 11:43:04 1997 David L. Levine - - * 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 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 - - * 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 - - * 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 - - * 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 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 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 for - suggesting this. - - * include/makeinclude/platform_irix6.2_sgic++.GNU: Turned on all - the warnings for the SGI C++ compiler. Thanks to Gonzalo - Diethelm for suggesting this. - -Mon Feb 17 20:59:47 1997 David L. Levine - - * 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 on VxWorks. - - * ace/Pipe.cpp (open): enabled TCP_NODELAY on VxWorks now that - OS.h #includes . - - * 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 - - * 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 - - * 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 - - * 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 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 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 - - * 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 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 - 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 for reporting this. - -Fri Feb 14 00:40:14 1997 Douglas C. Schmidt - - * ace/TTY_IO.cpp (control): Moved the drop out timer value from - the ACE struct to the WinNT struct. Thanks to Brad Flood - for this fix. - -Thu Feb 13 21:24:17 1997 - - * 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 - - * 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 - are activated. - -Wed Feb 12 22:58:15 1997 Douglas C. Schmidt - - * 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 - - * 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 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 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 - - * 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 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 for this. - - * ace/XtReactor: Fixed a bunch of minor bugs that crept into the - ACE_XtReactor. Thanks to Fred LaBar - 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 for reporting this. - -Tue Feb 11 11:26:03 1997 David L. Levine - - * 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 - - * 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 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 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 - for providing this. - -Sun Feb 9 11:56:37 1997 Douglas C. Schmidt - - * 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 - for finding this. - -Sun Feb 09 21:44:34 1997 David L. Levine - - * 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 - 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, 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 . 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 - - * 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 - - * 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 - 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 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 for - pointing this out. - -Fri Feb 7 17:29:40 1997 Chris Cleeland - - * ace/OS.cpp (set_sched_params): added support for POSIX - threads. Thanks to Thilo Kielmann - 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 - - * ace/{OS.cpp,Thread_Priority.cpp}: added ACE_Thread_Priority - support for Digital Unix. Thanks to Thilo Kielmann - 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 for reporting this on Linux - and Chris Lahey 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 - - * 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 - - * 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 - for reporting this! - -Thu Feb 06 09:48:43 1997 David L. Levine - - * 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 - - * ace/config-linux*.h: added typedef of timespec_t. - -Wed Feb 5 01:45:03 1997 Douglas C. Schmidt - - * 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 - 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 - 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 - 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 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 - - * 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 - - * 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 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 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 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 for this. - - * examples/Misc/test_iostreams.cpp: Added a test that illustrates - how the new ACE_iostreams mechanism works. Thanks to James CE - Johnson 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 for - this. - - * ace/config-dgux-4.11-epc.h: Added a new config file for DG/UX. - Thanks to Michael Maxie for this. - -Tue Feb 04 18:26:01 1997 - - * 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 > 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 - - * ace/config-aix-*.h: Added a (char *) cast to - ACE_DEFAULT_BASE_ADDR. Thanks to John Cosby - 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 - for reporting this. - -Tue Feb 4 03:02:52 1997 Irfan Pyarali - - * 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 - - * ace/OS.h: define ACE_SCOPE_PROCESS and ACE_SCOPE_THREAD - even if ACE_HAS_THREADS is not defined. Thanks to - Michael Maxie 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 - - * 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 - - * 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 - - * include/makeinclude/platform_aix4.2.GNU (LD): Removed the -qnoro - flag since it is no longer needed. Thanks to Rob Jordan - for reporting this. - -Sat Feb 1 03:25:21 1997 Irfan Pyarali - - * 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 - - * 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 - - * ace/config-aix-*.h: Made the default value for - ACE_DEFAULT_BASE_ADDR 0x80000000 to work around restrictions - with AIX. Thanks to Rob Jordan 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 - - * 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 - for this. - - * include/makeinclude/platform_aix4.2.GNU: Added support for the - new AIX4.2 platform. Thanks to Rob Jordan - 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 for suggesting this. - -Thu Jan 30 16:01:37 1997 David L. Levine - - * 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 - 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 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/" 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 - - * ace/Thread_Priority.cpp (convert_to_os_priority): changed - switch (priority_class) to switch (priority_class_). - Thanks to Chris Lahey for pointing this out. - Also, return -1 on other than Solaris, Win32, and VxWorks. - -Wed Jan 29 22:05:01 1997 Douglas C. Schmidt - - * 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 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 - - * 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 - - * 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 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 for reporting - this. - -Tue Jan 28 23:32:58 1997 Douglas C. Schmidt - - * 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for this. - -Sun Jan 26 13:39:13 1997 Douglas C. Schmidt - - * 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 for noticing this. - -Sat Jan 25 20:30:23 1997 David L. Levine - - * 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 - - * 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 for reporting this. - -Sat Jan 25 11:34:56 1997 Irfan Pyarali - - * 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 - - * examples/Connection/misc/Connection_Handler.cpp: added - specialization of ACE_Svc_Handler - so that subproject will build with g++ without optimization. - - * apps/Gateway/Gateway/Proxy_Handler.cpp: added specializations - of ACE_Svc_Handler and - ACE_Svc_Handler - 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 - - * 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 - - * 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 - 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 - - * 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" - 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 - - * 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 - - * 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 - for reporting this. - -Mon Jan 20 13:29:28 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - 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 - 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 for testing this out. - -Fri Jan 17 16:33:25 1997 David L. Levine - - * 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 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 - - * include/makeinclude: Added support for shared object files - on Linux. Thanks to Marius Kjeldahl for his help with this. - - * ace: Merged in the IRIX support, mainly the missing netdb reentrant - functions. Thanks to Gonzalo Diethelm - and Carlos O'Ryan 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 - for this fix. - -Thu Jan 16 15:51:16 1997 David L. Levine - - * 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 - - * 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 - - * 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 - 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 - 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 - 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 - - * 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 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 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 - 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 - - * ace/OS.h: Replace "Linux" preprocessor symbol with "linux". - -Mon Jan 13 17:57:50 1997 Douglas C. Schmidt - - * ace/Synch: Added lock() accessor methods to both - ACE_Process_Semaphore and ACE_Process_Mutex. Thanks to Hamutal - Yanay 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 - for suggesting this. - -Mon Jan 13 22:24:09 1997 David L. Levine - - * 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 - - * 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 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 for - reporting this fix. - -Sun Jan 12 18:20:49 1997 David L. Levine - - * 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 - - * 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, ¶m ) - - and then does - - prio = param.sched_priority. - - instead of - - param.sched_priority = prio; - - This is now fixed. Thanks to John Bossom - 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 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 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 - - * 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 - - * 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 - - * 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 for tracking down this - problem and testing the fix. - -Tue Jan 7 13:03:25 1997 Douglas C. Schmidt - - * 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 - 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 for suggesting this. - - * ace/XtReactor: Updated the XtReactor so that it uses the next - internal Reactor implementation. Thanks to Mark Rabotnikov - 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 - 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 - - * 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 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 - 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 - - * 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 >; - 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 - - * 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 - - * 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 - - * 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 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 - 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 - - * ace/Message_Block: Added a new static release() method that - behaves like the non-static method release(), except that it - checks if 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/ChangeLog-97b b/ChangeLog-97b deleted file mode 100644 index cb3e925925f..00000000000 --- a/ChangeLog-97b +++ /dev/null @@ -1,9182 +0,0 @@ -Tue Nov 25 16:18:49 1997 David L. Levine - - * ACE version 4.4, released Tue Nov 25 16:18:49 1997. - -Tue Nov 25 16:03:09 1997 David L. Levine - - * Makefile: fixed Version.h generation to work properly when - $$beta is undefined. - -Mon Nov 24 10:33:34 1997 Douglas C. Schmidt - - * ACE version 4.3.56, released Mon Nov 24 10:33:34 1997. - -Sun Nov 23 13:32:02 1997 David L. Levine - - * ace/IOStream.h: removed DIGITAL_UNIX from #include decision, - so now it just depends on DEC_CXX and its version. Thanks to - Dani Flexer 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 - - * 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 reactor" - should come before "auto_ptr 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 - - * ace/Message_Queue.cpp: - Fixed some formating problems in the ACE_Message_Queue::dump - method, thanks to Arturo Montes for - finding this one. - -Sat Nov 22 14:38:22 1997 Steve Huston - - * 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 - for finding this. - -Sat Nov 22 05:44:10 1997 Nanbor Wang - - * 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 - - * 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 - - * ace/IPC_SAP.cpp: - Added a couple of ACE_NOTREACHED protections. Thanks to Brian - Mendel for reporting this. - -Fri Nov 21 17:12:48 1997 - - * 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 - - * ACE version 4.3.55, released Fri Nov 21 13:22:25 1997. - -Fri Nov 21 12:18:28 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 for reporting - this. - - * ace: Added a new version of config-osf1-3.2.h. Thanks to Dani - Flexer for updating this. - -Thu Nov 20 18:22:24 1997 Steve Huston - - * 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 - 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 - - * 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 - - * ace/Timer_{Heap,List}_T.{h,cpp}: added - ACE_Timer_{Heap,List}::get_first () accessors. Thanks to - Stephen Henry for this suggestion. - -Thu Nov 20 11:27:44 1997 Douglas C. Schmidt - - * ACE version 4.3.54, released Thu Nov 20 11:27:44 1997. - -Thu Nov 20 10:45:08 1997 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.53, released Wed Nov 19 22:11:20 1997. - -Wed Nov 19 15:55:52 1997 Sumedh Mungee - - * 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 - - * 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 - - * 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 for reporting this. - - * ace/OS: Fixed strpbrk() to handle the const char * and char * - cases of ANSI C++. Thanks to Valik Solorzano Barboza - 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 - for reporting this. - -Wed Nov 19 13:43:33 1997 Darrell Brunsch - - * 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 - - * 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 - - * ACE version 4.3.52, released Wed Nov 19 09:20:05 1997. - -Wed Nov 19 07:54:44 1997 Douglas C. Schmidt - - * 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 for reporting this. - - * ace/Log_Record.cpp (print): Added a work around for a really - lame bug with BORLANDC. Thanks to Valik Solorzano Barboza - for reporting this. - -Wed Nov 19 04:22:38 1997 Douglas C. Schmidt - - * ACE version 4.3.51, released Wed Nov 19 04:22:38 1997. - -Wed Nov 19 04:02:09 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 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 - 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 - for reporting this. - - * ace/OS.i (tempnam): Fixed a typo -- WIN32 should be ACE_WIN32. - Thanks to Valik Solorzano Barboza for - reporting this. - - * ace/OS.h: Reordered the ACE_SEH_* macros so they work correctly - with BORLANDC. Thanks to Valik Solorzano Barboza - 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 for - reporting this. - - * ace/config-win32-common.h: Added - ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION for BORLANDC. Thanks to - Valik Solorzano Barboza for reporting this. - - * ace/Filecache.cpp: Fixed a bug with BORLANDC. Thanks to Valik - Solorzano Barboza 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 - for reporting this. - -Tue Nov 18 16:27:32 1997 - - * 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 - - * 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 - - * ace/Timer_Queue_Adapters.cpp: Reordered include files. Thanks - to Torbjorn Lindgren for noticing the problem. - -Tue Nov 18 11:40:18 1997 Steve Huston - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.50, released Tue Nov 18 00:11:26 1997. - -Mon Nov 17 22:35:22 1997 Douglas C. Schmidt - - * examples/Shared_Malloc/test_malloc.cpp: Added some additional - calls to Malloc::instance ()->remove () to cleanup all the - semaphore locks. Thanks to Tom Arbuckle - 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 - 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 - - * All eight different configurations of ACE passed all tests on - our Alpha/NT. - -Mon Nov 17 15:37:52 1997 David L. Levine - - * 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 - - * ACE version 4.3.49, released Mon Nov 17 02:09:57 1997. - -Mon Nov 17 02:03:21 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 for reporting this. - - * ace/OS: Cast away the constness of the parameters to _tempnam() - for Borland C++. Thanks to Valik Solrzano Barboza - for this. - - * ace/config-unixware-2.1.2-g++.h: Changed - ACE_HAS_OSF1_GETTIMEOFDAY to ACE_HAS_SVR4_GETTIMEOFDAY. Thanks - to John Connett 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 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 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 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 for this. - - * ace: Added "ace.idl", which is a config file for Borland C++ - 5.x. Thanks to Valik Solrzano Barboza for - this. - - * include/makeinclude/platform_linux_kcc.GNU (SOFLAGS): Improved - this file a bit to work better with NULL pointers. Thanks to - Ben Eng 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 for reporting this. - - * ace/config-linux-kcc.h: Added some fixes for the KCC compiler. - Thanks to Ben Eng for reporting this. - - * ace/IOStream: Added fixes for the standard C++ library. Thanks - to Ben Eng for reporting this. - -Sat Nov 15 17:31:58 1997 Douglas C. Schmidt - - * Ran "make depend" on all of ACE. - -Sat Nov 15 15:55:52 1997 Steve Huston - - * 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 - - * ACE version 4.3.48, released Sat Nov 15 01:31:58 1997. - -Fri Nov 14 23:36:12 1997 Chris Cleeland - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.i (strsplit_r): Added fixes so that this properly returns - the last piece. Thanks to Scott Herscher 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 - . 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 - - * ACE version 4.3.47, released Fri Nov 14 01:10:33 1997. - -Fri Nov 14 00:14:21 1997 David L. Levine - - * ace/OS.* (gethostbyaddr_r,gethostbyname_r): added VxWorks - support. - -Thu Nov 13 20:29:18 1997 Douglas C. Schmidt - - * ACE version 4.3.46, released Thu Nov 13 20:29:18 1997. - -Thu Nov 13 19:11:36 1997 Douglas C. Schmidt - - * 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 - for reporting this. - -Thu Nov 13 19:25:50 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * ace/Thread_Manager.cpp: Removed all ! defined - (ACE_HAS_FSU_PTHREAD). Thanks to ARTURO MONTES - for reporting this. - - * ace/config-gcc-2.7.2.h: Added ACE_HAS_TEMPLATE_SPECIALIZATION. - Thanks to ARTURO MONTES for reporting - this. - - * ace/config-fsu-pthread.h: added ACE_LACKS_THREAD_PROCESS_SCOPING. - Thanks to ARTURO MONTES 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 - - * ace/Thread_Manager.cpp: added ACE_TSS_Singleton 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - - * ACE version 4.3.45, released Tue Nov 11 23:44:17 1997. - -Tue Nov 11 21:26:36 1997 Douglas C. Schmidt - - * 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 - - * 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 - . - -Tue Nov 11 08:09:16 1997 David L. Levine - - * 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 - - * 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 - - * examples/Reactor/Multicast/server.cpp (handle_timeout): Fixed a - typo. Thanks to Sandro Doro for - reporting this. - -Tue Nov 11 04:20:09 1997 Douglas C. Schmidt - - * ACE version 4.3.44, released Tue Nov 11 04:20:09 1997. - -Tue Nov 11 01:44:39 1997 - - * 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 - - * ACE version 4.3.43, released Tue Nov 11 01:28:50 1997. - -Mon Nov 10 21:30:04 1997 Aniruddha Gokhale - - * 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 - - * 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 - - * ace/Singleton.h (ACE_TSS_Singleton): Changed ACE_TSS 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 - - * 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 - - * 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 - - * ace/OS.h (ACE_WRITE_GUARD): Added macros for ACE_WRITE_GUARD and - ACE_READ_GUARD. Thanks to Brian Raven - 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 - - * ace/INET_Addr.cpp: updated gethostbyname/addr support for - Chorus. Thanks to Wei Chiang 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 - - * ACE version 4.3.42, released Sun Nov 09 23:29:43 1997. - -Sun Nov 09 22:18:30 1997 - - * 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 for suggesting this. - -Sun Nov 9 21:34:16 1997 Douglas C. Schmidt - - * 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 - - * 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 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 - - * ace/Thread_manager.cpp (wait): removed unused local, - threads_waited_on. - -Sat Nov 08 23:20:50 1997 Douglas C. Schmidt - - * ACE version 4.3.41, released Sat Nov 08 23:20:50 1997. - -Sat Nov 8 15:46:30 1997 Douglas C. Schmidt - - * 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 for reporting these. - - * ace/Thread_Manager.h: Both Irix5 and VxWorks have problems with - local typedefs with GCC. Thanks to Laura Paterno - 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 - - * 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 - - * ace/Thread_Manager.cpp: Added a missing '>' for one of the - template specializations. Thanks to Torbjorn Lindgren - 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 for - reporting this. - -Fri Nov 07 15:14:51 1997 David L. Levine - - * 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 - - * ACE version 4.3.40, released Fri Nov 07 10:05:12 1997. - -Fri Nov 7 09:58:09 1997 Douglas C. Schmidt - - * 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 for - reporting this. - - * ace/{FILE,SPIPE}_Addr.cpp (set): Added a return value. Thanks - to Marios Zikos for reporting this. - -Fri Nov 07 02:45:55 1997 Douglas C. Schmidt - - * ACE version 4.3.39, released Fri Nov 07 02:45:55 1997. - -Fri Nov 7 01:06:08 1997 Douglas C. Schmidt - - * ace/Message_Queue: Added a new method called deactivated(), - which returns true if the queue has been deactivated. Thanks to - Wei Chiang for reporting this. - - * ace/{config-chorus.h,OS.cpp}: Added a new macro called - ACE_CHORUS_DEFAULT_MIN_STACK_SIZE. Thanks to Wei Chiang - 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 - - * 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 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 for - reporting this. - - * ace/Object_Manager: Added support for - get_singleton_lock(ACE_Mutex *). Thanks to Arturo Montes - for reporting this. - - * ace/Connector.cpp: If connect_n() fails make sure to return -1. - Thanks to Stephen Coy for pointing out the - problem. - - * ace/config-sco-5.0.0.h: Removed the ACE_LACKS_RLIMIT flag. - Thanks to Arturo Montes for reporting - this. - - * tests: Changed all uses of "localhost" to - ACE_DEFAULT_SERVER_HOST. This solves some problems with MVS. - Thanks to Chuck Gehr for reporting - this. - - * examples/Timer_Queue: Changed COMMAND to CMD so it won't - conflict with the HP/YUX compiler. Thanks to Sandro Doro - for reporting this. - -Thu Nov 06 22:13:01 1997 - - * 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 - 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 for pointing the - problems. - -Thu Nov 06 18:30:42 1997 Steve Huston - - * 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 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 - - * 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 - - * ACE version 4.3.38, released Thu Nov 06 00:08:01 1997. - -Wed Nov 5 21:32:36 1997 Douglas C. Schmidt - - * 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 for reporting this. - - * Added new support for SCO UNIX with no threads. Thanks to - Arturo Montes for reporting this. - -Wed Nov 05 20:31:36 1997 - - * 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 - - * 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 - - * ace/Thread_Manager.{h,cpp}: Changed the data type of - terminated_thr_queue_ back to - ACE_Unbounded_Queue. - -Wed Nov 05 14:16:27 1997 Steve Huston - - * 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 for reporting this. - -Wed Nov 05 13:01:49 1997 David L. Levine - - * 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 - - * ACE version 4.3.37, released Wed Nov 05 01:06:53 1997. - -Tue Nov 04 23:11:41 1997 - - * 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 because that - would clobber the integrity of the double-linked list. Changed - the data type of from - ACE_Unbounded_Queue to - ACE_Unbounded_Queue to reduce the codes - generated. - - * ace/Thread_Manager.cpp: Reordered several thread operations so they - won't remove thread descriptor directly while traversing the - . Removed #ifdef 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 and 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 - - * 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 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 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 for reporting this. - -Tue Nov 4 18:13:52 1997 Sergio Flores - - * 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 for - pointing this out. - -Tue Nov 4 11:14:35 1997 Nanbor Wang - - * ace/Containers.cpp: Fixed some stylistic ambiguities. - -Tue Nov 04 10:12:21 1997 David L. Levine - - * 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 - 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 - - * ACE version 4.3.36, released Tue Nov 04 04:13:23 1997. - -Tue Nov 04 03:50:57 1997 - - * 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 - - * ace/Synch_T.cpp (dump): change the field lock_ to mutex_. - -Mon Nov 3 22:37:58 1997 Nanbor Wang - - * 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 for pointing out the problem. - -Mon Nov 03 18:32:42 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 - 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 - 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 - - * ACE version 4.3.35, released Sun Nov 02 18:09:14 1997. - -Sun Nov 2 15:31:45 1997 Douglas C. Schmidt - - * 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 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 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 for - reporting this. - - * examples/System_V_IPC/SV_Semaphores/Semaphores_1.cpp: Removed - unused constant SHMSZ. Thanks to Ben Eng 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 for reporting this. - - * performance-tests/Misc/preempt.cpp (main): Cleaned up this test - so it compiles on non-threaded platforms. Thanks to Ben Eng - 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 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 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 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 for reporting this. - -Sat Nov 1 11:55:05 1997 Douglas C. Schmidt - - * 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 for reporting this. - - * include/makeinclude/platform_chorus.GNU: Tidied up - platform_chorus.GNU a bit. Thanks to Wei Chiang - for this. - -Fri Oct 31 14:35:37 1997 David L. Levine - - * ace/OS.cpp (thr_create): on Chorus, double the stack size to - avoid bad problems. Thanks to Wei Chang - for diagnosting this. - - * ace/Hash_Map_Manager.cpp (unbind_i): set the int_id - reference argument instead of ignoring it. Thanks to - Wei Chang 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 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 - - * The following five changes were suggested by Stephen Coy - . 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 - - * 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 - - * ACE version 4.3.34, released Thu Oct 30 19:54:50 1997. - -Thu Oct 30 17:49:56 1997 Douglas C. Schmidt - - * 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 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 - 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 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 - - * ace/OS.h: Stray semi-colon removed from ACE_CLASS_IS_NAMESPACE - macro. - -Thu Oct 30 17:04:52 1997 - - * 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 - - * 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 - - * 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 for reporting this. - - * ace/Synch.cpp: removed duplicate - ACE_Write_Guard instantiation. Thanks to - Torbjorn Lindgren for reporting this. - - * tests/Conn_Test.cpp: fixed template instantiation pragmas. - Thanks to Torbjorn Lindgren , again. - - * tests/SPIPE_Test.cpp: replaced ACE_UNUSED_ARG of client and server - with conditional compilation of those functions. Thanks to - Torbjorn Lindgren 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 - 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 - - * 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 - - * 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 - 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 - - * ACE version 4.3.33, released Thu Oct 30 02:56:25 1997. - -Thu Oct 30 01:03:21 1997 Douglas C. Schmidt - - * 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 for reporting this. - -Wed Oct 29 22:55:15 1997 Nanbor Wang - - * 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 - - * 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 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 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 - for reporting this. - - * ace: OS.h,config-lynxos.h: Added a new ACE_LACKS_GETOPT_PROTO - for LynxOS. Thanks to Kirill.Rybaltchenko - 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 for reporting - this. - -Wed Oct 29 22:17:03 1997 Nanbor Wang - - * 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 for - providing the fix (patiently.) - -Wed Oct 29 20:30:55 1997 James C Hu - - * 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 - - * ace/OS.{h,i}: Added strcasecmp functionality for NT - -Wed Oct 29 15:56:01 1997 David L. Levine - - * 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 for providing the fix. - -Wed Oct 29 10:32:16 1997 David L. Levine - - * 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 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 - - * ACE version 4.3.32, released Wed Oct 29 08:40:38 1997. - -Wed Oct 29 07:39:38 1997 Douglas C. Schmidt - - * ace/Synch.cpp: Added an explicit template instantiations for - ACE_Guard. - - * 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 - - * ACE version 4.3.31, released Wed Oct 29 02:10:37 1997. - -Wed Oct 29 01:25:54 1997 Douglas C. Schmidt - - * 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 - - * 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 . 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 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 - - * ace/ace_{dll,lib}.dsp: Moved Acceptor.cpp from Source file - folders to Template file folders. Thanks to Satheesh Kumar - for pointing this out. - -Tue Oct 28 05:44:56 1997 David L. Levine - - * 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 - 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.30, released Mon Oct 27 20:33:07 1997. - -Mon Oct 27 18:03:06 1997 Nanbor Wang - - * 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 - - * 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 - for reporting this. - -Mon Oct 27 14:26:10 1997 - - * 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 for - pointing out this bug. - - * ace/OS.i (ACE_FAIL_RETURN): Added mapping from - ERROR_PATH_NOT_FOUND to ENOENT. Thanks to David Brackman - for suggesting this. - -Mon Oct 27 11:36:39 1997 David L. Levine - - * 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 for - pointing this out. - - * ACE-INSTALL.html: added info on bin/create_ace_build. - -Mon Oct 27 11:11:33 1997 Nanbor Wang - - * 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 - - * include/makeinclude/rules.local.GNU (show_uninit): Added a - missing semi-colon for one of the install rules. Thanks to - Manojkumar Acharya 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 for - reporting this. - -Mon Oct 27 00:20:13 1997 Nanbor Wang - - * ace/config-hpux-10.x-hpc++.h: Added directive - ACE_HAS_TEMPLATE_SPECIALIZATION. Thanks to Stephen Coy - for reporting this. - -Sun Oct 26 22:17:57 1997 Douglas C. Schmidt - - * ACE version 4.3.29, released Sun Oct 26 22:17:57 1997. - -Sun Oct 26 20:03:57 1997 Douglas C. Schmidt - - * 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 - - * include/makeinclude/platform_linux_lxpthread.GNU (CFLAGS): Added - -pipe to the compile options. - -Sun Oct 26 11:04:21 1997 David L. Levine - - * 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 for reporting this. - -Sun Oct 26 10:01:01 1997 Nanbor Wang - - * 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 - - * ACE version 4.3.28, released Sun Oct 26 01:00:07 1997. - -Sun Oct 26 00:50:00 1997 Douglas C. Schmidt - - * 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 - for reporting this. - -Sun Oct 26 00:06:17 1997 - - * 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 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 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.27, released Sat Oct 25 01:02:34 1997. - -Fri Oct 24 17:39:08 1997 Douglas C. Schmidt - - * 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 - 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 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 - for reporting this. - -Fri Oct 24 17:11:14 1997 Sergio Flores - - * 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 flag to 1, active mode. We assume - we start in active mode. Added an internal variable - 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 with the - current running thread ID, using ACE_Thread::self (). - - * Timer_Queue_Adapters.h (ACE_Thread_Timer_Queue_Adapter): Added - default to be - ACE_Thread_Manager::instance() - - * Timer_Queue_Adapters.h (activate): Override the default - 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 - - * 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 - - * 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 - - * ACE version 4.3.26, released Fri Oct 24 01:53:58 1997. - -Thu Oct 23 19:05:08 1997 Douglas C. Schmidt - - * 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 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 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 - 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 for reporting this. - - * ace/OS.cpp (thr_create): Added a fix to set the Chorus stack - size correctly. Thanks to Wei Chiang for - reporting this. - - * ace/OS.cpp: Added a new method ace_sysconf_dump() to dump the - state of the configuration. Thanks to Wei Chiang - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Array.*: added ACE_Array_Iterator. - -Thu Oct 23 17:28:11 1997 Chris Cleeland - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - for finding this. - -Wed Oct 22 16:43:25 1997 Chris Cleeland - - * 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 - - * 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 - - * ace/OS.i (getpgid): fixed (commented) ACE_TRACE identifer. - Thanks to Eric Newton 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 - - * ACE version 4.3.25, released Wed Oct 22 05:04:07 1997. - -Tue Oct 21 22:55:36 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.24, released Tue Oct 21 21:34:35 1997. - -Tue Oct 21 14:14:33 1997 Carlos O'Ryan - - * 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 - - * ace/config-irix6.x-sgic++-nothreads.h: Added ACE_HAS_TERM_IOCTLS - for SGI. Thanks to Jeffrey Peterson - for reporting htis. - - * TAO/tests/Thruput_test/server.cpp (main): Changed BOA_init() - to POA_init(). - -Tue Oct 21 12:58:30 1997 - - * 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 which we want to make it a singleton using - ACE_Singleton template in our own DLL. In file , add - a line like this, - - ACE_SVC_SINGLETON_DECLARATION (ACE_Singleton); - - 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 - , add a line, - - ACE_SVC_SINGLETON_INSTANTIATION (ACE_Singleton); - - 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 - - * 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 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 because it is in - ace/Thread_Manager.cpp. - -Tue Oct 21 02:23:26 1997 Douglas C. Schmidt - - * ACE version 4.3.23, released Tue Oct 21 02:23:26 1997. - -Tue Oct 21 02:18:56 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * ace/Thread_Manager.h: Added more comments. - - * ace/Thread_Manager.{h,cpp}: Added a parameter 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 - - * 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 - - * 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 - 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 - for reporting this. - -Mon Oct 20 22:23:42 1997 Nanbor Wang - - * 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 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 - - * 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 in our own - extern "C" block. HP support call W3711856. - -Mon Oct 20 07:49:54 1997 David L. Levine - - * 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 - - * ACE version 4.3.22, released Mon Oct 20 02:04:19 1997. - -Mon Oct 20 02:01:43 1997 Douglas C. Schmidt - - * 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 - - * 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: - 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. - the asynchronous version of the timer - queue, uses signals. - implements the reactive timer queue - test driver using - the threaded implementation of the - timer queue. - 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 class. - - -Sun Oct 19 18:07:31 1997 Douglas C. Schmidt - - * 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 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 for reporting this. - -Sun Oct 19 17:55:34 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.21, released Sat Oct 18 00:17:26 1997. - -Fri Oct 17 22:51:46 1997 Carlos O'Ryan - - * 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 - - * ace/Atomic_Op.i (lock): Added an accessor to ACE_Atomic_Op to - return a reference to the underlying lock. Thanks to Janusz - Stopa for suggesting this. - -Fri Oct 17 15:36:26 1997 - - * 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 - - * 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 - - * ACE version 4.3.20, released Fri Oct 17 01:19:35 1997. - -Fri Oct 17 00:05:55 1997 - - * 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 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 - for pointing this out. - -Thu Oct 16 20:44:40 1997 James C Hu - - * 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 - - * 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 - - * ace/Timer_Heap_T.h: - Fixed comment on the Heap_Iterator, it said "Iterates over an - "). - -Thu Oct 16 08:43:50 1997 David L. Levine - - * 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 - - * ACE version 4.3.19, released Thu Oct 16 02:26:12 1997. - -Thu Oct 16 02:07:54 1997 Douglas C. Schmidt - - * tests/Priority_Reactor_Test.cpp: Added a "max_retries" flag to - keep the test from hanging forever... Thanks to Stephen Coy - for motivating this. - - * tests/Priority_Reactor_Test.h: Changed - - class Read_Handler : public ACE_Svc_Handler< - - to - - class Read_Handler : public ACE_Svc_Handler< - - and the same for the Write_Handler. Thanks to the ever vigilant - Stephen Coy for reporting this. - -Thu Oct 16 01:18:48 1997 Nanbor Wang - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.18, released Tue Oct 14 23:54:21 1997. - -Tue Oct 14 20:27:28 1997 Carlos O'Ryan - - * 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 - - * 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 - - * ace/OS.h: Moved to earlier in the file so that - u_int will be defined. Thanks to Neil B. Cohen - 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 - - * ace/Managed_Object.{h,cpp} (ACE_Cleanup_Adapter): added virtual - destructor, needed by some compilers for vtable placement. - Thanks to Stephen Coy 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 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 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 - - * ACE version 4.3.17, released Tue Oct 14 03:13:38 1997. - -Tue Oct 14 03:10:00 1997 Douglas C. Schmidt - - * 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 - 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 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 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 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 for reporting this. - -Tue Oct 14 02:49:02 1997 - - * 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 - - * 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 - - * 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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:: - 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 - - * ACE version 4.3.16, released Mon Oct 13 03:25:45 1997. - -Mon Oct 13 03:18:33 1997 Douglas C. Schmidt - - * 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 - for reporting this. - -Mon Oct 13 00:10:00 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.15, released Sat Oct 11 16:02:33 1997. - -Sat Oct 11 14:38:16 1997 Douglas C. Schmidt - - * ace/SOCK_Connector.cpp (complete): Fixed a typo with - ACE_NON_BLOCKING_BUG_DELAY. Thanks to John Zeb Dhom" - 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 - - * ACE version 4.3.14, released Sat Oct 11 02:52:10 1997. - -Sat Oct 11 02:10:29 1997 Carlos O'Ryan - - * 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 - - * 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 for reporting - this. - -Fri Oct 10 19:55:50 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * bin/man2html: Added a new set rul -e 's/^$/

    /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 - - * 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 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 - - * ACE version 4.3.13, released Fri Oct 10 01:46:07 1997. - -Thu Oct 9 22:23:56 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * ACE version 4.3.12, released Thu Oct 09 17:54:31 1997. - -Thu Oct 9 17:46:59 1997 Carlos O'Ryan - - * ace/Thread_Manager.cpp: - Added explicit instantiation of - ACE_Unbounded_Queue_Iterator, it seems to - be needed on Linux and other platforms; thanks to Huiying Shen - 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.; not even - - * 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 - - * 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 - for motivating this test. - -Wed Oct 8 12:09:46 1997 Nanbor Wang - - * ace/OS.i (strcasecmp): Oops, we forgot to compare the strlen - first. Thanks to Murphy Ivan 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 - - * ace/Parse_Node.cpp: - Fixed the minor syntax error *again*. - -Tue Oct 7 17:10:51 1997 Carlos O'Ryan - - * 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" - for pointing this one out. - -Tue Oct 7 07:07:45 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * ACE version 4.3.11, released Tue Oct 07 06:58:40 1997. - -Tue Oct 7 02:51:55 1997 Nanbor Wang - - * 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 - - * 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 - 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 - for this fix. - -Mon Oct 6 13:00:19 1997 Carlos O'Ryan - - * 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 - - * ACE version 4.3.10, released Sat Oct 04 17:40:30 1997. - -Sat Oct 4 11:57:25 1997 Douglas C. Schmidt - - * apps/Orbix-Examples/Event_Comm/{Supplier,Consumer}/Makefile: - Changed a typo where /src/ was being used instead of /libsrc/. - Thanks to Jean-Marc STRAUSS 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 - 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 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 - 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 - for reporting this. - -Sat Oct 04 03:14:46 1997 - - * 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 - - * 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 - - * 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 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 for reporting this. - -Thu Oct 02 15:38:34 1997 - - * 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 - for reporting this. - -Thu Oct 02 11:21:37 1997 Steve Huston - - * 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 template arg in the "unimplemented - function" section. - -Thu Oct 02 10:46:18 1997 Steve Huston - - * ace/Malloc.h: added some comments on rationale and use of - ACE_MALLOC_ALIGN. - -Wed Oct 01 19:08:26 1997 Steve Huston - - * 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 - - * 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 - - * ace/ACE.cpp (count_interfaces, get_handle): changed "unix" to - "__unix" because DEC CXX doesn't #define "unix". Thanks to - Billy Quinn for reporting this. - - * ace/High_Res_Timer.h: added comment from Gabe - 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 - - * ACE version 4.3.9, released Tue Sep 30 21:42:58 1997. - -Tue Sep 30 17:15:14 1997 James C Hu - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - for submitting these changes. - -Mon Sep 29 13:28:05 1997 David L. Levine - - * ace/OS.i (thr_setconcurrency): added support on Irix 6.x, using - its ::pthread_setconcurrency (). Thanks to Felix Popp - 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 - - * ace/OS.h (ace_cleanup_destroyer): Made this an export function. - -Sat Sep 27 17:04:48 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS: Made a few changes to OS.h and OS.i to stop compiler - warnings. Thanks to Wei Chiang for - reporting this. - - * ace/config-chorus.h: Added ACE_LACKS_RLIMIT and removed - ACE_LACKS_SIGACTION. Thanks to Wei Chiang - 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 - - * 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 for pointing - this out. - -Thu Sep 25 20:33:09 1997 Douglas C. Schmidt - - * 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 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 - - * 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 - - * 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 - - * 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 - - * ace/Containers.{i,cpp}: Commented out all ACE_TRACE macros in - ACE_Unbounded_Queue 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 - - * 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 - - * 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 - - * ace/OS.h: - Under HP-UX and g++ must be included for dynamic loading, - not ; thanks to Warren Thompson (wthompson@altaira.com) - for helping us with this one. - -Wed Sep 24 09:36:21 1997 David L. Levine - - * 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 - - * 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 - - * ace/Select_Reactor.cpp: added #include of ace/Thread.h. - Thanks to Vladimir Schipunov for - reporting this. - - * ace/Object_Manager.cpp: added #include of ace/Malloc.h. - Thanks to Vladimir Schipunov 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 for - reporting the build problem on AIX 4.1, and to - Torbjorn Lindgren 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 - for preallocated arrays. - -Mon Sep 22 16:51:44 1997 - - * 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 - - * 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 - - * 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 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 - - * 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 - - * ace/Timer_Queue_T.cpp: - Changed the return type to , to match its declaration. The - intent was to error error values, which are declared as - throughout ACE. - -Sat Sep 20 08:07:36 1997 David L. Levine - - * 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 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 for figuring this one - out. - -Fri Sep 19 18:49:50 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.8, released Thu Sep 18 01:12:36 1997. - -Wed Sep 17 22:47:20 1997 Douglas C. Schmidt - - * 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 for - reporting this. - - * ace/SV_Semaphore_Simple.h: By default, we want the flags to - perform a SEM_UNDO. Thanks to Sandro Doro - for reporting this. - - * tests/Makefile (BIN): Added Semaphore_Test.cpp to the Makefile. - Thanks to Sandro Doro 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 - - * 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 - . - -Wed Sep 17 13:51:25 1997 Carlos O'Ryan - - * 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 - - * ace/Local_Name_Space_T.cpp: Fixed warnings caused by SEH macros. - -Wed Sep 17 01:07:40 1997 Douglas C. Schmidt - - * ACE version 4.3.7, released Wed Sep 17 01:07:40 1997. - -Tue Sep 16 23:34:36 1997 Douglas C. Schmidt - - * 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 and Irfan for pointing out - the need for this. - -Tue Sep 16 18:03:58 1997 Carlos O'Ryan - - * 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 - - * ace/OS.i: Changed a couple of ACE_UNUSED(arg) to ACE_UNUSED_ARG(arg) - -Mon Sep 15 12:08:38 1997 - - * 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 - - * include/makeinclude/platform_hpux.GNU: - Added -D_REENTRANT to enable the _r functions. - -Mon Sep 15 09:40:57 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.6, released Sat Sep 13 17:23:22 1997. - -Sat Sep 13 12:11:50 1997 Douglas C. Schmidt - - * 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 - - * 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 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 - - * ace/OS.[hi],Log_Msg.h,config-lynxos.h, - include/makeinclude/platform_lynxos.GNU: added LynxOS port, - provided by Dave Mayerhoefer . 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 - - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.5, released Wed Sep 10 10:35:06 1997. - -Wed Sep 10 10:25:41 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.3.4, released Mon Sep 08 08:26:52 1997. - -Sat Sep 6 10:41:17 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 for solving - this. - - * ace/Handle_Set.i (fd_set *): Added conditional compilation code - for Win32 platforms. This is because we don't maintain - on Win32 and, therefore, can't depend on it. - -Fri Sep 5 19:05:02 1997 Douglas C. Schmidt - - * 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 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 - 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 - for reporting this fix. - -Fri Sep 05 16:17:50 1997 David L. Levine - - * 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 - - * 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 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 - - * ACE version 4.3.3, released Thu Sep 04 09:39:08 1997. - -Thu Sep 04 08:48:13 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - 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 - 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 - - * 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 - - * 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 - - * 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 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 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 - - * 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 - - * ace/Synch.cpp: added #include of Object_Manager.h. - Thanks to Edan Ayal for reporting this. - -Mon Sep 1 00:46:05 1997 Nanbor Wang - - * 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 . - - * 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 - - * ACE version 4.3.2, released Sun Aug 31 22:56:30 1997. - -Sun Aug 31 22:36:08 1997 Douglas C. Schmidt - - * 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 for - pointing this out. - -Sun Aug 31 09:58:35 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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::~FOO ();" but not - "ptr->FOO::~FOO ();" 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 class'es - destructor, you'll write: - - ACE_DES_FREE_TEMPLATE (ptr, alloc->free, FOO, ); - - * 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 - - * 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 - - * 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 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 - 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 - - * 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 - - * 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 - - * 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 for pointing out - the two missing functions. - -Thu Aug 28 20:12:23 1997 Douglas C. Schmidt - - * 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 - - * ACE version 4.3.1, released Thu Aug 28 20:02:03 1997. - -Thu Aug 28 00:21:09 1997 Douglas C. Schmidt - - * ace/Strategies_T.cpp (ACE_Thread_Strategy): Added reasonable - values to the default constructor. Thanks to Stephen Coy - for reporting this. - - * ace/config-irix6.x-sgic++-*.h: Added ACE_HAS_UALARM. Thanks to - Amos Shapira 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - for pointing this out. - - * ace/OS, - ace/Task.cpp: - Installed a bunch of patches for FSU pthreads. Thanks to Arturo - Montes 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 - 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 for - reporting this. - -Thu Aug 28 01:07:21 1997 - - * 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 - - * *.{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 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 - - * ace/Synch_T.h (CTOR): Eliminated unnecessary assignment to - this->owner_. - -Wed Aug 27 09:32:57 1997 David L. Levine - - * 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 - - * netsvcs/lib/Server_Logging_Handler_T.cpp: Changed the symbol - "SS" to "SST" to avoid a namespace collision with UnixWare. - Thanks to Ganesh Pai for pointing this out. - - * ace: Added a new config file to sco using FSU pthreads. Thanks - to Arturo Montes for sending this. - - * include/makeinclude: Added a new platform macros file to sco - using FSU pthreads. Thanks to Arturo Montes - for sending this. - -Tue Aug 26 22:06:14 1997 - - * 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 - - * 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 for pointing this - out. - -Tue Aug 26 11:06:45 1997 David L. Levine - - * 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 - - * 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 for pointing - out this one. - -Mon Aug 25 10:15:06 1997 David L. Levine - - * 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 - - * tests/Future_Test.cpp (Scheduler): Removed the non-existent - friend class Method_ObjectWork. Thanks to Sandro Doro - 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 for pointing out - the need for this. - -Sat Aug 23 14:43:27 1997 Douglas C. Schmidt - - * ACE version 4.3, released Sat Aug 23 14:43:27 1997. - -Sat Aug 23 14:40:32 1997 Douglas C. Schmidt - - * 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 - - * netsvcs/lib/Server_Logging_Handler.cpp: Make sure that we - explicitly instantiate ACE_Svc_Handler whether or not we're building with threads - since otherwise we get link errors. - -Fri Aug 22 20:58:49 1997 Nanbor Wang - - * 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 - - * 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 for pointing out this one and to - Steve Huston for explaining to us what - was going on. - -Fri Aug 22 08:46:39 1997 David L. Levine - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * ace/config-hpux-10.x.h: Removed extraneous #endif - -Thu Aug 21 12:21:16 1997 Nanbor Wang - - * ace/OS.h (THR_JOINABLE): Defined this macro for Win32 as 0. - -Wed Aug 20 22:36:52 1997 Douglas C. Schmidt - - * ACE version 4.2.44, released Wed Aug 20 22:36:52 1997. - -Wed Aug 20 18:28:28 1997 Steve Huston - - * 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 - - * ace/config-unixware-2.1.2-g++.h: - Unixware does not define timespec_t. Thanks to Ganesh Pai - for pointing out this one. - -Wed Aug 20 11:37:44 1997 David L. Levine - - * 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 - - * ACE version 4.2.43, released Wed Aug 20 07:43:14 1997. - -Tue Aug 19 08:25:28 1997 Steve Huston - - * 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 - - * ACE version 4.2.42, released Mon Aug 18 21:39:33 1997. - -Mon Aug 18 20:22:14 1997 Carlos O'Ryan - - * apps/Gateway/Peer/Makefile: - No need to define LIBS=-lACE here, its already done in - wrapper_macros.GNU. Thanks to Cary Clark - for helping in this effort. - -Mon Aug 18 19:54:36 1997 Nanbor Wang - - * 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 - - * 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 - for helping in this effort. - -Mon Aug 18 19:46:27 1997 Carlos O'Ryan - - * ace/OS.i: - Added support for the missing netdb reentrant functions, even - under IRIX 6.2 with no threads. Thanks Paul Roman - for reporting this. - -Mon Aug 18 12:53:16 1997 David Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.41, released Sun Aug 17 20:58:56 1997. - -Sun Aug 17 17:02:53 1997 Carlos O'Ryan - - * 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 - - * ACE version 4.2.40, released Sat Aug 16 18:17:10 1997. - -Sat Aug 16 18:13:22 1997 Douglas C. Schmidt - - * 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 . - - * 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 - - * ace/Auto_Ptr.h: Put in an #include (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 - - * 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 - - * README,FAQ,Makefile: changed references from INSTALL file - to ACE-INSTALL.html. - -Fri Aug 15 19:51:52 1997 - - * 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 - - * ACE version 4.2.39, released Fri Aug 15 17:41:28 1997. - -Fri Aug 15 13:33:04 1997 Nanbor Wang - - * 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 - - * 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 - 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 - - * 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 for - helping in this effort. - -Thu Aug 14 16:14:47 1997 David L. Levine - - * 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 - - * ace/ARGV.cpp: Completed the explicit template instantiations for - this component. - -Thu Aug 14 11:27:03 1997 Edward Everett Anderson - - * 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 - - * Made several changes to allow ACE to work with the new standard - C++ header files, such as and the built in STL. Thanks - to Matthias Kerkhoff 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 , - , , 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 and - - - * 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 - - * ACE version 4.2.37, released Wed Aug 13 23:02:45 1997. - -Wed Aug 13 13:26:27 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * etc/ACE-guidelines.html: added. - -Tue Aug 12 16:54:33 1997 Douglas C. Schmidt - - * 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 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 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 - - * 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 - - * ACE version 4.2.35, released Tue Aug 12 07:51:02 1997. - -Mon Aug 11 22:30:39 1997 David L. Levine - - * 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 for - finding the compiler options. - -Mon Aug 11 17:45:44 1997 Nanbor Wang - - * 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 - - * 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 - for reporting this. - -Mon Aug 11 01:11:26 1997 Douglas C. Schmidt - - * ACE version 4.2.34, released Mon Aug 11 01:11:26 1997. - -Mon Aug 11 01:06:02 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 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 for this fix. - - * ace/Filecache.cpp: Fixed the syntax of the SGI pragma stuff. - Thanks to Torbjorn Lindgren 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 - for reporting this. - -Sat Aug 9 12:10:35 1997 Nanbor Wang - - * 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 - - * 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 - - * ACE version 4.2.33, released Fri Aug 08 17:39:43 1997. - -Fri Aug 08 02:50:31 1997 Douglas C. Schmidt - - * 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 - - * ace/OS.* (strtoul): Added the OS function strtoul() to turn - strings into unsigned longs. - -Fri Aug 8 12:26:54 1997 Steve Huston - - * 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 - - * ace/Service_Repository.h (operations.): Improved documentation - on find(). - -Fri Aug 8 00:01:43 1997 Nanbor Wang - - * 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 - - * 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 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 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.31, released Thu Aug 07 00:19:12 1997. - -Wed Aug 6 22:20:54 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.30, released Wed Aug 06 03:35:41 1997. - -Wed Aug 6 00:13:27 1997 Nanbor Wang - - * netsvcs/lib/Server_Logging_Handler.cpp: We only need to - instantiate ACE_Svc_Handler 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 - - * ace/Containers: Added a new reset method for ACE_Unbounded_Set. - Thanks to Arturo Montes 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 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 - 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 - for reporting this deficiency and - testing the fix. - -Tue Aug 5 16:41:06 1997 Darrell Brunsch - - * 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 - - * ace/Message_Queue.h: Fixed typos for the case when - ACE_LACKS_COND_T. - -Tue Aug 05 11:02:11 1997 - - * 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 - - * 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 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 for - reporting this deficiency and testing the fix. - - * ace/config-vxworks-ghs-1.8.h: added - ACE_LACKS_LINEBUFFERED_STREAMBUF. Thanks to Cherif Sleiman - for reporting this. - -Mon Aug 4 22:47:54 1997 Douglas C. Schmidt - - * 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 for this. - -Mon Aug 4 14:03:22 1997 Steve Huston - - * tests/Enum_Interfaces_Test.cpp: return non-zero if test fails. - -Mon Aug 4 12:03:29 1997 Darrell Brunsch - - * tests/Semaphore_Test: Redid to test timed waits in a more - reasonably fashion. - -Mon Aug 4 11:43:09 1997 Douglas C. Schmidt - - * ace/OS: Continued to cleanup the problems with inconsistent - variants of sendmsg() and writev() on VxWorks. Thanks to Cherif - Sleiman 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 - 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 for noticing this. - -Mon Aug 4 12:03:29 1997 Darrell Brunsch - - * tests/Semaphore_Test: Redid to test timed waits in a more - reasonably fashion. - -Sun Aug 03 23:47:13 1997 Douglas C. Schmidt - - * ACE version 4.2.29, released Sun Aug 03 23:47:13 1997. - -Sun Aug 3 22:18:33 1997 Douglas C. Schmidt - - * 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 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 - 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 - - * 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 - - * 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 - - * 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 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 . 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/TTY_IO.cpp (control): Removed the special M_UNIX code for - SCO_OpenServer. Thanks to Arturo Montes - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.2.27, released Fri Aug 01 00:14:46 1997. - -Thu Jul 31 21:51:01 1997 David L. Levine - - * ace/Log_Msg.cpp (open): fixed memory leak. - -Thu Jul 31 21:41:10 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * ace/Synch.i (acquire): Added the timed acquire() interface to - ACE_Semaphore. - -Thu Jul 31 11:10:17 1997 Darrell Brunsch - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - 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 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 - - * 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 - - * 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 for - suggesting this. - -Wed Jul 30 06:53:30 1997 Matthias Kerkhoff - - * 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 - - * 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 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 for digging - this out and sending us the patch. - -Wed Jul 30 13:36:55 1997 David L. Levine - - * 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 - - * 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 - - * ACE version 4.2.26, released Wed Jul 30 06:53:30 1997. - -Wed Jul 30 04:36:39 1997 Nanbor Wang - - * 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 - - * 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 - - * ace/OS.i: Changed sema_wait to take in a const ACE_Time_Value - -Tue Jul 29 12:41:27 1997 Douglas C. Schmidt - - * ace/config-sco-5.0.0-mit-pthread.h: Added the - ACE_LACKS_PWD_FUNCTIONS macro. Thanks to Arturo Montes - for reporting this. - -Tue Jul 29 13:10:00 1997 Nanbor Wang - - * 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 - - * tests/Message_Queue_Test.cpp (main): Removed dynamic allocation - of the string array. - -Tue Jul 29 12:15:49 1997 Darrell Brunsch - - * 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 - - * 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 - 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 - - * 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 - - * ACE version 4.2.25, released Tue Jul 29 00:56:54 1997. - -Mon Jul 28 16:23:26 1997 David L. Levine - - * include/makeinclude/rules.nested.GNU: added missing - semicolon at end of last statement. Thanks to Amos - Shapira for providing this fix. - - * ace/OS.h (VxWorks only): only #include before - for GreenHills. Thanks to Dave Moore - 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 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 - 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 - - * 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 - - * 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 - - * ace/config-irix6.4-sgic++.h: Added template specialization #def. - -Sun Jul 27 20:47:01 1997 David L. Levine - - * 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 - - * ACE version 4.2.24, released Sun Jul 27 20:10:26 1997. - -Sun Jul 27 16:03:30 1997 Nanbor Wang - - * tests/Handle_Set_Test.cpp (test_boundaries): Changed class of - queue from ACE_Unbounded_Queue to - ACE_Unbounded_Queue 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 - - * tests/Handle_Set_Test.cpp (main): uncommented - test_duplicates () and test_performance () calls, and added - ACE_Unbounded_Queue_Iterator specialization. - -Sun Jul 27 14:25:33 1997 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for making - these changes. - -Sat Jul 26 15:44:45 1997 Douglas C. Schmidt - - * 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 - 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 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 - - * 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 - - * 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 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 - - * ace/Synch: Added documentation for Condition variables. Thanks - to Jeff for pointing out the lack of - documentation. - -Thu Jul 24 11:48:05 1997 David L. Levine - - * Makefile,TAO/Makefile: added a filter to exclude backup and - [.]#* files from releases. Thanks to Carlos O'Ryan - 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 - - * ace/Timer_Heap_T.cpp: Fixed a problem with reschedule() - corrupting the free list in Timer Heap. Thanks to - James Crawford , Silvano Peruzzi - , and Stuart Powell - for the fix. - -Wed Jul 23 23:29:15 1997 - - * ace/Message_Block.cpp (size): Changed the comparison from - (length < this->max_size_) to (length <= this->max_size_). - Thanks to Paul for suggesting this change. - -Wed Jul 23 21:54:23 1997 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/CORBA_Ref.cpp: Added #include "ace/Log_Msg.h" to catch the - ACE_DEBUG macro. diff --git a/ChangeLog-98a b/ChangeLog-98a deleted file mode 100644 index 8d598a29741..00000000000 --- a/ChangeLog-98a +++ /dev/null @@ -1,6588 +0,0 @@ -Wed Apr 29 18:55:13 1998 David L. Levine - - * ACE version 4.5 released. - -Wed Apr 29 12:25:05 1998 David L. Levine - - * 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 - - * 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 - - * 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 - 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 - - * ace/Service_Types.cpp: Changes to use typedef - ACE_Service_Object_Exterminator to define . 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 - for pointing this out. - -Sun Apr 26 21:50:07 1998 David L. Levine - - * ace/Svc_Conf_l.cpp,etc/Svc_Conf_[ly].cpp.diff,etc/README: - updated the patch files. Thanks to J. Russell Noseworthy - for reporting problems with - them. - -Sun Apr 26 01:05:20 1998 Douglas C. Schmidt - - * ACE version 4.4.43 released. - -Sat Apr 25 17:47:31 1998 Nanbor Wang - - * 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 - with a temporary object. Its content gets deleted - right after the constructor exits. - -Sat Apr 25 11:55:01 1998 Alexander Babu Arulanthu - - * ace/Containers.h (class ACE_Double_Linked_List): Added - comments.(, 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 - - * ace/Service_Config.cpp (process_directive): added - ACE_UNUSED_ARG (directive). - -Fri Apr 24 18:40:08 1998 Irfan Pyarali - - * 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 for reporting these upgrades. - -Fri Apr 24 16:33:14 1998 Steve Huston - - * 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 - - * 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 - - * 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 - - * ace/config-linux-common.h: added ACE_HAS_4_4BSD_SENDMSG_RECVMSG. - Thanks to Sandro Doro for recommending - this. - -Fri Apr 24 04:12:39 1998 Nanbor Wang - - * 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 - - * 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 - - * ACE version 4.4.42 released. - -Thu Apr 23 22:28:02 1998 Douglas C. Schmidt - - * 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 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 for reporting this. - - * apps/Gateway/Peer/Options.cpp (parse_args): Added the "C:" - qualifier to the get_opt string. Thanks to Dani Flexer - 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 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 for reporting - this. - -Thu Apr 23 13:54:33 1998 David L. Levine - - * 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 for this update. - -Wed Apr 22 22:13:57 1998 Douglas C. Schmidt - - * ace/ace_bcc.ide: Added a new IDE for the Borland C++ compiler. - Thanks to Valik Solorzano Barboza for - this. - - * ace/Msg_WFMO_Reactor.cpp (wait_for_multiple_events): Fixed a - missing semi-colon. Thanks to Jorn Jensen - for reporting this. - -Wed Apr 22 21:53:12 1998 David L. Levine - - * config-linux-kcc.h: added #define ACE_SIZEOF_LONG_DOUBLE - to 12 on i386. Thanks to Ben Eng for - reporting this. - -Tue Apr 21 18:38:22 1998 Nanbor Wang - - * ace/ace_ce_dll.dsp: Removing a deprecated /windowsce:noconvert - linker flag. - -Mon Apr 20 15:39:42 1998 Steve Huston - - * 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 - - * 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 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 - - * ace/Timeprobe.h (class ACE_Timeprobe): Changed ACE_Timeprobe to - use ACE_OS::gethrtime(). - -Sat Apr 18 01:14:30 1998 Irfan Pyarali - - * 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 - - * 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 - - * ace/OS.cpp (invoke): Should check against null thr_desc, not - thr_desc->flag (). Thanks to "Erickson, Jack (CICG - NY GFX)" - 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 - - * 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 - - * 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 - - * 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 for reporting these. - -Thu Apr 16 04:14:53 1998 Irfan Pyarali - - * 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 - - * 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 for the bug report. - -Wed Apr 15 17:12:14 1998 Steve Huston - - * 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 - - * 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 - - * 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 - - * 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 - for reporting this. - -Tue Apr 14 23:35:19 1998 Nanbor Wang - - * 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 - - * 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 - - * ace/ACE.cpp (ldfind): Fixed a miscalculated string size. - Thanks to Jason Katz for reporting the - bug. - -Tue Apr 14 14:33:33 1998 David L. Levine - - * 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 - - * tests/Hash_Map_Manager_Test.cpp: Changed the consts to - size_t, as well... - -Tue Apr 14 11:40:23 1998 David L. Levine - - * 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 - - * ACE version 4.4.41 released. - -Tue Apr 14 07:19:25 1998 David L. Levine - - * 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 - - * ACE version 4.4.40 released. - -Mon Apr 13 19:19:13 1998 Douglas C. Schmidt - - * 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 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 - - * ace/DEV_Connector.i (ACE_DEV_Connector): - * ace/Asynch_IO.cpp (accept,addresses): UNICODE changes. - -Mon Apr 13 18:05:26 1998 Steve Huston - - * tests/Thread_Manager_Test.cpp: Disabled the suspend/resume action - for Pthreads platforms. - -Mon Apr 13 10:18:59 1998 David L. Levine - - * 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 for reporting these. - -Sun Apr 12 21:11:53 1998 Nanbor Wang - - * 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 - - * 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 - - * ACE version 4.4.39, released Sat Apr 11 20:00:12 1998. - -Sat Apr 11 19:58:56 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * ACE version 4.4.38, released Sat Apr 11 13:28:19 1998. - -Sat Apr 11 12:46:08 1998 Douglas C. Schmidt - - * ace/config-mvs.h: Added some ACE_SIZEOF_* macros for MVS. - Thanks to Chuck Gehr 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 - - * 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 - - * tests/Reactor_Exception_Test: Tidied the test up a bit. Thanks - to Bob Laferriere 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 - - * 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 for the - improvements. - -Thu Apr 9 17:31:47 1998 Douglas C. Schmidt - - * 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 for reporting - this. - -Thu Apr 09 18:06:53 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/config-irix*.h: fixed determination of ACE_SIZEOF_LONG_DOUBLE, - depending on system release and ABI. Thanks to Robert J. - Laferriere for figuring it all out. - -Mon Apr 06 01:29:35 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * examples/Service_Configurator/IPC-tests/server/svc.conf: Corrected - library name to load tests from. Thanks to Sandro Doro - for noticing there was a problem here. - -Sun Apr 05 10:20:26 1998 David L. Levine - - * 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 - - * 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 - - * ACE version 4.4.37, released Sat Apr 04 21:19:32 1998. - -Sat Apr 04 19:41:03 1998 Nanbor Wang - - * ace/OS.cpp (thr_exit): Forgot to access creation flags thru - the access function. - -Sat Apr 04 14:01:53 1998 Steve Huston - - * performance-tests/Makefile: Put UDP back in dir list. - -Sat Apr 04 07:45:33 1998 David L. Levine - - * 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 for reporting - this. - -Sat Apr 4 02:06:57 1998 Nanbor Wang - - * 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 - - * ace/Map_Manager.cpp (map): Added map method for the iterator interface. - -Sat Apr 4 00:55:30 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - 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 - - * 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 - 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 - - * ace/OS.cpp (ACE_TSS_Info::key_in_use): return true if - thread_count_ > 0, not if it is != -1. Thanks to Chris - Lahey 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 - - * ace/WFMO_Reactor.i (dump): Also changed the method from HANDLE - to ACE_HANDLE. - -Thu Apr 2 15:36:20 1998 Douglas C. Schmidt - - * 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 for - reporting this. - -Thu Apr 2 15:14:35 1998 Sumedh Mungee - - * ace/WFMO_Reactor.h (dump): Renamed HANDLE to ACE_HANDLE. - -Thu Apr 02 14:23:11 1998 David L. Levine - - * 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 - - * 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 - - * 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 for - reporting this. - - * ace/CORBA_Handler.cpp (ACE_CORBA_Handler): The reference_count_ - data member wasn't being initialized correctly. Thanks to - Mahesh Chandwani 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 - for reporting this. - -Wed Apr 01 16:28:30 1998 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - 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 - 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 - - * 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 - 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 - - * 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 - - * ace/High_Res_Timer.i (gettime): ACE_OS::gettimeofday doesn't - take any argument. - -Fri Mar 27 09:50:52 1998 Steve Huston - - * ace/Strategies_T.cpp: Added #include "ace/Service_Repository.h" for - compile on HP. Thanks to Steve Coy for this. - -Fri Mar 27 09:21:21 1998 David L. Levine - - * 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 - - * 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 - - * ace/Containers.{h,i,cpp}: Changed the template parameter name - to 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 - - * ACE version 4.4.36, released Thu Mar 26 17:23:38 1998. - -Thu Mar 26 12:54:57 1998 David L. Levine - - * 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 - - * 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 and - Loren Rittle 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 - - * ace/Proactor.cpp (timeout): Changed comparison from || to - &&. Thanks to Jason Katz for reporting - this. - -Tue Mar 24 18:14:18 1998 Steve Huston - - * 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 - - * bin/auto_compile: - Missing newline after the "DISABLED" message. - -Tue Mar 24 07:38:44 1998 David L. Levine - - * 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 for reporting - these. - -Mon Mar 23 12:06:30 1998 David L. Levine - - * 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 - - * ace/OS.h (MAXPATHLEN): Guard the MAXPATHLEN definition with - #ifndef in case if has already been defined. Thanks to "Patrick - J. McNerthney" for reporting this. - -Mon Mar 23 03:18:50 1998 Douglas C. Schmidt - - * ACE version 4.4.35, released Mon Mar 23 03:18:50 1998. - -Mon Mar 23 00:03:37 1998 Irfan Pyarali - - * 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 - - * 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 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 - - * ace/OS.i (flock_destroy): lock->lockname_ should be cast to - LPTSTR instead of char*. Thanks to Goran Lowkrantz - 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 - - * 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 - - * ACE version 4.4.34, released Fri Mar 20 21:46:16 1998. - -Fri Mar 20 20:53:27 1998 Nanbor Wang - - * ace/Parse_Node.cpp: Fixed typos. - -Fri Mar 20 14:18:53 1998 Douglas C. Schmidt - - * performance-tests/UDP/udp_test.cpp: Completed the ACE'ification - of this test. - -Fri Mar 20 09:31:22 1998 David L. Levine - - * 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 - for contributing the test. - -Thu Mar 19 10:15:27 1998 Steve Huston - - * 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 - and shl_(un)load. Thanks to Kirill Rybaltchenko - for this change. - -Thu Mar 19 10:13:35 1998 David L. Levine - - * 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 - - * 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 - - * ACE version 4.4.33, released Wed Mar 18 21:30:39 1998. - -Wed Mar 18 16:36:17 1998 Douglas C. Schmidt - - * 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 - - * 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 thread creation stress - test to reveal the bug. - -Tue Mar 17 17:20:00 1998 Nanbor Wang - - * 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 - for providing the source. - -Wed Mar 18 11:00:11 1998 Alexander Babu Arulanthu - - * 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 - - * 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 - - * 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 for providing - this fix. - -Tue Mar 17 23:53:56 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 matches . - 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 - - * ace/Future.cpp: Added missing ACE_MT macros so that we now - compile correctly if we don't have threads. Thanks to Laura - Paterno for reporting this. - -Tue Mar 17 15:13:17 1998 David L. Levine - - * 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 - - * ace/IPC_SAP.cpp: Moved return values outside of the #ifdefs to - quiet warning messages with KAI C++. Thanks to Laura Paterno - for reporting this. - -Tue Mar 17 00:04:53 1998 Nanbor Wang - - * ace/Svc_Conf.y: - * ace/Svc_Conf_y.cpp: Applied "Regular CE Tricks [TM]". - -Mon Mar 16 23:34:39 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 - 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 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 for reporting this. - -Fri Mar 13 23:41:44 1998 Nanbor Wang - - * ace/Process.cpp (ACE_Process_Options): Moved column out of - ifdef'ed area. - -Fri Mar 13 21:17:51 1998 David L. Levine - - * ace/Process.cpp (ACE_Process_Options): reordered initializers - to match declaration order. - -Fri Mar 13 17:30:16 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 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 - - * 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 - for pointing this out. - -Thu Mar 12 18:21:15 1998 James C Hu - - * ace/config-linux-common.h: Incorporated changes that were - suggested by Robert Hanzlik 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 - - * ACE-INSTALL.html: Added a table to Supported Platforms and - Compilers. - -Thu Mar 12 16:28:32 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 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 - - * 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 - - * 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 - - * 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 - - * ace/Svc_Handler.cpp, - ace/Module.cpp: - Fixed some problems where Svc_Handlers in Modules were being - deleted prematurely. Thanks to Steve Coy - 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 - 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 - for reporting this. - -Tue Mar 10 15:57:54 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * include/makeinclude/platform_irix6.x-sgic++.GNU: - Added the definition for MATHLIB. - -Mon Mar 09 01:23:49 1998 Nanbor Wang - - * 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 - - * apps/Gateway/Gateway/Event_Channel.cpp (initiate_acceptors): - changed SUPPLIER_CONNECTOR to SUPPLIER_ACCEPTOR. Thanks - to Dani Flexer 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 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 - - * ACE version 4.4.32, released Sat Mar 07 16:46:58 1998. - -Fri Mar 06 08:37:44 1998 David L. Levine - - * bin/ace_ld: made perl4-compatible. Thanks to - Jerry Bickle 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 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 - for providing the patches. - - * ACE-INSTALL.html: added information from Paul von Behren - 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 - - * ace/OS.h (ACE_TRACE): Added a missing right paren. - -Thu Mar 05 10:04:06 1998 David L. Levine - - * include/makeinclude/platform_chorus_ghs.GNU: this works, - though it may not be optimum. - -Thu Mar 05 01:33:08 1998 Nanbor Wang - - * 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 . - - * 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 - - * 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 - 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 - 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 - - * 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 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 - - * 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 - - * 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 for - reporting this. - - * ace/OS.i (sigwait): Added support for POSIX sigwait(). Thanks - to Russ Noseworthy 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 - 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 for suggesting - this. - -Mon Mar 02 17:06:46 1998 Nanbor Wang - - * 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 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 - - * 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 - 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - for reporting this. - -Fri Feb 27 15:47:15 1998 David L. Levine - - * ACE-INSTALL.html: added very useful information from - Chris Ryan 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 - - * 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 - - * 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 - - * ACE version 4.4.31, released Thu Feb 26 21:36:27 1998. - -Thu Feb 26 16:48:53 1998 Douglas C. Schmidt - - * 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 for reporting - this. - -Thu Feb 26 11:14:21 1998 David L. Levine - - * ace/Parse_Node.cpp (ACE_Location_Node): reordered initializers - to match declaration order. - -Thu Feb 26 02:42:57 1998 Nanbor Wang - - * 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 - - * 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 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 - for reporting this. - -Wed Feb 25 10:50:17 1998 David L. Levine - - * 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 - - * 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 - - * ace/Asynch_Acceptor.cpp (handle_accept): Update the - event_handler's proactor pointer once it is accepted. Thanks to - Jason Katz 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 for reporting this. - -Tue Feb 24 05:08:31 1998 Nanbor Wang - - * 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 - - * ace/Asynch_Acceptor.i (bytes_to_read): Added an inline accessor - for the bytes_to_read_ field. Thanks to Jason Katz - for suggesting this. - -Mon Feb 23 12:26:06 1998 David L. Levine - - * 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 - - * ACE version 4.4.30, released Mon Feb 23 11:27:10 1998. - -Mon Feb 23 11:11:18 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 for - suggesting this. - -Sun Feb 22 13:22:30 1998 Nanbor Wang - - * 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 - - * 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 for reporting - this. - -Sat Feb 21 12:44:51 1998 David L. Levine - - * ACE version 4.4.29, released Sat Feb 21 12:44:51 1998. - -Sat Feb 21 11:53:45 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * ace/Task.{h,cpp} (activate): added optional thread_names array - argument. - -Thu Feb 19 12:55:00 1998 Nanbor Wang - - * 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 - - * 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 - - * ace/SOCK.cpp (open): It appears that we don't need to do - SO_REUSEADDR if protocol_family != PF_UNIX. Thanks to Chuck - Gehr for reporting this. - -Wed Feb 18 22:34:40 1998 Nanbor Wang - - * 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 - - * 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 - 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 for reporting this. - -Wed Feb 18 15:30:48 1998 Carlos O'Ryan - - * 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 - - * 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 - - * bin/auto_compile: - Added netsvcs to auto_compile list. - -Tue Feb 17 18:27:15 1998 Douglas C. Schmidt - - * ACE version 4.4.28, released Tue Feb 17 18:27:15 1998. - -Tue Feb 17 17:59:32 1998 Nanbor Wang - - * 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 - - * ace/ACE.cpp (recv_n): Added a check to drop out if the MSG_PEEK - flag is set! Thanks to Keith Brown for - reporting this. - -Tue Feb 17 12:56:24 1998 Chris Cleeland - - * 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--. - -Tue Feb 17 09:23:05 1998 David L. Levine - - * 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 - - * ace/OS.h (ACE_PROPER_SINGLETON_INSTANTIATION): Changed spelling - of SINGLETONE to SINGLETON. Thanks to Mark Maris - for reporting this. - -Tue Feb 17 07:41:32 1998 Douglas C. Schmidt - - * ACE version 4.4.27, released Tue Feb 17 07:41:32 1998. - -Tue Feb 17 03:32:30 1998 Nanbor Wang - - * 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 - - * 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 for reporting a - problem with bad hires time values on Irix. - -Mon Feb 16 10:51:28 1998 Oliver Kellogg - - * 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 - - * 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 for reporting - this. - -Sun Feb 15 15:55:47 1998 Darrell Brunsch - - * 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 - - * 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 - - * 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 for providing the fix. - -Sat Feb 14 18:34:37 1998 Darrell Brunsch - - * ace/Timer_{Wheel,Hash}_T.cpp: Fixed a bug with earliest time - pointers not being set correctly. Thanks to Mark Evans - 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 - - * 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 - for reporting this. - -Sat Feb 14 03:29:50 1998 Sergio Flores - - * 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 - - * 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 - 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 - - * ACE version 4.4.26, released Fri Feb 13 10:40:36 1998. - -Thu Feb 12 14:33:12 1998 Nanbor Wang - - * ace/OS.i (mktemp): I missed this one in Win32 section. - -Fri Feb 13 09:04:13 1998 Oliver Kellogg - - * ace/config-osf1-4.0.h: added Rational RCC support. - -Wed Feb 11 09:50:27 1998 Steve Huston - - * 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 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 - - * 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 - - * ACE version 4.4.25, released Wed Feb 11 09:24:51 1998. - -Tue Feb 10 14:58:00 1998 Chris Gill - - * ace/Containers.cpp : removed unreachable break; - -Tue Feb 10 09:34:27 1998 David L. Levine - - * 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 - - * ace/Containers.{cpp,h} : made next () a const member function in - ACE_Ordered_MultiSet_Iterator - -Mon Feb 09 14:52:25 1998 David L. Levine - - * 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 with GreenHills/Chorus. - - * netsvcs/clients/Naming/Client/Client_Test.cpp (handle_input): - get input from stdin, not ACE_STDIN. Thanks to Jack Erickson - for reporting this. - -Sun Feb 8 15:33:33 1998 Nanbor Wang - - * 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 - - * 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 for this addition. - - * ace/config-linux-common.h: added ACE_HAS_TERM_IOCTLS. Thanks - to James CE Johnson 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.4.24, released Fri Feb 06 10:42:22 1998. - -Fri Feb 06 10:30:00 1998 Chris Gill - - * ace/Containers.cpp: fixed error in - ACE_Doubly_Linked_List_Iterator::first (void); - -Fri Feb 06 08:27:32 1998 Chris Gill - - * 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 int - ACE_Unbounded_Set_Iterator::first (void); - - template int - ACE_Unbounded_Queue_Iterator::first (void); - - template int - ACE_Unbounded_Stack_Iterator::first (void); - - template int - ACE_Bounded_Set_Iterator::first (void); - - template int - ACE_Fixed_Set_Iterator::first (void); - - template int - ACE_Doubly_Linked_List_Iterator::first (void); - -Wed Feb 04 22:23:24 1998 David L. Levine - - * 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 - , Torbjorn Lindgren , - and Oleg Krivosheev 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 if - ACE_HAS_STREAM_PIPES, not if ACE_HAS_TLI. Thanks to Oliver - Kellogg 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 - - * ace/Containers.cpp : fixed my "fix" to new_position pointer in - ACE_Ordered_MultiSet::find_from () - now checks the pointer - before assigning something to it. - -Tue Feb 03 15:11:00 1998 Chris Gill - - * ace/Containers.cpp : fixed order of member initialization list - in ACE_DNode ctor, added update of new_position pointer in - ACE_Ordered_MultiSet::find_from () - -Mon Feb 02 21:26:30 1998 David L. Levine - - * 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 - - * tests/OrdMultiSet_Test.cpp: added explicit template instantiation - for ACE_DNode - - * 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 - - * 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 - - * 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::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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.4.23, released Thu Jan 29 20:28:30 1998. - -Thu Jan 29 16:17:28 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 for reporting this problem. - -Thu Jan 29 10:14:03 1998 Douglas C. Schmidt - - * 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 for suggesting this. - -Wed Jan 28 15:36:55 1998 Carlos O'Ryan - - * bin/auto_compile: - We can use the top level Makefile on TAO now. - -Wed Jan 28 11:59:41 1998 Nanbor Wang - - * ace/OS.i (isatty): Added conversion from a Win32 HANDLE to a C - file handle. It works correctly now. Thanks to Chuck R. Gehr - for noticing the problem. - -Tue Jan 27 20:32:07 1998 Douglas C. Schmidt - - * ace/Message_Block: Added an accessor to retrieve the reference - count on an ACE_Data_Block. Thanks to Dave Meyer - for contributing this. - -Tue Jan 27 15:09:08 1998 Douglas C. Schmidt - - * 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 for reporting - argument 1, which should be 0 (don't execute the cleanup).this. - -Tue Jan 27 14:56:49 1998 David L. Levine - - * 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 - - * 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 - - * 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 - - * ace/OS.{i,cpp}: - * ace/config-WinCE.h: More Windows CE insanities. - -Mon Jan 26 13:20:58 1998 David L. Levine - - * include/makeinclude/platform_osf1_4.0_g++.GNU: added $(ACELIB) - to SOFLAGS. Thanks to Oliver Kellogg - 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 - 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 - - * bin/auto_compile: - Added TAO_ROOT to the environment. - -Mon Jan 26 10:28:57 1998 Douglas C. Schmidt - - * ACE version 4.4.22, released Mon Jan 26 10:28:57 1998. - -Mon Jan 26 02:53:10 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/IOStream.h: use std::string if - ACE_USES_STD_NAMESPACE_FORSTDCPP_LIB IOStream.h. Thanks - to Gonzo 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 - 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 - for reporting this. - - * ace/config-osf1-4.0.h: added ACE_HAS_EXCEPTIONS, etc., with - CXX 6.0. Thanks to Torbjorn Lindgren 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 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 - 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 - - * 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 - 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 - for reporting this. - - * ace/config-osf1-4.0.h: updated g++ support. Thanks to - Oliver Kellogg for the patch. - - Thanks to Tom Venturella and Dave Mayerhoefer - (!) 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 - - * 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 for - providing the patch. - -Wed Jan 21 20:36:43 1998 Chris Cleeland - - * ACE version 4.4.21, released Wed Jan 21 20:36:43 1998. - -Wed Jan 21 10:39:12 1998 David L. Levine - - * 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 - - * ACE version 4.4.20, released Tue Jan 20 21:15:01 1998. - -Tue Jan 20 20:31:27 1998 Carlos O'Ryan - - * 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 - - * 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 - - * ACE version 4.4.19, released Tue Jan 20 15:52:31 1998. - -Tue Jan 20 12:49:05 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * bin/Makefile: Fixed a problem with the CCFLAGS definition that - was causing circular macro expansion. Thanks to Philippe - O'Reilly for reporting this. - -Sun Jan 18 14:32:42 1998 Darrell Brunsch - - * 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 - - * examples/Service_Configurator/Misc/*.ds?: Added new project - files for this example. - -Sun Jan 18 17:27:52 1998 Darrell Brunsch - - * 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 - - * 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 - 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 - for requesting this. - -Sun Jan 18 15:54:16 1998 Darrell Brunsch - - * 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 - - * netsvcs/VCAUTO.MAK: - * netsvcs/lib/VCAUTO.MAK: Added directory information for easier - debugging. - -Sat Jan 17 16:10:04 1998 Douglas C. Schmidt - - * 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 for reporting this. - -Sat Jan 17 00:42:13 1998 Irfan Pyarali - - * ace/SString.cpp (substring): Fixed bug. count should be - initialized to length and not len_. - -Fri Jan 16 15:52:34 1998 Nanbor Wang - - * ace/IOStream.h (ACE_Streambuf): - * ace/config-win32-common.h: - * ace/iosfwd.h: - * ace/streams.h: Applied IOStream patches from James CE Johnson - . - -Fri Jan 16 01:42:52 1998 Irfan Pyarali - - * 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 - for reporting this. - - * ace/SString.h: Added the correct export macros. - -Thu Jan 15 15:45:48 1998 Douglas C. Schmidt - - * 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 - - * /: 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 - - * 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 - - * ace/Signal.i (is_member): - Fixed typo in new cast, the type is sigset_t not sigset. - -Wed Jan 14 20:27:44 1998 - - * 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 - - * 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 - for reporting this. - - * ace/Signal.i (is_member): Added an ACE_const_cast(). Thanks to - Oleg Krivosheev for reporting this. - -Wed Jan 14 06:45:52 1998 David L. Levine - - * 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 - - * ace/OS.i: Changed the signature of ACE_Time_Value::operator - timeval *() to return operator const timeval *(). Thanks to - Oleg Krivosheev 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 - - * 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 for breaking silence and - reporting this. - -Mon Jan 12 20:19:54 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - 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 - - * 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 - - * 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 - - * ACE version 4.4.18, released Sun Jan 11 16:18:15 1998. - -Sun Jan 11 00:00:26 1998 Douglas C. Schmidt - - * 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 - 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 - - * 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 - - * ace/SString.i (find): changed type of local i to size_t to - avoid signed/unsigned comparison. - -Sat Jan 10 14:57:01 1998 - - * 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 - - * tests/Conn_Test.cpp: Moved template instantiation codes around - to avoid warnings. - -Sat Jan 10 01:36:08 1998 Irfan Pyarali - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 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 - for reporting these. - - * tests/run_tests.vxworks: added Env_Value_Test. - -Fri Jan 09 00:14:20 1998 Nanbor Wang - - * 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 - - * 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 - - * ACE version 4.4.17, released Thu Jan 08 21:37:30 1998. - -Thu Jan 8 19:50:43 1998 Douglas C. Schmidt - - * ace/Task: Added a virtual destructor for ~ACE_Task_Base. Thanks - to Oleg Krivosheev for suggesting this. - - * ace: Added a new config-sunos5.5-egcs.h for the EGCS compiler. - Thanks to Oleg Krivosheev for contributing - this. - - * include/makeinclude: Added a new platform macros file for the - EGCS compiler on Solaris 2.x. Thanks to Oleg Krivosheev - 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 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 - 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 - 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 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 for reporting this. - -Thu Jan 08 16:02:33 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 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 - - * 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 for pointing this out. - -Wed Jan 7 17:46:09 1998 James C Hu - - * 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 - - * ace/Event_Handler_T.cpp: Reordered the initializers in the - ACE_Event_Handler_T constructor so G++ doesn't complain. Thanks - to Oleg Krivosheev 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 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 for reporting this. - -Wed Jan 07 14:31:34 1998 Douglas C. Schmidt - - * ACE version 4.4.16, released Wed Jan 07 14:31:34 1998. - -Wed Jan 7 13:38:28 1998 Douglas C. Schmidt - - * 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 for reporting this. - - * ace/Service_Repository.cpp (close): Removed a fragment of - redundant code. Thanks to Eric Newton and Alex - Chan for reporting this. - -Tue Jan 06 17:19:13 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 for reporting this. - - * ace/config-mvs.h: added ACE_LACKS_LONGLONG_T because MVS doesn't - support it. Thanks to Chuck Gehr for - confirming that. - -Mon Jan 5 01:20:51 1998 Nanbor Wang - - * ace/Map_Manager.{h,cpp}: Made operator == and != and their - arguments const. - -Sun Jan 04 19:45:47 1998 David L. Levine - - * 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 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 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 - - * ACE version 4.4.15, released Sun Jan 04 17:19:31 1998. - -Sun Jan 4 10:11:53 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Map_Manager.cpp (ACE_Map[_Reverse]_Iterator): Fixed the - initial iterator position. - -Fri Jan 02 18:43:14 1998 Douglas C. Schmidt - - * ACE version 4.4.14, released Fri Jan 02 18:43:14 1998. - -Fri Jan 2 17:39:04 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 instantiation. - -Fri Jan 02 00:47:33 1998 Douglas C. Schmidt - - * ACE version 4.4.13, released Fri Jan 02 00:47:33 1998. - -Fri Jan 2 00:17:04 1998 Douglas C. Schmidt - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.4.12, released Thu Jan 01 07:56:17 1998. - -Thu Jan 01 00:28:46 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 for pointing - this. - -Mon Dec 29 13:57:43 1997 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * ACE version 4.4.11, released Sun Dec 28 10:50:54 1997. - -Sat Dec 27 18:03:52 1997 Nanbor Wang - - * ace/Log_Msg.cpp (dump): Sould test if we have a valid thr_desc - before dumping the information of it. Thanks to Luca Priorelli - for pointing this out. - -Sat Dec 27 16:13:59 1997 David L. Levine - - * 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 - - * 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 - - * ace/config-osf1-4.0.h: added support for DCE threads, and merged in - config-osf1-4.0-g++.h. Thanks to Frederic Andres - 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 for figuring - out the role of the config.status file. - -Fri Dec 26 06:44:25 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Synch.i (get_thread_id,get_nesting_level): Added ACE_INLINE. - -Wed Dec 24 18:31:31 1997 Douglas C. Schmidt - - * ACE version 4.4.10, released Wed Dec 24 18:31:31 1997. - -Wed Dec 24 14:27:33 1997 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.i: Added comments for semaphore simulation. - -Tue Dec 23 19:33:59 1997 Douglas C. Schmidt - - * ACE version 4.4.9, released Tue Dec 23 19:33:59 1997. - -Tue Dec 23 19:05:32 1997 Douglas C. Schmidt - - * 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 - - * 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 . The "proper" thing to do is to include - ; however, at least on HP-UX 11, this will cause - other things to get brought in, like , 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 rather than (POSIX specifies - XTI, a superset of TLI, to have ) - - 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 - - * 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 - - * 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 - - * 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 - - * ace/OS: Added a few minor changes to Nanbor's Semaphore - emulation for WinCE. - -Mon Dec 22 11:39:19 1997 - - * OS.i (event_timedwait): Added code to handle timeouts. Thanks - to Luca Priorelli for reporting this. - -Mon Dec 22 07:03:13 1997 David L. Levine - - * ace/IOStream_Test.cpp (spawn): changed printout from - "Process_Mutex_Test-children" to "IOStream_Test-children". - -Mon Dec 22 03:08:22 1997 - - * 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 - - * 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 - - * ACE version 4.4.8, released Sun Dec 21 18:47:09 1997. - -Sun Dec 21 12:39:38 1997 Douglas C. Schmidt - - * 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 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 - 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 - - * 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 - - * 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 - 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 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 for - suggesting this. - -Sat Dec 20 15:39:00 1997 Nanbor Wang - - * tests/IOStream_Test.cpp (spawn): Changed ACE_LACKS_EXEC to - ACE_LACKS_FORK. - -Sat Dec 20 09:42:06 1997 David L. Levine - - * 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 - - * 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 - - * 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 for these fixes. - - * ace/Log_Record.i: Removed a no-op assignment to Time_Value - in the encode() method. Thanks to Patrick J. McNerthney - 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 - 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 - for reporting this. - -Fri Dec 19 09:44:28 1997 David L. Levine - - * 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 - - * ACE version 4.4.7, released Fri Dec 19 00:39:40 1997. - -Thu Dec 18 19:47:47 1997 Douglas C. Schmidt - - * 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 - 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 - for reporting this problem. - -Thu Dec 18 22:35:45 1997 David L. Levine - - * 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 - 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 - - * 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 - - * 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 - - * ACE version 4.4.6, released Thu Dec 18 00:15:02 1997. - -Wed Dec 17 19:42:38 1997 Douglas C. Schmidt - - * 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 - for reporting these and sending the fixes. - -Wed Dec 17 19:27:06 1997 Nanbor Wang - - * 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 for - noticing this. - -Tue Dec 16 22:09:42 1997 David L. Levine - - * 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 - and Thilo - 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 - - 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 - - * 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 - - * examples/IPC_SAP/FILE_SAP/client.cpp (main): Fixed "lines" to - "links." Thanks to Istvan Buki for reporting - this. - -Tue Dec 16 14:15:48 1997 - - * ace/OS.i (fstat): Fixed Dr. Schmidt's typo. - -Tue Dec 16 09:17:53 1997 David L. Levine - - * ace/Singleton.cpp (cleanup): set instance pointer to 0 after - deleting it. Thanks to Luca Priorelli - 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 - - * ACE version 4.4.5, released Mon Dec 15 22:47:24 1997. - -Mon Dec 15 20:17:10 1997 Douglas C. Schmidt - - * 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 - for pointing this out. - -Mon Dec 15 15:36:07 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (exit,wait): Changed these two functions - more for Chorus. Thanks again to Wei Chian - for providing the patch. - -Mon Dec 15 06:42:42 1997 David L. Levine - - * 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 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 - - * ace/Synch_T.h (ACE_Atmoic_Op::value_i): Explicitly return - (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 - - * 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 - for reporting this very subtle bug. - -Sun Dec 14 12:29:26 1997 Nanbor Wang - - * ace/Thread_Manager.cpp (exit,wait): Disabled thread join - functionality in Chorus. Thanks to Wei Chiang - for providing the fix. - -Fri Dec 12 21:48:38 1997 Torbjorn Lindgren - - * 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 - - * ace/Basic_Types.h: Changed _M_IX386 to _M_IX86. - -Fri Dec 12 19:41:42 1997 - - * 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 - - * 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 . - - * 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 - - * 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 . Otherwise, it looks for - it in . - - * 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 - - * ace/Strategies_T.cpp (activate_svc_handler): Changed the - parameter that was been passed into the open routine of - Svc_Handler. The that was passed to us is passed through - to open, rather than passing . Thanks to Mats Nilsson - 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 - - * 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 for reporting this. - -Thu Dec 11 13:13:17 1997 David L. Levine - - * 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 - 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 for the patches. - - * ace/IOStream_T.h: iostream fx emulation now skips whitespaces and - flushes when tied. Thanks to Ben Eng for the patch. - - * tests/IOStream_Test.cpp (server): check for double-quote instead - of newline as end-of-string character. Thanks to Ben Eng - for the patch. - - * tests/SV_Shared_Memory_Test.cpp: renamed "allocator" to - "myallocator" to avoid conflict with STL. Thanks to Ben Eng - 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 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 - - * ACE version 4.4.4, released Wed Dec 10 23:57:00 1997. - -Wed Dec 10 16:24:09 1997 - - * 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::p_. - Thanks to Stephen Coy for reporting this. - -Tue Dec 09 13:05:00 1997 - - * ace/Containers.cpp (copy_all_nodes): Added a temporary - ACE_Node pointer to get around the macro side effects. - -Sun Dec 7 10:20:46 1997 Douglas C. Schmidt - - * ace/Service_Config.cpp (parse_args): Added an appropriate macro - to switch from char * to UNICODE. Thanks to Timothy A. Brown - 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 - and Torbjorn Lindgren for their help. - -Sat Dec 06 13:30:11 1997 Douglas C. Schmidt - - * ACE version 4.4.3, released Sat Dec 06 13:30:11 1997. - -Sat Dec 6 12:02:09 1997 Douglas C. Schmidt - - * 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 - 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 - - * 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 - for reporting - this. - -Fri Dec 05 13:20:09 1997 David L. Levine - - * 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 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 - - * 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 - - * ace/Log_Msg.h (callers.): Added documentation for %I and %D - flags. Thanks to John Morey 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 - - * 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 - - * ACE version 4.4.2, released Thu Dec 04 21:20:47 1997. - -Thu Dec 4 19:45:04 1997 Douglas C. Schmidt - - * 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 - for suggesting this. - - * tests/SOCK_Connector_Test.cpp (fail_no_listener_nonblocking): - Added a check for ENETUNREACH. Thanks to Dustin Laurence - 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 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 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 - 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 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 - - * 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 - - * 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 or . - - * 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 for pointing this out. - -Wed Dec 3 21:37:47 1997 Douglas C. Schmidt - - * Added the new ACE-inheritance.ps and pdf files, which show the - class structure of ACE. Thanks to John Lindal - 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 - 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 - - * performance-tests/Synch-Benchmarks/Benchmark.cpp: Added template - instantiations for Atomic_Op. - -Wed Dec 3 10:29:58 1997 Carlos O'Ryan - - * 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 - - * 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 - - * ace/Future.cpp, - tests/{Future_Test,Reactors_Test,Reader_Writer_Test.cpp, - examples/Threads/manual_event.cpp: - moved ACE_Atomic_Op 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 - - * 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 - - * 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 - for pointing this out. - -Tue Dec 02 14:13:15 1997 Steve Huston - - * 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 for reporting - the problem. - -Tue Dec 02 06:16:39 1997 David L. Levine - - * 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 and - John Neystadt 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 for the patch. - - * ace/config-linux-kcc.h: commented out ACE_TEMPLATES_REQUIRE_SOURCE. - Thanks to Ben Eng 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 - 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 - - * 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 for pointing this out. - -Mon Dec 01 16:13:06 1997 - - * 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 - - * 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 - - * 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 - - * include/makeinclude/platform_sunos5_sunc++.GNU: added - -xildoff to LDFLAGS, to avoid occasional problems with - the incremental linker. Thanks to Hans Rohnert - 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 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 - - * ACE version 4.4.1, released Sun Nov 30 22:44:50 1997. - -Sun Nov 30 20:32:50 1997 David L. Levine - - * include/makeinclude/platform_osf1_3.2.GNU: removed -ptr option - from CCFLAGS, so the default template repository will be used. - Thanks to Dani Flexer 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 - - * 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 - - * 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 - - * 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 parameter to ACE_OS::open() - and defaults to O_CREAT|O_RDWR. - -Sat Nov 29 21:31:07 1997 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 parameter for it has been - incoporated as a member. - (close_singleton): Reset on Win32. We'll never - need to wait for unfinished threads on NT. - (ACE_Thread_Manager): Added initialization of member - . It is default to 1 (wait on exit.) - - * ace/Containers.h: Corrected erroneous comments. - -Wed Nov 26 10:33:22 1997 - - * 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 for these - suggestions. - -Sat Dec 20 14:57:30 1997 - - * All MSVC 5.0 project files: Removed unnecessary library - inclusions. Most of them are not necessary. Thanks to - Patrick J. McNerthney for suggesting - this. - -Wed Nov 26 15:49:14 1997 David L. Levine - - * 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 for reporting this. - - * include/makeinclude/platform_lynxos.GNU: added information - on necessary OS patches. - -Wed Nov 26 09:45:43 1997 Chris Cleeland - - * 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 - - * include/makeinclude/platform_osf1_3.2.GNU: updated for - OSF/1 3.2g/CXX 5.7. Thanks to Dani Flexer - for the updates. - -Tue Nov 25 01:07:39 1997 - - * 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/ChangeLog-98b b/ChangeLog-98b deleted file mode 100644 index aa39604fa28..00000000000 --- a/ChangeLog-98b +++ /dev/null @@ -1,2418 +0,0 @@ -Sun Jun 21 23:54:28 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - for reporting this. - -Sat Jun 20 14:58:21 1998 Nanbor Wang - - * 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 - - * include/makeinclude/platform_freebsd_pthread.GNU: Changed to use - -Wall to report all warnings. - - * ace/OS.cpp (thr_create): Specify 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 - - * 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 - * 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 - - * 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 - - * 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 for reporting - the above fix. - -Fri Jun 19 11:22:27 1998 David L. Levine - - * ACE version 4.5.13 released. - -Thu Jun 18 21:14:25 1998 David L. Levine - - * 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 for the diffs. - - * ace/config-irix6.x-sgic++-nothreads.h: added ACE_HAS_SGIDLADD. - Thanks to Kent Watsen 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 - - * 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 and John Birrell - . - -Thu Jun 18 19:32:30 1998 David L. Levine - - * 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 - - * 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 - - * 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 - for noticing the problem. - -Thu Jun 18 09:23:39 1998 Irfan Pyarali - - * ace/config-win32-common.h: Fixed the inclusion of winsock - related files. Thanks to Ernesto Guisado - for suggesting this. - -Wed Jun 17 22:47:50 1998 David L. Levine - - * 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 - - The following changes provide an interface for ACE programmers - of more finer control over how Win32 structured exceptions are - handled. Thanks to Detlef Becker - 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. is used to determine the "proper" action a - thread should take upon a structured exception and - 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 - - * 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 - - * tests/IOStream_Test.cpp (server): fixed sign of constant - used to check for valid double. Thanks to Mark Kettner - 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 - - * 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 - - * 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 - - * ace/FILE_Addr.cpp (operator=): Check to make sure we - NUL-terminate the memcpy'd filename correctly. Thanks to Istvan - Buki for reporting this. - -Tue Jun 16 15:43:55 1998 Nanbor Wang - - * ACE-INSTALL.html: Changed to instruct users to #include - "ace/config-win32.h" instead of "config-win32.h" directly. - Thanks to Gonzo for noticing this. - -Tue Jun 16 10:33:20 1998 David L. Levine - - * os-patches/linux-patches.html: added RedHat 5.1 success - report from Chanaka Liyanaarachchi . - - * 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 - for reporting this. - - * ACE-INSTALL.html: updated Linux RedHat info. - -Mon Jun 15 23:17:27 1998 David L. Levine - - * Makefile: added os-patches/ to distribution. - -Mon Jun 15 23:07:45 1998 David L. Levine - - * ACE version 4.5.12 released. - -Mon Jun 15 13:58:17 1998 David L. Levine - - * 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 for questioning this, and Wei - Chiang for confirming it. - - * os-patches/linux-patches.html: updated glibc info. Thanks - to Bob Scott for pointing out the - glibc-2.0.7-7 is not available from sunsite. - -Sat Jun 13 13:10:05 1998 David L. Levine - - * 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 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/OS.cpp: Made change to uname to use a different structure - if certain Borland compilers are being used. Thanks to - Valik Solorzano 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 - - * ace/XtReactor.cpp: - The notify_handler_ open method requires an extra argument. - -Wed Jun 10 14:31:55 1998 David L. Levine - - * 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 - - * 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 - - * bin/make_release: replaced ACE_wrappers-repository/ with - ACE_wrappers/ in diffs. Thanks to James Risinger - for reporting this. - -Wed Jun 10 01:31:46 1998 Gonzalo Diethelm - - * 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 - for pointing this out. - -Tue Jun 9 19:35:26 1998 Douglas C. Schmidt - - * ace/XtReactor: Integrated the new XtReactor, which should now - work for Windows NT! Thanks to Kirill Rybaltchenko - for this. - - * tests: Added the new XtReactor_Test.cpp to test the features of - the XtReactor. Thanks to Kirill Rybaltchenko - for this test. - -Tue Jun 09 16:18:54 1998 David L. Levine - - * 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 - - * ACE version 4.5.11 released. - -Tue Jun 9 14:59:15 1998 Darrell Brunsch - - * 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 - - * 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 - - * ace/ACE_Library.mak: Added Stats.cpp. - -Tue Jun 09 11:51:17 1998 Chris Gill - - * 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 - - * 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 - for reporting this bug. - -Mon Jun 8 19:15:38 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 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 - - * tests/UPIPE_SAP_Test.cpp: - Template instantiation was not using the ACE_SYNCH macros. - -Mon Jun 8 02:17:54 1998 Gonzalo Diethelm - - * 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 - - * 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 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 - - * 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 - for reporting this. - -Sat Jun 6 22:00:54 1998 Douglas C. Schmidt - - * 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 - - * ace/config-vxworks5.x.h: changes the default thread priority - from 6 to 101. - -Sat Jun 06 16:43:01 1998 David L. Levine - - * ace/Timeprobe.cpp (dtor): inserted missing "[]" in delete of - array. - -Fri Jun 5 11:53:18 1998 Darrell Brunsch - - * 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 - - * 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 - - * ACE version 4.5.10 released. - -Wed Jun 3 02:24:47 1998 Nanbor Wang - - * 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 - for suggesting this. - -Tue Jun 02 20:03:51 1998 Steve Huston - - * 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 - - * 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 for finding - this. - -Tue Jun 02 08:29:20 1998 David L. Levine - - * 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 - - * ace/config-aix-4.1.x.h: Removed ACE_HAS_THREAD_SELF. It was - causing compile failure. Thanks to Lee Nash - for helping to work this out. - -Mon Jun 01 16:19:52 1998 Steve Huston - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - 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 - - * 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 - - * 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 - - * ACE version 4.5.9 released. - -Fri May 29 16:19:34 1998 Douglas C. Schmidt - - * 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 for reporting - this. - -Fri May 29 15:33:41 1998 David L. Levine - - * performance-tests/Misc/context_switch_time.cpp: - added Synchronized Suspend-Resume Test. - -Fri May 29 14:46:49 1998 James C Hu - - * 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 - - * 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 - - * 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 - - * Added new configuration files for SCO. Thanks to Arturo for - this. - -Thu May 28 13:57:50 1998 David L. Levine - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ACE version 4.5.8 released. - -Fri May 22 07:26:06 1998 David L. Levine - - * 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 - - * 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 - - * ACE version 4.5.7 released. - -Thu May 21 17:36:37 1998 David L. Levine - - * ace/config-sunos5.6.h: added support for POSIX 199506 - extensions. Thanks to J. Russell Noseworthy - 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 - - * 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 - - * ace/ace_{dll,lib}.dsp: Added Stats.cpp into projects. - -Wed May 20 23:02:41 1998 Steve Huston - - * 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 - - * ace/config-mvs.h: enabled ACE_LACKS_CONDATTR_PSHARED and - ACE_LACKS_MUTEXATTR_PSHARED. Thanks to Chuck Gehr - 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 - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - for suggesting this. - - * ace/config-sunos5.6.h: Added an #define for - ACE_THREAD_POSIX_SEM. Thanks to Ki-hyun Yoon - 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 - - * 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 - - * ace/Service_Config.{h,i,cpp}: Added an accessor debug() for - external access to the 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 - - * tests/Wince/*.dsp: Disabled precompiled headers. They ate up - all my disk space. - - * ace/Service_Config.cpp: 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 - - * 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 - - * 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 - for suggesting this. - -Sat May 16 14:12:09 1998 Nanbor Wang - - * 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 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 now holds - ACE_Thread_Descriptor_Base which contains only the information - needed for manipulating . Thanks to Arturo - for noticing this. - -Sat May 16 03:23:35 1998 Nanbor Wang - - * 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 - - * 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 - - * 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. Thanks to Ben Eng - 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 - 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 for his through help at - recognizing and fixing these problems. - -Fri May 15 09:38:37 1998 David L. Levine - - * 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 - - * ACE version 4.5.6 released. - -Fri May 15 08:25:19 1998 David L. Levine - - * 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 - - * ACE version 4.5.5 released. - -Fri May 15 02:42:06 1998 Douglas C. Schmidt - - * ACE version 4.5.4 released. - -Thu May 14 15:28:42 1998 Douglas C. Schmidt - - * ace/config-kcc-common.h: Added the ACE_HAS_USING_KEYWORD to the - config file. Thanks to Ben Eng 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 - 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 - - * ace/OS.h: Moved the definition of ACE_Export before it is used. - -Thu May 14 13:22:46 1998 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * ACE version 4.5.3 released. - -Wed May 13 11:29:56 1998 Nanbor Wang - - * 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 - - * many *.{h,i,cpp,idl} files: inserted RCS keyword string. - -Wed May 13 00:35:25 1998 Irfan Pyarali - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Malloc.cpp (ACE_Allocator::instance): replaced dynamic - allocation of the default ACE_Allocator with allocation from - the data segment. Thanks to Ben Eng 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 - for reporting problems with the old version on Linux. - -Tue May 12 02:59:27 1998 Nanbor Wang - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Name_Proxy.cpp: Changed one last recv to recv_n. - -Mon May 11 13:14:22 1998 Chris Gill - - * 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 - - * 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 - - * ace/ACE.cpp (send_n): retry if ACE::send () fails due to - EWOULDBLOCK. Thanks to Dave Brackman - for reporting this. - - * tests/Env_Value_Test.cpp (main): check return values of - options.setenv () calls. Thanks to Bob Laferriere - 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * 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 - - * ace/Thread_Manager.h: Changed the type of lock used by - to ACE_SYNCH_MUTEX. Or else, it won't - compile on platforms that doesn't support thread. Thanks to - Woody Zenfell for reporting this. - -Fri May 08 22:29:01 1998 Nanbor Wang - - * ace/SOCK_Dgram_Mcast.cpp (subscribe): CE UNICODE related fix. - -Fri May 8 14:18:46 1998 Nanbor Wang - - * 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 - - * 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 for reporting - this. - -Fri May 08 09:47:50 1998 David L. Levine - - * ace/config-linux-common.h: only use ACE_HAS_POLL with glibc2. - Thanks to Saneyasu 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 - - * include/makeinclude/platform_hpux_gcc.GNU: Added $(PIC) to - definition of SOFLAGS. Thanks to Kirill Rybaltchenko - 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 - - * 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 - . - -Thu May 07 22:06:13 1998 Ben Eng - - * 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 - - * 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 for - reporting this. - -Thu May 07 19:08:22 1998 Douglas C. Schmidt - - * ACE version 4.5.2 released. - -Thu May 7 14:10:41 1998 Carlos O'Ryan - - * 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 - - * 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 - - * 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 - - * 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 - 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 - - * ace/config-linux-common.h: only #define - ACE_HAS_4_4BSD_SENDMSG_RECVMSG with __GLIBC__. Thanks - to Chanaka Liyanaarachchi for - reporting the lack of CMSG_DATA support on RedHat 4.2. - -Wed May 06 18:35:21 1998 Steve Huston - - * 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 - - * 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 - 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 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 - - * include/makeinclude/platform_sco5.0.0-fsu-pthread.GNU: Added a - platform config file courtesy of Arturo Montes - . - -Tue May 05 08:35:18 1998 David L. Levine - - * ace/config-irix6.x-sgic++-nothreads.h: updated the determination - of ACE_SIZEOF_LONG_DOUBLE. Thanks to Bob Laferriere - 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 for - tracking down the cause of mysterious link failures. - -Tue May 05 02:15:49 1998 Nanbor Wang - - * 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 - - * 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 - - * ace/config-sunos5.6.h: Removed a mysterious "30" at the end of - an #undef. Thanks to J. Russell Noseworthy - for reporting this problem. - -Mon May 04 08:49:09 1998 David L. Levine - - * 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 - - * 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 - for reporting this. - -Sun May 03 01:58:47 1998 Douglas C. Schmidt - - * ACE version 4.5.1 released. - -Sat May 2 14:35:04 1998 Douglas C. Schmidt - - * 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 for - motivating this. - -Sat May 02 Alexander Babu Arulanthu - - * 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 - - * 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 - - * ace/Addr: Made the destructor for ACE_Addr virtual so that - subclasses can be deleted correctly. Thanks to Wei Chiang - for reporting this. - - * ace: Added Arg_Shifter from TAO and renamed it to - ACE_Arg_Shifter. - - * ace/IOStream_T.i (recv_n): ACE_IOStream::eof (void) had - a subtle bug if it is called when a get operation (>>) has not - failed. Thanks to James CE Johnson 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 - for reporting this. - - * ace/Timer_Queue_Adapters.cpp: Rather than returning the result - of schedule_ualarm(), the - ACE_Async_Timer_Queue_Adapter::schedule() method should - return the timer id. Thanks to James Garrison - 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 for this - suggestion. - -Fri May 01 17:52:32 1998 Nanbor Wang - - * ace/ACE_Library.mak: - * ace/ace_{dll,lib}.dsp: Added Arg_Shifter.cpp into project. - -Fri May 01 14:09:21 1998 Steve Huston - - * 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 - - * 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 - - * 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 - - * 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 - - * 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/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 - ----------------------------------------- -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 m( this->lock_ )); -> -> if( cond ) -> b(); -> } -> -> void b() -> { -> MT( Mutex_Block 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 > m( this->lock_ )); - b (); - } - - void b() - { - MT( Guard > 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 m( this->lock_ )); - b_i (); - } - - void b_i() - { - if( cond ) - a_i(); - } - - void a_i() - { - if( cond ) - b_i(); - } - - void a() - { - MT( Guard 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 m( this->lock_ )); - m.release (); - a (); - m.acquire (); - } - - void a() - { - MT( Guard 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 -: - -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; - template ostream& operator << (ostream&, const A&); - - 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; - - 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 *) 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. 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 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; - else if (use_sockets) - this->my_ipc_ = new ACE_SAP_IPC; - 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 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 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 a9199554d43..00000000000 --- a/Makefile +++ /dev/null @@ -1,144 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE toolkit libraries, tests, and -# applications -#---------------------------------------------------------------------------- - -#### 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 -#### -#### To see what make release* would do without actually doing it, add -#### "CHECK=-n" to the invocation. - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README \ - VERSION - -DIRS = ace \ - netsvcs \ - tests \ - apps \ - examples \ - performance-tests - -CLONE = Makefile \ - ace \ - apps \ - bin \ - etc \ - examples \ - include \ - netsvcs \ - performance-tests \ - 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 - -# 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 - -CONTROLLED_FILES = ACE-INSTALL.html \ - ACE-categories \ - ACE-install.sh \ - ACE-lessons.html \ - ASNMP \ - BIBLIOGRAPHY \ - ChangeLog \ - ChangeLog-97a \ - ChangeLog-96b \ - ChangeLog-96a \ - ChangeLog-95 \ - ChangeLog-94 \ - ChangeLog-93 \ - FAQ \ - Makefile \ - README \ - STL \ - VERSION \ - ace \ - apps \ - bin \ - etc \ - examples \ - include \ - netsvcs \ - os-patches \ - performance-tests \ - tests \ - WindozeCE - -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/STL \ - ACE_wrappers/VERSION \ - ACE_wrappers/ace \ - ACE_wrappers/include \ - ACE_wrappers/netsvcs \ - ACE_wrappers/tests - - -.PHONY: release releasetao releaseall - -REL = beta -CHECK = - -#### The release target creates the ACE (only) kit. -release: ACE-INSTALL - @$(ACE_ROOT)/bin/make_release $(CHECK) -k ace -t $(REL) \ - -c "$(CONTROLLED_FILES)" -r "$(RELEASE_FILES)" \ - -l "$(RELEASE_LIB_FILES)" - -#### 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 $(CHECK) -k ace+tao -t $(REL) \ - -c "$(CONTROLLED_FILES)" -r "$(ALL_RELEASE_FILES)" - -#### 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: release - @cd TAO && make release REL=$(REL) - -ACE-INSTALL: ACE-INSTALL.html - @lynx -dump $< > $@ diff --git a/README b/README deleted file mode 100644 index 4c29d8b8eaf..00000000000 --- a/README +++ /dev/null @@ -1,582 +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 and 4.x and Win95), most versions of UNIX (e.g., SunOS 4.x, -Solaris 2.x, SGI IRIX 5.x and 6.x, HP-UX 9.x and 10.x, OSF/1 -a.k.a. DEC UNIX, AIX 4.x, Linux, SCO, UnixWare, and FreeBSD), VxWorks, -Chorus, 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 - ----------------------------------------- - -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 me. - -ACE MAILING LIST AND NEWSGROUP - -A mailing list 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. - -ACKNOWLEDGEMENTS - -ACE has been deeply influenced and improved by the following members -of my research group at Washington University: - -Alexander Babu Arulanthu -Darrell Brunsch -Chris Cleeland -Sergio Flores-Gaitan -Chris Gill -Aniruddha Gokhale -Tim Harrison -James Hu -Prashant Jain -Michael Kircher -David Levine -Carlos O'Ryan -Irfan Pyarali -Marina Spivak -Nagarajan Surendran -Nanbor Wang -Seth Widoff - -I would also like to thank all the following people who have also -contributed to ACE and TAO over the years: - -Paul Stephenson -Olaf Kruger -Ed Brown -Lee Baker -Alex Ranous -Mark Patton -Steffen Winther Sorensen for -Troy Warner -Stacy Mahlon -Charles Eads -Mark Frutig -Todd Hoff -George -Brad Needham -Leslee Xu -Detlef Becker -Bruce Worden -Chris Tarr -Bill Sears -Greg Lavendar -Steve Warwick -Mats Sundvall -Andreas Ueltschi -Nigel Hooke -Medhi Tabatabai -Stuart Powell -Bin Mu -Andrew McGowan -Ken Konecki -John P. Hearn -Giang Hoang Nguyen -Carlos Garcia Braschi -Jam Hamidi -Eric Vaughan -Karl-Heinz Dorn -Steve Ritter -Chandra Venkatapathy -Matt Stevens -Bob Vistica -David Trumble -John Morey -George Reynolds -Hans Rohnert -Alex V. Maclinovsky -Todd Blanchard -Rob Clairmont -Christian Millour -Neil Cohen -Dieter Quehl -Reginald S. Perry -James Morris -Mark Seaborn -Phil Brooks -E. Jason Scheck -Daniel Proulx -Bill Tang -John Huchinson -Jack Erickson -Byron Walton -Bill Lear -Mark Zusman -Aurelio Nocerino -Walt Akers -Greg Baker -Alexandre Karev -Pramod Kumar Singh -Bryon Rigg -Brad Brown -Patty Genualdi -Eshel Liran -Mick Adams -Chris Eich -Mike Flinn -Audun Tornquist -Sandeep Joshi -Kirk Sinnard <1764@mn.lawson.lawson.com> -Bernd Hofner -Craig Perras -Kirk Sinnard -Matthew Newhook -Gerolf Wendland -Phil Mesnier -Ross Dargahi -Richard Orr -Rich Ryan -Jan Rychter -Tom Marrs <0002104588@mcimail.com> -Bob Olson -Jean-Francois Ripouteau -Ajit Sagar -Ashish Singhai -David Sames -Gonzalo Diethelm -Raj -Darrin -Steve Weismuller -Eric C. Newton -Andres Kruse -Ramesh Nagabushnam -Antonio Tortorici -Nigel Lowe -Tom Leith -Michael Fortinsky -Marco Sommerau -Gary Salsbery -Eric Beser -Alfred Keller -John Lu -James Mansion -Jesper S. M|ller -Chris Lahey -Michael R"uger -Istvan Buki -Greg Wilson -Garrett Conaty -Brad Flood -Marius Kjeldahl -Steve Huston -Eugene K. Plaude -Joseph DeAngelis -Kim Gillies -Luca Priorelli -Alan Stewart -Hani Yakan -William L. Gerecke -Craig Johnston -Pierre-Yves Duval -Rochi Febo Dommarco -Jonathan Biggar -Scott Shupe -Chuck Gehr -Avraham Nash -Padhu Ramalingam -Jay Denkberg -Ayman Farahat -Tilo Christ -Ari Erev -Hamutal Yanay -Vital Aza -Alex Villazon -David Artus -Todd Barkalow -Alexander Smundak -Thilo Kielmann -Matthias Kerkhoff -Fred LaBar -Hanan Herzog -Eric Parker -James Michael Dwyer -Arun Katkere -Bob Dunmire -Sandro Doro -Robert Lyng < -Phil Logan -John Cosby -Wayne Vucenic -Harry Gunnarsson -James CE Johnson -Samuel_Bercovici -Per Andersson -Anthony McConnell -Mark Rabotnikov -John Bossom -Rino Simioni -Slawomir Kuzniar -Rob Jordan -Michael Maxie -John Cosby -Nigel Owen -Jorn Jensen -Paul Roman -Dave Mayerhoefer -Bert Craytor -Joey Zhu -Arthur J. Lewis -Michael R. MacFaden -Eugene R. Somdahl -Paul Han -Jeff Morgan -Arturo Montes -Elliot Lau -Mark Wright -Michael Newton -Kumar Neelakantan -Scott Halstead -Jean-Marc Strauss -Adam Porter -Hakan Kallberg -Eric Dean Russell -Daniel Montalibet -Norbert Rapp -Ganesh Pai -Berni Merkle -Tom Wright -Torbjorn Lindgren -Mike Bernat -Brian Mendel -Jeremy Buch -Kevin Boyle -Kevin Martindale -Luis Lopes -Adrian Salt -Hongbo Xu -Michael Hartman -Tom Dobridge -Rich Christy -Satoshi Ueno -Eugene R. Somdahl -Robert Head -Ivan Murphy -Shankar Krishnamoorthy -Reza Roodsari -Jim Crossley -Johannes Gutleber -Marina Spivak -Yigong Liu -Erik Urdang -Mike Schweiger -Anthony Mutiso -Jeff R. Hayes -David Brackman -Dave Moore -Joseph Cross -Cherif Sleiman -Stefan Ericsson -Wei Chiang -Thanh Ma -Oleg Krivosheev -Stephen Coy -Bob Laferriere -Satheesh Kumar MG -Karen Amestoy -Jeff Richard -Samuel Melamed -Vladimir Schipunov -Felix Popp -Billy Quinn -Michael McKnight -Huiying Shen -Alex Chan -Aaron Valdivia -Edan Ayal -Jeffrey Peterson -Neil Lavelle -Steven Wohlever -Manojkumar Acharya -Evgeny Beskrovny -Kirill Rybaltchenko -Laura Paterno -Ben Eng -Mike Kamrad -Marios Zikos -Mark L Boriack -Caleb Epstein -Valik Solrzano Barboza -John Connett -Tom Arbuckle -Stephen Henry -Dani Flexer -Michael Hoffman -John Lindal -Dustin Laurence -Ernie Makris -Timothy A. Brown -Patrick J. McNerthney -Lori Anderson -Erik Margraf -Bryan Doerr -Adam Miller -Thomas Jordan -Keith Nicewarner -Frederic Andres -Achint Sandhu -Mitch Kuninsky -Alex Chan -Jeff Hellzen -Thomas Venturella -Philippe O'Reilly -Stan Leeson -Richard Keizer -Edgar Villanueva -Oliver Kellogg -Dave Meyer -Thomas Hampson -Jay Kistler -Scott Snyder -Mark Evans -Todd Pack -Mark Maris -Jason Katz -Jim Penny -Chris Ryan -J. Russell Noseworthy -Carol Sanders -Jerry Bickle -Paul von Behren -Sudish Joseph -Loren Rittle -Alexander Ovsiankin -Fred Kuhns -Ravi Nagabhyru -Tom Brusehaver -Dave Tallman -Monish Rajpal -Garry Brother -Andreas Schuelke -Ganapathi -James Garrison -Brad Walton -Paul Motuzenko -Kurt Sussman -Rob Thornton -Chanaka Liyanaarachchi -Saneyasu -Steve Kay -Greg White -Ki-hyun Yoon -Umar Syyid -Bill Fulton -Amancio Hasty -Zoran Ivanovic -Sree Oggu -James Risinger -Leo Modica -Bob Scott -Mark Kettner -Kent Watsen -Chris Healey - -I would particularly like to thank Paul Stephenson, who worked with me -at Ericsson and is now at ObjectSpace. 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 , -fellow heavy metal head, for fulfilling his quest to get ACE to -compile with GCC! - -In conclusion, my goal is to see ACE 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, I'd like to hear about it. - - Thanks, - - Douglas C. Schmidt - schmidt@cs.wustl.edu diff --git a/STL/ACE_Changes b/STL/ACE_Changes deleted file mode 100644 index 902fb94c94c..00000000000 --- a/STL/ACE_Changes +++ /dev/null @@ -1,53 +0,0 @@ -This version of STL was obtained from -http://www.rahul.net/terris/. This is a modified version of the -implementation that comes with VC++4.0. Please see readme2.stl for -details. - -The following modification have been made for compilation with VC++4.x - -________________________________________ - -vector.h (line 85) -________________________________________ - - - /* - * This is cause the VC++ compiler sucks - * and does not recognize nested classes properly - * - */ -#if !defined (VC_PLUS_PLUS_NESTED_CLASS_PROBLEM) - vector(size_type n, const T& value = T()) { - start = static_allocator.allocate(n); - uninitialized_fill_n(start, n, value); - finish = start + n; - end_of_storage = finish; - } -#endif /* VC_PLUS_PLUS_NESTED_CLASS_PROBLEM */ - - -________________________________________ - -bstring.h (line 1102) -________________________________________ - - - /* - * This should be correctly scoped - * - * if (cap == ::reserve) - */ - - if (cap == std::reserve) - { - len = 0; - res = size; - ptr = new charT [res]; - } - /* - * This should be correctly scoped - * - * else if ((cap == ::default_size) && (size != NPOS)) - */ - - else if ((cap == std::default_size) && (size != NPOS)) diff --git a/STL/ChangeLog b/STL/ChangeLog deleted file mode 100644 index e1a9c2196ab..00000000000 --- a/STL/ChangeLog +++ /dev/null @@ -1,50 +0,0 @@ -Fri Nov 21 01:16:49 1997 - - * bstring.h: Removed strange looking template specialization. - -Thu Apr 03 08:58:05 1997 David L. Levine - - * STL/bool.h: added /**/ to #include . Thanks to - Matthias Kerkhoff for reporting this. - -Sat Jan 25 11:34:56 1997 Irfan Pyarali - - * STL/bstring.h: Fixed typo. - -Mon Jan 20 10:04:11 1997 David L. Levine - - * algobase.h: wrapped min/max templates with #if ! defined (VXWORKS) - because it already has them. - - * bstring.h: wrapped basic_string template instantiation - so that it's not used with GreenHills compiler. - -Tue Jan 14 15:46:31 1997 David L. Levine - - * tree.h (iterator () and const_iterator ()): added cast - of NULL to link_type before assigning it to NIL; - GreenHills 1.8.8 fails to compile without it. - -Tue Dec 10 20:14:56 1996 Irfan Pyarali - - * bstring.h: Fixed string_char_baggage::copy() so that the pointer - are incremented correctly. - -Fri Dec 6 02:08:35 1996 Irfan Pyarali - - * bool.h: Made the defines for bool, true, and false conditional. - -Wed Dec 4 00:17:11 1996 Irfan Pyarali - - * vector.h: Modified to remove the default argument to the - constructor. This avoids the VC++4.0 compiler from failing to - deal correctly with nested classes. - - * bstring.h: Modified access to reserve and default_size to - correctly use the std namespace. - - * This version of STL was obtained from - http://www.rahul.net/terris/. This is a modified version of the - implementation that comes with VC++4.0. Please see README - for details. - diff --git a/STL/README b/STL/README deleted file mode 100644 index 5132bc1189b..00000000000 --- a/STL/README +++ /dev/null @@ -1,272 +0,0 @@ -STL2.ZIP - -Standard Template Library for Visual C++ 4.0 -and Related Classes - -Revised 10/15/96 - Bug fixes and change to bit_vector. - -This version supports DLLs and threading. You must use critical -sections around code that uses the same container in different -threads. These features come at a price -- since memory -usage is not optimal, this code may use more memory and -may be slower. - -+ General strategy: Remove all statics except the - static allocator objects. -+ Vectors were not affected. -+ Major changes made to tree.h -+ Stability: Very stable. - -This code should be considered for experimental use only. There -are still statics lurking in some functions; these functions -are not thread-safe. - -------------------------- -Fix for bit_vector -------------------------- -This version also has a fix for bit_vector, which doesn't really -work with VC++ 4.x. Please include bvector.cpp in your -project if you use bit_vector. This fixes the linker errors -that occur if you use bector.h in multiple .cpp files. - -------------------------- -Disclaimer -------------------------- -Code is provided without warranty, liability, or technical support. - -STL.H and PTR.H are freely distributable and can be -modified in any way. - --------------------------------- -STRING.H does not compile. --------------------------------- - -"D. Pirzadeh" Explains how to fix: - -First, I got compile errors in "bstring.h" -and changed it as follows to correct: - line 1104 "::reserve" -> "std::reserve" - line 1110 "::default_size" -> "std::default_size" - -Also, I got an INTERNAL COMPILER ERROR with Visual C++ v4.0 when I did the fol- -lowing: - class xyz : public std::string { } - -I fixed it with: - typedef std::string XyzString; - class xyz : public XyzString { } - --------------------------------- -Changes made to STL distribution --------------------------------- - -These files were modified from the STL distribution shipped with -Microsoft Visual C++ 4.0. The files here are a complete, -working version of the STL. These files have been tested with -MFC applications. - -Changes were made to practically all header files. Look for -comments like: - -*Added by... -*Changed by... - ------------------- -Usage Instructions ------------------- - -Set the preprocessor variable NOMINMAX. - -As Microsoft recommends, the STL is compiled in the std namespace. - -When including these files, do **not** do this: - - namespace std - { - #include - } - -Instead, do this: - - #include - -Recommended usage: - - First, include: - - #include - #include - #include - - Then include the STL header files. - -------------------- -Support for CString -------------------- -The stl.h file contains code written by me. The file contains -operators that will allow you to use CString objects with STL -containers and functions. - -!!!! CString will not work with STL unless you include !!!! - -------------------------------------------- -Helper functions for pointers-in-containers -------------------------------------------- -There is a file called stl.h which contains two functions: - SequenceDelete - MapDelete -These functions send "delete" to all of the objects in a container. - -If you don't like this approach, you can use a supplied "pointer -wrapper" class. - -There is a file called ptr.h which contains a class called Ptr -that can be used exactly like a pointer. The object has a pointer -inside it that points to an object of any class. When a Ptr object -is deleted, "delete" is sent to its underlying pointer. Ptr can be -used with any STL container, as it has a copy constructor and -assignment operator, which transfers "ownership" of the pointer from -the source object to the destination object. Ptr is from the book -Design Patterns by Gamma et al -- see the Proxy pattern. - -The Ptr class makes memory leaks impossible, because it deletes -objects automatically when the container is deleted, or when -functions like "delete" are used. - -Example: - - This is a vector of CStrings: - - std::vector< Ptr > StringVector; - - StringVector.push_back( Ptr( new CString( "hello" ) ) ); - StringVector.push_back( Ptr( new CString( "This is another string" ) ) ); - ------------------------- -Common Problems with STL ------------------------- - -1) Compiler error: != is ambiguous - - Solution: put the following line at the beginning of the method - that caused the error: - - using namespace std; - -2) When using maps, the debugger crashes. - - This is because symbols for maps (actually, for the "pair") - get truncated to 255 characters. Solution: Turn off the - variables window in the debugger. Don't try to look at - a symbol that has been truncated. This is not an STL-specific - bug -- It's a bug in the debugger. - -3) All sorts of compile errors in STL header files - - Make sure the preprocessor variable NOMINMAX is defined - - -4) Compiler errors about "operator < is not available", etc. - The class involved has global comparison operators. - - Solution: - Write "routers" in the std namespace to the global namespace. - Example (see also stl.h - this is how CString is able - to work with STL): - - namespace std - { - BOOL operator < ( const MyClass & rLhs, - const AnotherClass & rRhs ) - { - return ::operator < ( rLhs, rRhs ); - } - } - - See also 5. - -5) When you use find() or another algorithm, the compiler - complains that it cannot find the == or < operators. - -If your code compiles without any error messages, then disregard -this section. However, if you get errors like "cannot convert -first argument from const class X" then read on. - -I am assuming that your code is calling an STL algorithm like -std::sort() or std::find(). If you're not, I can't help -you. - -There is apparently a bug in the Microsoft compiler regarding -namespaces. Namespaces cannot locate global -functions that reside in the global namespace. For example, -the binary == operator. - -Maybe this is a bug, maybe it isn't. This is not clear -to me. However, I do know what works and have tried many other -approaches that do not work. If you have a better solution I -would appreciate it if you could let me know about it. - -So, if you declare your own class and want to use algorithms -like find() on an STL container, you have two choices: - -(1) Declare == as a member function. -(2) Declare global operators == and !=. - -(1) simply works. There will come a time, however, when (1) -won't satisfy your needs. If A == B, then B == A. You can't -do this using member functions if A and B are from different -classes. - -If you choose (2), you must add the != operator to the std -namespace. There are two ways to do this. First, you can do -this: - namespace std - { - inline operator != ( const MyClass &rLhs, const MyClass &rRhs ) - { - return ::operator != ( rLhs, rRhs ); - } - } -This "routes" != from the std namespace to the global namespace. - -Note that ( lhs != rhs ) can be derived from the == operator -as !( lhs == rhs ). There is a macro in STL.H, -STL_DECLARE_GLOBAL_NE, that does this derivation. -This derivation will not work when for whatever reason, !(lhs == rhs) -is not the same as ( lhs != rhs ). - -The following example shows what you have to do for find(). Other -algorithms require you to declare <, <=, and >= too. See the -macros STL_DECLARE_GLOBAL_GE, STL_DECLARE_GLOBAL_LT, and -STL_GLOBAL_LE. These macros derive new comparison operators -from "operator <( const T&, const T& )". - -class MyClass -{ - public: - - int units; - CString description; -}; - -// We want to be able to test two MyClass objects against each other -// in STL. Need to create a global operator for this purpose. -// Since we use find(), we need to declare not-equal too. -bool operator == ( const MyClass &, const MyClass & ); -STL_DECLARE_GLOBAL_NE( MyClass, MyClass ) - -// These operators test for a matching description. -// We do A == B and B == A to be consistent. -bool operator == ( const MyClass&, const CString & ); -bool operator == ( const CString&, const MyClass & ); -STL_DECLARE_GLOBAL_NE( MyClass, CString ) -STL_DECLARE_GLOBAL_NE( CString, MyClass ) - -6. Errors when creating vectors that have vectors and deques - that have deques. - - Solution: Provide atruments to the constructor. - - std::vector< std::vector > - TwoDimensional( 0, std::vector() ); - diff --git a/STL/algo.h b/STL/algo.h deleted file mode 100644 index 3e91b1375a3..00000000000 --- a/STL/algo.h +++ /dev/null @@ -1,2593 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef ALGO_H -#define ALGO_H - -#include -#include -#include -#include -#include -#include -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -inline T __median(T a, T b, T c) { - if (a < b) - if (b < c) - return b; - else if (a < c) - return c; - else - return a; - else if (a < c) - return a; - else if (b < c) - return c; - else - return b; -} - -template -inline T __median(T a, T b, T c, Compare comp) { - if (comp(a, b)) - if (comp(b, c)) - return b; - else if (comp(a, c)) - return c; - else - return a; - else if (comp(a, c)) - return a; - else if (comp(b, c)) - return c; - else - return b; -} - -template -Function for_each(InputIterator first, InputIterator last, Function f) { - while (first != last) f(*first++); - return f; -} - -template -InputIterator find(InputIterator first, InputIterator last, const T& value) { - while (first != last && *first != value) ++first; - return first; -} - -template -InputIterator find_if(InputIterator first, InputIterator last, - Predicate pred) { - while (first != last && !pred(*first)) ++first; - return first; -} - -template -InputIterator adjacent_find(InputIterator first, InputIterator last) { - if (first == last) return last; - InputIterator next = first; - while(++next != last) { - if (*first == *next) return first; - first = next; - } - return last; -} - -template -InputIterator adjacent_find(InputIterator first, InputIterator last, - BinaryPredicate binary_pred) { - if (first == last) return last; - InputIterator next = first; - while(++next != last) { - if (binary_pred(*first, *next)) return first; - first = next; - } - return last; -} - -template -void count(InputIterator first, InputIterator last, const T& value, - Size& n) { - while (first != last) - if (*first++ == value) ++n; -} - -template -void count_if(InputIterator first, InputIterator last, Predicate pred, - Size& n) { - while (first != last) - if (pred(*first++)) ++n; -} - -template -ForwardIterator1 __search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - Distance*) { - Distance d1 = 0; - distance(first1, last1, d1); - Distance d2 = 0; - distance(first2, last2, d2); - - if (d1 < d2) return last1; - - ForwardIterator1 current1 = first1; - ForwardIterator2 current2 = first2; - - while (current2 != last2) - if (*current1++ != *current2++) - if (d1-- == d2) - return last1; - else { - current1 = ++first1; - current2 = first2; - } - return (current2 == last2) ? first1 : last1; -} - -template -inline ForwardIterator1 search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2) -{ - return __search(first1, last1, first2, last2, distance_type(first1)); -} - -template -ForwardIterator1 __search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate binary_pred, Distance*) { - Distance d1 = 0; - distance(first1, last1, d1); - Distance d2 = 0; - distance(first2, last2, d2); - - if (d1 < d2) return last1; - - ForwardIterator1 current1 = first1; - ForwardIterator2 current2 = first2; - - while (current2 != last2) - if (!binary_pred(*current1++, *current2++)) - if (d1-- == d2) - return last1; - else { - current1 = ++first1; - current2 = first2; - } - return (current2 == last2) ? first1 : last1; -} - -template -inline ForwardIterator1 search(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2, ForwardIterator2 last2, - BinaryPredicate binary_pred) { - return __search(first1, last1, first2, last2, binary_pred, - distance_type(first1)); -} - -template -ForwardIterator2 swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, - ForwardIterator2 first2) { - while (first1 != last1) iter_swap(first1++, first2++); - return first2; -} - -template -OutputIterator transform(InputIterator first, InputIterator last, - OutputIterator result, UnaryOperation op) { - while (first != last) *result++ = op(*first++); - return result; -} - -template -OutputIterator transform(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, OutputIterator result, - BinaryOperation binary_op) { - while (first1 != last1) *result++ = binary_op(*first1++, *first2++); - return result; -} - -template -void replace(ForwardIterator first, ForwardIterator last, const T& old_value, - const T& new_value) { - while (first != last) { - if (*first == old_value) *first = new_value; - ++first; - } -} - -template -void replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, - const T& new_value) { - while (first != last) { - if (pred(*first)) *first = new_value; - ++first; - } -} - -template -OutputIterator replace_copy(InputIterator first, InputIterator last, - OutputIterator result, const T& old_value, - const T& new_value) { - while (first != last) { - *result++ = *first == old_value ? new_value : *first; - ++first; - } - return result; -} - -template -OutputIterator replace_copy_if(Iterator first, Iterator last, - OutputIterator result, Predicate pred, - const T& new_value) { - while (first != last) { - *result++ = pred(*first) ? new_value : *first; - ++first; - } - return result; -} - -template -void generate(ForwardIterator first, ForwardIterator last, Generator gen) { - while (first != last) *first++ = gen(); -} - -template -void generate_n(OutputIterator first, Size n, Generator gen) { - while (n-- > 0) *first++ = gen(); -} - -template -OutputIterator remove_copy(InputIterator first, InputIterator last, - OutputIterator result, const T& value) { - while (first != last) { - if (*first != value) *result++ = *first; - ++first; - } - return result; -} - -template -OutputIterator remove_copy_if(InputIterator first, InputIterator last, - OutputIterator result, Predicate pred) { - while (first != last) { - if (!pred(*first)) *result++ = *first; - ++first; - } - return result; -} - -template -ForwardIterator remove(ForwardIterator first, ForwardIterator last, - const T& value) { - first = find(first, last, value); - ForwardIterator next = first; - return first == last ? first : remove_copy(++next, last, first, value); -} - -template -ForwardIterator remove_if(ForwardIterator first, ForwardIterator last, - Predicate pred) { - first = find_if(first, last, pred); - ForwardIterator next = first; - return first == last ? first : remove_copy_if(++next, last, first, pred); -} - -template -ForwardIterator __unique_copy(InputIterator first, InputIterator last, - ForwardIterator result, forward_iterator_tag) { - *result = *first; - while (++first != last) - if (*result != *first) *++result = *first; - return ++result; -} - -template -inline BidirectionalIterator __unique_copy(InputIterator first, - InputIterator last, - BidirectionalIterator result, - bidirectional_iterator_tag) { - return __unique_copy(first, last, result, forward_iterator_tag()); -} - -template -inline RandomAccessIterator __unique_copy(InputIterator first, - InputIterator last, - RandomAccessIterator result, - random_access_iterator_tag) { - return __unique_copy(first, last, result, forward_iterator_tag()); -} - -template -OutputIterator __unique_copy(InputIterator first, InputIterator last, - OutputIterator result, T*) { - T value = *first; - *result = value; - while (++first != last) - if (value != *first) { - value = *first; - *++result = value; - } - return ++result; -} - -template -inline OutputIterator __unique_copy(InputIterator first, InputIterator last, - OutputIterator result, - output_iterator_tag) { - return __unique_copy(first, last, result, value_type(first)); -} - -template -inline OutputIterator unique_copy(InputIterator first, InputIterator last, - OutputIterator result) { - if (first == last) return result; - return __unique_copy(first, last, result, iterator_category(result)); -} -template -ForwardIterator __unique_copy(InputIterator first, InputIterator last, - ForwardIterator result, - BinaryPredicate binary_pred, - forward_iterator_tag) { - *result = *first; - while (++first != last) - if (!binary_pred(*result, *first)) *++result = *first; - return ++result; -} - -template -inline BidirectionalIterator __unique_copy(InputIterator first, - InputIterator last, - BidirectionalIterator result, - BinaryPredicate binary_pred, - bidirectional_iterator_tag) { - return __unique_copy(first, last, result, binary_pred, - forward_iterator_tag()); -} - -template -inline RandomAccessIterator __unique_copy(InputIterator first, - InputIterator last, - RandomAccessIterator result, - BinaryPredicate binary_pred, - random_access_iterator_tag) { - return __unique_copy(first, last, result, binary_pred, - forward_iterator_tag()); -} - -template -OutputIterator __unique_copy(InputIterator first, InputIterator last, - OutputIterator result, - BinaryPredicate binary_pred, T*) { - T value = *first; - *result = value; - while (++first != last) - if (!binary_pred(value, *first)) { - value = *first; - *++result = value; - } - return ++result; -} - -template -inline OutputIterator __unique_copy(InputIterator first, InputIterator last, - OutputIterator result, - BinaryPredicate binary_pred, - output_iterator_tag) { - return __unique_copy(first, last, result, binary_pred, value_type(first)); -} - -template -inline OutputIterator unique_copy(InputIterator first, InputIterator last, - OutputIterator result, - BinaryPredicate binary_pred) { - if (first == last) return result; - return __unique_copy(first, last, result, binary_pred, - iterator_category(result)); -} - -template -ForwardIterator unique(ForwardIterator first, ForwardIterator last) { - first = adjacent_find(first, last); - return unique_copy(first, last, first); -} - -template -ForwardIterator unique(ForwardIterator first, ForwardIterator last, - BinaryPredicate binary_pred) { - first = adjacent_find(first, last, binary_pred); - return unique_copy(first, last, first, binary_pred); -} - -template -void __reverse(BidirectionalIterator first, BidirectionalIterator last, - bidirectional_iterator_tag) { - while (true) - if (first == last || first == --last) - return; - else - iter_swap(first++, last); -} - -template -void __reverse(RandomAccessIterator first, RandomAccessIterator last, - random_access_iterator_tag) { - while (first < last) iter_swap(first++, --last); -} - -template -inline void reverse(BidirectionalIterator first, BidirectionalIterator last) { - __reverse(first, last, iterator_category(first)); -} - -template -OutputIterator reverse_copy(BidirectionalIterator first, - BidirectionalIterator last, - OutputIterator result) { - while (first != last) *result++ = *--last; - return result; -} - -template -void __rotate(ForwardIterator first, ForwardIterator middle, - ForwardIterator last, Distance*, forward_iterator_tag) { - for (ForwardIterator i = middle; ;) { - iter_swap(first++, i++); - if (first == middle) { - if (i == last) return; - middle = i; - } else if (i == last) - i = middle; - } -} - -template -void __rotate(BidirectionalIterator first, BidirectionalIterator middle, - BidirectionalIterator last, Distance*, - bidirectional_iterator_tag) { - reverse(first, middle); - reverse(middle, last); - reverse(first, last); -} - -template -EuclideanRingElement __gcd(EuclideanRingElement m, EuclideanRingElement n) -{ - while (n != 0) { - EuclideanRingElement t = m % n; - m = n; - n = t; - } - return m; -} - -template -void __rotate_cycle(RandomAccessIterator first, RandomAccessIterator last, - RandomAccessIterator initial, Distance shift, T*) { - T value = *initial; - RandomAccessIterator ptr1 = initial; - RandomAccessIterator ptr2 = ptr1 + shift; - while (ptr2 != initial) { - *ptr1 = *ptr2; - ptr1 = ptr2; - if (last - ptr2 > shift) - ptr2 += shift; - else - ptr2 = first + (shift - (last - ptr2)); - } - *ptr1 = value; -} - -template -void __rotate(RandomAccessIterator first, RandomAccessIterator middle, - RandomAccessIterator last, Distance*, - random_access_iterator_tag) { - Distance n = __gcd(last - first, middle - first); - while (n--) - __rotate_cycle(first, last, first + n, middle - first, - value_type(first)); -} - -template -inline void rotate(ForwardIterator first, ForwardIterator middle, - ForwardIterator last) { - if (first == middle || middle == last) return; - __rotate(first, middle, last, distance_type(first), - iterator_category(first)); -} - -template -OutputIterator rotate_copy(ForwardIterator first, ForwardIterator middle, - ForwardIterator last, OutputIterator result) { - return copy(first, middle, copy(middle, last, result)); -} - -unsigned long __long_random(unsigned long); - -template -void __random_shuffle(RandomAccessIterator first, RandomAccessIterator last, - Distance*) { - if (first == last) return; - for (RandomAccessIterator i = first + 1; i != last; ++i) - iter_swap(i, first + Distance(__long_random((i - first) + 1))); -} - -template -inline void random_shuffle(RandomAccessIterator first, - RandomAccessIterator last) { - __random_shuffle(first, last, distance_type(first)); -} - -template -void random_shuffle(RandomAccessIterator first, RandomAccessIterator last, - RandomNumberGenerator& rand) { - if (first == last) return; - for (RandomAccessIterator i = first + 1; i != last; ++i) - iter_swap(i, first + rand((i - first) + 1)); -} - -template -BidirectionalIterator partition(BidirectionalIterator first, - BidirectionalIterator last, Predicate pred) { - while (true) { - while (true) - if (first == last) - return first; - else if (pred(*first)) - ++first; - else - break; - --last; - while (true) - if (first == last) - return first; - else if (!pred(*last)) - --last; - else - break; - iter_swap(first, last); - ++first; - } -} - -template -ForwardIterator __inplace_stable_partition(ForwardIterator first, - ForwardIterator last, - Predicate pred, Distance len) { - if (len == 1) return pred(*first) ? last : first; - ForwardIterator middle = first; - advance(middle, len / 2); - ForwardIterator - first_cut = __inplace_stable_partition(first, middle, pred, len / 2); - ForwardIterator - second_cut = __inplace_stable_partition(middle, last, pred, - len - len / 2); - rotate(first_cut, middle, second_cut); - len = 0; - distance(middle, second_cut, len); - advance(first_cut, len); - return first_cut; -} - -template -ForwardIterator __stable_partition_adaptive(ForwardIterator first, - ForwardIterator last, - Predicate pred, Distance len, - Pointer buffer, - Distance buffer_size, - Distance& fill_pointer, T*) { - if (len <= buffer_size) { - len = 0; - ForwardIterator result1 = first; - Pointer result2 = buffer; - while (first != last && len < fill_pointer) - if (pred(*first)) - *result1++ = *first++; - else { - *result2++ = *first++; - ++len; - } - if (first != last) { - raw_storage_iterator result3 = result2; - while (first != last) - if (pred(*first)) - *result1++ = *first++; - else { - *result3++ = *first++; - ++len; - } - fill_pointer = len; - } - copy(buffer, buffer + len, result1); - return result1; - } - ForwardIterator middle = first; - advance(middle, len / 2); - ForwardIterator first_cut = __stable_partition_adaptive - (first, middle, pred, len / 2, buffer, buffer_size, fill_pointer, - (T*)0); - ForwardIterator second_cut = __stable_partition_adaptive - (middle, last, pred, len - len / 2, buffer, buffer_size, - fill_pointer, (T*)0); - rotate(first_cut, middle, second_cut); - len = 0; - distance(middle, second_cut, len); - advance(first_cut, len); - return first_cut; -} - -template -ForwardIterator __stable_partition(ForwardIterator first, ForwardIterator last, - Predicate pred, Distance len, - pair p) { - if (p.first == 0) - return __inplace_stable_partition(first, last, pred, len); - Distance fill_pointer = 0; - ForwardIterator result = - __stable_partition_adaptive(first, last, pred, len, p.first, p.second, - fill_pointer, value_type(first)); - destroy(p.first, p.first + fill_pointer); - return_temporary_buffer(p.first); - return result; -} - -template -inline ForwardIterator __stable_partition_aux(ForwardIterator first, - ForwardIterator last, - Predicate pred, Distance*) { - Distance len = 0; - distance(first, last, len); - return __stable_partition(first, last, pred, len, - get_temporary_buffer(len, value_type(first))); -} - -template -inline ForwardIterator stable_partition(ForwardIterator first, - ForwardIterator last, - Predicate pred) { - return __stable_partition_aux(first, last, pred, distance_type(first)); -} - -template -RandomAccessIterator __unguarded_partition(RandomAccessIterator first, - RandomAccessIterator last, - T pivot) { - while (1) { - while (*first < pivot) ++first; - --last; - while (pivot < *last) --last; - if (!(first < last)) return first; - iter_swap(first, last); - ++first; - } -} - -template -RandomAccessIterator __unguarded_partition(RandomAccessIterator first, - RandomAccessIterator last, - T pivot, Compare comp) { - while (1) { - while (comp(*first, pivot)) ++first; - --last; - while (comp(pivot, *last)) --last; - if (!(first < last)) return first; - iter_swap(first, last); - ++first; - } -} - -const int __stl_threshold = 16; - -template -void __quick_sort_loop_aux(RandomAccessIterator first, - RandomAccessIterator last, T*) { - while (last - first > __stl_threshold) { - RandomAccessIterator cut = __unguarded_partition - (first, last, T(__median(*first, *(first + (last - first)/2), - *(last - 1)))); - if (cut - first >= last - cut) { - __quick_sort_loop(cut, last); - last = cut; - } else { - __quick_sort_loop(first, cut); - first = cut; - } - } -} - -template -inline void __quick_sort_loop(RandomAccessIterator first, - RandomAccessIterator last) { - __quick_sort_loop_aux(first, last, value_type(first)); -} - -template -void __quick_sort_loop_aux(RandomAccessIterator first, - RandomAccessIterator last, T*, Compare comp) { - while (last - first > __stl_threshold) { - RandomAccessIterator cut = __unguarded_partition - (first, last, T(__median(*first, *(first + (last - first)/2), - *(last - 1), comp)), comp); - if (cut - first >= last - cut) { - __quick_sort_loop(cut, last, comp); - last = cut; - } else { - __quick_sort_loop(first, cut, comp); - first = cut; - } - } -} - -template -inline void __quick_sort_loop(RandomAccessIterator first, - RandomAccessIterator last, Compare comp) { - __quick_sort_loop_aux(first, last, value_type(first), comp); -} - -template -void __unguarded_linear_insert(RandomAccessIterator last, T value) { - RandomAccessIterator next = last; - --next; - while (value < *next) { - *last = *next; - last = next--; - } - *last = value; -} - -template -void __unguarded_linear_insert(RandomAccessIterator last, T value, - Compare comp) { - RandomAccessIterator next = last; - --next; - while (comp(value , *next)) { - *last = *next; - last = next--; - } - *last = value; -} - -template -inline void __linear_insert(RandomAccessIterator first, - RandomAccessIterator last, T*) { - T value = *last; - if (value < *first) { - copy_backward(first, last, last + 1); - *first = value; - } else - __unguarded_linear_insert(last, value); -} - -template -inline void __linear_insert(RandomAccessIterator first, - RandomAccessIterator last, T*, Compare comp) { - T value = *last; - if (comp(value, *first)) { - copy_backward(first, last, last + 1); - *first = value; - } else - __unguarded_linear_insert(last, value, comp); -} - -template -void __insertion_sort(RandomAccessIterator first, RandomAccessIterator last) { - if (first == last) return; - for (RandomAccessIterator i = first + 1; i != last; ++i) - __linear_insert(first, i, value_type(first)); -} - -template -void __insertion_sort(RandomAccessIterator first, - RandomAccessIterator last, Compare comp) { - if (first == last) return; - for (RandomAccessIterator i = first + 1; i != last; ++i) - __linear_insert(first, i, value_type(first), comp); -} - -template -void __unguarded_insertion_sort_aux(RandomAccessIterator first, - RandomAccessIterator last, T*) { - for (RandomAccessIterator i = first; i != last; ++i) - __unguarded_linear_insert(i, T(*i)); -} - -template -inline void __unguarded_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last) { - __unguarded_insertion_sort_aux(first, last, value_type(first)); -} - -template -void __unguarded_insertion_sort_aux(RandomAccessIterator first, - RandomAccessIterator last, - T*, Compare comp) { - for (RandomAccessIterator i = first; i != last; ++i) - __unguarded_linear_insert(i, T(*i), comp); -} - -template -inline void __unguarded_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last, - Compare comp) { - __unguarded_insertion_sort_aux(first, last, value_type(first), comp); -} - -template -void __final_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last) { - if (last - first > __stl_threshold) { - __insertion_sort(first, first + __stl_threshold); - __unguarded_insertion_sort(first + __stl_threshold, last); - } else - __insertion_sort(first, last); -} - -template -void __final_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last, Compare comp) { - if (last - first > __stl_threshold) { - __insertion_sort(first, first + __stl_threshold, comp); - __unguarded_insertion_sort(first + __stl_threshold, last, comp); - } else - __insertion_sort(first, last, comp); -} - -template -void sort(RandomAccessIterator first, RandomAccessIterator last) { - __quick_sort_loop(first, last); - __final_insertion_sort(first, last); -} - -template -void sort(RandomAccessIterator first, RandomAccessIterator last, - Compare comp) { - __quick_sort_loop(first, last, comp); - __final_insertion_sort(first, last, comp); -} - -template -void __inplace_stable_sort(RandomAccessIterator first, - RandomAccessIterator last) { - if (last - first < 15) { - __insertion_sort(first, last); - return; - } - RandomAccessIterator middle = first + (last - first) / 2; - __inplace_stable_sort(first, middle); - __inplace_stable_sort(middle, last); - __merge_without_buffer(first, middle, last, middle - first, last - middle); -} - -template -void __inplace_stable_sort(RandomAccessIterator first, - RandomAccessIterator last, Compare comp) { - if (last - first < 15) { - __insertion_sort(first, last, comp); - return; - } - RandomAccessIterator middle = first + (last - first) / 2; - __inplace_stable_sort(first, middle, comp); - __inplace_stable_sort(middle, last, comp); - __merge_without_buffer(first, middle, last, middle - first, - last - middle, comp); -} - -template -RandomAccessIterator3 __merge_aux(RandomAccessIterator1 first1, - RandomAccessIterator1 last1, - RandomAccessIterator2 first2, - RandomAccessIterator2 last2, - RandomAccessIterator3 result, - Distance& fill_pointer, T*){ - Distance len = 0; - while (first1 != last1 && first2 != last2 && len < fill_pointer) { - ++len; - if (*first2 < *first1) - *result++ = *first2++; - else - *result++ = *first1++; - } - if (fill_pointer == len) { - raw_storage_iterator p = result; - result += (last1 - first1) + (last2 - first2); - fill_pointer += (last1 - first1) + (last2 - first2); - while (first1 != last1 && first2 != last2) - if (*first2 < *first1) - *p++ = *first2++; - else - *p++ = *first1++; - copy(first2, last2, copy(first1, last1, p)); - } else if (first2 == last2) { - while (first1 != last1 && len < fill_pointer) { - ++len; - *result++ = *first1++; - } - if (fill_pointer == len) { - raw_storage_iterator p = result; - result += last1 - first1; - fill_pointer += last1 - first1; - while (first1 != last1) *p++ = *first1++; - } - } else { - while (first2 != last2 && len < fill_pointer) { - ++len; - *result++ = *first2++; - } - if (fill_pointer == len) { - raw_storage_iterator p = result; - result += last2 - first2; - fill_pointer += last2 - first2; - while (first2 != last2) *p++ = *first2++; - } - } - return result; -} - -template -RandomAccessIterator3 __merge_aux(RandomAccessIterator1 first1, - RandomAccessIterator1 last1, - RandomAccessIterator2 first2, - RandomAccessIterator2 last2, - RandomAccessIterator3 result, - Distance& fill_pointer, T*, Compare comp){ - Distance len = 0; - while (first1 != last1 && first2 != last2 && len < fill_pointer) { - ++len; - if (comp(*first2, *first1)) - *result++ = *first2++; - else - *result++ = *first1++; - } - if (fill_pointer <= len) { - raw_storage_iterator p = result; - result += (last1 - first1) + (last2 - first2); - fill_pointer += (last1 - first1) + (last2 - first2); - while (first1 != last1 && first2 != last2) - if (comp(*first2, *first1)) - *p++ = *first2++; - else - *p++ = *first1++; - copy(first2, last2, copy(first1, last1, p)); - } else if (first2 == last2) { - while (first1 != last1 && len < fill_pointer) { - ++len; - *result++ = *first1++; - } - if (fill_pointer == len) { - raw_storage_iterator p = result; - result += last1 - first1; - fill_pointer += last1 - first1; - while (first1 != last1) *p++ = *first1++; - } - } else { - while (first2 != last2 && len < fill_pointer) { - ++len; - *result++ = *first2++; - } - if (fill_pointer == len) { - raw_storage_iterator p = result; - result += last2 - first2; - fill_pointer += last2 - first2; - while (first2 != last2) *p++ = *first2++; - } - } - return result; -} - -template -void __merge_sort_loop_aux(RandomAccessIterator1 first, - RandomAccessIterator1 last, - RandomAccessIterator2 result, Distance step_size, - Distance& fill_pointer, T*) { - Distance two_step = 2 * step_size; - - while (last - first >= two_step) { - result = __merge_aux(first, first + step_size, first + step_size, - first + two_step, result, fill_pointer, (T*)0); - first += two_step; - } - step_size = min(Distance(last - first), step_size); - - __merge_aux(first, first + step_size, first + step_size, last, result, - fill_pointer, (T*)0); -} - -template -void __merge_sort_loop_aux(RandomAccessIterator1 first, - RandomAccessIterator1 last, - RandomAccessIterator2 result, Distance step_size, - Distance& fill_pointer, T*, Compare comp) { - Distance two_step = 2 * step_size; - - while (last - first >= two_step) { - result = __merge_aux(first, first + step_size, first + step_size, - first + two_step, result, fill_pointer, (T*)0, - comp); - first += two_step; - } - step_size = min(Distance(last - first), step_size); - - __merge_aux(first, first + step_size, first + step_size, last, result, - fill_pointer, (T*)0, comp); -} - -template -void __merge_sort_loop(RandomAccessIterator1 first, - RandomAccessIterator1 last, - RandomAccessIterator2 result, Distance step_size) { - Distance two_step = 2 * step_size; - - while (last - first >= two_step) { - result = merge(first, first + step_size, - first + step_size, first + two_step, result); - first += two_step; - } - step_size = min(Distance(last - first), step_size); - - merge(first, first + step_size, first + step_size, last, result); -} - -template -void __merge_sort_loop(RandomAccessIterator1 first, - RandomAccessIterator1 last, - RandomAccessIterator2 result, Distance step_size, - Compare comp) { - Distance two_step = 2 * step_size; - - while (last - first >= two_step) { - result = merge(first, first + step_size, - first + step_size, first + two_step, result, comp); - first += two_step; - } - step_size = min(Distance(last - first), step_size); - - merge(first, first + step_size, first + step_size, last, result, comp); -} - -const int __stl_chunk_size = 7; - -template -void __chunk_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last, Distance chunk_size) { - while (last - first >= chunk_size) { - __insertion_sort(first, first + chunk_size); - first += chunk_size; - } - __insertion_sort(first, last); -} - -template -void __chunk_insertion_sort(RandomAccessIterator first, - RandomAccessIterator last, - Distance chunk_size, Compare comp) { - while (last - first >= chunk_size) { - __insertion_sort(first, first + chunk_size, comp); - first += chunk_size; - } - __insertion_sort(first, last, comp); -} - -template -void __merge_sort_with_buffer(RandomAccessIterator first, - RandomAccessIterator last, - Pointer buffer, Distance& fill_pointer, T*) { - Distance len = last - first; - Pointer buffer_last = buffer + len; - - Distance step_size = __stl_chunk_size; - __chunk_insertion_sort(first, last, step_size); - while (step_size < len) { - __merge_sort_loop_aux(first, last, buffer, step_size, fill_pointer, - (T*)0); - step_size *= 2; - __merge_sort_loop(buffer, buffer_last, first, step_size); - step_size *= 2; - } -} - -template -void __merge_sort_with_buffer(RandomAccessIterator first, - RandomAccessIterator last, - Pointer buffer, Distance& fill_pointer, - T*, Compare comp) { - Distance len = last - first; - Pointer buffer_last = buffer + len; - - Distance step_size = __stl_chunk_size; - __chunk_insertion_sort(first, last, step_size, comp); - - while (step_size < len) { - __merge_sort_loop_aux(first, last, buffer, step_size, fill_pointer, - (T*)0, comp); - step_size *= 2; - __merge_sort_loop(buffer, buffer_last, first, step_size, comp); - step_size *= 2; - } -} - -template -void __stable_sort_adaptive(RandomAccessIterator first, - RandomAccessIterator last, Pointer buffer, - Distance buffer_size, Distance& fill_pointer, T*) { - Distance len = (last - first + 1) / 2; - RandomAccessIterator middle = first + len; - if (len > buffer_size) { - __stable_sort_adaptive(first, middle, buffer, buffer_size, - fill_pointer, (T*)0); - __stable_sort_adaptive(middle, last, buffer, buffer_size, - fill_pointer, (T*)0); - } else { - __merge_sort_with_buffer(first, middle, buffer, fill_pointer, (T*)0); - __merge_sort_with_buffer(middle, last, buffer, fill_pointer, (T*)0); - } - __merge_adaptive(first, middle, last, Distance(middle - first), - Distance(last - middle), buffer, buffer_size, - fill_pointer, (T*)0); -} - -template -void __stable_sort_adaptive(RandomAccessIterator first, - RandomAccessIterator last, Pointer buffer, - Distance buffer_size, Distance& fill_pointer, - T*, Compare comp) { - Distance len = (last - first + 1) / 2; - RandomAccessIterator middle = first + len; - if (len > buffer_size) { - __stable_sort_adaptive(first, middle, buffer, buffer_size, - fill_pointer, (T*)0, comp); - __stable_sort_adaptive(middle, last, buffer, buffer_size, - fill_pointer, (T*)0, comp); - } else { - __merge_sort_with_buffer(first, middle, buffer, fill_pointer, - (T*)0, comp); - __merge_sort_with_buffer(middle, last, buffer, fill_pointer, - (T*)0, comp); - } - __merge_adaptive(first, middle, last, Distance(middle - first), - Distance(last - middle), buffer, buffer_size, - fill_pointer, (T*)0, comp); -} - -template -inline void __stable_sort(RandomAccessIterator first, - RandomAccessIterator last, - pair p) { - if (p.first == 0) { - __inplace_stable_sort(first, last); - return; - } - Distance fill_pointer = 0; - __stable_sort_adaptive(first, last, p.first, p.second, fill_pointer, - value_type(first)); - destroy(p.first, p.first + fill_pointer); - return_temporary_buffer(p.first); -} - -template -inline void __stable_sort(RandomAccessIterator first, - RandomAccessIterator last, - pair p, Compare comp) { - if (p.first == 0) { - __inplace_stable_sort(first, last, comp); - return; - } - Distance fill_pointer = 0; - __stable_sort_adaptive(first, last, p.first, p.second, fill_pointer, - value_type(first), comp); - destroy(p.first, p.first + fill_pointer); - return_temporary_buffer(p.first); -} - -template -inline void __stable_sort_aux(RandomAccessIterator first, - RandomAccessIterator last, Distance*) { - __stable_sort(first, last, get_temporary_buffer(Distance(last - first), - value_type(first))); -} - -template -inline void __stable_sort_aux(RandomAccessIterator first, - RandomAccessIterator last, Distance*, - Compare comp) { - __stable_sort(first, last, get_temporary_buffer(Distance(last - first), - value_type(first)), comp); -} - -template -inline void stable_sort(RandomAccessIterator first, - RandomAccessIterator last) { - __stable_sort_aux(first, last, distance_type(first)); -} - -template -inline void stable_sort(RandomAccessIterator first, - RandomAccessIterator last, Compare comp) { - __stable_sort_aux(first, last, distance_type(first), comp); -} - -template -void __partial_sort(RandomAccessIterator first, RandomAccessIterator middle, - RandomAccessIterator last, T*) { - make_heap(first, middle); - for (RandomAccessIterator i = middle; i < last; ++i) - if (*i < *first) - __pop_heap(first, middle, i, T(*i), distance_type(first)); - sort_heap(first, middle); -} - -template -inline void partial_sort(RandomAccessIterator first, - RandomAccessIterator middle, - RandomAccessIterator last) { - __partial_sort(first, middle, last, value_type(first)); -} - -template -void __partial_sort(RandomAccessIterator first, RandomAccessIterator middle, - RandomAccessIterator last, T*, Compare comp) { - make_heap(first, middle, comp); - for (RandomAccessIterator i = middle; i < last; ++i) - if (*i < *first) - __pop_heap(first, middle, i, T(*i), comp, distance_type(first)); - sort_heap(first, middle, comp); -} - -template -inline void partial_sort(RandomAccessIterator first, - RandomAccessIterator middle, - RandomAccessIterator last, Compare comp) { - __partial_sort(first, middle, last, value_type(first), comp); -} - -template -RandomAccessIterator __partial_sort_copy(InputIterator first, - InputIterator last, - RandomAccessIterator result_first, - RandomAccessIterator result_last, - Distance*, T*) { - if (result_first == result_last) return result_last; - RandomAccessIterator result_real_last = result_first; - while(first != last && result_real_last != result_last) - *result_real_last++ = *first++; - make_heap(result_first, result_real_last); - while (first != last) { - if (*first < *result_first) - __adjust_heap(result_first, Distance(0), - Distance(result_real_last - result_first), T(*first)); - ++first; - } - sort_heap(result_first, result_real_last); - return result_real_last; -} - -template -inline RandomAccessIterator -partial_sort_copy(InputIterator first, InputIterator last, - RandomAccessIterator result_first, - RandomAccessIterator result_last) { - return __partial_sort_copy(first, last, result_first, result_last, - distance_type(result_first), value_type(first)); -} - -template -RandomAccessIterator __partial_sort_copy(InputIterator first, - InputIterator last, - RandomAccessIterator result_first, - RandomAccessIterator result_last, - Compare comp, Distance*, T*) { - if (result_first == result_last) return result_last; - RandomAccessIterator result_real_last = result_first; - while(first != last && result_real_last != result_last) - *result_real_last++ = *first++; - make_heap(result_first, result_real_last, comp); - while (first != last) { - if (*first < *result_first) - __adjust_heap(result_first, Distance(0), - Distance(result_real_last - result_first), T(*first), - comp); - ++first; - } - sort_heap(result_first, result_real_last, comp); - return result_real_last; -} - -template -inline RandomAccessIterator -partial_sort_copy(InputIterator first, InputIterator last, - RandomAccessIterator result_first, - RandomAccessIterator result_last, Compare comp) { - return __partial_sort_copy(first, last, result_first, result_last, comp, - distance_type(result_first), value_type(first)); -} - -template -void __nth_element(RandomAccessIterator first, RandomAccessIterator nth, - RandomAccessIterator last, T*) { - while (last - first > 3) { - RandomAccessIterator cut = __unguarded_partition - (first, last, T(__median(*first, *(first + (last - first)/2), - *(last - 1)))); - if (cut <= nth) - first = cut; - else - last = cut; - } - __insertion_sort(first, last); -} - -template -inline void nth_element(RandomAccessIterator first, RandomAccessIterator nth, - RandomAccessIterator last) { - __nth_element(first, nth, last, value_type(first)); -} - -template -void __nth_element(RandomAccessIterator first, RandomAccessIterator nth, - RandomAccessIterator last, T*, Compare comp) { - while (last - first > 3) { - RandomAccessIterator cut = __unguarded_partition - (first, last, T(__median(*first, *(first + (last - first)/2), - *(last - 1), comp)), comp); - if (cut <= nth) - first = cut; - else - last = cut; - } - __insertion_sort(first, last, comp); -} - -template -inline void nth_element(RandomAccessIterator first, RandomAccessIterator nth, - RandomAccessIterator last, Compare comp) { - __nth_element(first, nth, last, value_type(first), comp); -} - -template -ForwardIterator __lower_bound(ForwardIterator first, ForwardIterator last, - const T& value, Distance*, - forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (*middle < value) { - first = middle; - ++first; - len = len - half - 1; - } else - len = half; - } - return first; -} - -template -inline ForwardIterator __lower_bound(ForwardIterator first, - ForwardIterator last, - const T& value, Distance*, - bidirectional_iterator_tag) { - return __lower_bound(first, last, value, (Distance*)0, - forward_iterator_tag()); -} - -template -RandomAccessIterator __lower_bound(RandomAccessIterator first, - RandomAccessIterator last, const T& value, - Distance*, random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (*middle < value) { - first = middle + 1; - len = len - half - 1; - } else - len = half; - } - return first; -} - -template -inline ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, - const T& value) { - return __lower_bound(first, last, value, distance_type(first), - iterator_category(first)); -} - -template -ForwardIterator __lower_bound(ForwardIterator first, ForwardIterator last, - const T& value, Compare comp, Distance*, - forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (comp(*middle, value)) { - first = middle; - ++first; - len = len - half - 1; - } else - len = half; - } - return first; -} - -template -inline ForwardIterator __lower_bound(ForwardIterator first, - ForwardIterator last, - const T& value, Compare comp, Distance*, - bidirectional_iterator_tag) { - return __lower_bound(first, last, value, comp, (Distance*)0, - forward_iterator_tag()); -} - -template -RandomAccessIterator __lower_bound(RandomAccessIterator first, - RandomAccessIterator last, - const T& value, Compare comp, Distance*, - random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (comp(*middle, value)) { - first = middle + 1; - len = len - half - 1; - } else - len = half; - } - return first; -} - -template -inline ForwardIterator lower_bound(ForwardIterator first, ForwardIterator last, - const T& value, Compare comp) { - return __lower_bound(first, last, value, comp, distance_type(first), - iterator_category(first)); -} - -template -ForwardIterator __upper_bound(ForwardIterator first, ForwardIterator last, - const T& value, Distance*, - forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (value < *middle) - len = half; - else { - first = middle; - ++first; - len = len - half - 1; - } - } - return first; -} - -template -inline ForwardIterator __upper_bound(ForwardIterator first, - ForwardIterator last, - const T& value, Distance*, - bidirectional_iterator_tag) { - return __upper_bound(first, last, value, (Distance*)0, - forward_iterator_tag()); -} - -template -RandomAccessIterator __upper_bound(RandomAccessIterator first, - RandomAccessIterator last, const T& value, - Distance*, random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (value < *middle) - len = half; - else { - first = middle + 1; - len = len - half - 1; - } - } - return first; -} - -template -inline ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, - const T& value) { - return __upper_bound(first, last, value, distance_type(first), - iterator_category(first)); -} - -template -ForwardIterator __upper_bound(ForwardIterator first, ForwardIterator last, - const T& value, Compare comp, Distance*, - forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (comp(value, *middle)) - len = half; - else { - first = middle; - ++first; - len = len - half - 1; - } - } - return first; -} - -template -inline ForwardIterator __upper_bound(ForwardIterator first, - ForwardIterator last, - const T& value, Compare comp, Distance*, - bidirectional_iterator_tag) { - return __upper_bound(first, last, value, comp, (Distance*)0, - forward_iterator_tag()); -} - -template -RandomAccessIterator __upper_bound(RandomAccessIterator first, - RandomAccessIterator last, - const T& value, Compare comp, Distance*, - random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (comp(value, *middle)) - len = half; - else { - first = middle + 1; - len = len - half - 1; - } - } - return first; -} - -template -inline ForwardIterator upper_bound(ForwardIterator first, ForwardIterator last, - const T& value, Compare comp) { - return __upper_bound(first, last, value, comp, distance_type(first), - iterator_category(first)); -} - -template -pair -__equal_range(ForwardIterator first, ForwardIterator last, const T& value, - Distance*, forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle, left, right; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (*middle < value) { - first = middle; - ++first; - len = len - half - 1; - } else if (value < *middle) - len = half; - else { - left = lower_bound(first, middle, value); - advance(first, len); - right = upper_bound(++middle, first, value); - return pair(left, right); - } - } - return pair(first, first); -} - -template -inline pair -__equal_range(ForwardIterator first, ForwardIterator last, const T& value, - Distance*, bidirectional_iterator_tag) { - return __equal_range(first, last, value, (Distance*)0, - forward_iterator_tag()); -} - -template -pair -__equal_range(RandomAccessIterator first, RandomAccessIterator last, - const T& value, Distance*, random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle, left, right; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (*middle < value) { - first = middle + 1; - len = len - half - 1; - } else if (value < *middle) - len = half; - else { - left = lower_bound(first, middle, value); - right = upper_bound(++middle, first + len, value); - return pair(left, - right); - } - } - return pair(first, first); -} - -template -inline pair -equal_range(ForwardIterator first, ForwardIterator last, const T& value) { - return __equal_range(first, last, value, distance_type(first), - iterator_category(first)); -} - -template -pair -__equal_range(ForwardIterator first, ForwardIterator last, const T& value, - Compare comp, Distance*, forward_iterator_tag) { - Distance len = 0; - distance(first, last, len); - Distance half; - ForwardIterator middle, left, right; - - while (len > 0) { - half = len / 2; - middle = first; - advance(middle, half); - if (comp(*middle, value)) { - first = middle; - ++first; - len = len - half - 1; - } else if (comp(value, *middle)) - len = half; - else { - left = lower_bound(first, middle, value, comp); - advance(first, len); - right = upper_bound(++middle, first, value, comp); - return pair(left, right); - } - } - return pair(first, first); -} - -template -inline pair -__equal_range(ForwardIterator first, ForwardIterator last, const T& value, - Compare comp, Distance*, bidirectional_iterator_tag) { - return __equal_range(first, last, value, comp, (Distance*)0, - forward_iterator_tag()); -} - -template -pair -__equal_range(RandomAccessIterator first, RandomAccessIterator last, - const T& value, Compare comp, Distance*, - random_access_iterator_tag) { - Distance len = last - first; - Distance half; - RandomAccessIterator middle, left, right; - - while (len > 0) { - half = len / 2; - middle = first + half; - if (comp(*middle, value)) { - first = middle + 1; - len = len - half - 1; - } else if (comp(value, *middle)) - len = half; - else { - left = lower_bound(first, middle, value, comp); - right = upper_bound(++middle, first + len, value, comp); - return pair(left, - right); - } - } - return pair(first, first); -} - -template -inline pair -equal_range(ForwardIterator first, ForwardIterator last, const T& value, - Compare comp) { - return __equal_range(first, last, value, comp, distance_type(first), - iterator_category(first)); -} - -template -bool binary_search(ForwardIterator first, ForwardIterator last, - const T& value) { - ForwardIterator i = lower_bound(first, last, value); - return i != last && !(value < *i); -} - -template -bool binary_search(ForwardIterator first, ForwardIterator last, const T& value, - Compare comp) { - ForwardIterator i = lower_bound(first, last, value, comp); - return i != last && !comp(value, *i); -} - -template -OutputIterator merge(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result) { - while (first1 != last1 && first2 != last2) - if (*first2 < *first1) - *result++ = *first2++; - else - *result++ = *first1++; - return copy(first2, last2, copy(first1, last1, result)); -} - -template -OutputIterator merge(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first2, *first1)) - *result++ = *first2++; - else - *result++ = *first1++; - return copy(first2, last2, copy(first1, last1, result)); -} - -template -void __merge_without_buffer(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, - Distance len1, Distance len2) { - if (len1 == 0 || len2 == 0) return; - if (len1 + len2 == 2) { - if (*middle < *first) iter_swap(first, middle); - return; - } - BidirectionalIterator first_cut = first; - BidirectionalIterator second_cut = middle; - Distance len11 = 0; - Distance len22 = 0; - if (len1 > len2) { - len11 = len1 / 2; - advance(first_cut, len11); - second_cut = lower_bound(middle, last, *first_cut); - distance(middle, second_cut, len22); - } else { - len22 = len2 / 2; - advance(second_cut, len22); - first_cut = upper_bound(first, middle, *second_cut); - distance(first, first_cut, len11); - } - rotate(first_cut, middle, second_cut); - BidirectionalIterator new_middle = first_cut; - advance(new_middle, len22); - __merge_without_buffer(first, first_cut, new_middle, len11, len22); - __merge_without_buffer(new_middle, second_cut, last, len1 - len11, - len2 - len22); -} - -template -void __merge_without_buffer(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, - Distance len1, Distance len2, Compare comp) { - if (len1 == 0 || len2 == 0) return; - if (len1 + len2 == 2) { - if (comp(*middle, *first)) iter_swap(first, middle); - return; - } - BidirectionalIterator first_cut = first; - BidirectionalIterator second_cut = middle; - Distance len11 = 0; - Distance len22 = 0; - if (len1 > len2) { - len11 = len1 / 2; - advance(first_cut, len11); - second_cut = lower_bound(middle, last, *first_cut, comp); - distance(middle, second_cut, len22); - } else { - len22 = len2 / 2; - advance(second_cut, len22); - first_cut = upper_bound(first, middle, *second_cut, comp); - distance(first, first_cut, len11); - } - rotate(first_cut, middle, second_cut); - BidirectionalIterator new_middle = first_cut; - advance(new_middle, len22); - __merge_without_buffer(first, first_cut, new_middle, len11, len22, comp); - __merge_without_buffer(new_middle, second_cut, last, len1 - len11, - len2 - len22, comp); -} - - -template -OutputIterator __borland_bugfix_copy(InputIterator first, InputIterator last, - OutputIterator result) { -// this is used in __rotate_adaptive to work around some obscure Borland -// bug. It is the same as copy, but with a different (and appropriate) name. - while (first != last) *result++ = *first++; - return result; -} - -template -BidirectionalIterator1 __rotate_adaptive(BidirectionalIterator1 first, - BidirectionalIterator1 middle, - BidirectionalIterator1 last, - Distance len1, Distance len2, - BidirectionalIterator2 buffer, - Distance buffer_size) { - BidirectionalIterator2 buffer_end; - if (len1 > len2 && len2 <= buffer_size) { - buffer_end = __borland_bugfix_copy(middle, last, buffer); - copy_backward(first, middle, last); - return copy(buffer, buffer_end, first); - } else if (len1 <= buffer_size) { - buffer_end = __borland_bugfix_copy(first, middle, buffer); - copy(middle, last, first); - return copy_backward(buffer, buffer_end, last); - } else { - rotate(first, middle, last); - advance(first, len2); - return first; - } -} - -template -BidirectionalIterator3 __merge_backward(BidirectionalIterator1 first1, - BidirectionalIterator1 last1, - BidirectionalIterator2 first2, - BidirectionalIterator2 last2, - BidirectionalIterator3 result) { - if (first1 == last1) return copy_backward(first2, last2, result); - if (first2 == last2) return copy_backward(first1, last1, result); - --last1; - --last2; - while (true) { - if (*last2 < *last1) { - *--result = *last1; - if (first1 == last1) return copy_backward(first2, ++last2, result); - --last1; - } else { - *--result = *last2; - if (first2 == last2) return copy_backward(first1, ++last1, result); - --last2; - } - } -} - -template -BidirectionalIterator3 __merge_backward(BidirectionalIterator1 first1, - BidirectionalIterator1 last1, - BidirectionalIterator2 first2, - BidirectionalIterator2 last2, - BidirectionalIterator3 result, - Compare comp) { - if (first1 == last1) return copy_backward(first2, last2, result); - if (first2 == last2) return copy_backward(first1, last1, result); - --last1; - --last2; - while (true) { - if (comp(*last2, *last1)) { - *--result = *last1; - if (first1 == last1) return copy_backward(first2, ++last2, result); - --last1; - } else { - *--result = *last2; - if (first2 == last2) return copy_backward(first1, ++last1, result); - --last2; - } - } -} - -template -void __merge_adaptive(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance len1, Distance len2, - Pointer buffer, Distance buffer_size, - Distance& fill_pointer, T*) { - if (len1 <= len2 && len1 <= buffer_size) { - BidirectionalIterator i = first; - Pointer j = buffer; - len2 = 0; - while (len2 < len1 && len2 < fill_pointer) { - *buffer++ = *first++; - ++len2; - } - raw_storage_iterator end_buffer = buffer; - while (len2++ < len1) { - *end_buffer++ = *first++; - ++fill_pointer; - } - merge(j, j + len1, middle, last, i); - } else if (len2 <= buffer_size) { - BidirectionalIterator i = middle; - Pointer j = buffer; - len1 = 0; - while (len1 < len2 && len1 < fill_pointer) { - *buffer++ = *middle++; - ++len1; - } - raw_storage_iterator end_buffer = buffer; - while (len1++ < len2) { - *end_buffer++ = *middle++; - ++fill_pointer; - } - __merge_backward(first, i, j, j + len2, last); - } else { - BidirectionalIterator first_cut = first; - BidirectionalIterator second_cut = middle; - Distance len11 = 0; - Distance len22 = 0; - if (len1 > len2) { - len11 = len1 / 2; - advance(first_cut, len11); - second_cut = lower_bound(middle, last, *first_cut); - distance(middle, second_cut, len22); - } else { - len22 = len2 / 2; - advance(second_cut, len22); - first_cut = upper_bound(first, middle, *second_cut); - distance(first, first_cut, len11); - } - BidirectionalIterator new_middle = - __rotate_adaptive(first_cut, middle, second_cut, len1 - len11, - len22, buffer, buffer_size); - __merge_adaptive(first, first_cut, new_middle, len11, len22, buffer, - buffer_size, fill_pointer, (T*)0); - __merge_adaptive(new_middle, second_cut, last, len1 - len11, - len2 - len22, buffer, buffer_size, fill_pointer, - (T*)0); - } -} - -template -void __merge_adaptive(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance len1, Distance len2, - Pointer buffer, Distance buffer_size, - Distance& fill_pointer, T*, Compare comp) { - if (len1 <= len2 && len1 <= buffer_size) { - BidirectionalIterator i = first; - Pointer j = buffer; - len2 = 0; - while (len2 < len1 && len2 < fill_pointer) { - *buffer++ = *first++; - ++len2; - } - raw_storage_iterator end_buffer = buffer; - while (len2++ < len1) { - *end_buffer++ = *first++; - ++fill_pointer; - } - merge(j, j + len1, middle, last, i, comp); - } else if (len2 <= buffer_size) { - BidirectionalIterator i = middle; - Pointer j = buffer; - len1 = 0; - while (len1 < len2 && len1 < fill_pointer) { - *buffer++ = *middle++; - ++len1; - } - raw_storage_iterator end_buffer = buffer; - while (len1++ < len2) { - *end_buffer++ = *middle++; - ++fill_pointer; - } - __merge_backward(first, i, j, j + len2, last, comp); - } else { - BidirectionalIterator first_cut = first; - BidirectionalIterator second_cut = middle; - Distance len11 = 0; - Distance len22 = 0; - if (len1 > len2) { - len11 = len1 / 2; - advance(first_cut, len11); - second_cut = lower_bound(middle, last, *first_cut, comp); - distance(middle, second_cut, len22); - } else { - len22 = len2 / 2; - advance(second_cut, len22); - first_cut = upper_bound(first, middle, *second_cut, comp); - distance(first, first_cut, len11); - } - BidirectionalIterator new_middle = - __rotate_adaptive(first_cut, middle, second_cut, len1 - len11, - len22, buffer, buffer_size); - __merge_adaptive(first, first_cut, new_middle, len11, len22, buffer, - buffer_size, fill_pointer, (T*)0, comp); - __merge_adaptive(new_middle, second_cut, last, len1 - len11, - len2 - len22, buffer, buffer_size, fill_pointer, - (T*)0, comp); - } -} - -template -void __inplace_merge(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance len1, Distance len2, - pair p) { - if (p.first == 0) { - __merge_without_buffer(first, middle, last, len1, len2); - return; - } - Distance fill_pointer = 0; - __merge_adaptive(first, middle, last, len1, len2, p.first, p.second, - fill_pointer, value_type(first)); - destroy(p.first, p.first + fill_pointer); - return_temporary_buffer(p.first); -} - -template -void __inplace_merge(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance len1, Distance len2, - pair p, Compare comp) { - if (p.first == 0) { - __merge_without_buffer(first, middle, last, len1, len2, comp); - return; - } - Distance fill_pointer = 0; - __merge_adaptive(first, middle, last, len1, len2, p.first, p.second, - fill_pointer, value_type(first), comp); - destroy(p.first, p.first + fill_pointer); - return_temporary_buffer(p.first); -} - -template -inline void __inplace_merge_aux(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance*) { - Distance len1 = 0; - distance(first, middle, len1); - Distance len2 = 0; - distance(middle, last, len2); - __inplace_merge(first, middle, last, len1, len2, - get_temporary_buffer(len1 + len2, value_type(first))); -} - -template -inline void __inplace_merge_aux(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Distance*, - Compare comp) { - Distance len1 = 0; - distance(first, middle, len1); - Distance len2 = 0; - distance(middle, last, len2); - __inplace_merge(first, middle, last, len1, len2, - get_temporary_buffer(len1 + len2, value_type(first)), - comp); -} - -template -inline void inplace_merge(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last) { - __inplace_merge_aux(first, middle, last, distance_type(first)); -} - -template -inline void inplace_merge(BidirectionalIterator first, - BidirectionalIterator middle, - BidirectionalIterator last, Compare comp) { - __inplace_merge_aux(first, middle, last, distance_type(first), comp); -} - -template -bool includes(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2) { - while (first1 != last1 && first2 != last2) - if (*first2 < *first1) - return false; - else if(*first1 < *first2) - ++first1; - else - ++first1, ++first2; - - return first2 == last2; -} - -template -bool includes(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first2, *first1)) - return false; - else if(comp(*first1, *first2)) - ++first1; - else - ++first1, ++first2; - - return first2 == last2; -} - -template -OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result) { - while (first1 != last1 && first2 != last2) - if (*first1 < *first2) - *result++ = *first1++; - else if (*first2 < *first1) - *result++ = *first2++; - else { - *result++ = *first1++; - first2++; - } - return copy(first2, last2, copy(first1, last1, result)); -} - -template -OutputIterator set_union(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first1, *first2)) - *result++ = *first1++; - else if (comp(*first2, *first1)) - *result++ = *first2++; - else { - *result++ = *first1++; - ++first2; - } - return copy(first2, last2, copy(first1, last1, result)); -} - -template -OutputIterator set_intersection(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result) { - while (first1 != last1 && first2 != last2) - if (*first1 < *first2) - ++first1; - else if (*first2 < *first1) - ++first2; - else { - *result++ = *first1++; - ++first2; - } - return result; -} - -template -OutputIterator set_intersection(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first1, *first2)) - ++first1; - else if (comp(*first2, *first1)) - ++first2; - else { - *result++ = *first1++; - ++first2; - } - return result; -} - -template -OutputIterator set_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result) { - while (first1 != last1 && first2 != last2) - if (*first1 < *first2) - *result++ = *first1++; - else if (*first2 < *first1) - ++first2; - else { - ++first1; - ++first2; - } - return copy(first1, last1, result); -} - -template -OutputIterator set_difference(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - OutputIterator result, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first1, *first2)) - *result++ = *first1++; - else if (comp(*first2, *first1)) - ++first2; - else { - ++first1; - ++first2; - } - return copy(first1, last1, result); -} - -template -OutputIterator set_symmetric_difference(InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - OutputIterator result) { - while (first1 != last1 && first2 != last2) - if (*first1 < *first2) - *result++ = *first1++; - else if (*first2 < *first1) - *result++ = *first2++; - else { - ++first1; - ++first2; - } - return copy(first2, last2, copy(first1, last1, result)); -} - -template -OutputIterator set_symmetric_difference(InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - InputIterator2 last2, - OutputIterator result, Compare comp) { - while (first1 != last1 && first2 != last2) - if (comp(*first1, *first2)) - *result++ = *first1++; - else if (comp(*first2, *first1)) - *result++ = *first2++; - else { - ++first1; - ++first2; - } - return copy(first2, last2, copy(first1, last1, result)); -} - -template -InputIterator max_element(InputIterator first, InputIterator last) { - if (first == last) return first; - InputIterator result = first; - while (++first != last) - if (*result < *first) result = first; - return result; -} - -template -InputIterator max_element(InputIterator first, InputIterator last, - Compare comp) { - if (first == last) return first; - InputIterator result = first; - while (++first != last) - if (comp(*result, *first)) result = first; - return result; -} - -template -InputIterator min_element(InputIterator first, InputIterator last) { - if (first == last) return first; - InputIterator result = first; - while (++first != last) - if (*first < *result) result = first; - return result; -} - -template -InputIterator min_element(InputIterator first, InputIterator last, - Compare comp) { - if (first == last) return first; - InputIterator result = first; - while (++first != last) - if (comp(*first, *result)) result = first; - return result; -} - -template -bool next_permutation(BidirectionalIterator first, - BidirectionalIterator last) { - if (first == last) return false; - BidirectionalIterator i = first; - ++i; - if (i == last) return false; - i = last; - --i; - - for(;;) { - BidirectionalIterator ii = i--; - if (*i < *ii) { - BidirectionalIterator j = last; - while (!(*i < *--j)); - iter_swap(i, j); - reverse(ii, last); - return true; - } - if (i == first) { - reverse(first, last); - return false; - } - } -} - -template -bool next_permutation(BidirectionalIterator first, BidirectionalIterator last, - Compare comp) { - if (first == last) return false; - BidirectionalIterator i = first; - ++i; - if (i == last) return false; - i = last; - --i; - - for(;;) { - BidirectionalIterator ii = i--; - if (comp(*i, *ii)) { - BidirectionalIterator j = last; - while (!comp(*i, *--j)); - iter_swap(i, j); - reverse(ii, last); - return true; - } - if (i == first) { - reverse(first, last); - return false; - } - } -} - -template -bool prev_permutation(BidirectionalIterator first, - BidirectionalIterator last) { - if (first == last) return false; - BidirectionalIterator i = first; - ++i; - if (i == last) return false; - i = last; - --i; - - for(;;) { - BidirectionalIterator ii = i--; - if (!(*i < *ii)) { - BidirectionalIterator j = last; - while (*i < *--j); - iter_swap(i, j); - reverse(ii, last); - return true; - } - if (i == first) { - reverse(first, last); - return false; - } - } -} - -template -bool prev_permutation(BidirectionalIterator first, BidirectionalIterator last, - Compare comp) { - if (first == last) return false; - BidirectionalIterator i = first; - ++i; - if (i == last) return false; - i = last; - --i; - - for(;;) { - BidirectionalIterator ii = i--; - if (!comp(*i, *ii)) { - BidirectionalIterator j = last; - while (comp(*i, *--j)); - iter_swap(i, j); - reverse(ii, last); - return true; - } - if (i == first) { - reverse(first, last); - return false; - } - } -} - -template -T accumulate(InputIterator first, InputIterator last, T init) { - while (first != last) - init = init + *first++; - return init; -} - -template -T accumulate(InputIterator first, InputIterator last, T init, - BinaryOperation binary_op) { - while (first != last) - init = binary_op(init, *first++); - return init; -} - -template -T inner_product(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, T init) { - while (first1 != last1) - init = init + (*first1++ * *first2++); - return init; -} - -template -T inner_product(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, T init, BinaryOperation1 binary_op1, - BinaryOperation2 binary_op2) { - while (first1 != last1) - init = binary_op1(init, binary_op2(*first1++, *first2++)); - return init; -} - -template -OutputIterator __partial_sum(InputIterator first, InputIterator last, - OutputIterator result, T*) { - T value = *first; - while (++first != last) { - value = value + *first; - *++result = value; - } - return ++result; -} - -template -OutputIterator partial_sum(InputIterator first, InputIterator last, - OutputIterator result) { - if (first == last) return result; - *result = *first; - return __partial_sum(first, last, result, value_type(first)); -} - -template -OutputIterator __partial_sum(InputIterator first, InputIterator last, - OutputIterator result, T*, - BinaryOperation binary_op) { - T value = *first; - while (++first != last) { - value = binary_op(value, *first); - *++result = value; - } - return ++result; -} - -template -OutputIterator partial_sum(InputIterator first, InputIterator last, - OutputIterator result, BinaryOperation binary_op) { - if (first == last) return result; - *result = *first; - return __partial_sum(first, last, result, value_type(first), binary_op); -} - -template -OutputIterator __adjacent_difference(InputIterator first, InputIterator last, - OutputIterator result, T*) { - T value = *first; - while (++first != last) { - T tmp = *first; - *++result = tmp - value; - value = tmp; - } - return ++result; -} - -template -OutputIterator adjacent_difference(InputIterator first, InputIterator last, - OutputIterator result) { - if (first == last) return result; - *result = *first; - return __adjacent_difference(first, last, result, value_type(first)); -} - -template -OutputIterator __adjacent_difference(InputIterator first, InputIterator last, - OutputIterator result, T*, - BinaryOperation binary_op) { - T value = *first; - while (++first != last) { - T tmp = *first; - *++result = binary_op(tmp, value); - value = tmp; - } - return ++result; -} - -template -OutputIterator adjacent_difference(InputIterator first, InputIterator last, - OutputIterator result, - BinaryOperation binary_op) { - if (first == last) return result; - *result = *first; - return __adjacent_difference(first, last, result, value_type(first), - binary_op); -} - -template -void iota(ForwardIterator first, ForwardIterator last, T value) { - while (first != last) *first++ = value++; -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/algobase.h b/STL/algobase.h deleted file mode 100644 index 17816328155..00000000000 --- a/STL/algobase.h +++ /dev/null @@ -1,250 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef ALGOBASE_H -#define ALGOBASE_H - -#include -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -inline void __iter_swap(ForwardIterator1 a, ForwardIterator2 b, T*) { - T tmp = *a; - *a = *b; - *b = tmp; -} - -template -inline void iter_swap(ForwardIterator1 a, ForwardIterator2 b) { - __iter_swap(a, b, value_type(a)); -} - -template -inline void swap(T& a, T& b) { - T tmp = a; - a = b; - b = tmp; -} - -#if ! defined (VXWORKS) -template -inline const T& min(const T& a, const T& b) { - return b < a ? b : a; -} - -template -inline const T& min(const T& a, const T& b, Compare comp) { - return comp(b, a) ? b : a; -} - -template -inline const T& max(const T& a, const T& b) { - return a < b ? b : a; -} - -template -inline const T& max(const T& a, const T& b, Compare comp) { - return comp(a, b) ? b : a; -} -#endif /* VXWORKS */ - -template -void __distance(InputIterator first, InputIterator last, Distance& n, - input_iterator_tag) { - while (first != last) { ++first; ++n; } -} - -template -void __distance(ForwardIterator first, ForwardIterator last, Distance& n, - forward_iterator_tag) { - while (first != last) { ++first; ++n; } -} - -template -void __distance(BidirectionalIterator first, BidirectionalIterator last, - Distance& n, bidirectional_iterator_tag) { - while (first != last) { ++first; ++n; } -} - -template -inline void __distance(RandomAccessIterator first, RandomAccessIterator last, - Distance& n, random_access_iterator_tag) { - n = last - first; -} - -template -inline void distance(InputIterator first, InputIterator last, Distance& n) { - __distance(first, last, n, iterator_category(first)); -} - -template -void __advance(InputIterator& i, Distance n, input_iterator_tag) { - while (n--) ++i; -} - -template -void __advance(ForwardIterator& i, Distance n, forward_iterator_tag) { - while (n--) ++i; -} - -template -void __advance(BidirectionalIterator& i, Distance n, - bidirectional_iterator_tag) { - if (n >= 0) - while (n--) ++i; - else - while (n++) --i; -} - -template -inline void __advance(RandomAccessIterator& i, Distance n, - random_access_iterator_tag) { - i += n; -} - -template -inline void advance(InputIterator& i, Distance n) { - __advance(i, n, iterator_category(i)); -} - -template -void destroy(ForwardIterator first, ForwardIterator last) { - while (first != last) { - /* Borland bug */ - destroy(first); - ++first; - //destroy(first++); - } -} - -template -ForwardIterator uninitialized_copy(InputIterator first, InputIterator last, - ForwardIterator result) { - while (first != last) construct(result++, *first++); - return result; -} - -template -void uninitialized_fill(ForwardIterator first, ForwardIterator last, - const T& x) { - while (first != last) construct(first++, x); -} - -template -void uninitialized_fill_n(ForwardIterator first, Size n, const T& x) { - while (n--) construct(first++, x); -} - -template -OutputIterator copy(InputIterator first, InputIterator last, - OutputIterator result) { - while (first != last) *result++ = *first++; - return result; -} - -template -BidirectionalIterator2 copy_backward(BidirectionalIterator1 first, - BidirectionalIterator1 last, - BidirectionalIterator2 result) { - while (first != last) *--result = *--last; - return result; -} - -template -void fill(ForwardIterator first, ForwardIterator last, const T& value) { - while (first != last) *first++ = value; -} - -template -void fill_n(OutputIterator first, Size n, const T& value) { - while (n-- > 0) *first++ = value; -} - -template -pair mismatch(InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2) { - while (first1 != last1 && *first1 == *first2) { - ++first1; - ++first2; - } - return pair(first1, first2); -} - -template -pair mismatch(InputIterator1 first1, - InputIterator1 last1, - InputIterator2 first2, - BinaryPredicate binary_pred) { - while (first1 != last1 && binary_pred(*first1, *first2)) { - ++first1; - ++first2; - } - return pair(first1, first2); -} - -template -inline bool equal(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2) { - return mismatch(first1, last1, first2).first == last1; -} - -template -inline bool equal(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, BinaryPredicate binary_pred) { - return mismatch(first1, last1, first2, binary_pred).first == last1; -} - -template -bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2) { - while (first1 != last1 && first2 != last2) { - if (*first1 < *first2) return true; - if (*first2++ < *first1++) return false; - } - return first1 == last1 && first2 != last2; -} - -template -bool lexicographical_compare(InputIterator1 first1, InputIterator1 last1, - InputIterator2 first2, InputIterator2 last2, - Compare comp) { - while (first1 != last1 && first2 != last2) { - if (comp(*first1, *first2)) return true; - if (comp(*first2++, *first1++)) return false; - } - return first1 == last1 && first2 != last2; -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/bool.h b/STL/bool.h deleted file mode 100644 index 6049da9163d..00000000000 --- a/STL/bool.h +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -#if !defined (ACE_BOOL_H) -#define ACE_BOOL_H - -#if defined (_MSC_VER) - // Define bool out of the std namespace. -# if _MSC_VER > 1010 -# include /**/ -# else /* _MSC_VER <= 1010 */ -# if !defined (bool) -# define bool int -# endif /* bool */ - -# if !defined (true) -# define true 1 -# endif /* true */ - -# if !defined (false) -# define false 0 -# endif /* false */ -# endif /* _MSC_VER <= 1010 */ -#endif /* _MSC_VER */ - - - /* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif /* ACE_BOOL_H */ diff --git a/STL/bstring.h b/STL/bstring.h deleted file mode 100644 index 04f6d9e6c01..00000000000 --- a/STL/bstring.h +++ /dev/null @@ -1,2516 +0,0 @@ -/** - ** Copyright (c) 1994-1995 Modena Software Inc., - ** - ** Permission to use, copy, modify, distribute and sell this software - ** and its documentation for any purpose is hereby granted without fee, - ** provided that the above copyright notice appear in all copies and - ** that both that copyright notice and this permission notice appear - ** in supporting documentation. Modena Software, Inc. makes no - ** representations about the suitability of this software for any - ** purpose. It is provided "as is" without express or implied warranty. - ** - **/ - -#ifndef __cplusplus -#error Must use C++ for BSTRING.H -#endif - -#ifndef __MBSTRING_H -#define __MBSTRING_H - -extern "C" { -#include -#include -#include -#include -} - -#include -#include - -// bc4const - -#ifdef __BC4_STL -#define __BC401_STL -#endif - -#ifdef __BC401_STL -#define __BC401_const -#else -#define __BC401_const const -#endif - -// bndchk.h -#ifdef BOUNDS_CHECK -void check_bounds - ( int index, - int container_size, - int lineno, - char *filename ); -#endif - -// mexcept.h - -#define _THROW_NONE -#define _THROW_DOMAIN -#define _THROW_INVALIDARG -#define _THROW_LENGTH -#define _THROW_OUTRANGE -#define _THROW_RANGE -#define _THROW_OVERFLOW -#define _THROW_ALLOC -#define _THROW_CAST -#define _THROW_TYPEID -#define _THROW_ALLOC_LENGTH -#define _THROW_ALLOC_OUTRANGE -#define _THROW_LENGTH_OUTRANGE -#define _THROW_ALLOC_LENGTH_OUTRANGE - -#include - -#ifdef __MMULTITHREAD -#include /**/ "mutex.h" -#endif - -const size_t NPOS = (size_t)(-1); - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -enum capacity { default_size, reserve }; - -template -struct string_char_baggage { - - typedef charT char_type; - - // - // for users to acquire the basic character type - // - // constraints functions - // - static void - assign (char_type& c1, const char_type& c2) _THROW_NONE - { - c1 = c2; - } - static bool - eq (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 == c2); - } - static bool - ne (const char_type& c1, const char_type& c2) _THROW_NONE - { - return !(c1 == c2); - } - static bool - lt (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 < c2); - } - static char_type - eos () _THROW_NONE - { - return char_type(); // the null character - } - static istream& - char_in (istream& is, char_type& c) _THROW_NONE - { - return is >> c; // extractor for a char_type object - } - static ostream& - char_out (ostream& os, char_type c) _THROW_NONE - { - return os << c; // inserter for a char_type object - } - static bool - is_del (char_type c) _THROW_NONE - { - // characteristic function for delimiters of char_type - return isspace(c) != 0; - } - - // - // speed-up functions - // - static int - compare (const char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - for (size_t i = 0; i < n; ++i, ++s1, ++s2) - if (ne(*s1, *s2)) - { - return lt(*s1, *s2) ? -1 : 1; - } - return 0; - } - static size_t - length (const char_type* s) _THROW_NONE - { - size_t l = 0; - while (ne(*s++, eos())) - ++l; - return l; - } - static char_type* - copy (char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - char_type* s = s1; - for (size_t i = 0; i < n; ++i, s1++, s2++) - assign(*s1, *s2); - return s; - } -}; - -struct string_char_baggage { - - typedef char char_type; - - // - // constraint member functions - // - static void - assign (char_type& c1, const char_type& c2) _THROW_NONE - { - c1 = c2; - } - static bool - eq (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 == c2); - } - static bool - ne (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 != c2); - } - static bool - lt (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 < c2); - } - static char_type - eos () _THROW_NONE - { - return 0; // the null character - } - static istream& - char_in (istream& is, char_type& c) _THROW_NONE - { - // extractor for a char_type object - // return is >> c; // this does not work - is.get(c); - return is; - } - static ostream& - char_out (ostream& os, char_type c) _THROW_NONE - { - return os << c; // inserter for a char_type object - } - static bool - is_del (char_type c) _THROW_NONE - { - // characteristic function for delimiters of char_type - return isspace(c) != 0; - } - - // - // speed-up functions - // - static int - compare (const char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - return memcmp(s1, s2, n); - } - static size_t - length (const char_type* s) _THROW_NONE - { - return strlen(s); - } - static char_type* - copy (char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - // type cast required as memcpy returns void* - return (char_type*)memcpy(s1, s2, n); - } -}; - -/* -struct string_char_baggage { - - typedef wchar_t char_type; - - static void - assign (char_type& c1, const char_type& c2) _THROW_NONE - { - c1 = c2; - } - static bool - eq (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 == c2); - } - static bool - ne (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 != c2); - } - static bool - lt (const char_type& c1, const char_type& c2) _THROW_NONE - { - return (c1 < c2); - } - static char_type - eos () _THROW_NONE - { - return 0; // the null character - } - static istream& - char_in (istream& is, char_type& c) _THROW_NONE - { - return is >> c; // extractor for a char_type object - } - static ostream& - char_out (ostream& os, char_type c) _THROW_NONE - { - return os << c; // inserter for a char_type object - } - static bool - is_del (char_type c) _THROW_NONE - { - // characteristic function for delimiters of char_type - // using templatized locale::isspace function - return isspace(c); - } - - // - // speed-up functions - // - static int - compare (const char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - return wmemcmp(s1, s2, n); - } - static size_t - length (const char_type* s) _THROW_NONE - { - return wcslen(s); - // May use Koshida's overloaded MSE function strlen(s) - } - static char_type* - copy (char_type* s1, const char_type* s2, size_t n) _THROW_NONE - { - return (char_type*)wmemcpy(s1, s2, n); - } -}; -*/ - -template -class basic_string; - -template -class basic_string_ref { - -// -// friend class declaration -// -friend class basic_string; - -// -// typedef declarations -// -typedef string_char_baggage baggage_type; - -// -// private data members -// - charT* ptr; - size_t len; - size_t res; - -#ifdef __MMULTITHREAD - mutex_arith count; // reference count -#else - size_t count; // reference count -#endif - -// -// private constructors and destructors -// - basic_string_ref () _THROW_NONE ; - - basic_string_ref (size_t size, capacity cap) _THROW_ALLOC_LENGTH ; - - basic_string_ref (const basic_string& str, size_t pos , size_t rlen) - _THROW_ALLOC ; - - basic_string_ref (const charT* s, size_t rlen, size_t rres) _THROW_ALLOC ; - - basic_string_ref (const charT* s, size_t n) _THROW_ALLOC_LENGTH ; - - basic_string_ref (const charT* s) _THROW_ALLOC ; - - basic_string_ref (charT c, size_t rep) _THROW_ALLOC_LENGTH ; - - basic_string_ref (const vector& vec) _THROW_ALLOC_LENGTH ; - - ~basic_string_ref () _THROW_NONE ; - - inline void - delete_ptr () _THROW_NONE ; - - inline static - charT - eos () _THROW_NONE ; - - inline static - void - throwlength () _THROW_LENGTH; - - inline static - void - throwrange () _THROW_OUTRANGE; - -}; - -template -class basic_string { - -private: - -// -// typedef declaration -// - typedef basic_string_ref reference_class; - typedef basic_string_ref* reference_pointer; - -// -// data member -// - charT* c_str_ptr; - reference_pointer reference; - -// -// private member functions -// - inline charT* - point () _THROW_NONE ; - - inline size_t& - len () _THROW_NONE ; - - inline size_t - ref_count () const _THROW_NONE ; - - inline static - charT - eos () _THROW_NONE ; - - void - assign_str (const charT* s, size_t slen) _THROW_ALLOC_LENGTH ; - - void - append_str (const charT* s, size_t slen) _THROW_ALLOC_LENGTH ; - - void - insert_str (size_t pos, const charT* s, size_t slen) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - void - replace_str (size_t xlen, size_t pos, const charT* s, size_t slen) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - int - compare_str (size_t pos, const charT* str, size_t slen, size_t strlen) - const _THROW_OUTRANGE ; - - size_t - find_str (const charT* s, size_t pos, size_t len) const _THROW_NONE ; - - size_t - rfind_str (const charT* s, size_t pos, size_t len) const _THROW_NONE ; - - size_t - find_first_of_str (const charT* s, size_t pos, size_t len) const - _THROW_NONE ; - - size_t - find_last_of_str (const charT* s, size_t pos, size_t len) const - _THROW_NONE ; - - size_t - find_first_not_of_str (const charT* s, size_t pos, size_t len) const - _THROW_NONE ; - - size_t - find_last_not_of_str (const charT* s, size_t pos, size_t len) const - _THROW_NONE ; - - -protected: - - basic_string (const charT* s, size_t rlen, size_t xlen) _THROW_ALLOC_LENGTH; - - inline void - delete_ref () _THROW_NONE ; - -public: - - static const size_t npos; - - typedef charT char_type; - typedef string_char_baggage baggage_type; - - basic_string () _THROW_ALLOC ; - - basic_string (size_t size, capacity cap) _THROW_ALLOC_LENGTH ; - - basic_string (const basic_string& str, size_t pos = 0, size_t n = NPOS) - _THROW_ALLOC_OUTRANGE ; - - basic_string (const charT* s, size_t n) _THROW_ALLOC_LENGTH ; - - basic_string (const charT* s) _THROW_ALLOC ; - - basic_string (charT c, size_t rep = 1) _THROW_ALLOC_LENGTH ; - - basic_string (const vector& vec) _THROW_ALLOC_LENGTH ; - - ~basic_string () _THROW_NONE ; - - basic_string& - operator= (const basic_string& str) _THROW_ALLOC ; - - basic_string& - operator= (const charT* s) _THROW_ALLOC ; - - basic_string& - operator= (charT c) _THROW_ALLOC ; - - basic_string& - operator+= (const basic_string& rhs) _THROW_ALLOC_LENGTH ; - - basic_string& - operator+= (const charT* s) _THROW_ALLOC_LENGTH ; - - basic_string& - operator+= (charT c) _THROW_ALLOC_LENGTH ; - - operator vector () const _THROW_ALLOC - { - return vector (data(), data()+length()); - } - - - basic_string& - append (const basic_string& str, size_t pos = 0, size_t n = NPOS) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - append (const charT* s, size_t n) _THROW_ALLOC_LENGTH ; - - basic_string& - append (const charT* s) _THROW_ALLOC_LENGTH ; - - basic_string& - append (charT c, size_t rep = 1) _THROW_ALLOC_LENGTH ; - - basic_string& - assign (const basic_string& str, size_t pos = 0, size_t n = NPOS) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - assign (const charT* s, size_t n) _THROW_ALLOC_LENGTH ; - - basic_string& - assign (const charT* s) _THROW_ALLOC_LENGTH ; - - basic_string& - assign (charT c, size_t rep = 1) _THROW_ALLOC_LENGTH ; - - basic_string& - insert (size_t pos1, const basic_string& str, size_t pos2 = 0, - size_t n = NPOS) _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - insert (size_t pos, const charT* s, size_t n) _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - insert (size_t pos, const charT* s) _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - insert (size_t pos, charT c, size_t rep = 1) _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - remove (size_t pos = 0, size_t n = NPOS) _THROW_ALLOC_OUTRANGE ; - - basic_string& - replace (size_t pos1, size_t n1, const basic_string& str, size_t pos2 = 0, - size_t n2 = NPOS) _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - replace (size_t pos, size_t n1, const charT* s, size_t n2) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - replace (size_t pos, size_t n1, const charT* s) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - basic_string& - replace (size_t pos, size_t n, charT c, size_t rep = 1) - _THROW_ALLOC_LENGTH_OUTRANGE ; - - inline charT - get_at (size_t pos) const _THROW_OUTRANGE ; - - void - put_at (size_t pos, charT c) _THROW_ALLOC_OUTRANGE ; - - inline charT - operator[] (size_t pos) const _THROW_NONE ; - - charT& - operator[] (size_t pos) _THROW_ALLOC_OUTRANGE ; - - const charT* - c_str () const _THROW_ALLOC ; - - inline const charT* - data () const _THROW_NONE ; - - inline size_t - length () const _THROW_NONE ; - - void - resize (size_t n, charT c) _THROW_ALLOC_LENGTH ; - - void - resize (size_t n) _THROW_ALLOC_LENGTH ; - - inline size_t - reserve () const _THROW_NONE ; - - void - reserve (size_t res_arg) _THROW_ALLOC_LENGTH ; - - size_t - copy (charT* s, size_t n, size_t pos = 0) const _THROW_OUTRANGE ; - - size_t - find (const basic_string& str, size_t pos = 0) const _THROW_NONE ; - - size_t - find (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - find (const charT* s, size_t pos = 0) const _THROW_NONE ; - - size_t - find (charT c, size_t pos = 0) const _THROW_NONE ; - - size_t - rfind (const basic_string& str, size_t pos = NPOS) const _THROW_NONE ; - - size_t - rfind (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - rfind (const charT* s, size_t pos = NPOS) const _THROW_NONE ; - - size_t - rfind (charT c, size_t pos = NPOS) const _THROW_NONE ; - - size_t - find_first_of (const basic_string& str, size_t pos = 0) const _THROW_NONE ; - - size_t - find_first_of (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - find_first_of (const charT* s, size_t pos = 0) const _THROW_NONE ; - - size_t - find_first_of (charT c, size_t pos = 0) const _THROW_NONE ; - - - size_t - find_last_of (const basic_string& str, size_t pos = NPOS) const - _THROW_NONE ; - - size_t - find_last_of (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - find_last_of (const charT* s, size_t pos = NPOS) const _THROW_NONE ; - - size_t - find_last_of (charT c, size_t pos = NPOS) const _THROW_NONE ; - - size_t - find_first_not_of (const basic_string& str, size_t pos = 0) const - _THROW_NONE ; - - size_t - find_first_not_of (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - find_first_not_of (const charT* s, size_t pos = 0) const _THROW_NONE ; - - size_t - find_first_not_of (charT c, size_t pos = 0) const _THROW_NONE ; - - size_t - find_last_not_of (const basic_string& str, size_t pos = NPOS) const - _THROW_NONE ; - - size_t - find_last_not_of (const charT* s, size_t pos, size_t n) const _THROW_NONE ; - - size_t - find_last_not_of (const charT* s, size_t pos = NPOS) const _THROW_NONE ; - - size_t - find_last_not_of (charT c, size_t pos = NPOS) const _THROW_NONE ; - - basic_string - substr (size_t pos = 0, size_t n = NPOS) const _THROW_ALLOC_OUTRANGE ; - - int - compare (const basic_string& str, size_t pos = 0, size_t n = NPOS) const - _THROW_OUTRANGE ; - - int - compare (const charT* s, size_t pos, size_t n) const - _THROW_LENGTH_OUTRANGE ; - - int - compare (const charT* s, size_t pos = 0) const _THROW_OUTRANGE ; - - int - compare (charT c, size_t pos = 0, size_t rep = 1) const - _THROW_LENGTH_OUTRANGE ; - - friend - ostream& - operator<< (ostream& o, const basic_string& s) _THROW_NONE ; - - friend - istream& - operator>> (istream& i, basic_string& s) _THROW_ALLOC_LENGTH ; - - friend - basic_string - operator+ (const basic_string& lhs, const basic_string& rhs) - _THROW_ALLOC_LENGTH ; - - friend - basic_string - operator+ (const charT* lhs, const basic_string& rhs) - _THROW_ALLOC_LENGTH ; - - friend - basic_string - operator+ (charT lhs, const basic_string& rhs) _THROW_ALLOC_LENGTH ; - - friend - basic_string - operator+ (const basic_string& lhs, const charT* rhs) - _THROW_ALLOC_LENGTH ; - - friend - basic_string - operator+ (const basic_string& lhs, charT rhs) _THROW_ALLOC_LENGTH ; - -}; - -template -inline void -basic_string_ref::delete_ptr () _THROW_NONE -{ - if (res) - { - delete[] ptr; - res = 0; - ptr = 0; - } -} - -template -inline void -basic_string_ref::throwlength () _THROW_LENGTH -{ -#ifdef __MEXCEPT - throw length_error("Length exception occurred"); -#else - cout << "Length exception occurred" << endl; - exit(1); -#endif -} - -template -inline void -basic_string_ref::throwrange () _THROW_OUTRANGE -{ -#ifdef __MEXCEPT - throw out_of_range("Out of range exception occurred"); -#else - cout << "Out of range exception occurred" << endl; - exit(1); -#endif -} - -template -inline void -basic_string::delete_ref () _THROW_NONE -{ - --(reference->count); - if (!(reference->count)) - delete reference; -} - -template -inline size_t -basic_string::ref_count () const _THROW_NONE -{ - return reference->count; -} - -template -inline const charT* -basic_string::data () const _THROW_NONE -{ - if (length()) - return reference->ptr; - else - return 0; -} - -template -inline charT* -basic_string::point () _THROW_NONE -{ - return reference->ptr; -} - -template -inline size_t& -basic_string::len () _THROW_NONE -{ - return reference->len; -} - -template -inline size_t -basic_string::length () const _THROW_NONE -{ - return reference->len; -} - -template -inline size_t -basic_string::reserve () const _THROW_NONE -{ - return reference->res; -} - -template -inline charT -basic_string::get_at (size_t pos) const _THROW_OUTRANGE -{ - if (pos >= length()) - { - reference_class::throwrange(); - } - return *(data()+pos); -} - -template -inline charT -basic_string::operator[] (size_t pos) const _THROW_NONE -{ - if (pos < length()) - return *(data()+pos); - else - return 0; -} - -template -inline bool -operator== (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - return !(lhs.compare(rhs)); -} - -template -inline bool -operator== (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - return !(rhs.compare(lhs)); -} - -template -inline bool -operator== (charT lhs, const basic_string& rhs) _THROW_NONE -{ - return !(rhs.compare(lhs)); -} - -template -inline bool -operator== (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - return !(lhs.compare(rhs)); -} - -template -inline bool -operator== (const basic_string& lhs, charT rhs) _THROW_NONE -{ - return !(lhs.compare(rhs)); -} - -#ifdef __MNONDEF -template -inline bool -operator!= (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - return lhs.compare(rhs); -} -#endif - -template -inline bool -operator!= (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - return rhs.compare(lhs); -} - -template -inline bool -operator!= (charT lhs, const basic_string& rhs) _THROW_NONE -{ - return rhs.compare(lhs); -} - -template -inline bool -operator!= (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - return lhs.compare(rhs); -} - -template -inline bool -operator!= (const basic_string& lhs, charT rhs) _THROW_NONE -{ - return lhs.compare(rhs); -} - -template -inline bool -operator< (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - if (lhs.compare(rhs) < 0) - return true; - else - return false; -} - -template -inline bool -operator< (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - if (rhs.compare(lhs) > 0) - return true; - else - return false; -} - -template -inline bool -operator< (charT lhs, const basic_string& rhs) _THROW_NONE -{ - if (rhs.compare(lhs) > 0) - return true; - else - return false; -} - -template -inline bool -operator< (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - if (lhs.compare(rhs) < 0) - return true; - else - return false; -} - -template -inline bool -operator< (const basic_string& lhs, charT rhs) _THROW_NONE -{ - if (lhs.compare(rhs) < 0) - return true; - else - return false; -} - -#ifdef __MNONDEF -template -inline bool -operator> (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - return (rhs < lhs); -} -#endif - -template -inline bool -operator> (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - return (rhs < lhs); -} - -template -inline bool -operator> (charT lhs, const basic_string& rhs) _THROW_NONE -{ - return (rhs < lhs); -} - -template -inline bool -operator> (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - return (rhs < lhs); -} - -template -inline bool -operator> (const basic_string& lhs, charT rhs) _THROW_NONE -{ - return (rhs < lhs); -} - -#ifdef __MNONDEF -template -inline bool -operator>= (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - return !(lhs < rhs); -} -#endif - -template -inline bool -operator>= (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - return !(lhs < rhs); -} - -template -inline bool -operator>= (charT lhs, const basic_string& rhs) _THROW_NONE -{ - return !(lhs < rhs); -} - -template -inline bool -operator>= (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - return !(lhs < rhs); -} - -template -inline bool -operator>= (const basic_string& lhs, charT rhs) _THROW_NONE -{ - return !(lhs < rhs); -} - -#ifdef __MNONDEF -template -inline bool -operator<= (const basic_string& lhs, const basic_string& rhs) - _THROW_NONE -{ - return !(rhs < lhs); -} -#endif - -template -inline bool -operator<= (const charT* lhs, const basic_string& rhs) _THROW_NONE -{ - return !(rhs < lhs); -} - -template -inline bool -operator<= (charT lhs, const basic_string& rhs) _THROW_NONE -{ - return !(rhs < lhs); -} - -template -inline bool -operator<= (const basic_string& lhs, const charT* rhs) _THROW_NONE -{ - return !(rhs < lhs); -} - -template -inline bool -operator<= (const basic_string& lhs, charT rhs) _THROW_NONE -{ - return !(rhs < lhs); -} - -// definitions : can be in a .c file -// - -template -charT -basic_string_ref::eos () _THROW_NONE -{ - return baggage_type::eos(); -} - -template -basic_string_ref::basic_string_ref () _THROW_NONE -{ - res = len = 0; - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (size_t size, capacity cap) - _THROW_ALLOC_LENGTH -{ - /* - * This should be correctly scoped - * - * if (cap == ::reserve) - */ - - if (cap == std::reserve) - { - len = 0; - res = size; - ptr = new charT [res]; - } - /* - * This should be correctly scoped - * - * else if ((cap == ::default_size) && (size != NPOS)) - */ - - else if ((cap == std::default_size) && (size != NPOS)) - { - res = len = size; - if (res) - { - ptr = new charT [res]; - for (size_t position = 0; position < len; ++position) - baggage_type::assign (*(ptr+position), eos()); - } - else - ptr = 0; - } - else - { - throwlength(); - } - count = 1; -} - -template -basic_string_ref::basic_string_ref (const basic_string& str, - size_t pos, size_t rlen) _THROW_ALLOC -{ - res = len = rlen; - if (res) - { - ptr = new charT [res]; - baggage_type::copy (ptr, str.data()+pos, len); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (const charT* s, size_t rlen, - size_t rres) _THROW_ALLOC -{ - res = rres; - len = rlen; - if (res) - { - ptr = new charT [res]; - if (len) - baggage_type::copy (ptr, s, len); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (const charT* s, size_t n) - _THROW_ALLOC_LENGTH -{ - if (n == NPOS) - { - throwlength(); - } - res = len = n; - if (res) - { - ptr = new charT [res]; - baggage_type::copy (ptr, s, len); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (const charT* s) _THROW_ALLOC -{ - res = len = baggage_type::length(s); - if (res) - { - ptr = new charT [res]; - baggage_type::copy (ptr, s, len); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (charT c, size_t rep) - _THROW_ALLOC_LENGTH -{ - if (rep == NPOS) - { - throwlength(); - } - res = len = rep; - if (res) - { - ptr = new charT [res]; - for (size_t position = 0; position < len; ++position) - baggage_type::assign (*(ptr+position), c); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::basic_string_ref (const vector& vec) - _THROW_ALLOC_LENGTH -{ - size_t n = vec.size(); - if (n == NPOS) - { - throwlength(); - } - res = len = n; - if (res) - { - ptr = new charT [res]; - baggage_type::copy (ptr, vec.begin(), len); - } - else - ptr = 0; - count = 1; -} - -template -basic_string_ref::~basic_string_ref () _THROW_NONE -{ - delete_ptr(); -} - -template -charT -basic_string::eos () _THROW_NONE -{ - return baggage_type::eos(); -} - -template -void -basic_string::assign_str (const charT* s, size_t slen) - _THROW_ALLOC_LENGTH -{ - if (slen == NPOS) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (slen && (reserve() < slen))) - { - reference_pointer tmp; - tmp = new basic_string_ref (s, slen); - delete_ref(); - reference = tmp; - } - else if (slen) - { - baggage_type::copy (point(), s, slen); - } - reference->len = slen; -} - -template -void -basic_string::append_str (const charT* s, size_t slen) - _THROW_ALLOC_LENGTH -{ - if (length() >= (NPOS-slen)) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (slen > (reserve()-length()))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), length()+slen); - delete_ref(); - reference = tmp; - } - if (slen) - baggage_type::copy (point()+length(), s, slen); - reference->len += slen; -} - -template -void -basic_string::insert_str (size_t pos, const charT* s, size_t slen) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if (length() >= (NPOS-slen)) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (slen > (reserve()-length()))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), pos, length()+slen); - baggage_type::copy (tmp->ptr+pos+slen, data()+pos, length()-pos); - tmp->len = length(); - delete_ref(); - reference = tmp; - } - else - { - for (size_t count = length()-pos; count > 0; --count) - baggage_type::assign (*(point()+pos+slen+count-1), - *(data()+pos+count-1)); - } - if (slen) - baggage_type::copy (point()+pos, s, slen); - reference->len += slen; -} - -template -void -basic_string::replace_str (size_t xlen, size_t pos, const charT* s, - size_t slen) _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if ((length()-xlen) >= (NPOS-slen)) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (reserve() < (length()+slen-xlen))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), pos, length()+slen-xlen); - baggage_type::copy (tmp->ptr+pos+slen, data()+pos+xlen, - length()-pos-xlen); - tmp->len = length(); - delete_ref(); - reference = tmp; - } - else - { - if (slen < xlen) - baggage_type::copy (point()+pos+slen, data()+pos+xlen, - length()-pos-xlen); - else - { - for (size_t count = length()-pos-xlen; count > 0; --count) - baggage_type::assign (*(point()+pos+slen+count-1), - *(data()+pos+xlen+count-1)); - } - } - if (slen) - baggage_type::copy (point()+pos, s, slen); - reference->len += (slen-xlen); -} - -template -int -basic_string::compare_str (size_t pos, const charT* str, size_t slen, - size_t strlen) const _THROW_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - size_t rlen = (slen > strlen ) ? strlen : slen; - int result; - if (!length()) - return str ? (eos()- *str) : eos(); - result = baggage_type::compare (data()+pos, str, rlen); - return result ? result : (length()-pos-strlen); -} - -template -size_t -basic_string::find_str (const charT* s, size_t pos, size_t len) - const _THROW_NONE -{ - size_t count = pos; - size_t shift; - size_t place; - if ((length() == 0) || (len == 0)) - return NPOS; - while (len <= (length()-count)) - { - for (place = 0; place < len; ++place) - { - if (baggage_type::ne(*(s+len-1-place), *(data()+count+(len-1-place)))) - break; - } - if (place == len) - return count; - shift = find(*(s+len-1-place), count+(len-place)); - if (shift == NPOS) - return NPOS; - count = shift-(len-place-1); - } - return NPOS; -} - -template -size_t -basic_string::rfind_str (const charT* s, size_t pos, size_t len) - const _THROW_NONE -{ - size_t count = (pos < (length()-len)) ? (pos+1) : (length()-len); - size_t shift; - size_t place; - if ((length() < len) || (len == 0)) - return NPOS; - while (count > 0) - { - for (place = 0; place < len; ++place) - { - if (baggage_type::ne(*(s+len-1-place), *(data()+count+(len-place)-2))) - break; - } - if (place == len) - return count-1; - shift = rfind(*(s+len-1-place), count+(len-place)-3); - if (shift == NPOS) - return NPOS; - count = shift+place-len+2; - } - return NPOS; - -} - -template -size_t -basic_string::find_first_of_str (const charT* s, size_t pos, size_t len) - const _THROW_NONE -{ - size_t temp; - size_t count = pos; - size_t result = NPOS; - while (count < length()) - { - temp = 0; - while ((temp < len) && baggage_type::ne(*(data()+count), *(s+temp))) - ++temp; - if (temp != len) - break; - ++count; - } - temp = (count >= length()) ? NPOS : count; - return ((result > temp) ? temp : result); -} - -template -size_t -basic_string::find_last_of_str (const charT* s, size_t pos, size_t len) - const _THROW_NONE -{ - size_t temp = 0; - size_t count = (pos < length()) ? (pos+1) : length(); - if (length()) - { - while (count > 0) - { - temp = 0; - --count; - while ((temp != len) && baggage_type::ne(*(data()+count), *(s+temp))) - ++temp; - if (temp != len) - break; - } - } - return ((temp != len) && length()) ? count : NPOS; -} - -template -size_t -basic_string::find_first_not_of_str (const charT* s, size_t pos, - size_t len) const _THROW_NONE -{ - size_t count = pos; - while (count < length()) - { - size_t temp = 0; - while (temp < len) - { - if (baggage_type::eq(*(data()+count), *(s+temp))) - break; - ++temp; - } - if (temp == len) - break; - ++count; - } - return ((count >= length()) ? NPOS : count); -} - -template -size_t -basic_string::find_last_not_of_str (const charT* s, size_t pos, - size_t len) const _THROW_NONE -{ - size_t temp = 0; - size_t count = (pos < length()) ? (pos+1) : length(); - - if (length()) - { - while (count > 0) - { - temp = 0; - while (temp != len) - { - if (baggage_type::eq(*(data()+count-1), *(s+temp))) - break; - ++temp; - } - if (temp == len) - break; - --count; - } - } - return ((temp == len) && length()) ? count-1 : NPOS; -} - -template -basic_string::basic_string () _THROW_ALLOC -{ - reference = new basic_string_ref (); - c_str_ptr = 0; -} - -template -basic_string::basic_string (size_t size, capacity cap) - _THROW_ALLOC_LENGTH -{ - reference = new basic_string_ref (size, cap); - c_str_ptr = 0; -} - -template -basic_string::basic_string (const basic_string& str, - size_t pos, size_t n) _THROW_ALLOC_OUTRANGE -{ - if (pos > str.length()) - { - reference_class::throwrange(); - } - size_t rlen = (n > (str.length() - pos)) ? str.length() - pos : n; - if ((rlen == str.length()) && (str.ref_count() != NPOS)) - (reference = str.reference)->count++; - else - reference = new basic_string_ref (str, pos, rlen); - c_str_ptr = 0; -} - -template -basic_string::basic_string (const charT* s, size_t rlen, size_t xlen) - _THROW_ALLOC_LENGTH -{ - if (rlen >= (NPOS - xlen)) - { - reference_class::throwlength(); - } - reference = new basic_string_ref (s, rlen, rlen+xlen); - c_str_ptr = 0; -} - -template -basic_string::basic_string (const charT* s, size_t n) _THROW_ALLOC_LENGTH -{ - reference = new basic_string_ref (s, n); - c_str_ptr = 0; -} - -template -basic_string::basic_string (const charT* s) _THROW_ALLOC -{ - reference = new basic_string_ref (s); - c_str_ptr = 0; -} - -template -basic_string::basic_string (charT c, size_t rep) _THROW_ALLOC_LENGTH -{ - reference = new basic_string_ref (c, rep); - c_str_ptr = 0; -} - -template -basic_string::basic_string (const vector& vec) _THROW_ALLOC_LENGTH -{ - reference = new basic_string_ref (vec); - c_str_ptr = 0; -} - -template -basic_string::~basic_string () _THROW_NONE -{ - delete_ref(); - if (c_str_ptr) - delete[] c_str_ptr; -} - -template -basic_string& -basic_string::operator= (const basic_string& str) _THROW_ALLOC -{ - if (this != &str) - { - delete_ref(); - if (str.ref_count() != NPOS) - (reference = str.reference)->count++; - else - reference = new basic_string_ref (str, 0, str.length()); - } - return *this; -} - -template -basic_string& -basic_string::operator= (const charT* s) _THROW_ALLOC -{ - assign_str (s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::operator= (charT c) _THROW_ALLOC -{ - if ((ref_count() == 1) && (reserve() >= 1)) - { - baggage_type::assign (*(point()), c); - reference->len = 1; - } - else - { - delete_ref(); - reference = new basic_string_ref (c, 1); - } - return *this; -} - -template -basic_string& -basic_string::operator+= (const basic_string& rhs) _THROW_ALLOC_LENGTH -{ - append_str (rhs.data(), rhs.length()); - return *this; -} - -template -basic_string& -basic_string::operator+= (const charT* s) _THROW_ALLOC_LENGTH -{ - append_str (s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::operator+= (charT c) _THROW_ALLOC_LENGTH -{ - if (length() >= (NPOS-1)) - { - reference_class::throwlength(); - } - if (!((ref_count() == 1) && (reserve() > length()))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), length()+1); - delete_ref(); - reference = tmp; - } - baggage_type::assign (*(point()+length()), c); - reference->len++; - return *this; -} - -template -basic_string& -basic_string::append (const basic_string& str, size_t pos, size_t n) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > str.length()) - { - reference_class::throwrange(); - } - append_str (str.data() + pos, (n>(str.length()-pos))?(str.length()-pos):n); - return *this; -} - -template -basic_string& -basic_string::append (const charT* s, size_t n) _THROW_ALLOC_LENGTH -{ - append_str (s, n); - return *this; -} - -template -basic_string& -basic_string::append (const charT* s) _THROW_ALLOC_LENGTH -{ - append_str (s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::append (charT c, size_t rep) _THROW_ALLOC_LENGTH -{ - if (length() >= (NPOS-rep)) - { - reference_class::throwlength(); - } - if (rep) - { - if ((ref_count() > 1) || (reserve() < (length() + rep))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), length()+rep); - delete_ref(); - reference = tmp; - } - for (size_t count = 0; count < rep; ++count) - baggage_type::assign (*(point()+length()+count), c); - reference->len += rep; - } - return *this; -} - -template -basic_string& -basic_string::assign (const basic_string& str, size_t pos, size_t n) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > str.length()) - { - reference_class::throwrange(); - } - size_t rlen = (n > (str.length() - pos)) ? str.length() - pos : n; - if ((rlen == str.length()) && (str.ref_count() != NPOS)) - { - delete_ref(); - (reference = str.reference)->count++; - } - else - assign_str (str.data()+pos, rlen); - return *this; -} - -template -basic_string& -basic_string::assign (const charT* s, size_t n) _THROW_ALLOC_LENGTH -{ - assign_str (s, n); - return *this; -} - -template -basic_string& -basic_string::assign (const charT* s) _THROW_ALLOC_LENGTH -{ - assign_str (s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::assign (charT c, size_t rep) _THROW_ALLOC_LENGTH -{ - if (rep == NPOS) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (rep && (reserve() < rep))) - { - reference_pointer tmp; - tmp = new basic_string_ref (c, rep); - delete_ref(); - reference = tmp; - } - else - { - for (size_t count = 0; count < rep; ++count) - baggage_type::assign (*(point()+count), c); - reference->len = rep; - } - return *this; -} - -template -basic_string& -basic_string::insert (size_t pos1, const basic_string& str, - size_t pos2, size_t n) _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos2 > str.length()) - { - reference_class::throwrange(); - } - size_t rlen = (n > (str.length() - pos2)) ? str.length() - pos2 : n; - insert_str (pos1, str.data()+pos2, rlen); - return *this; -} - -template -basic_string& -basic_string::insert (size_t pos, const charT* s, size_t n) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - insert_str(pos, s, n); - return *this; -} - -template -basic_string& -basic_string::insert (size_t pos, const charT* s) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - insert_str(pos, s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::insert (size_t pos, charT c, size_t rep) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if ((rep == NPOS) || (length() >= (NPOS - rep))) - { - reference_class::throwlength(); - } - if (rep) - { - size_t count; - if ((ref_count() > 1) || (reserve() < (length()+rep))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), pos, length()+rep); - if (length()) - for (count = length()-pos; count > 0; --count) - baggage_type::assign (*(tmp->ptr+pos+rep+count-1), - *(data()+pos+count-1)); - tmp->len = length(); - delete_ref(); - reference = tmp; - } - else - { - for (count = length()-pos; count > 0; --count) - baggage_type::assign (*(point()+pos+rep+count-1), - *(data()+pos+count-1)); - } - for (count = 0; count < rep; ++count) - baggage_type::assign (*(point()+pos+count), c); - reference->len += rep; - } - return *this; -} - -template -basic_string& -basic_string::remove (size_t pos, size_t n) _THROW_ALLOC_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - size_t xlen = (n > (length()-pos)) ? (length()-pos) : n; - if (ref_count() > 1) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), pos, length()); - baggage_type::copy (tmp->ptr+pos, data()+pos+xlen, length()-xlen-pos); - tmp->len = length()-xlen; - delete_ref(); - reference = tmp; - } - else if (xlen == length()) - reference->len = 0; - else if (xlen) - { - baggage_type::copy (point()+pos, data()+pos+xlen, length()-xlen-pos); - reference->len -= xlen; - } - return *this; -} - -template -basic_string& -basic_string::replace (size_t pos1, size_t n1, const basic_string& str, - size_t pos2, size_t n2) _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos2 > str.length()) - { - reference_class::throwrange(); - } - size_t xlen = (n1 > (length()-pos1)) ? (length()-pos1) : n1; - size_t rlen = (n2 > (str.length()-pos2)) ? (str.length()-pos2) : n2; - replace_str (xlen, pos1, str.data()+pos2, rlen); - return *this; -} - -template -basic_string& -basic_string::replace (size_t pos, size_t n1, const charT* s, size_t n2) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - size_t xlen = (n1 > (length()-pos)) ? (length()-pos) : n1; - replace_str (xlen, pos, s, n2); - return *this; -} - -template -basic_string& -basic_string::replace (size_t pos, size_t n1, const charT* s) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - size_t xlen = (n1 > (length()-pos)) ? (length()-pos) : n1; - replace_str (xlen, pos, s, baggage_type::length(s)); - return *this; -} - -template -basic_string& -basic_string::replace (size_t pos, size_t n, charT c, size_t rep) - _THROW_ALLOC_LENGTH_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - size_t xlen = (n > (length()-pos)) ? (length()-pos) : n; - if ((length()-xlen) >= (NPOS-rep)) - { - reference_class::throwlength(); - } - if (!rep) - return remove (pos, n); - else - { - size_t count; - if ((ref_count() > 1) || (reserve() < (length()-xlen+rep))) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), pos, - length()+((xlen > rep) ? (xlen-rep) : 0)); - if (rep < xlen) - baggage_type::copy (tmp->ptr+pos+rep, data()+pos+xlen, - length()-pos-xlen); - else - { - for (count = length()-xlen-pos; count > 0; --count) - baggage_type::assign (*(tmp->ptr+pos+rep+count-1), - *(data()+pos+xlen+count-1)); - } - tmp->len = length(); - delete_ref(); - reference = tmp; - } - else - { - if (rep < xlen) - baggage_type::copy (point()+pos+rep, data()+pos+xlen, - length()-pos-xlen); - else - { - for (count = length()-xlen-pos; count > 0; --count) - baggage_type::assign (*(point()+pos+rep+count-1), - *(data()+pos+xlen+count-1)); - } - } - for (count = 0; count < rep; ++count) - baggage_type::assign (*(point()+pos+count), c); - reference->len += (rep-xlen); - } - return *this; -} - -template -void -basic_string::put_at (size_t pos, charT c) _THROW_ALLOC_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if ((ref_count() > 1) || (pos == reserve())) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), - length()+((pos==length())?1:0)); - delete_ref(); - reference = tmp; - } - if (pos == length()) - ++reference->len; - baggage_type::assign (*(point()+pos), c); -} - -template -charT& -basic_string::operator[] (size_t pos) _THROW_ALLOC_OUTRANGE -{ - if (pos >= length()) - { - reference_class::throwrange(); - } - if (ref_count() > 1) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), length()); - delete_ref(); - reference = tmp; - } - return *(point()+pos); -} - -template -const charT* -basic_string::c_str () const _THROW_ALLOC -{ - if (c_str_ptr) - delete[] ((basic_string*)this)->c_str_ptr; - ((basic_string*)this)->c_str_ptr = new charT [length()+1]; - if (length()) - baggage_type::copy (((basic_string*)this)->c_str_ptr, data(), - length()); - baggage_type::assign (*(((basic_string*)this)->c_str_ptr+length()), - eos()); - return c_str_ptr; -} - -template -void -basic_string::resize (size_t n, charT c) _THROW_ALLOC_LENGTH -{ - if (n == NPOS) - { - reference_class::throwlength(); - } - if ((ref_count() > 1) || (n > reserve())) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), - ((n > length()) ? length() : n), n); - delete_ref(); - reference = tmp; - } - while (reference->len < n) - { - baggage_type::assign (*(reference->ptr+length()), c); - ++reference->len; - } - reference->len = n; -} - -template -void -basic_string::resize (size_t n) _THROW_ALLOC_LENGTH -{ - resize (n, eos()); -} - -template -void -basic_string::reserve (size_t res_arg) _THROW_ALLOC_LENGTH -{ - if (res_arg == NPOS) - { - reference_class::throwlength(); - } - if (res_arg > reserve()) - { - reference_pointer tmp; - tmp = new basic_string_ref (data(), length(), res_arg); - delete_ref(); - reference = tmp; - } -} - -template -size_t -basic_string::copy (charT* s, size_t n, size_t pos) const _THROW_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - size_t rlen = (n > (length()-pos)) ? (length()-pos) : n; - if (length()) - baggage_type::copy (s, data()+pos, rlen); - return rlen; -} - -template -size_t -basic_string::find (const basic_string& str, size_t pos) const - _THROW_NONE -{ - return find_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::find (const charT* s, size_t pos, size_t n) const - _THROW_NONE -{ - return find_str (s, pos, n); -} - -template -size_t -basic_string::find (const charT* s, size_t pos) const _THROW_NONE -{ - return find_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::find (charT c, size_t pos) const _THROW_NONE -{ - while ((pos < length()) && (baggage_type::ne(*(data()+pos), c))) - ++pos; - return ((pos < length()) ? pos : NPOS); -} - -template -size_t -basic_string::rfind (const basic_string& str, size_t pos) const - _THROW_NONE -{ - return rfind_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::rfind (const charT* s, size_t pos, size_t n) const - _THROW_NONE -{ - return rfind_str (s, pos, n); -} - -template -size_t -basic_string::rfind (const charT* s, size_t pos) const _THROW_NONE -{ - return rfind_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::rfind (charT c, size_t pos) const _THROW_NONE -{ - size_t count = ((pos < length()) ? pos+1 : length()); - if (length() == 0) - return NPOS; - while ((baggage_type::ne(*(data()+count-1), c)) && (count > 1)) - --count; - if ((count == 1) && (baggage_type::ne(*(data()), c))) - return NPOS; - else - return count-1; -} - -template -size_t -basic_string::find_first_of (const basic_string& str, size_t pos) const - _THROW_NONE -{ - return find_first_of_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::find_first_of (const charT* s, size_t pos, size_t n) const - _THROW_NONE -{ - return find_first_of_str (s, pos, n); -} - -template -size_t -basic_string::find_first_of (const charT* s, size_t pos) const - _THROW_NONE -{ - return find_first_of_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::find_first_of (charT c, size_t pos) const _THROW_NONE -{ - return find (c, pos); -} - -template -size_t -basic_string::find_last_of (const basic_string& str, size_t pos) const - _THROW_NONE -{ - return find_last_of_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::find_last_of (const charT* s, size_t pos, size_t n) const - _THROW_NONE -{ - return find_last_of_str (s, pos, n); -} - -template -size_t -basic_string::find_last_of (const charT* s, size_t pos) const _THROW_NONE -{ - return find_last_of_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::find_last_of (charT c, size_t pos) const _THROW_NONE -{ - return rfind (c, pos); -} - -template -size_t -basic_string::find_first_not_of (const basic_string& str, size_t pos) - const _THROW_NONE -{ - return find_first_not_of_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::find_first_not_of (const charT* s, size_t pos, size_t n) - const _THROW_NONE -{ - return find_first_not_of_str (s, pos, n); -} - -template -size_t -basic_string::find_first_not_of (const charT* s, size_t pos) const - _THROW_NONE -{ - return find_first_not_of_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::find_first_not_of (charT c, size_t pos) const _THROW_NONE -{ - while ((pos < length()) && (baggage_type::eq(*(data()+pos), c))) - ++pos; - return ((pos < length()) ? pos : NPOS); -} - -template -size_t -basic_string::find_last_not_of (const basic_string& str, size_t pos) - const _THROW_NONE -{ - return find_last_not_of_str (str.data(), pos, str.length()); -} - -template -size_t -basic_string::find_last_not_of (const charT* s, size_t pos, size_t n) - const _THROW_NONE -{ - return find_last_not_of_str (s, pos, n); -} - -template -size_t -basic_string::find_last_not_of (const charT* s, size_t pos) const - _THROW_NONE -{ - return find_last_not_of_str (s, pos, baggage_type::length(s)); -} - -template -size_t -basic_string::find_last_not_of (charT c, size_t pos) const _THROW_NONE -{ - size_t count = ((pos < length()) ? pos+1 : length()); - if (length() == 0) - return NPOS; - while ((baggage_type::eq(*(data()+count-1), c)) && (count > 1)) - --count; - if ((count == 1) && (baggage_type::eq(*(data()), c))) - return NPOS; - else - return count-1; -} - -template -basic_string -basic_string::substr (size_t pos, size_t n) const _THROW_ALLOC_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if (length()) - return basic_string (data()+pos, - (n > (length()-pos)) ? (length()-pos) : n); - else - return basic_string(); -} - -template -int -basic_string::compare (const basic_string& str, size_t pos, - size_t n) const _THROW_OUTRANGE -{ - size_t slen = (n > (length()-pos)) ? (length()-pos) : n; - return compare_str (pos, str.data(), slen, str.length()); -} - -template -int -basic_string::compare (const charT* s, size_t pos, size_t n) const - _THROW_LENGTH_OUTRANGE -{ - if (n == NPOS) - { - reference_class::throwlength(); - } - return compare_str (pos, s, length()-pos, n); -} - -template -int -basic_string::compare (const charT* s, size_t pos) const _THROW_OUTRANGE -{ - return compare_str (pos, s, length()-pos, baggage_type::length(s)); -} - -template -int -basic_string::compare (charT c, size_t pos, size_t rep) const - _THROW_LENGTH_OUTRANGE -{ - if (pos > length()) - { - reference_class::throwrange(); - } - if (rep == NPOS) - { - reference_class::throwlength(); - } - if (rep) - { - size_t count = 0; - while ((count < rep) && (count < (length()-pos)) && - baggage_type::eq (*(data()+pos+count), c)) - ++count; - if ((count == rep) || (count == (length()-pos))) - return (length()-pos-count); - else - return (*(data()+pos+count)-c); - } - else - { - return (length()-pos); - } -} - -template -basic_string -operator+ (const basic_string& lhs, const basic_string& rhs) - _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - basic_string tmp(lhs.data(), lhs.length(), rhs.length()); - if (rhs.length()) - baggage_type::copy (tmp.point()+lhs.length(), rhs.data(), rhs.length()); - tmp.len() += rhs.length(); - return tmp; -} - -template -basic_string -operator+ (const charT* lhs, const basic_string& rhs) _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - size_t slen = baggage_type::length(lhs); - basic_string tmp(lhs, slen, rhs.length()); - if (rhs.length()) - baggage_type::copy (tmp.point()+slen, rhs.data(), rhs.length()); - tmp.len() += rhs.length(); - return tmp; -} - -template -basic_string -operator+ (charT lhs, const basic_string& rhs) _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - basic_string tmp(&lhs, 1, rhs.length()); - if (rhs.length()) - baggage_type::copy (tmp.point()+1, rhs.data(), rhs.length()); - tmp.len() += rhs.length(); - return tmp; -} - -template -basic_string -operator+ (const basic_string& lhs, const charT* rhs) _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - size_t slen = baggage_type::length(rhs); - basic_string tmp(lhs.data(), lhs.length(), slen); - if (slen) - baggage_type::copy (tmp.point()+lhs.length(), rhs, slen); - tmp.len() += slen; - return tmp; -} - -template -basic_string -operator+ (const basic_string& lhs, charT rhs) _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - basic_string tmp(lhs.data(), lhs.length(), 1); - baggage_type::assign (*(tmp.point()+lhs.length()), rhs); - ++tmp.len(); - return tmp; -} - -template -ostream& -operator<< (ostream& o, const basic_string& s) _THROW_NONE -{ - typedef basic_string::baggage_type baggage_type; - for (size_t count = 0; count < s.length(); ++count) - baggage_type::char_out (o, *(s.data()+count)); - return o; -} - -template -istream& -operator>> (istream& i, basic_string& s) _THROW_ALLOC_LENGTH -{ - typedef basic_string::baggage_type baggage_type; - s.remove(); - while (true) - { - charT value; - baggage_type::char_in (i, value); - if (!i.operator void*()) - break; - if (!baggage_type::is_del (value)) - { - s.append(value); - while (true) - { - baggage_type::char_in (i, value); - if (!i.operator void*()) - break; - if (!baggage_type::is_del (value)) - { - s.append(value); - } - else - break; - } - break; - } - } - return i; -} - -#if ! defined (ghs) -// GreenHills 1.8.8 doesn't like this template specialization . . . -template class basic_string; -#endif /* ghs */ -/* static */ -template -const size_t basic_string::npos = NPOS; -typedef basic_string cstring; -typedef basic_string string; -//typedef basic_string wstring; - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/bvector.cpp b/STL/bvector.cpp deleted file mode 100644 index 86b134c4b5e..00000000000 --- a/STL/bvector.cpp +++ /dev/null @@ -1,80 +0,0 @@ -#define STL_BVECTOR -#define SA_STD std -#include - -namespace std -{ - -Allocator bit_vector::static_allocator; - -inline bool operator==(const bit_vector& x, const bit_vector& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -inline bool operator<(const bit_vector& x, const bit_vector& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -void swap(bit_vector::reference x, bit_vector::reference y) { - bool tmp = x; - x = y; - y = tmp; -} - -void bit_vector::insert_aux(iterator position, bool x) { - if (finish.p != end_of_storage) { - copy_backward(position, finish - 1, finish); - *position = x; - ++finish; - } else { - size_type len = size() ? 2 * size() : __WORD_BIT; - unsigned int* q = bit_alloc(len); - iterator i = copy(begin(), position, iterator(q, 0)); - *i++ = x; - finish = copy(position, end(), i); - static_allocator.deallocate(start.p); - end_of_storage = q + (len + __WORD_BIT - 1)/__WORD_BIT; - start = iterator(q, 0); - } -} - -void bit_vector::insert(iterator position, size_type n, bool x) { - if (n == 0) return; - if (capacity() - size() >= n) { - copy_backward(position, end(), finish + n); - fill(position, position + n, x); - finish += n; - } else { - size_type len = size() + max(size(), n); - unsigned int* q = bit_alloc(len); - iterator i = copy(begin(), position, iterator(q, 0)); - fill_n(i, n, x); - finish = copy(position, end(), i + n); - static_allocator.deallocate(start.p); - end_of_storage = q + (n + __WORD_BIT - 1)/__WORD_BIT; - start = iterator(q, 0); - } -} - -void bit_vector::insert(iterator position, const_iterator first, - const_iterator last) { - if (first == last) return; - size_type n = 0; - distance(first, last, n); - if (capacity() - size() >= n) { - copy_backward(position, end(), finish + n); - copy(first, last, position); - finish += n; - } else { - size_type len = size() + max(size(), n); - unsigned int* q = bit_alloc(len); - iterator i = copy(begin(), position, iterator(q, 0)); - i = copy(first, last, i); - finish = copy(position, end(), i); - static_allocator.deallocate(start.p); - end_of_storage = q + (len + __WORD_BIT - 1)/__WORD_BIT; - start = iterator(q, 0); - } -} - -} \ No newline at end of file diff --git a/STL/bvector.h b/STL/bvector.h deleted file mode 100644 index 01f66ecddd3..00000000000 --- a/STL/bvector.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -// vector is replaced by bit_vector at present because bool is not -// implemented. - -#ifndef BVECTOR_H -#define BVECTOR_H - -#include -#include -#include -#include - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#define __WORD_BIT (int(CHAR_BIT*sizeof(unsigned int))) - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -class bit_vector { -public: - typedef Allocator vector_allocator; - typedef bool value_type; - typedef vector_allocator::size_type size_type; - typedef vector_allocator::difference_type difference_type; - - class iterator; - class const_iterator; - - class reference { - friend class iterator; - friend class const_iterator; - protected: - unsigned int* p; - unsigned int mask; - reference(unsigned int* x, unsigned int y) : p(x), mask(y) {} - public: - reference() : p(0), mask(0) {} - operator bool() const { return !(!(*p & mask)); } - reference& operator=(bool x) { - if (x) - *p |= mask; - else - *p &= ~mask; - return *this; - } - reference& operator=(const reference& x) { return *this = bool(x); } - bool operator==(const reference& x) const { - return bool(*this) == bool(x); - } - bool operator<(const reference& x) const { - return bool(*this) < bool(x); - } - void flip() { *p ^= mask; } - }; - typedef bool const_reference; - class iterator : public random_access_iterator { - friend class bit_vector; - friend class const_iterator; - protected: - unsigned int* p; - unsigned int offset; - void bump_up() { - if (offset++ == __WORD_BIT - 1) { - offset = 0; - ++p; - } - } - void bump_down() { - if (offset-- == 0) { - offset = __WORD_BIT - 1; - --p; - } - } - public: - iterator() : p(0), offset(0) {} - iterator(unsigned int* x, unsigned int y) : p(x), offset(y) {} - reference operator*() const { return reference(p, 1U << offset); } - iterator& operator++() { - bump_up(); - return *this; - } - iterator operator++(int) { - iterator tmp = *this; - bump_up(); - return tmp; - } - iterator& operator--() { - bump_down(); - return *this; - } - iterator operator--(int) { - iterator tmp = *this; - bump_down(); - return tmp; - } - iterator& operator+=(difference_type i) { - difference_type n = i + offset; - p += n / __WORD_BIT; - n = n % __WORD_BIT; - if (n < 0) { - offset = n + __WORD_BIT; - --p; - } else - offset = n; - return *this; - } - iterator& operator-=(difference_type i) { - *this += -i; - return *this; - } - iterator operator+(difference_type i) const { - iterator tmp = *this; - return tmp += i; - } - iterator operator-(difference_type i) const { - iterator tmp = *this; - return tmp -= i; - } - difference_type operator-(iterator x) const { - return __WORD_BIT * (p - x.p) + offset - x.offset; - } - reference operator[](difference_type i) { return *(*this + i); } - bool operator==(const iterator& x) const { - return p == x.p && offset == x.offset; - } - bool operator<(iterator x) const { - return p < x.p || (p == x.p && offset < x.offset); - } - }; - - class const_iterator - : public random_access_iterator { - friend class bit_vector; - protected: - unsigned int* p; - unsigned int offset; - void bump_up() { - if (offset++ == __WORD_BIT - 1) { - offset = 0; - ++p; - } - } - void bump_down() { - if (offset-- == 0) { - offset = __WORD_BIT - 1; - --p; - } - } - public: - const_iterator() : p(0), offset(0) {} - const_iterator(unsigned int* x, unsigned int y) : p(x), offset(y) {} - const_iterator(const iterator& x) : p(x.p), offset(x.offset) {} - const_reference operator*() const { - return reference(p, 1U << offset); - } - const_iterator& operator++() { - bump_up(); - return *this; - } - const_iterator operator++(int) { - const_iterator tmp = *this; - bump_up(); - return tmp; - } - const_iterator& operator--() { - bump_down(); - return *this; - } - const_iterator operator--(int) { - const_iterator tmp = *this; - bump_down(); - return tmp; - } - const_iterator& operator+=(difference_type i) { - difference_type n = i + offset; - p += n / __WORD_BIT; - n = n % __WORD_BIT; - if (n < 0) { - offset = n + __WORD_BIT; - --p; - } else - offset = n; - return *this; - } - const_iterator& operator-=(difference_type i) { - *this += -i; - return *this; - } - const_iterator operator+(difference_type i) const { - const_iterator tmp = *this; - return tmp += i; - } - const_iterator operator-(difference_type i) const { - const_iterator tmp = *this; - return tmp -= i; - } - difference_type operator-(const_iterator x) const { - return __WORD_BIT * (p - x.p) + offset - x.offset; - } - const_reference operator[](difference_type i) { - return *(*this + i); - } - bool operator==(const const_iterator& x) const { - return p == x.p && offset == x.offset; - } - bool operator<(const_iterator x) const { - return p < x.p || (p == x.p && offset < x.offset); - } - }; - - typedef reverse_iterator const_reverse_iterator; - typedef reverse_iterator - reverse_iterator; - -protected: - static Allocator static_allocator; - iterator start; - iterator finish; - unsigned int* end_of_storage; - unsigned int* bit_alloc(size_type n) { - return static_allocator.allocate((n + __WORD_BIT - 1)/__WORD_BIT); - } - void initialize(size_type n) { - unsigned int* q = bit_alloc(n); - end_of_storage = q + (n + __WORD_BIT - 1)/__WORD_BIT; - start = iterator(q, 0); - finish = start + n; - } - void insert_aux(iterator position, bool x); - typedef bit_vector self; -public: - iterator begin() { return start; } - const_iterator begin() const { return start; } - iterator end() { return finish; } - const_iterator end() const { return finish; } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - size_type size() const { return size_type(end() - begin()); } - size_type max_size() const { return static_allocator.max_size(); } - size_type capacity() const { - return size_type(const_iterator(end_of_storage, 0) - begin()); - } - bool empty() const { return begin() == end(); } - reference operator[](size_type n) { return *(begin() + n); } - const_reference operator[](size_type n) const { return *(begin() + n); } - bit_vector() : start(iterator()), finish(iterator()), end_of_storage(0) {} - bit_vector(size_type n, bool value = bool()) { - initialize(n); - fill(start.p, end_of_storage, value ? ~0 : 0); - } - bit_vector(const self& x) { - initialize(x.size()); - copy(x.begin(), x.end(), start); - } - bit_vector(const_iterator first, const_iterator last) { - size_type n = 0; - distance(first, last, n); - initialize(n); - copy(first, last, start); - } - ~bit_vector() { static_allocator.deallocate(start.p); } - self& operator=(const self& x) { - if (&x == this) return *this; - if (x.size() > capacity()) { - static_allocator.deallocate(start.p); - initialize(x.size()); - } - copy(x.begin(), x.end(), begin()); - finish = begin() + x.size(); - return *this; - } - void reserve(size_type n) { - if (capacity() < n) { - unsigned int* q = bit_alloc(n); - finish = copy(begin(), end(), iterator(q, 0)); - static_allocator.deallocate(start.p); - start = iterator(q, 0); - end_of_storage = q + (n + __WORD_BIT - 1)/__WORD_BIT; - } - } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - void push_back(bool x) { - if (finish.p != end_of_storage) - *finish++ = x; - else - insert_aux(end(), x); - } - void swap(bit_vector& x) { - std::swap(start, x.start); - std::swap(finish, x.finish); - std::swap(end_of_storage, x.end_of_storage); - } - iterator insert(iterator position, bool x) { - size_type n = position - begin(); - if (finish.p != end_of_storage && position == end()) - *finish++ = x; - else - insert_aux(position, x); - return begin() + n; - } - void insert(iterator position, const_iterator first, - const_iterator last); - void insert(iterator position, size_type n, bool x); - void pop_back() { --finish; } - void erase(iterator position) { - if (position + 1 != end()) - copy(position + 1, end(), position); - --finish; - } - void erase(iterator first, iterator last) { - finish = copy(last, end(), first); - } -}; - -// Code moved to bvector.cpp by Terris - -// Added by Terris --begin-- -bool operator==(const bit_vector& x, const bit_vector& y); -bool operator<(const bit_vector& x, const bit_vector& y); -void swap(bit_vector::reference x, bit_vector::reference y); -// Added by Terris --end-- - -// Added by Terris --begin-- - -#ifndef STL_BVECTOR -#undef Allocator -#undef __WORD_BIT -#endif - -// Added by Terris --end-- - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/defalloc.h b/STL/defalloc.h deleted file mode 100644 index c0e2e04998d..00000000000 --- a/STL/defalloc.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef DEFALLOC_H -#define DEFALLOC_H - -#include -#include -#include -#include -#include -#include - -#if 0 -inline void* operator new(size_t, void* p) {return p;} -#endif - -/* - * the following template function is replaced by the following two functions - * due to the fact that the Borland compiler doesn't change prediff_t type - * to type long when compile with -ml or -mh. - - -template -inline T* allocate(ptrdiff_t size, T*) { - set_new_handler(0); - T* tmp = (T*)(::operator new((size_t)(size * sizeof(T)))); - if (tmp == 0) { - cerr << "out of memory" << endl; - exit(1); - } - return tmp; -} -*/ - -/* - * Begin change by Terris - */ -namespace std { -/* - * End change by Terris - */ - -/* -* Added by Terris (#if out code) - */ -#if 0 -/* - * Added by Terris End - */ -template -inline T* allocate(int size, T*) { - set_new_handler(0); - T* tmp = (T*)(::operator new((unsigned int)(size * sizeof(T)))); - if (tmp == 0) { - cerr << "out of memory" << endl; - exit(1); - } - return tmp; -} -/* - * Added by Terris - */ -#endif -/* - * Added by Terris End - */ - -template -inline T* allocate(int size, T*) { // Changed by Terris -- was long. -/* - * Begin Change by Terris - */ -// set_new_handler(0); -// T* tmp = (T*)(::operator new((unsigned long)(size * sizeof(T)))); -// if (tmp == 0) { -// cerr << "out of memory" << endl; -// exit(1); -// } -// return tmp; -/* - * End Change by Terris - */ - return (T*)(::operator new((unsigned long)(size * sizeof(T)))); -} - -template -inline void deallocate(T* buffer) { - ::operator delete(buffer); -} - -template -inline void destroy(T* pointer) { - pointer->~T(); -} - -inline void destroy(char*) {} -inline void destroy(unsigned char*) {} -inline void destroy(short*) {} -inline void destroy(unsigned short*) {} -inline void destroy(int*) {} -inline void destroy(unsigned int*) {} -inline void destroy(long*) {} -inline void destroy(unsigned long*) {} -inline void destroy(float*) {} -inline void destroy(double*) {} -inline void destroy(char**) {} -inline void destroy(unsigned char**) {} -inline void destroy(short**) {} -inline void destroy(unsigned short**) {} -inline void destroy(int**) {} -inline void destroy(unsigned int**) {} -inline void destroy(long**) {} -inline void destroy(unsigned long**) {} -inline void destroy(float**) {} -inline void destroy(double**) {} - -inline void destroy(char*, char*) {} -inline void destroy(unsigned char*, unsigned char*) {} -inline void destroy(short*, short*) {} -inline void destroy(unsigned short*, unsigned short*) {} -inline void destroy(int*, int*) {} -inline void destroy(unsigned int*, unsigned int*) {} -inline void destroy(long*, long*) {} -inline void destroy(unsigned long*, unsigned long*) {} -inline void destroy(float*, float*) {} -inline void destroy(double*, double*) {} -inline void destroy(char**, char**) {} -inline void destroy(unsigned char**, unsigned char**) {} -inline void destroy(short**, short**) {} -inline void destroy(unsigned short**, unsigned short**) {} -inline void destroy(int**, int**) {} -inline void destroy(unsigned int**, unsigned int**) {} -inline void destroy(long**, long**) {} -inline void destroy(unsigned long**, unsigned long**) {} -inline void destroy(float**, float**) {} -inline void destroy(double**, double**) {} - -template -inline void construct(T1* p, const T2& value) { - new (p) T1(value); -} - -template -class allocator { -public: - typedef T value_type; - typedef T* pointer; - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - - /* - * Begin change by Terris - * - * This removes compile-time warnings about signed/unsigned mismatch - * and negating unsigned values. - * typedef size_t size_type; - */ - typedef long size_type; - /* - * End change by Terris - */ - - typedef ptrdiff_t difference_type; - pointer allocate(size_type n) { - return std::allocate((difference_type)n, (pointer)0); - } - void deallocate(pointer p) { std::deallocate(p); } - pointer address(reference x) { return (pointer)&x; } - const_pointer const_address(const_reference x) { - return (const_pointer)&x; - } - size_type init_page_size() { - return max(size_type(1), size_type(4096/sizeof(T))); - } - size_type max_size() const { - return max(size_type(1), size_type(UINT_MAX/sizeof(T))); - } -}; - -class allocator { -public: - typedef void* pointer; -}; - - - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/deque.h b/STL/deque.h deleted file mode 100644 index 1eddbc7f7c8..00000000000 --- a/STL/deque.h +++ /dev/null @@ -1,586 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef DEQUE_H -#define DEQUE_H - -#include -#include -#include -#include - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#ifndef deque -#define deque deque -#endif - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class deque { -public: - class iterator; - class const_iterator; - friend class iterator; - friend class const_iterator; -public: - typedef T value_type; - typedef Allocator data_allocator_type; - typedef Allocator::pointer pointer; - typedef Allocator::reference reference; - typedef Allocator::const_reference const_reference; - typedef Allocator::size_type size_type; - typedef Allocator::difference_type difference_type; - typedef Allocator map_allocator_type; -protected: - static data_allocator_type data_allocator; - static size_type buffer_size; - static map_allocator_type map_allocator; - typedef Allocator::pointer map_pointer; -public: - class iterator : public random_access_iterator { - friend class deque; - friend class const_iterator; - protected: - pointer current; - pointer first; - pointer last; - map_pointer node; - iterator(pointer x, map_pointer y) - : current(x), first(*y), last(*y + buffer_size), node(y) {} - public: - iterator() : current(0), first(0), last(0), node(0) {} - reference operator*() const { return *current; } - difference_type operator-(const iterator& x) const { - return node == x.node - ? current - x.current - : difference_type(buffer_size * (node - x.node - 1) + - (current - first) + (x.last - x.current)); - } - iterator& operator++() { - if (++current == last) { - first = *(++node); - current = first; - last = first + buffer_size; - } - return *this; - } - iterator operator++(int) { - iterator tmp = *this; - ++*this; - return tmp; - } - iterator& operator--() { - if (current == first) { - first = *(--node); - last = first + buffer_size; - current = last; - } - --current; - return *this; - } - iterator operator--(int) { - iterator tmp = *this; - --*this; - return tmp; - } - iterator& operator+=(difference_type n) { - difference_type offset = n + (current - first); - difference_type num_node_to_jump = offset >= 0 - ? offset / buffer_size - : -((-offset + buffer_size - 1) / buffer_size); - if (num_node_to_jump == 0) - current += n; - else { - node = node + num_node_to_jump; - first = *node; - last = first + buffer_size; - current = first + (offset - num_node_to_jump * buffer_size); - } - return *this; - } - iterator& operator-=(difference_type n) { return *this += -n; } - iterator operator+(difference_type n) const { - iterator tmp = *this; - return tmp += n; - } - iterator operator-(difference_type n) const { - iterator tmp = *this; - return tmp -= n; - } - reference operator[](difference_type n) { return *(*this + n); } - bool operator==(const iterator& x) const { - return current == x.current || - ((current == first || x.current == x.first) && - *this - x == 0); - } - bool operator<(const iterator& x) const { - return (node == x.node) ? (current < x.current) : (node < x.node); - } - }; - class const_iterator : public random_access_iterator { - friend class deque; - protected: - pointer current; - pointer first; - pointer last; - map_pointer node; - const_iterator(pointer x, map_pointer y) - : current(x), first(*y), last(*y + buffer_size), node(y) {} - public: - const_iterator() : current(0), first(0), last(0), node(0) {} - const_iterator(const iterator& x) - : current(x.current), first(x.first), last(x.last), node(x.node) {} - const_reference operator*() const { return *current; } - difference_type operator-(const const_iterator& x) const { - return node == x.node - ? current - x.current - : difference_type(buffer_size * (node - x.node - 1) + - (current - first) + (x.last - x.current)); - } - const_iterator& operator++() { - if (++current == last) { - first = *(++node); - current = first; - last = first + buffer_size; - } - return *this; - } - const_iterator operator++(int) { - const_iterator tmp = *this; - ++*this; - return tmp; - } - const_iterator& operator--() { - if (current == first) { - first = *(--node); - last = first + buffer_size; - current = last; - } - --current; - return *this; - } - const_iterator operator--(int) { - const_iterator tmp = *this; - --*this; - return tmp; - } - const_iterator& operator+=(difference_type n) { - difference_type offset = n + (current - first); - difference_type num_node_to_jump = offset >= 0 - ? offset / buffer_size - : -((-offset + buffer_size - 1) / buffer_size); - if (num_node_to_jump == 0) - current += n; - else { - node = node + num_node_to_jump; - first = *node; - last = first + buffer_size; - current = first + (offset - num_node_to_jump * buffer_size); - } - return *this; - } - const_iterator& operator-=(difference_type n) { return *this += -n; } - const_iterator operator+(difference_type n) const { - const_iterator tmp = *this; - return tmp += n; - } - const_iterator operator-(difference_type n) const { - const_iterator tmp = *this; - return tmp -= n; - } - const_reference operator[](difference_type n) { - return *(*this + n); - } - bool operator==(const const_iterator& x) const { - return current == x.current || - ((current == first || x.current == x.first) && - *this - x == 0); - } - bool operator<(const const_iterator& x) const { - return (node == x.node) ? (current < x.current) : (node < x.node); - } - }; - typedef reverse_iterator const_reverse_iterator; - typedef reverse_iterator - reverse_iterator; -protected: - iterator start; - iterator finish; - size_type length; - map_pointer map; - size_type map_size; - - void allocate_at_begin(); - void allocate_at_end(); - void deallocate_at_begin(); - void deallocate_at_end(); - -public: - deque() : start(), finish(), length(0), map(0), map_size(0) { -/* - * Changed by Terris - */ - /*buffer_size = data_allocator.init_page_size();*/ - } - iterator begin() { return start; } - const_iterator begin() const { return start; } - iterator end() { return finish; } - const_iterator end() const { return finish; } - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - bool empty() const { return length == 0; } - size_type size() const { return length; } - size_type max_size() const { return data_allocator.max_size(); } - reference operator[](size_type n) { return *(begin() + n); } - const_reference operator[](size_type n) const { return *(begin() + n); } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - void push_front(const T& x) { - if (empty() || begin().current == begin().first) - allocate_at_begin(); - --start.current; - construct(start.current, x); - ++length; - } - void push_back(const T& x) { - if (empty() || end().current == end().last) - allocate_at_end(); - construct(finish.current, x); - ++finish.current; - ++length; - } - void pop_front() { - destroy(start.current); - ++start.current; - --length; - if (empty() || begin().current == begin().last) - deallocate_at_begin(); - } - void pop_back() { - --finish.current; - destroy(finish.current); - --length; - if (empty() || end().current == end().first) - deallocate_at_end(); - } - void swap(deque& x) { - std::swap(start, x.start); - std::swap(finish, x.finish); - std::swap(length, x.length); - std::swap(map, x.map); - std::swap(map_size, x.map_size); - } - iterator insert(iterator position, const T& x); - void insert(iterator position, size_type n, const T& x); -// template void insert(iterator position, -// Iterator first, Iterator last); - void insert(iterator position, const T* first, const T* last); - void erase(iterator position); - void erase(iterator first, iterator last); - deque(size_type n, const T& value = T()) - : start(), finish(), length(0), map(0), map_size(0) { -/* - * Changed by Terris - */ - /*buffer_size = data_allocator.init_page_size();*/ - insert(begin(), n, value); - } -// template deque(Iterator first, Iterator last); - deque(const T* first, const T* last) - : start(), finish(), length(0), map(0), map_size(0) { -/* - * Changed by Terris - */ - /*buffer_size = data_allocator.init_page_size();*/ - copy(first, last, back_inserter(*this)); - } - deque(const deque& x) - : start(), finish(), length(0), map(0), map_size(0) { -/* - * Changed by Terris - */ - /*buffer_size = data_allocator.init_page_size();*/ - copy(x.begin(), x.end(), back_inserter(*this)); - } - deque& operator=(const deque& x) { - if (this != &x) - if (size() >= x.size()) - erase(copy(x.begin(), x.end(), begin()), end()); - else - copy(x.begin() + size(), x.end(), - inserter(*this, copy(x.begin(), x.begin() + size(), - begin()))); - return *this; - } - ~deque(); -}; - -template -deque::data_allocator_type deque::data_allocator; - -template -deque::map_allocator_type deque::map_allocator; - -/* - * Changed by Terris - */ -#if 0 -template -deque::size_type deque::buffer_size = 0; -// should be data_allocator.init_page_size(); // Borland bug -#endif - -/* - * Added by Terris - */ -template -deque::size_type deque::buffer_size = data_allocator.init_page_size(); - -template -bool operator==(const deque& x, const deque& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -bool operator<(const deque& x, const deque& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -template -deque::~deque() { while (!empty()) pop_front(); } - -template -void deque::allocate_at_begin() { - pointer p = data_allocator.allocate(buffer_size); - if (!empty()) { - if (start.node == map) { - difference_type i = finish.node - start.node; - map_size = (i + 1) * 2; - map_pointer tmp = map_allocator.allocate(map_size); - copy(start.node, finish.node + 1, tmp + map_size / 4 + 1); - map_allocator.deallocate(map); - map = tmp; - map[map_size / 4] = p; - start = iterator(p + buffer_size, map + map_size / 4); - finish = iterator(finish.current, map + map_size / 4 + i + 1); - } else { - *--start.node = p; - start = iterator(p + buffer_size, start.node); - } - } else { - map_size = map_allocator.init_page_size(); - map = map_allocator.allocate(map_size); - map[map_size / 2] = p; - start = iterator(p + buffer_size / 2 + 1, map + map_size / 2); - finish = start; - } -} - -template -void deque::allocate_at_end() { - pointer p = data_allocator.allocate(buffer_size); - if (!empty()) { - if (finish.node == map + map_size - 1) { - difference_type i = finish.node - start.node; - map_size = (i + 1) * 2; - map_pointer tmp = map_allocator.allocate(map_size); - copy(start.node, finish.node + 1, tmp + map_size / 4); - map_allocator.deallocate(map); - map = tmp; - map[map_size / 4 + i + 1] = p; - start = iterator(start.current, map + map_size / 4); - finish = iterator(p, map + map_size / 4 + i + 1); - } else { - *++finish.node = p; - finish = iterator(p, finish.node); - } - } else { - map_size = map_allocator.init_page_size(); - map = map_allocator.allocate(map_size); - map[map_size / 2] = p; - start = iterator(p + buffer_size / 2, map + map_size / 2); - finish = start; - } -} - -template -void deque::deallocate_at_begin() { - data_allocator.deallocate(*start.node++); - if (empty()) { - start = iterator(); - finish = start; - map_allocator.deallocate(map); - } else - start = iterator(*start.node, start.node); -} - -template -void deque::deallocate_at_end() { - data_allocator.deallocate(*finish.node--); - if (empty()) { - start = iterator(); - finish = start; - map_allocator.deallocate(map); - } else - finish = iterator(*finish.node + buffer_size, finish.node); -} - -template -deque::iterator deque::insert(iterator position, const T& x) { - if (position == begin()) { - push_front(x); - return begin(); - } else if (position == end()) { - push_back(x); - return end() - 1; - } else if (end() - position > position - begin()) { - push_front(*begin()); - copy(begin() + 2, position, begin() + 1); - *(position - 1) = x; - return position - 1; - } else { - push_back(*(end() - 1)); - copy_backward(position, end() - 2, end() - 1); - *position = x; - return position; - } -} - -template -void deque::insert(iterator position, size_type n, const T& x) { - if (end() - position > position - begin()) { - iterator old_begin = begin(); - if (n > position - old_begin) { - size_type m = n - (position - old_begin); - while (m-- > 0) push_front(x); - iterator i = position; - while (i != old_begin) push_front(*--i); - fill(old_begin, position, x); - } else { - iterator i = old_begin + n; - while (i != old_begin) push_front(*--i); - copy(old_begin + n, position, old_begin); - fill(position - n, position, x); - } - } else { - iterator old_end = end(); - if (n > old_end - position) { - size_type m = n - (old_end - position); - while (m-- > 0) push_back(x); - iterator i = position; - while (i != old_end) push_back(*i++); - fill(position, old_end, x); - } else { - iterator i = old_end - n; - while (i != old_end) push_back(*i++); - copy_backward(position, old_end - n, old_end); - fill(position, position + n, x); - } - } -} - -template -void deque::insert(iterator position, const T* first, const T* last) { - size_type n = 0; - distance(first, last, n); - if (end() - position > position - begin()) { - iterator old_begin = begin(); - if (n > position - old_begin) { - const T* m = last - (position - old_begin); - while (m != first) push_front(*--m); - iterator i = position; - while (i != old_begin) push_front(*--i); - copy(last - (position - old_begin), last, old_begin); - } else { - iterator i = old_begin + n; - while (i != old_begin) push_front(*--i); - copy(old_begin + n, position, old_begin); - copy(first, last, position - n); - } - } else { - iterator old_end = end(); - if (n > old_end - position) { - const T* m = first + (old_end - position); - while (m != last) push_back(*m++); - iterator i = position; - while (i != old_end) push_back(*i++); - copy(first, first + (old_end - position), position); - } else { - iterator i = old_end - n; - while (i != old_end) push_back(*i++); - copy_backward(position, old_end - n, old_end); - copy(first, last, position); - } - } -} - -template -void deque::erase(iterator position) { - if (end() - position > position - begin()) { - copy_backward(begin(), position, position + 1); - pop_front(); - } else { - copy(position + 1, end(), position); - pop_back(); - } -} - -template -void deque::erase(iterator first, iterator last) { - difference_type n = last - first; - if (end() - last > first - begin()) { - copy_backward(begin(), first, last); - while(n-- > 0) pop_front(); - } else { - copy(last, end(), first); - while(n-- > 0) pop_back(); - } -} - -#undef Allocator -#undef deque - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/function.h b/STL/function.h deleted file mode 100644 index b6f87a69706..00000000000 --- a/STL/function.h +++ /dev/null @@ -1,287 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef FUNCTION_H -#define FUNCTION_H - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -inline bool operator!=(const T& x, const T& y) { - return !(x == y); -} - -template -inline bool operator>(const T& x, const T& y) { - return y < x; -} - -template -inline bool operator<=(const T& x, const T& y) { - return !(y < x); -} - -template -inline bool operator>=(const T& x, const T& y) { - return !(x < y); -} - -template -struct unary_function { - typedef Arg argument_type; - typedef Result result_type; -}; - -template -struct binary_function { - typedef Arg1 first_argument_type; - typedef Arg2 second_argument_type; - typedef Result result_type; -}; - -template -struct plus : binary_function { - T operator()(const T& x, const T& y) const { return x + y; } -}; - -template -struct minus : binary_function { - T operator()(const T& x, const T& y) const { return x - y; } -}; - -template -struct times : binary_function { - T operator()(const T& x, const T& y) const { return x * y; } -}; - -template -struct divides : binary_function { - T operator()(const T& x, const T& y) const { return x / y; } -}; - -template -struct modulus : binary_function { - T operator()(const T& x, const T& y) const { return x % y; } -}; - -template -struct negate : unary_function { - T operator()(const T& x) const { return -x; } -}; - -template -struct equal_to : binary_function { - bool operator()(const T& x, const T& y) const { return x == y; } -}; - -template -struct not_equal_to : binary_function { - bool operator()(const T& x, const T& y) const { return x != y; } -}; - -template -struct greater : binary_function { - bool operator()(const T& x, const T& y) const { return x > y; } -}; - -template -struct less : binary_function { - bool operator()(const T& x, const T& y) const { return x < y; } -}; - -template -struct greater_equal : binary_function { - bool operator()(const T& x, const T& y) const { return x >= y; } -}; - -template -struct less_equal : binary_function { - bool operator()(const T& x, const T& y) const { return x <= y; } -}; - -template -struct logical_and : binary_function { - bool operator()(const T& x, const T& y) const { return x && y; } -}; - -template -struct logical_or : binary_function { - bool operator()(const T& x, const T& y) const { return x || y; } -}; - -template -struct logical_not : unary_function { - bool operator()(const T& x) const { return !x; } -}; - -template -class unary_negate : public unary_function { -protected: - Predicate pred; -public: - unary_negate(const Predicate& x) : pred(x) {} - bool operator()(const argument_type& x) const { return !pred(x); } -}; - -template -unary_negate not1(const Predicate& pred) { - return unary_negate(pred); -} - -template -class binary_negate - : public binary_function { -protected: - Predicate pred; -public: - binary_negate(const Predicate& x) : pred(x) {} - bool operator()(const first_argument_type& x, - const second_argument_type& y) const { - return !pred(x, y); - } -}; - -template -binary_negate not2(const Predicate& pred) { - return binary_negate(pred); -} - -template -class binder1st : public unary_function { -protected: - Operation op; - Operation::first_argument_type value; -public: - binder1st(const Operation& x, const Operation::first_argument_type& y) - : op(x), value(y) {} - result_type operator()(const argument_type& x) const { - return op(value, x); - } -}; - -template -binder1st bind1st(const Operation& op, const T& x) { - return binder1st(op, Operation::first_argument_type(x)); -} - -template -class binder2nd : public unary_function { -protected: - Operation op; - Operation::second_argument_type value; -public: - binder2nd(const Operation& x, const Operation::second_argument_type& y) - : op(x), value(y) {} - result_type operator()(const argument_type& x) const { - return op(x, value); - } -}; - -template -binder2nd bind2nd(const Operation& op, const T& x) { - return binder2nd(op, Operation::second_argument_type(x)); -} - -template -class unary_compose : public unary_function { -protected: - Operation1 op1; - Operation2 op2; -public: - unary_compose(const Operation1& x, const Operation2& y) : op1(x), op2(y) {} - result_type operator()(const argument_type& x) const { - return op1(op2(x)); - } -}; - -template -unary_compose compose1(const Operation1& op1, - const Operation2& op2) { - return unary_compose(op1, op2); -} - -template -class binary_compose : public unary_function { -protected: - Operation1 op1; - Operation2 op2; - Operation3 op3; -public: - binary_compose(const Operation1& x, const Operation2& y, - const Operation3& z) : op1(x), op2(y), op3(z) { } - result_type operator()(const argument_type& x) const { - return op1(op2(x), op3(x)); - } -}; - -template -binary_compose -compose2(const Operation1& op1, const Operation2& op2, const Operation3& op3) { - return binary_compose(op1, op2, op3); -} - -template -class pointer_to_unary_function : public unary_function { -protected: - Result (*ptr)(Arg); -public: - pointer_to_unary_function(Result (*x)(Arg)) : ptr(x) {} - Result operator()(Arg x) const { return ptr(x); } -}; - -template -pointer_to_unary_function ptr_fun(Result (*x)(Arg)) { - return pointer_to_unary_function(x); -} - -template -class pointer_to_binary_function : public binary_function { -protected: - Result (*ptr)(Arg1, Arg2); -public: - pointer_to_binary_function(Result (*x)(Arg1, Arg2)) : ptr(x) {} - Result operator()(Arg1 x, Arg2 y) const { return ptr(x, y); } -}; - -template -pointer_to_binary_function -ptr_fun(Result (*x)(Arg1, Arg2)) { - return pointer_to_binary_function(x); -} - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/heap.h b/STL/heap.h deleted file mode 100644 index 75e1796beea..00000000000 --- a/STL/heap.h +++ /dev/null @@ -1,212 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef HEAP_H -#define HEAP_H - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -void __push_heap(RandomAccessIterator first, Distance holeIndex, - Distance topIndex, T value) { - Distance parent = (holeIndex - 1) / 2; - while (holeIndex > topIndex && *(first + parent) < value) { - *(first + holeIndex) = *(first + parent); - holeIndex = parent; - parent = (holeIndex - 1) / 2; - } - *(first + holeIndex) = value; -} - -template -inline void __push_heap_aux(RandomAccessIterator first, - RandomAccessIterator last, T*) { - __push_heap(first, (last - first) - 1, 0, T(*(last - 1))); -} - -template -inline void push_heap(RandomAccessIterator first, RandomAccessIterator last) { - __push_heap_aux(first, last, value_type(first)); -} - -template -void __push_heap(RandomAccessIterator first, Distance holeIndex, - Distance topIndex, T value, Compare comp) { - Distance parent = (holeIndex - 1) / 2; - while (holeIndex > topIndex && comp(*(first + parent), value)) { - *(first + holeIndex) = *(first + parent); - holeIndex = parent; - parent = (holeIndex - 1) / 2; - } - *(first + holeIndex) = value; -} - -template -inline void __push_heap_aux(RandomAccessIterator first, - RandomAccessIterator last, Compare comp, T*) { - __push_heap(first, (last - first) - 1, 0, T(*(last - 1)), comp); -} - -template -inline void push_heap(RandomAccessIterator first, RandomAccessIterator last, - Compare comp) { - __push_heap_aux(first, last, comp, value_type(first)); -} - -template -void __adjust_heap(RandomAccessIterator first, Distance holeIndex, - Distance len, T value) { - Distance topIndex = holeIndex; - Distance secondChild = 2 * holeIndex + 2; - while (secondChild < len) { - if (*(first + secondChild) < *(first + (secondChild - 1))) - secondChild--; - *(first + holeIndex) = *(first + secondChild); - holeIndex = secondChild; - secondChild = 2 * (secondChild + 1); - } - if (secondChild == len) { - *(first + holeIndex) = *(first + (secondChild - 1)); - holeIndex = secondChild - 1; - } - __push_heap(first, holeIndex, topIndex, value); -} - -template -inline void __pop_heap(RandomAccessIterator first, RandomAccessIterator last, - RandomAccessIterator result, T value, Distance*) { - *result = *first; - __adjust_heap(first, Distance(0), Distance(last - first), value); -} - -template -inline void __pop_heap_aux(RandomAccessIterator first, - RandomAccessIterator last, T*) { - __pop_heap(first, last - 1, last - 1, T(*(last - 1)), distance_type(first)); -} - -template -inline void pop_heap(RandomAccessIterator first, RandomAccessIterator last) { - __pop_heap_aux(first, last, value_type(first)); -} - -template -void __adjust_heap(RandomAccessIterator first, Distance holeIndex, - Distance len, T value, Compare comp) { - Distance topIndex = holeIndex; - Distance secondChild = 2 * holeIndex + 2; - while (secondChild < len) { - if (comp(*(first + secondChild), *(first + (secondChild - 1)))) - secondChild--; - *(first + holeIndex) = *(first + secondChild); - holeIndex = secondChild; - secondChild = 2 * (secondChild + 1); - } - if (secondChild == len) { - *(first + holeIndex) = *(first + (secondChild - 1)); - holeIndex = secondChild - 1; - } - __push_heap(first, holeIndex, topIndex, value, comp); -} - -template -inline void __pop_heap(RandomAccessIterator first, RandomAccessIterator last, - RandomAccessIterator result, T value, Compare comp, - Distance*) { - *result = *first; - __adjust_heap(first, Distance(0), Distance(last - first), value, comp); -} - -template -inline void __pop_heap_aux(RandomAccessIterator first, - RandomAccessIterator last, T*, Compare comp) { - __pop_heap(first, last - 1, last - 1, T(*(last - 1)), comp, - distance_type(first)); -} - -template -inline void pop_heap(RandomAccessIterator first, RandomAccessIterator last, - Compare comp) { - __pop_heap_aux(first, last, value_type(first), comp); -} - -template -void __make_heap(RandomAccessIterator first, RandomAccessIterator last, T*, - Distance*) { - if (last - first < 2) return; - Distance len = last - first; - Distance parent = (len - 2)/2; - - while (true) { - __adjust_heap(first, parent, len, T(*(first + parent))); - if (parent == 0) return; - parent--; - } -} - -template -inline void make_heap(RandomAccessIterator first, RandomAccessIterator last) { - __make_heap(first, last, value_type(first), distance_type(first)); -} - -template -void __make_heap(RandomAccessIterator first, RandomAccessIterator last, - Compare comp, T*, Distance*) { - if (last - first < 2) return; - Distance len = last - first; - Distance parent = (len - 2)/2; - - while (true) { - __adjust_heap(first, parent, len, T(*(first + parent)), comp); - if (parent == 0) return; - parent--; - } -} - -template -inline void make_heap(RandomAccessIterator first, RandomAccessIterator last, - Compare comp) { - __make_heap(first, last, comp, value_type(first), distance_type(first)); -} - -template -void sort_heap(RandomAccessIterator first, RandomAccessIterator last) { - while (last - first > 1) pop_heap(first, last--); -} - -template -void sort_heap(RandomAccessIterator first, RandomAccessIterator last, - Compare comp) { - while (last - first > 1) pop_heap(first, last--, comp); -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/iterator.h b/STL/iterator.h deleted file mode 100644 index bf16eb0f40e..00000000000 --- a/STL/iterator.h +++ /dev/null @@ -1,414 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef ITERATOR_H -#define ITERATOR_H - -#include -#include -#include -#include - -struct input_iterator_tag {}; -struct output_iterator_tag {}; -struct forward_iterator_tag {}; -struct bidirectional_iterator_tag {}; -struct random_access_iterator_tag {}; - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template struct input_iterator {}; -struct output_iterator {}; -template struct forward_iterator {}; -template struct bidirectional_iterator {}; -template struct random_access_iterator {}; - -template -inline input_iterator_tag -iterator_category(const input_iterator&) { - return input_iterator_tag(); -} - -inline output_iterator_tag iterator_category(const output_iterator&) { - return output_iterator_tag(); -} - -template -inline forward_iterator_tag -iterator_category(const forward_iterator&) { - return forward_iterator_tag(); -} - -template -inline bidirectional_iterator_tag -iterator_category(const bidirectional_iterator&) { - return bidirectional_iterator_tag(); -} - -template -inline random_access_iterator_tag -iterator_category(const random_access_iterator&) { - return random_access_iterator_tag(); -} - -template -inline random_access_iterator_tag iterator_category(const T*) { - return random_access_iterator_tag(); -} - -template -inline T* value_type(const input_iterator&) { - return (T*)(0); -} - -template -inline T* value_type(const forward_iterator&) { - return (T*)(0); -} - -template -inline T* value_type(const bidirectional_iterator&) { - return (T*)(0); -} - -template -inline T* value_type(const random_access_iterator&) { - return (T*)(0); -} - -template -inline T* value_type(const T*) { return (T*)(0); } - -template -inline Distance* distance_type(const input_iterator&) { - return (Distance*)(0); -} - -template -inline Distance* distance_type(const forward_iterator&) { - return (Distance*)(0); -} - -template -inline Distance* -distance_type(const bidirectional_iterator&) { - return (Distance*)(0); -} - -template -inline Distance* -distance_type(const random_access_iterator&) { - return (Distance*)(0); -} - -template -inline ptrdiff_t* distance_type(const T*) { return (ptrdiff_t*)(0); } - -template -class back_insert_iterator : public output_iterator { -protected: - Container& container; -public: - back_insert_iterator(Container& x) : container(x) {} - back_insert_iterator & - operator=(const Container::value_type& value) { - container.push_back(value); - return *this; - } - back_insert_iterator & operator*() { return *this; } - back_insert_iterator & operator++() { return *this; } - back_insert_iterator & operator++(int) { return *this; } -}; - -template -back_insert_iterator back_inserter(Container& x) { - return back_insert_iterator(x); -} - -template -class front_insert_iterator : public output_iterator { -protected: - Container& container; -public: - front_insert_iterator(Container& x) : container(x) {} - front_insert_iterator& - operator=(const Container::value_type& value) { - container.push_front(value); - return *this; - } - front_insert_iterator& operator*() { return *this; } - front_insert_iterator& operator++() { return *this; } - front_insert_iterator& operator++(int) { return *this; } -}; - -template -front_insert_iterator front_inserter(Container& x) { - return front_insert_iterator(x); -} - -template -class insert_iterator : public output_iterator { -protected: - Container& container; - Container::iterator iter; -public: - insert_iterator(Container& x, Container::iterator i) - : container(x), iter(i) {} - insert_iterator & - operator=(const Container::value_type& value) { - iter = container.insert(iter, value); - ++iter; - return *this; - } - insert_iterator& operator*() { return *this; } - insert_iterator& operator++() { return *this; } - insert_iterator& operator++(int) { return *this; } -}; - -template -insert_iterator inserter(Container& x, Iterator i) { - return insert_iterator(x, Container::iterator(i)); -} - -template -// Reference = T& -// Distance = ptrdiff_t -class reverse_bidirectional_iterator - : public bidirectional_iterator { - typedef reverse_bidirectional_iterator self; - friend bool operator==(const self& x, const self& y); -protected: - BidirectionalIterator current; -public: - reverse_bidirectional_iterator() {} - reverse_bidirectional_iterator(BidirectionalIterator x) : current(x) {} - BidirectionalIterator base() { return current; } - Reference operator*() const { - BidirectionalIterator tmp = current; - return *--tmp; - } - self& operator++() { - --current; - return *this; - } - self operator++(int) { - self tmp = *this; - --current; - return tmp; - } - self& operator--() { - ++current; - return *this; - } - self operator--(int) { - self tmp = *this; - ++current; - return tmp; - } -}; - -template -inline bool operator==( - const reverse_bidirectional_iterator& x, - const reverse_bidirectional_iterator& y) { - return x.current == y.current; -} - -template -// Reference = T& -// Distance = ptrdiff_t -class reverse_iterator : public random_access_iterator { - typedef reverse_iterator - self; - friend bool operator==(const self& x, const self& y); - friend bool operator<(const self& x, const self& y); - friend Distance operator-(const self& x, const self& y); - friend self operator+(Distance n, const self& x); -protected: - RandomAccessIterator current; -public: - reverse_iterator() {} - reverse_iterator(RandomAccessIterator x) : current(x) {} - RandomAccessIterator base() { return current; } - Reference operator*() const { return *(current - 1); } - self& operator++() { - --current; - return *this; - } - self operator++(int) { - self tmp = *this; - --current; - return tmp; - } - self& operator--() { - ++current; - return *this; - } - self operator--(int) { - self tmp = *this; - ++current; - return tmp; - } - self operator+(Distance n) const { - return self(current - n); - } - self& operator+=(Distance n) { - current -= n; - return *this; - } - self operator-(Distance n) const { - return self(current + n); - } - self& operator-=(Distance n) { - current += n; - return *this; - } - Reference operator[](Distance n) { return *(*this + n); } -}; - -template -inline bool operator==(const reverse_iterator& x, - const reverse_iterator& y) { - return x.current == y.current; -} - -template -inline bool operator<(const reverse_iterator& x, - const reverse_iterator& y) { - return y.current < x.current; -} - -template -inline Distance operator-(const reverse_iterator& x, - const reverse_iterator& y) { - return y.current - x.current; -} - -template -inline reverse_iterator -operator+(Distance n, - const reverse_iterator& x) { - return reverse_iterator - (x.current - n); -} - - -template -class raw_storage_iterator : public output_iterator { -protected: - OutputIterator iter; -public: - raw_storage_iterator(OutputIterator x) : iter(x) {} - raw_storage_iterator& operator*() { return *this; } - raw_storage_iterator& operator=(const T& element) { - construct(iter, element); - return *this; - } - raw_storage_iterator& operator++() { - ++iter; - return *this; - } - raw_storage_iterator operator++(int) { - raw_storage_iterator tmp = *this; - ++iter; - return tmp; - } -}; - - -template // Distance == ptrdiff_t -class istream_iterator : public input_iterator { -friend bool operator==(const istream_iterator& x, - const istream_iterator& y); -protected: - istream* stream; - T value; - bool end_marker; - void read() { - end_marker = (*stream) ? true : false; - if (end_marker) *stream >> value; - end_marker = (*stream) ? true : false; - } -public: - istream_iterator() : stream(&cin), end_marker(false) {} - istream_iterator(istream& s) : stream(&s) { read(); } - const T& operator*() const { return value; } - istream_iterator& operator++() { - read(); - return *this; - } - istream_iterator operator++(int) { - istream_iterator tmp = *this; - read(); - return tmp; - } -}; - -template -bool operator==(const istream_iterator& x, - const istream_iterator& y) { - return x.stream == y.stream && x.end_marker == y.end_marker || - x.end_marker == false && y.end_marker == false; -} - -template -class ostream_iterator : public output_iterator { -protected: - ostream* stream; - char* string; -public: - ostream_iterator(ostream& s) : stream(&s), string(0) {} - ostream_iterator(ostream& s, char* c) : stream(&s), string(c) {} - ostream_iterator& operator=(const T& value) { - *stream << value; - if (string) *stream << string; - return *this; - } - ostream_iterator& operator*() { return *this; } - ostream_iterator& operator++() { return *this; } - ostream_iterator& operator++(int) { return *this; } -}; - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/list.h b/STL/list.h deleted file mode 100644 index b86184a777f..00000000000 --- a/STL/list.h +++ /dev/null @@ -1,520 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef LIST_H -#define LIST_H - -#include -#include -#include -#include - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#ifndef list -#define list list -#endif - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class list { -protected: - typedef Allocator::pointer void_pointer; - struct list_node; - friend list_node; - struct list_node { - void_pointer next; - void_pointer prev; - T data; - }; - static Allocator list_node_allocator; - static Allocator value_allocator; -public: - typedef T value_type; - typedef Allocator value_allocator_type; - typedef Allocator::pointer pointer; - typedef Allocator::reference reference; - typedef Allocator::const_reference const_reference; - typedef Allocator list_node_allocator_type; - typedef Allocator::pointer link_type; - typedef Allocator::size_type size_type; - typedef Allocator::difference_type difference_type; -protected: - size_type buffer_size() { - return list_node_allocator.init_page_size(); - } - struct list_node_buffer; - friend list_node_buffer; - struct list_node_buffer { - void_pointer next_buffer; - link_type buffer; - }; -public: - typedef Allocator buffer_allocator_type; - typedef Allocator::pointer buffer_pointer; -protected: - static Allocator buffer_allocator; -/* - * Changed by Terris - */ - /*static*/ buffer_pointer buffer_list; - /*static*/ link_type free_list; - /*static*/ link_type next_avail; - /*static*/ link_type last; - void add_new_buffer() { - buffer_pointer tmp = buffer_allocator.allocate((size_type)1); - tmp->buffer = list_node_allocator.allocate(buffer_size()); - tmp->next_buffer = buffer_list; - buffer_list = tmp; - next_avail = buffer_list->buffer; - last = next_avail + buffer_size(); - } -/* - * Changed by Terris - */ - /*static*/ size_type number_of_lists; - void deallocate_buffers(); - link_type get_node() { - link_type tmp = free_list; - return free_list ? (free_list = (link_type)(free_list->next), tmp) - : (next_avail == last ? (add_new_buffer(), next_avail++) - : next_avail++); - // ugly code for inlining - avoids multiple returns - } - void put_node(link_type p) { - p->next = free_list; - free_list = p; - } - -protected: - link_type node; - size_type length; -public: - class iterator; - class const_iterator; - class iterator : public bidirectional_iterator { - friend class list; - friend class const_iterator; -// friend bool operator==(const iterator& x, const iterator& y); - protected: - link_type node; - iterator(link_type x) : node(x) {} - public: - iterator() {} - bool operator==(const iterator& x) const { return node == x.node; } - reference operator*() const { return (*node).data; } - iterator& operator++() { - node = (link_type)((*node).next); - return *this; - } - iterator operator++(int) { - iterator tmp = *this; - ++*this; - return tmp; - } - iterator& operator--() { - node = (link_type)((*node).prev); - return *this; - } - iterator operator--(int) { - iterator tmp = *this; - --*this; - return tmp; - } - }; - class const_iterator : public bidirectional_iterator { - friend class list; - protected: - link_type node; - const_iterator(link_type x) : node(x) {} - public: - const_iterator() {} - const_iterator(const iterator& x) : node(x.node) {} - bool operator==(const const_iterator& x) const { return node == x.node; } - const_reference operator*() const { return (*node).data; } - const_iterator& operator++() { - node = (link_type)((*node).next); - return *this; - } - const_iterator operator++(int) { - const_iterator tmp = *this; - ++*this; - return tmp; - } - const_iterator& operator--() { - node = (link_type)((*node).prev); - return *this; - } - const_iterator operator--(int) { - const_iterator tmp = *this; - --*this; - return tmp; - } - }; - typedef reverse_bidirectional_iterator - const_reverse_iterator; - typedef reverse_bidirectional_iterator - reverse_iterator; -/* - * Changed by Terris - */ - list() : length(0), free_list(0), buffer_list(0), next_avail(0), last(0), number_of_lists(0) { - ++number_of_lists; - node = get_node(); - (*node).next = node; - (*node).prev = node; - } - iterator begin() { return (link_type)((*node).next); } - const_iterator begin() const { return (link_type)((*node).next); } - iterator end() { return node; } - const_iterator end() const { return node; } - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - bool empty() const { return length == 0; } - size_type size() const { return length; } - size_type max_size() const { return list_node_allocator.max_size(); } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(--end()); } - const_reference back() const { return *(--end()); } - void swap(list& x) { - std::swap(node, x.node); - std::swap(length, x.length); - /* - * Added By Terris - */ - std::swap(buffer_list, x.buffer_list); - std::swap(free_list, x.free_list); - std::swap(next_avail, x.next_avail); - std::swap(last, x.last); - /* - * Added By Terris - */ - } - iterator insert(iterator position, const T& x) { - link_type tmp = get_node(); - construct(value_allocator.address((*tmp).data), x); - (*tmp).next = position.node; - (*tmp).prev = (*position.node).prev; - (*(link_type((*position.node).prev))).next = tmp; - (*position.node).prev = tmp; - ++length; - return tmp; - } - void insert(iterator position, const T* first, const T* last); - void insert(iterator position, const_iterator first, - const_iterator last); - void insert(iterator position, size_type n, const T& x); - void push_front(const T& x) { insert(begin(), x); } - void push_back(const T& x) { insert(end(), x); } - void erase(iterator position) { - (*(link_type((*position.node).prev))).next = (*position.node).next; - (*(link_type((*position.node).next))).prev = (*position.node).prev; - destroy(value_allocator.address((*position.node).data)); - put_node(position.node); - --length; - } - void erase(iterator first, iterator last); - void pop_front() { erase(begin()); } - void pop_back() { - iterator tmp = end(); - erase(--tmp); - } -/* - * Changed by Terris - */ - list(size_type n, const T& value = T()) : length(0), free_list(0), buffer_list(0), next_avail(0), last(0), number_of_lists(0) { - ++number_of_lists; - node = get_node(); - (*node).next = node; - (*node).prev = node; - insert(begin(), n, value); - } -/* - * Changed by Terris - */ - list(const T* first, const T* last) : length(0), free_list(0), buffer_list(0), next_avail(0), last(0), number_of_lists(0) { - ++number_of_lists; - node = get_node(); - (*node).next = node; - (*node).prev = node; - insert(begin(), first, last); - } -/* - * Changed by Terris - */ - list(const list& x) : length(0), free_list(0), buffer_list(0), next_avail(0), last(0), number_of_lists(0) { - ++number_of_lists; - node = get_node(); - (*node).next = node; - (*node).prev = node; - insert(begin(), x.begin(), x.end()); - } - ~list() { - erase(begin(), end()); - put_node(node); - if (--number_of_lists == 0) deallocate_buffers(); - } - list& operator=(const list& x); -protected: - void transfer(iterator position, iterator first, iterator last) { - (*(link_type((*last.node).prev))).next = position.node; - (*(link_type((*first.node).prev))).next = last.node; - (*(link_type((*position.node).prev))).next = first.node; - link_type tmp = link_type((*position.node).prev); - (*position.node).prev = (*last.node).prev; - (*last.node).prev = (*first.node).prev; - (*first.node).prev = tmp; - } -public: - void splice(iterator position, list& x) { - if (!x.empty()) { - transfer(position, x.begin(), x.end()); - length += x.length; - x.length = 0; - } - } - void splice(iterator position, list& x, iterator i) { - iterator j = i; - if (position == i || position == ++j) return; - transfer(position, i, j); - ++length; - --x.length; - } - void splice(iterator position, list& x, iterator first, iterator last) { - if (first != last) { - if (&x != this) { - difference_type n = 0; - distance(first, last, n); - x.length -= n; - length += n; - } - transfer(position, first, last); - } - } - void remove(const T& value); - void unique(); - void merge(list& x); - void reverse(); - void sort(); -}; - -/* - * Added by Terris - */ -#if 0 -template -list::buffer_pointer list::buffer_list = 0; - -template -list::link_type list::free_list = 0; - -template -list::link_type list::next_avail = 0; - -template -list::link_type list::last = 0; - -template -list::size_type list::number_of_lists = 0; -/* - * Added by Terris - */ -#endif - -template -list::list_node_allocator_type list::list_node_allocator; - -template -list::value_allocator_type list::value_allocator; - -template -list::buffer_allocator_type list::buffer_allocator; - -/* - * currently the following does not work - made into a member function - -template -inline bool operator==(const list::iterator& x, const list::iterator& y) { - return x.node == y.node; -} -*/ - -template -inline bool operator==(const list& x, const list& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const list& x, const list& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -template -void list::deallocate_buffers() { - while (buffer_list) { - buffer_pointer tmp = buffer_list; - buffer_list = (buffer_pointer)(buffer_list->next_buffer); - list_node_allocator.deallocate(tmp->buffer); - buffer_allocator.deallocate(tmp); - } - free_list = 0; - next_avail = 0; - last = 0; -} - -template -void list::insert(iterator position, const T* first, const T* last) { - while (first != last) insert(position, *first++); -} - -template -void list::insert(iterator position, const_iterator first, - const_iterator last) { - while (first != last) insert(position, *first++); -} - -template -void list::insert(iterator position, size_type n, const T& x) { - while (n--) insert(position, x); -} - -template -void list::erase(iterator first, iterator last) { - while (first != last) erase(first++); -} - -template -list& list::operator=(const list& x) { - if (this != &x) { - iterator first1 = begin(); - iterator last1 = end(); - const_iterator first2 = x.begin(); - const_iterator last2 = x.end(); - while (first1 != last1 && first2 != last2) *first1++ = *first2++; - if (first2 == last2) - erase(first1, last1); - else - insert(last1, first2, last2); - } - return *this; -} - -template -void list::remove(const T& value) { - iterator first = begin(); - iterator last = end(); - while (first != last) { - iterator next = first; - ++next; - if (*first == value) erase(first); - first = next; - } -} - -template -void list::unique() { - iterator first = begin(); - iterator last = end(); - if (first == last) return; - iterator next = first; - while (++next != last) { - if (*first == *next) - erase(next); - else - first = next; - next = first; - } -} - -template -void list::merge(list& x) { - iterator first1 = begin(); - iterator last1 = end(); - iterator first2 = x.begin(); - iterator last2 = x.end(); - while (first1 != last1 && first2 != last2) - if (*first2 < *first1) { - iterator next = first2; - transfer(first1, first2, ++next); - first2 = next; - } else - ++first1; - if (first2 != last2) transfer(last1, first2, last2); - length += x.length; - x.length= 0; -} - -template -void list::reverse() { - if (size() < 2) return; - for (iterator first = ++begin(); first != end();) { - iterator old = first++; - transfer(begin(), old, first); - } -} - -template -void list::sort() { - if (size() < 2) return; - list carry; - list counter[64]; - int fill = 0; - while (!empty()) { - carry.splice(carry.begin(), *this, begin()); - int i = 0; - while(i < fill && !counter[i].empty()) { - counter[i].merge(carry); - carry.swap(counter[i++]); - } - carry.swap(counter[i]); - if (i == fill) ++fill; - } - while(fill--) merge(counter[fill]); -} - -#undef Allocator -#undef list - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/map.h b/STL/map.h deleted file mode 100644 index 2cf7e543269..00000000000 --- a/STL/map.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef MAP_H -#define MAP_H - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class map { -public: - -// typedefs: - - typedef Key key_type; - typedef pair value_type; - typedef Compare key_compare; - - class value_compare - : public binary_function { - friend class map; - protected : - Compare comp; - value_compare(Compare c) : comp(c) {} - public: - bool operator()(const value_type& x, const value_type& y) const { - return comp(x.first, y.first); - } - }; - -private: - typedef rb_tree, key_compare> rep_type; - rep_type t; // red-black tree representing map -public: - typedef rep_type::pointer pointer; - typedef rep_type::reference reference; - typedef rep_type::const_reference const_reference; - typedef rep_type::iterator iterator; - typedef rep_type::const_iterator const_iterator; - typedef rep_type::reverse_iterator reverse_iterator; - typedef rep_type::const_reverse_iterator const_reverse_iterator; - typedef rep_type::size_type size_type; - typedef rep_type::difference_type difference_type; - -// allocation/deallocation - - map(const Compare& comp = Compare()) : t(comp, false) {} - map(const value_type* first, const value_type* last, - const Compare& comp = Compare()) : t(first, last, comp, false) {} - map(const map& x) : t(x.t, false) {} - map& operator=(const map& x) { - t = x.t; - return *this; - } - -// accessors: - - key_compare key_comp() const { return t.key_comp(); } - value_compare value_comp() const { return value_compare(t.key_comp()); } - iterator begin() { return t.begin(); } - const_iterator begin() const { return t.begin(); } - iterator end() { return t.end(); } - const_iterator end() const { return t.end(); } - reverse_iterator rbegin() { return t.rbegin(); } - const_reverse_iterator rbegin() const { return t.rbegin(); } - reverse_iterator rend() { return t.rend(); } - const_reverse_iterator rend() const { return t.rend(); } - bool empty() const { return t.empty(); } - size_type size() const { return t.size(); } - size_type max_size() const { return t.max_size(); } - Allocator::reference operator[](const key_type& k) { - return (*((insert(value_type(k, T()))).first)).second; - } - void swap(map& x) { t.swap(x.t); } - -// insert/erase - - typedef pair pair_iterator_bool; - // typedef done to get around compiler bug - pair_iterator_bool insert(const value_type& x) { return t.insert(x); } - iterator insert(iterator position, const value_type& x) { - return t.insert(position, x); - } - void insert(const value_type* first, const value_type* last) { - t.insert(first, last); - } - void erase(iterator position) { t.erase(position); } - size_type erase(const key_type& x) { return t.erase(x); } - void erase(iterator first, iterator last) { t.erase(first, last); } - -// map operations: - - iterator find(const key_type& x) { return t.find(x); } - const_iterator find(const key_type& x) const { return t.find(x); } - size_type count(const key_type& x) const { return t.count(x); } - iterator lower_bound(const key_type& x) {return t.lower_bound(x); } - const_iterator lower_bound(const key_type& x) const { - return t.lower_bound(x); - } - iterator upper_bound(const key_type& x) {return t.upper_bound(x); } - const_iterator upper_bound(const key_type& x) const { - return t.upper_bound(x); - } - typedef pair pair_iterator_iterator; - // typedef done to get around compiler bug - pair_iterator_iterator equal_range(const key_type& x) { - return t.equal_range(x); - } - typedef pair pair_citerator_citerator; - // typedef done to get around compiler bug - pair_citerator_citerator equal_range(const key_type& x) const { - return t.equal_range(x); - } -}; - -template -inline bool operator==(const map& x, - const map& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const map& x, - const map& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -#undef Allocator - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/multimap.h b/STL/multimap.h deleted file mode 100644 index 570aa521999..00000000000 --- a/STL/multimap.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef MULTIMAP_H -#define MULTIMAP_H - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class multimap { -public: - -// typedefs: - - typedef Key key_type; - typedef pair value_type; - typedef Compare key_compare; - - class value_compare - : public binary_function { - friend class multimap; - protected: - Compare comp; - value_compare(Compare c) : comp(c) {} - public: - bool operator()(const value_type& x, const value_type& y) const { - return comp(x.first, y.first); - } - }; - -private: - typedef rb_tree, key_compare> rep_type; - rep_type t; // red-black tree representing multimap -public: - typedef rep_type::reference reference; - typedef rep_type::const_reference const_reference; - typedef rep_type::iterator iterator; - typedef rep_type::const_iterator const_iterator; - typedef rep_type::reverse_iterator reverse_iterator; - typedef rep_type::const_reverse_iterator const_reverse_iterator; - typedef rep_type::size_type size_type; - typedef rep_type::difference_type difference_type; - -// allocation/deallocation - - multimap(const Compare& comp = Compare()) : t(comp, true) { } - multimap(const value_type* first, const value_type* last, - const Compare& comp = Compare()) : t(first, last, comp, true) { } - multimap(const multimap& x) : t(x.t, true) { } - multimap& operator=(const multimap& x) { - t = x.t; - return *this; - } - -// accessors: - - key_compare key_comp() const { return t.key_comp(); } - value_compare value_comp() const { return value_compare(t.key_comp()); } - iterator begin() { return t.begin(); } - const_iterator begin() const { return t.begin(); } - iterator end() { return t.end(); } - const_iterator end() const { return t.end(); } - reverse_iterator rbegin() { return t.rbegin(); } - const_reverse_iterator rbegin() const { return t.rbegin(); } - reverse_iterator rend() { return t.rend(); } - const_reverse_iterator rend() const { return t.rend(); } - bool empty() const { return t.empty(); } - size_type size() const { return t.size(); } - size_type max_size() const { return t.max_size(); } - void swap(multimap& x) { t.swap(x.t); } - -// insert/erase - - iterator insert(const value_type& x) { return t.insert(x).first; } - iterator insert(iterator position, const value_type& x) { - return t.insert(position, x); - } - void insert(const value_type* first, const value_type* last) { - t.insert(first, last); - } - void erase(iterator position) { t.erase(position); } - size_type erase(const key_type& x) { return t.erase(x); } - void erase(iterator first, iterator last) { t.erase(first, last); } - -// multimap operations: - - iterator find(const key_type& x) { return t.find(x); } - const_iterator find(const key_type& x) const { return t.find(x); } - size_type count(const key_type& x) const { return t.count(x); } - iterator lower_bound(const key_type& x) {return t.lower_bound(x); } - const_iterator lower_bound(const key_type& x) const { - return t.lower_bound(x); - } - iterator upper_bound(const key_type& x) {return t.upper_bound(x); } - const_iterator upper_bound(const key_type& x) const { - return t.upper_bound(x); - } - typedef pair pair_iterator_iterator; - // typedef done to get around compiler bug - pair_iterator_iterator equal_range(const key_type& x) { - return t.equal_range(x); - } - typedef pair pair_citerator_citerator; - // typedef done to get around compiler bug - pair_citerator_citerator equal_range(const key_type& x) const { - return t.equal_range(x); - } -}; - -template -inline bool operator==(const multimap& x, - const multimap& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const multimap& x, - const multimap& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -#undef Allocator - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/multiset.h b/STL/multiset.h deleted file mode 100644 index 6c96e7504c3..00000000000 --- a/STL/multiset.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef MULTISET_H -#define MULTISET_H - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class multiset { -public: -// typedefs: - - typedef Key key_type; - typedef Key value_type; - typedef Compare key_compare; - typedef Compare value_compare; -private: - typedef rb_tree, key_compare> rep_type; - rep_type t; // red-black tree representing multiset -public: - typedef rep_type::const_reference reference; - typedef rep_type::const_reference const_reference; - typedef rep_type::const_iterator iterator; - typedef rep_type::const_iterator const_iterator; - typedef rep_type::const_reverse_iterator reverse_iterator; - typedef rep_type::const_reverse_iterator const_reverse_iterator; - typedef rep_type::size_type size_type; - typedef rep_type::difference_type difference_type; - -// allocation/deallocation - - multiset(const Compare& comp = Compare()) : t(comp, true) {} - multiset(const value_type* first, const value_type* last, - const Compare& comp = Compare()) : t(comp, true) { - for (const value_type* i = first; i != last; ++i) - t.insert(*i); - } - multiset(const multiset& x) : t(x.t, true) {} - multiset& operator=(const multiset& x) { - t = x.t; - return *this; - } - -// accessors: - - key_compare key_comp() const { return t.key_comp(); } - value_compare value_comp() const { return t.key_comp(); } - iterator begin() const { return t.begin(); } - iterator end() const { return t.end(); } - reverse_iterator rbegin() const { return t.rbegin(); } - reverse_iterator rend() const { return t.rend(); } - bool empty() const { return t.empty(); } - size_type size() const { return t.size(); } - size_type max_size() const { return t.max_size(); } - void swap(multiset& x) { t.swap(x.t); } - -// insert/erase - iterator insert(const value_type& x) { - return t.insert(x).first; - } - iterator insert(iterator position, const value_type& x) { - return t.insert((rep_type::iterator&)position, x); - } - void insert(const value_type* first, const value_type* last) { - for (const value_type* i = first; i != last; ++i) - t.insert(*i); - } - void erase(iterator position) { - t.erase((rep_type::iterator&)position); - } - size_type erase(const key_type& x) { - return t.erase(x); - } - void erase(iterator first, iterator last) { - t.erase((rep_type::iterator&)first, - (rep_type::iterator&)last); - } - -// multiset operations: - - iterator find(const key_type& x) const { return t.find(x); } - size_type count(const key_type& x) const { return t.count(x); } - iterator lower_bound(const key_type& x) const { - return t.lower_bound(x); - } - iterator upper_bound(const key_type& x) const { - return t.upper_bound(x); - } - typedef pair pair_iterator_iterator; - // typedef done to get around compiler bug - pair_iterator_iterator equal_range(const key_type& x) const { - return t.equal_range(x); - } -}; - -template -inline bool operator==(const multiset& x, - const multiset& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const multiset& x, - const multiset& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -#undef Allocator - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/pair.h b/STL/pair.h deleted file mode 100644 index acb45a2f7f1..00000000000 --- a/STL/pair.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef PAIR_H -#define PAIR_H - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -struct pair { - T1 first; - T2 second; - pair(const T1& a, const T2& b) : first(a), second(b) {} -}; - -template -inline bool operator==(const pair& x, const pair& y) { - return x.first == y.first && x.second == y.second; -} - -template -inline bool operator<(const pair& x, const pair& y) { - return x.first < y.first || (!(y.first < x.first) && x.second < y.second); -} - -template -inline pair make_pair(const T1& x, const T2& y) { - return pair(x, y); -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/projectn.h b/STL/projectn.h deleted file mode 100644 index eae35dd8e6d..00000000000 --- a/STL/projectn.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef PROJECTN_H -#define PROJECTN_H - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -struct select1st : public unary_function { - const U& operator()(const T& x) const { return x.first; } -}; - -template -struct ident : public unary_function { - const U& operator()(const T& x) const { return x; } -}; - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/ptr.h b/STL/ptr.h deleted file mode 100644 index ad0fe736795..00000000000 --- a/STL/ptr.h +++ /dev/null @@ -1,338 +0,0 @@ -//***************************************************************************** -// -// Class Ptr -// -// Ptr is a proxy for a pointer to an object. This class provides automatic -// deletion of objects allocated on the heap. Objects are viewed via the -// ->, *, and (itemClass *) operators. Since these operators are inline, there -// is no performance penalty for using this proxy instead of a real pointer. -// -// You can assign multiple pointers to one Ptr object. If you -// do, the old object will be destroyed automatically. -// -// Use suggestions: -// 1. To clean up pointers returned by functions or methods that -// return pointers and expect the caller to delete the pointer. -// 2. To make sure an object gets deleted. Using Ptr saves you -// the hassle of writing an exception handler for this purpose. -// 3. Part of a composite object (assembly-part). -// This class is a useful substitute when pointers are needed, -// because object clean-up is fully encapsulated. -// The following are cases where pointers would normally be used. -// -// For declaring class data members that may or -// may not be instantiated (1 to 0-or-1 relationship). -// -// To instantiate a data member only when it is really needed, -// reducing average memory consumption during execution. -// -// MFC and thread-local storage -- some MFC objects can only be -// accessed by the thread that created them. MFC sub-component -// objects cannot be instantiated along with its container object -// if the container object is created in one thread and the MFC -// object is accessed in another. -// -// When a 'part' class does not have a default constructor. -// There are two solutions provided by C++ for this situation. -// The designer could use a pointer to the object instead, -// or the designer could alter the assembly class's constructor -// to accept parameters that are passed on to the 'part' class's -// constructor. -// -// See Design Patterns - Proxy pattern, and the Iterator pattern (pg 266). -// -// Template Parameters: -// itemClass: The class of the underlying object (the 'pointed to' object). -// -//***************************************************************************** - -template -class Ptr -{ - public: - - // Construction - Ptr( itemClass *pItem = NULL ); - Ptr( const Ptr& ); - - // Destruction - ~Ptr(); - - // Access to 'real' object - inline itemClass * operator -> () const; - inline operator itemClass * () const; - inline itemClass& operator * () const; - - // Assignment - Ptr& operator = ( const Ptr& ); - Ptr& operator = ( itemClass *pItem ); - itemClass *& GetPtrRef(); - - // Other - void Disown(); - - private: - - itemClass *m_pObject; -}; - -//***************************************************************************** -// -// Ptr default constructor -// -// DESCRIPTION: -// -// Constructor. -// -// INPUT PARAMETERS: -// pItem - Pointer to the object to point to. pItem is deleted -// when 'this' is deleted. -// -//***************************************************************************** - -template -Ptr::Ptr( itemClass *pItem ) - : m_pObject( pItem ) -{ -} - -//***************************************************************************** -// -// Ptr::Ptr (Ptr&) -// -// DESCRIPTION: -// -// Copy constructor. To avoid deleting 'rCopy's object -// twice, 'rCopy' will not point to any object after this method completes. -// rCopy is not really const, but it is declared 'const' since -// this allows putting Ptr's in STL containers. -// -// INPUT PARAMETERS: -// rCopy - A reference to the Ptr to copy. -// -// OUTPUT PARAMETERS: -// rCopy - No longer points to anything. -// -//***************************************************************************** - -template -Ptr::Ptr( const Ptr& rCopy ) -{ - m_pObject = rCopy.m_pObject; - - // rCopy no longer owns the object. - const_cast< Ptr& >(rCopy).m_pObject = NULL; -} - -//***************************************************************************** -// -// Ptr::~Ptr -// -// DESCRIPTION: -// -// Destroys the object that is being pointed to (if any). -// -//***************************************************************************** - -template -Ptr::~Ptr() -{ - delete m_pObject; // delete NULL OK -} - -//***************************************************************************** -// -// Ptr::GetPtrRef -// -// DESCRIPTION: -// -// Returns a reference to an internal pointer. This allows these -// objects to be sent to functions that accept pointers to pointers -// or references to pointers as output arguments. Typically, this -// is how functions return multiple objects. -// -// This is not const because this method is ultimately intended -// for changing the object's value. -// -// RETURNS: -// A reference to the 'pointer' data member of this object. -// -//***************************************************************************** - -template -itemClass *& Ptr::GetPtrRef() -{ - return m_pObject; -} - -//***************************************************************************** -// -// Ptr::operator -> -// -// DESCRIPTION: -// -// Provides access to the interface of the underlying object. -// -// RETURNS: -// Nothing callers can really use - only the compiler can use it. -// This method is part of the pointer to member operator (-> *). -// -//***************************************************************************** - -template -itemClass * Ptr::operator -> () const -{ - return m_pObject; -} - -//***************************************************************************** -// -// Ptr::operator itemClass * -// -// DESCRIPTION: -// -// Provides access to the underlying object. -// -// RETURNS: -// Pointer to the object that is being pointed to. -// -//***************************************************************************** - -template -Ptr::operator itemClass * () const -{ - return m_pObject; -} - -//***************************************************************************** -// -// Ptr::operator * -// -// DESCRIPTION: -// -// Provides access to the underlying object. -// -// RETURNS: -// Reference to the object that is being pointed to. -// -//***************************************************************************** - -template -itemClass& Ptr::operator * () const -{ - return *m_pObject; -} - -//***************************************************************************** -// -// Ptr::operator = (Ptr&) -// -// DESCRIPTION: -// -// For assigning one Ptr to another. Deletes the object that 'this' -// is pointing to and makes 'this' point to the object that 'rCopy' -// is pointing to. To avoid deleting 'rCopy's object twice, 'rCopy' -// will not point to any object after this method completes. -// -// Although the parameter rCopy can be arugably not "const", it -// must be "const" since the compiler will complain in certain -// cases with warning C4270. -// -// INPUT PARAMETERS: -// rCopy - A reference to the Ptr to copy. -// -// OUTPUT PARAMETERS: -// rCopy - No longer points to anything. -// -// RETURNS: -// A reference to 'this'. -// -//***************************************************************************** - -template -Ptr& -Ptr::operator = ( const Ptr& rCopy ) -{ - // Check for A = A - if ( &rCopy == this ) - { - return *this; - } - - // Save current pointer so we can delete it after - // doing everything else - itemClass *pOldObject = m_pObject; - - // Get the pointer out of rCopy - m_pObject = rCopy.m_pObject; - - // rCopy no longer owns the object. - const_cast< Ptr& >(rCopy).m_pObject = NULL; - - // This might generate an exception. But, we won't - // introduce a memory leak because 'this' now - // owns rCopy's pointer. - delete pOldObject; // delete NULL OK - - return *this; -} - -//***************************************************************************** -// -// Ptr::operator = -// -// DESCRIPTION: -// -// Changes the underlying object. If the proxy currently has an -// underlying object, then it is deleted. -// -// INPUT PARAMETERS: -// pItem - Reference to the new object. Can be NULL. -// -// RETURNS: -// Reference to 'this'. -// -//***************************************************************************** - -template -Ptr& Ptr::operator = ( itemClass *pItem ) -{ - if ( m_pObject == pItem ) - { - return *this; - } - - // Save current pointer so we can delete it after - // doing everything else - itemClass *pOldObject = m_pObject; - - m_pObject = pItem; - - // This might generate an exception. But, we won't - // introduce a memory leak because 'this' now - // owns pItem. - delete pOldObject; // delete NULL OK - - return *this; -} - -//***************************************************************************** -// -// Ptr::Disown -// -// DESCRIPTION: -// -// Ptr objects delete their pointed-to objects when they go out -// of scope. Calling Disown() causes the Ptr object to 'forget' -// that it is currently pointing to an object. -// -// RETURNS: -// Doesn't return anything because returning a value such as a pointer -// to the item encourages misuse leading to memory leaks. -// -//***************************************************************************** -template -void Ptr::Disown() -{ - m_pObject = NULL; -} diff --git a/STL/queue.h b/STL/queue.h deleted file mode 100644 index 2c539450a61..00000000000 --- a/STL/queue.h +++ /dev/null @@ -1 +0,0 @@ -#include diff --git a/STL/random.cpp b/STL/random.cpp deleted file mode 100644 index 57ef645ae64..00000000000 --- a/STL/random.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#include - -#define __SEED 161803398 - -class __random_generator { -protected: - unsigned long table[55]; - size_t index1; - size_t index2; -public: - unsigned long operator()(unsigned long limit) { - index1 = (index1 + 1) % 55; - index2 = (index2 + 1) % 55; - table[index1] = table[index1] - table[index2]; - return table[index1] % limit; - } - void seed(unsigned long j); - __random_generator(unsigned long j) { seed(j); } -}; - -void __random_generator::seed(unsigned long j) { - unsigned long k = 1; - table[54] = j; - for (size_t i = 0; i < 54; i++) { - size_t ii = 21 * i % 55; - table[ii] = k; - k = j - k; - j = table[ii]; - } - for (int loop = 0; loop < 4; loop++) { - for (i = 0; i < 55; i++) - table[i] = table[i] - table[(1 + i + 30) % 55]; - } - index1 = 0; - index2 = 31; -} - -__random_generator rd(__SEED); - -unsigned long __long_random(unsigned long limit) { - return rd(limit); -} diff --git a/STL/readme2.stl b/STL/readme2.stl deleted file mode 100644 index 5132bc1189b..00000000000 --- a/STL/readme2.stl +++ /dev/null @@ -1,272 +0,0 @@ -STL2.ZIP - -Standard Template Library for Visual C++ 4.0 -and Related Classes - -Revised 10/15/96 - Bug fixes and change to bit_vector. - -This version supports DLLs and threading. You must use critical -sections around code that uses the same container in different -threads. These features come at a price -- since memory -usage is not optimal, this code may use more memory and -may be slower. - -+ General strategy: Remove all statics except the - static allocator objects. -+ Vectors were not affected. -+ Major changes made to tree.h -+ Stability: Very stable. - -This code should be considered for experimental use only. There -are still statics lurking in some functions; these functions -are not thread-safe. - -------------------------- -Fix for bit_vector -------------------------- -This version also has a fix for bit_vector, which doesn't really -work with VC++ 4.x. Please include bvector.cpp in your -project if you use bit_vector. This fixes the linker errors -that occur if you use bector.h in multiple .cpp files. - -------------------------- -Disclaimer -------------------------- -Code is provided without warranty, liability, or technical support. - -STL.H and PTR.H are freely distributable and can be -modified in any way. - --------------------------------- -STRING.H does not compile. --------------------------------- - -"D. Pirzadeh" Explains how to fix: - -First, I got compile errors in "bstring.h" -and changed it as follows to correct: - line 1104 "::reserve" -> "std::reserve" - line 1110 "::default_size" -> "std::default_size" - -Also, I got an INTERNAL COMPILER ERROR with Visual C++ v4.0 when I did the fol- -lowing: - class xyz : public std::string { } - -I fixed it with: - typedef std::string XyzString; - class xyz : public XyzString { } - --------------------------------- -Changes made to STL distribution --------------------------------- - -These files were modified from the STL distribution shipped with -Microsoft Visual C++ 4.0. The files here are a complete, -working version of the STL. These files have been tested with -MFC applications. - -Changes were made to practically all header files. Look for -comments like: - -*Added by... -*Changed by... - ------------------- -Usage Instructions ------------------- - -Set the preprocessor variable NOMINMAX. - -As Microsoft recommends, the STL is compiled in the std namespace. - -When including these files, do **not** do this: - - namespace std - { - #include - } - -Instead, do this: - - #include - -Recommended usage: - - First, include: - - #include - #include - #include - - Then include the STL header files. - -------------------- -Support for CString -------------------- -The stl.h file contains code written by me. The file contains -operators that will allow you to use CString objects with STL -containers and functions. - -!!!! CString will not work with STL unless you include !!!! - -------------------------------------------- -Helper functions for pointers-in-containers -------------------------------------------- -There is a file called stl.h which contains two functions: - SequenceDelete - MapDelete -These functions send "delete" to all of the objects in a container. - -If you don't like this approach, you can use a supplied "pointer -wrapper" class. - -There is a file called ptr.h which contains a class called Ptr -that can be used exactly like a pointer. The object has a pointer -inside it that points to an object of any class. When a Ptr object -is deleted, "delete" is sent to its underlying pointer. Ptr can be -used with any STL container, as it has a copy constructor and -assignment operator, which transfers "ownership" of the pointer from -the source object to the destination object. Ptr is from the book -Design Patterns by Gamma et al -- see the Proxy pattern. - -The Ptr class makes memory leaks impossible, because it deletes -objects automatically when the container is deleted, or when -functions like "delete" are used. - -Example: - - This is a vector of CStrings: - - std::vector< Ptr > StringVector; - - StringVector.push_back( Ptr( new CString( "hello" ) ) ); - StringVector.push_back( Ptr( new CString( "This is another string" ) ) ); - ------------------------- -Common Problems with STL ------------------------- - -1) Compiler error: != is ambiguous - - Solution: put the following line at the beginning of the method - that caused the error: - - using namespace std; - -2) When using maps, the debugger crashes. - - This is because symbols for maps (actually, for the "pair") - get truncated to 255 characters. Solution: Turn off the - variables window in the debugger. Don't try to look at - a symbol that has been truncated. This is not an STL-specific - bug -- It's a bug in the debugger. - -3) All sorts of compile errors in STL header files - - Make sure the preprocessor variable NOMINMAX is defined - - -4) Compiler errors about "operator < is not available", etc. - The class involved has global comparison operators. - - Solution: - Write "routers" in the std namespace to the global namespace. - Example (see also stl.h - this is how CString is able - to work with STL): - - namespace std - { - BOOL operator < ( const MyClass & rLhs, - const AnotherClass & rRhs ) - { - return ::operator < ( rLhs, rRhs ); - } - } - - See also 5. - -5) When you use find() or another algorithm, the compiler - complains that it cannot find the == or < operators. - -If your code compiles without any error messages, then disregard -this section. However, if you get errors like "cannot convert -first argument from const class X" then read on. - -I am assuming that your code is calling an STL algorithm like -std::sort() or std::find(). If you're not, I can't help -you. - -There is apparently a bug in the Microsoft compiler regarding -namespaces. Namespaces cannot locate global -functions that reside in the global namespace. For example, -the binary == operator. - -Maybe this is a bug, maybe it isn't. This is not clear -to me. However, I do know what works and have tried many other -approaches that do not work. If you have a better solution I -would appreciate it if you could let me know about it. - -So, if you declare your own class and want to use algorithms -like find() on an STL container, you have two choices: - -(1) Declare == as a member function. -(2) Declare global operators == and !=. - -(1) simply works. There will come a time, however, when (1) -won't satisfy your needs. If A == B, then B == A. You can't -do this using member functions if A and B are from different -classes. - -If you choose (2), you must add the != operator to the std -namespace. There are two ways to do this. First, you can do -this: - namespace std - { - inline operator != ( const MyClass &rLhs, const MyClass &rRhs ) - { - return ::operator != ( rLhs, rRhs ); - } - } -This "routes" != from the std namespace to the global namespace. - -Note that ( lhs != rhs ) can be derived from the == operator -as !( lhs == rhs ). There is a macro in STL.H, -STL_DECLARE_GLOBAL_NE, that does this derivation. -This derivation will not work when for whatever reason, !(lhs == rhs) -is not the same as ( lhs != rhs ). - -The following example shows what you have to do for find(). Other -algorithms require you to declare <, <=, and >= too. See the -macros STL_DECLARE_GLOBAL_GE, STL_DECLARE_GLOBAL_LT, and -STL_GLOBAL_LE. These macros derive new comparison operators -from "operator <( const T&, const T& )". - -class MyClass -{ - public: - - int units; - CString description; -}; - -// We want to be able to test two MyClass objects against each other -// in STL. Need to create a global operator for this purpose. -// Since we use find(), we need to declare not-equal too. -bool operator == ( const MyClass &, const MyClass & ); -STL_DECLARE_GLOBAL_NE( MyClass, MyClass ) - -// These operators test for a matching description. -// We do A == B and B == A to be consistent. -bool operator == ( const MyClass&, const CString & ); -bool operator == ( const CString&, const MyClass & ); -STL_DECLARE_GLOBAL_NE( MyClass, CString ) -STL_DECLARE_GLOBAL_NE( CString, MyClass ) - -6. Errors when creating vectors that have vectors and deques - that have deques. - - Solution: Provide atruments to the constructor. - - std::vector< std::vector > - TwoDimensional( 0, std::vector() ); - diff --git a/STL/set.h b/STL/set.h deleted file mode 100644 index 95ce5e1279d..00000000000 --- a/STL/set.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef SET_H -#define SET_H - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class set { -public: -// typedefs: - - typedef Key key_type; - typedef Key value_type; - typedef Compare key_compare; - typedef Compare value_compare; -private: - typedef rb_tree, key_compare> rep_type; - rep_type t; // red-black tree representing set -public: - typedef rep_type::const_reference reference; - typedef rep_type::const_reference const_reference; - typedef rep_type::const_iterator iterator; - typedef rep_type::const_iterator const_iterator; - typedef rep_type::const_reverse_iterator reverse_iterator; - typedef rep_type::const_reverse_iterator const_reverse_iterator; - typedef rep_type::size_type size_type; - typedef rep_type::difference_type difference_type; - -// allocation/deallocation - - set(const Compare& comp = Compare()) : t(comp, false) {} - set(const value_type* first, const value_type* last, - const Compare& comp = Compare()) : t(comp, false) { - for (const value_type* i = first; i != last; ++i) - t.insert(*i); - } - set(const set& x) : t(x.t, false) {} - set& operator=(const set& x) { - t = x.t; - return *this; - } - -// accessors: - - key_compare key_comp() const { return t.key_comp(); } - value_compare value_comp() const { return t.key_comp(); } - iterator begin() const { return t.begin(); } - iterator end() const { return t.end(); } - reverse_iterator rbegin() const { return t.rbegin(); } - reverse_iterator rend() const { return t.rend(); } - bool empty() const { return t.empty(); } - size_type size() const { return t.size(); } - size_type max_size() const { return t.max_size(); } - void swap(set& x) { t.swap(x.t); } - -// insert/erase - typedef pair pair_iterator_bool; - // typedef done to get around compiler bug - pair_iterator_bool insert(const value_type& x) { - pair p = t.insert(x); - return pair(p.first, p.second); - } - iterator insert(iterator position, const value_type& x) { - return t.insert((rep_type::iterator&)position, x); - } - void insert(const value_type* first, const value_type* last) { - for (const value_type* i = first; i != last; ++i) - t.insert(*i); - } - void erase(iterator position) { - t.erase((rep_type::iterator&)position); - } - size_type erase(const key_type& x) { - return t.erase(x); - } - void erase(iterator first, iterator last) { - t.erase((rep_type::iterator&)first, - (rep_type::iterator&)last); - } - -// set operations: - - iterator find(const key_type& x) const { return t.find(x); } - size_type count(const key_type& x) const { return t.count(x); } - iterator lower_bound(const key_type& x) const { - return t.lower_bound(x); - } - iterator upper_bound(const key_type& x) const { - return t.upper_bound(x); - } - typedef pair pair_iterator_iterator; - // typedef done to get around compiler bug - pair_iterator_iterator equal_range(const key_type& x) const { - return t.equal_range(x); - } -}; - -template -inline bool operator==(const set& x, - const set& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const set& x, - const set& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -#undef Allocator - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/stack.h b/STL/stack.h deleted file mode 100644 index fbbfcff7541..00000000000 --- a/STL/stack.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef STACK_H -#define STACK_H - -#include -#include - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class stack { -friend bool operator==(const stack& x, const stack& y); -friend bool operator<(const stack& x, const stack& y); -public: - typedef Container::value_type value_type; - typedef Container::size_type size_type; -protected: - Container c; -public: - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - value_type& top() { return c.back(); } - const value_type& top() const { return c.back(); } - void push(const value_type& x) { c.push_back(x); } - void pop() { c.pop_back(); } -}; - -template -bool operator==(const stack& x, const stack& y) { - return x.c == y.c; -} - -template -bool operator<(const stack& x, const stack& y) { - return x.c < y.c; -} - -template -class queue { -friend bool operator==(const queue& x, const queue& y); -friend bool operator<(const queue& x, const queue& y); -public: - typedef Container::value_type value_type; - typedef Container::size_type size_type; -protected: - Container c; -public: - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - value_type& front() { return c.front(); } - const value_type& front() const { return c.front(); } - value_type& back() { return c.back(); } - const value_type& back() const { return c.back(); } - void push(const value_type& x) { c.push_back(x); } - void pop() { c.pop_front(); } -}; - -template -bool operator==(const queue& x, const queue& y) { - return x.c == y.c; -} - -template -bool operator<(const queue& x, const queue& y) { - return x.c < y.c; -} - -template -// Compare = less > -class priority_queue { -public: - typedef Container::value_type value_type; - typedef Container::size_type size_type; -protected: - Container c; - Compare comp; -public: - priority_queue(const Compare& x = Compare()) : c(), comp(x) {} - priority_queue(const value_type* first, const value_type* last, - const Compare& x = Compare()) : c(first, last), comp(x) { - make_heap(c.begin(), c.end(), comp); - } -/* - template - priority_queue(InputIterator first, InputIterator last, - const Compare& x = Compare()) : c(first, last), comp(x) { - make_heap(c.begin(), c.end(), comp); - } -*/ - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - value_type& top() { return c.front(); } - const value_type& top() const { return c.front(); } - void push(const value_type& x) { - c.push_back(x); - push_heap(c.begin(), c.end(), comp); - } - void pop() { - pop_heap(c.begin(), c.end(), comp); - c.pop_back(); - } -}; - -// no equality is provided - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/stl.h b/STL/stl.h deleted file mode 100644 index 2d75e19ba5a..00000000000 --- a/STL/stl.h +++ /dev/null @@ -1,206 +0,0 @@ -#ifndef __STL_H -#define __STL_H -#endif - -#include - -// Assumes MFC is included too. - -//***************************************************************************** -// -// SequenceDelete -// -// DESCRIPTION: -// -// Deletes items in an STL sequence container. All items in the -// container must be pointers to objects. -// -// INPUT PARAMETERS: -// first - An iterator. Should point to the first item to delete. -// last - An iterator. Should point AFTER the last item you wish -// to delete. -// -//***************************************************************************** - -template -void -SequenceDelete(ForwardIteratorClass first, const ForwardIteratorClass &last) -{ - using namespace std; - - while ( first != last ) - { - delete *first++; - } -} - -//***************************************************************************** -// -// MapDelete -// -// DESCRIPTION: -// -// Deletes items in an STL map container. All items in the container -// must be pointers to objects. -// -// INPUT PARAMETERS: -// first - An iterator. Should point to the first item to delete. -// last - An iterator. Should point AFTER the last item you wish -// to delete. -// -//***************************************************************************** - -template -void -MapDelete(ForwardIteratorClass first, const ForwardIteratorClass &last) -{ - using namespace std; - - while ( first != last ) - { - delete (*first++).second; - } -} - -//***************************************************************************** -// -// Comparison operators -// -// STL cannot find comparison operators at the global level. Is this a -// compier bug?? -// -// These functions cannot be templates because they will cause ambiguity -// errors within the STL code. -// -//***************************************************************************** - -//***************************************************************************** -// STL_ROUTE_ALL_GLOBALS(T1, T2) (macro) -// -// DESCRIPTION: -// -// This macro routes all of the comparison operators for a class whose -// operators happen to be defined at the global level. -// -// INPUT PARAMETERS: -// T1 - The name of the left-hand-side class. -// T2 - The name of the right-hand-side class. -// -//***************************************************************************** - -#define STL_ROUTE_ALL_GLOBALS(T1, T2) \ -namespace std \ -{ \ - inline bool operator == ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator == (s1, s2); \ - } \ - inline bool operator != ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator != (s1, s2); \ - } \ - inline bool operator > ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator > (s1, s2); \ - } \ - inline bool operator < ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator < (s1, s2); \ - } \ - inline bool operator >= ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator >= (s1, s2); \ - } \ - inline bool operator <= ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator <= (s1, s2); \ - } \ -} - -//***************************************************************************** -// STL_DECLARE_GLOBAL_NE(T1, T2) (macro) / Inequality -// STL_DECLARE_GLOBAL_GT(T1, T2) (macro) / Greater than -// STL_DECLARE_GLOBAL_GE(T1, T2) (macro) / Greater than or equal to -// STL_DECLARE_GLOBAL_LE(T1, T2) (macro) / Less than or equal to -// -// DESCRIPTION: -// -// These macros duplicate the behavior in the STL's function.h file. -// This behavior provides default implementations of certain comparison -// operators: !=, >, >=, and <=. -// -// STL is designed to instantiate these operators automatically if -// they are missing. This convenient feature of the STL has wreaked havoc -// on MFC and as a result Microsoft punted and said "use the std namespace." -// However, this introduced a new problem -- the STL can no longer -// automatically derive !=, <, >=, and <= from the objects' existing -// operators, because the operators are not accessible from the std -// namespace (they are in the global namespace). In fact, STL cannot -// even find the default global operators (such as == between two -// classes). This seems like a bug in Microsoft's compiler. -// -// If you are storing a new class of objects in an STL container and -// want to use find() on the container, then you must declare a global -// equality operator on the object. Then you can either create your -// own != operator, or derive one using STL_DECLARE_GLOBAL_NE. -// -// e.g., bool operator == ( const X&, const X& ) -// STL_DECLARE_GLOBAL_NE( X, X ) -// -// It's not a bad idea to declare: -// bool operator < ( const X&, const X& ) too. -// -// These macros should be used with classes that implement their -// comparison operators as global functions. -// -// INPUT PARAMETERS: -// T1 - The name of the left-hand-side class. -// T2 - The name of the right-hand-side class. -// -//***************************************************************************** - -// Retuires == (T1, T2) -#define STL_DECLARE_GLOBAL_NE(T1, T2) \ -namespace std \ -{ \ - inline bool operator != ( const T1 &s1, const T2 &s2 ) \ - { \ - return !( ::operator == (s1, s2) ); \ - } \ -} - -// Requires < ( T2, T1 ) -#define STL_DECLARE_GLOBAL_GT(T1, T2) \ -namespace std \ -{ \ - inline bool operator > ( const T1 &s1, const T2 &s2 ) \ - { \ - return ::operator < (s2, s1); \ - } \ -} - -// Requires < ( T1, T2 ) -#define STL_DECLARE_GLOBAL_GE(T1, T2) \ -namespace std \ -{ \ - inline bool operator >= ( const T1 &s1, const T2 &s2 ) \ - { \ - return !( ::operator < (s1, s2) ); \ - } \ -} - -// Requires < ( T2, T1 ) -#define STL_DECLARE_GLOBAL_LE(T1, T2) \ -namespace std \ -{ \ - inline bool operator <= ( const T1 &s1, const T2 &s2 ) \ - { \ - return !( ::operator < (s2, s1) ); \ - } \ -} - -//***************************************************************************** -// Route CString's comparison operators. -//***************************************************************************** - -STL_ROUTE_ALL_GLOBALS(CString, CString) diff --git a/STL/tempbuf.cpp b/STL/tempbuf.cpp deleted file mode 100644 index 90760dc5326..00000000000 --- a/STL/tempbuf.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#include - -char __stl_temp_buffer[__stl_buffer_size]; diff --git a/STL/tempbuf.h b/STL/tempbuf.h deleted file mode 100644 index 84c9f4b2306..00000000000 --- a/STL/tempbuf.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef TEMPBUF_H -#define TEMPBUF_H - -#include -#include - -#ifndef __stl_buffer_size -#define __stl_buffer_size 16384 // 16k -#endif - -extern char __stl_temp_buffer[__stl_buffer_size]; - -//not reentrant code - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -pair get_temporary_buffer(int len, T*) { - while (len > __stl_buffer_size / sizeof(T)) { - set_new_handler(0); - T* tmp = (T*)(::operator new((unsigned int)len * sizeof(T))); - if (tmp) return pair(tmp, len); - len = len / 2; - } - return pair((T*)__stl_temp_buffer, - (int)(__stl_buffer_size / sizeof(T))); -} - -template -void return_temporary_buffer(T* p) { - if ((char*)(p) != __stl_temp_buffer) deallocate(p); -} - -template -pair get_temporary_buffer(long len, T* p) { - if (len > INT_MAX/sizeof(T)) - len = INT_MAX/sizeof(T); - pair tmp = get_temporary_buffer((int)len, p); - return pair(tmp.first, (long)(tmp.second)); -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/tree.h b/STL/tree.h deleted file mode 100644 index 738223f2fbf..00000000000 --- a/STL/tree.h +++ /dev/null @@ -1,1088 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef TREE_H -#define TREE_H - -/* - -Red-black tree class, designed for use in implementing STL -associative containers (set, multiset, map, and multimap). The -insertion and deletion algorithms are based on those in Cormen, -Leiserson, and Rivest, Introduction to Algorithms (MIT Press, 1990), -except that - -(1) the header cell is maintained with links not only to the root -but also to the leftmost node of the tree, to enable constant time -begin(), and to the rightmost node of the tree, to enable linear time -performance when used with the generic set algorithms (set_union, -etc.); - -(2) when a node being deleted has two children its successor node is -relinked into its place, rather than copied, so that the only -iterators invalidated are those referring to the deleted node. - -*/ - -#include -#include -#include -#include -#include - -#ifndef rb_tree -#define rb_tree rb_tree -#endif - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class rb_tree { -protected: - enum color_type {red, black}; - typedef Allocator::pointer void_pointer; - struct rb_tree_node; - friend rb_tree_node; - struct rb_tree_node { - color_type color_field; - void_pointer parent_link; - void_pointer left_link; - void_pointer right_link; - Value value_field; - }; - static Allocator rb_tree_node_allocator; - static Allocator value_allocator; -public: - typedef Key key_type; - typedef Value value_type; - typedef Allocator::pointer pointer; - typedef Allocator::reference reference; - typedef Allocator::const_reference const_reference; - typedef Allocator rb_tree_node_allocator_type; - typedef Allocator::pointer link_type; - typedef Allocator::size_type size_type; - typedef Allocator::difference_type difference_type; -protected: - size_type buffer_size() { - return rb_tree_node_allocator.init_page_size(); - } - struct rb_tree_node_buffer; - friend rb_tree_node_buffer; - struct rb_tree_node_buffer { - void_pointer next_buffer; - link_type buffer; - }; -public: - typedef Allocator buffer_allocator_type; - typedef Allocator::pointer buffer_pointer; -protected: - static Allocator buffer_allocator; -/* - * Changed by Terris - */ - /*static*/ buffer_pointer buffer_list; - /*static*/ link_type free_list; - /*static*/ link_type next_avail; - /*static*/ link_type last; - void add_new_buffer() { - buffer_pointer tmp = buffer_allocator.allocate((size_type)1); - tmp->buffer = rb_tree_node_allocator.allocate(buffer_size()); - tmp->next_buffer = buffer_list; - buffer_list = tmp; - next_avail = buffer_list->buffer; - last = next_avail + buffer_size(); - } -/* - * Changed by Terris - */ - /*static*/ size_type number_of_trees; - void deallocate_buffers(); - link_type get_node() { - link_type tmp = free_list; - return free_list ? - (free_list = (link_type)(free_list->right_link), tmp) - : (next_avail == last ? (add_new_buffer(), next_avail++) - : next_avail++); - // ugly code for inlining - avoids multiple returns - } - void put_node(link_type p) { - p->right_link = free_list; - free_list = p; - } -protected: - link_type header; - link_type& root() { return parent(header); } - link_type& root() const { return parent(header); } - link_type& leftmost() { return left(header); } - link_type& leftmost() const { return left(header); } - link_type& rightmost() { return right(header); } - link_type& rightmost() const { return right(header); } - size_type node_count; // keeps track of size of tree - bool insert_always; // controls whether an element already in the - // tree is inserted again -//public: - Compare key_compare; -/* - * Changed by Terris - */ - /*static*/ link_type NIL; - - static link_type& left(link_type x) { - return (link_type&)((*x).left_link); - } - static link_type& right(link_type x) { - return (link_type&)((*x).right_link); - } - static link_type& parent(link_type x) { - return (link_type&)((*x).parent_link); - } - static reference value(link_type x) { return (*x).value_field; } - static Allocator::const_reference key(link_type x) { - return KeyOfValue()(value(x)); - } - static color_type& color(link_type x) { - return (color_type&)(*x).color_field; } -/* - * Changed by Terris - * Doesn't need to take "NIL" parameter because everyone who calls this - * uses links only from "this" - */ - /*static*/ link_type minimum(link_type x) { - while (left(x) != NIL) - x = left(x); - return x; - } -/* - * Changed by Terris - */ - /*static*/ link_type maximum(link_type x) { - while (right(x) != NIL) - x = right(x); - return x; - } -public: - class iterator; - friend iterator; - class const_iterator; - friend const_iterator; -/* - * Terris comment: Here is where the iterator class starts. - */ - class iterator : public bidirectional_iterator { - friend class rb_tree; - friend class const_iterator; -/* - * Added by Terris - */ - link_type NIL; - -/* - friend bool operator==(const iterator& x, const iterator& y) { - return x.node == y.node; - } -*/ - protected: - link_type node; - iterator(link_type x, link_type NIL) : node(x), NIL(NIL) {} - public: -/* - * Changed by Terris - */ - iterator() { NIL = (link_type) NULL; } - bool operator==(const iterator& y) const { return node == y.node; } - reference operator*() const { return value(node); } - iterator& operator++() { - if (right(node) != NIL) { - node = right(node); - while (left(node) != NIL) - node = left(node); - } else { - link_type y = parent(node); - while (node == right(y)) { - node = y; - y = parent(y); - } - if (right(node) != y) // necessary because of rightmost - node = y; - } - return *this; - } - iterator operator++(int) { - iterator tmp = *this; - ++*this; - return tmp; - } - iterator& operator--() { - if (color(node) == red && parent(parent(node)) == node) - // check for header - node = right(node); // return rightmost - else if (left(node) != NIL) { - link_type y = left(node); - while (right(y) != NIL) - y = right(y); - node = y; - } else { - link_type y = parent(node); - while (node == left(y)) { - node = y; - y = parent(y); - } - node = y; - } - return *this; - } - iterator operator--(int) { - iterator tmp = *this; - --*this; - return tmp; - } - }; -/* - * Terris comment: Iterator class ends here - * Terris comment: Const Iterator class starts here - */ - class const_iterator - : public bidirectional_iterator { - friend class rb_tree; - friend class iterator; -/* - friend bool operator==(const const_iterator& x, const const_iterator& y) { - return x.node == y.node; - } -*/ -/* - * Added by Terris - */ - link_type NIL; - - protected: - link_type node; - const_iterator(link_type x, link_type NIL) : node(x), NIL(NIL) {} - public: -/* - * Changed by Terris - */ - const_iterator() { NIL = (link_type) NULL; } -/* - * Changed by Terris - */ - const_iterator(const iterator& x) : node(x.node), NIL(x.NIL) {} - bool operator==(const const_iterator& y) const { - return node == y.node; - } - bool operator!=(const const_iterator& y) const { - return node != y.node; - } - const_reference operator*() const { return value(node); } - const_iterator& operator++() { - if (right(node) != NIL) { - node = right(node); - while (left(node) != NIL) - node = left(node); - } else { - link_type y = parent(node); - while (node == right(y)) { - node = y; - y = parent(y); - } - if (right(node) != y) // necessary because of rightmost - node = y; - } - return *this; - } - const_iterator operator++(int) { - const_iterator tmp = *this; - ++*this; - return tmp; - } - const_iterator& operator--() { - if (color(node) == red && parent(parent(node)) == node) - // check for header - node = right(node); // return rightmost - else if (left(node) != NIL) { - link_type y = left(node); - while (right(y) != NIL) - y = right(y); - node = y; - } else { - link_type y = parent(node); - while (node == left(y)) { - node = y; - y = parent(y); - } - node = y; - } - return *this; - } - const_iterator operator--(int) { - const_iterator tmp = *this; - --*this; - return tmp; - } - }; -/* - * Terris comment: const_iterator ends here - */ - typedef reverse_bidirectional_iterator - reverse_iterator; - typedef reverse_bidirectional_iterator - const_reverse_iterator; -private: - iterator __insert(link_type x, link_type y, const value_type& v); -/* - * Changed by Terris - */ - link_type __copy(link_type x, link_type p, link_type nil); - void __erase(link_type x); - void init() { - ++number_of_trees; - if ( NIL == 0 ) { - NIL = get_node(); - color(NIL) = black; - parent(NIL) = 0; - left(NIL) = 0; - right(NIL) = 0; - } - header = get_node(); - color(header) = red; // used to distinguish header from root, - // in iterator.operator++ - root() = NIL; - leftmost() = header; - rightmost() = header; - } -public: - -// allocation/deallocation - -/* - * Changed by Terris - */ - rb_tree(const Compare& comp = Compare(), bool always = true) - : node_count(0), key_compare(comp), insert_always(always), free_list(0), buffer_list(0), next_avail(0), - last(0), number_of_trees(0), NIL(0) { - init(); - } -/* - * Changed by Terris - */ - rb_tree(const value_type* first, const value_type* last, - const Compare& comp = Compare(), bool always = true) - : node_count(0), key_compare(comp), insert_always(always), free_list(0), - buffer_list(0), next_avail(0), last(0), number_of_trees(0), NIL(0) { - init(); - insert(first, last); - } -/* - * Changed by Terris - */ - rb_tree(const rb_tree& x, - bool always = true) : node_count(x.node_count), - key_compare(x.key_compare), insert_always(always), free_list(0), - buffer_list(0), next_avail(0), last(0), number_of_trees(0), - NIL( 0 ) { -/* - * Added by Terris - */ - init(); -/* - * Changed by Terris - */ - // ++number_of_trees; - // header = get_node(); - // color(header) = red; -/* - * Changed by Terris - */ - root() = __copy(x.root(), header, x.NIL); - if (root() == NIL) { - leftmost() = header; - rightmost() = header; - } else { - leftmost() = minimum(root()); - rightmost() = maximum(root()); - } - } - ~rb_tree() { - erase(begin(), end()); - put_node(header); - if (--number_of_trees == 0) { - put_node(NIL); - NIL = 0; - deallocate_buffers(); - free_list = 0; - next_avail = 0; - last = 0; - } - } - rb_tree& - operator=(const rb_tree& x); - -// accessors: - - Compare key_comp() const { return key_compare; } -/* - * Changed by Terris - */ - iterator begin() { return iterator(leftmost(), NIL); } -/* - * Changed by Terris - */ - const_iterator begin() const { return const_iterator(leftmost(), NIL); } -/* - * Changed by Terris - */ - iterator end() { return iterator(header, NIL); } -/* - * Changed by Terris - */ - const_iterator end() const { return const_iterator(header, NIL); } - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - bool empty() const { return node_count == 0; } - size_type size() const { return node_count; } - size_type max_size() const { - return rb_tree_node_allocator.max_size(); - } - void swap(rb_tree& t) { - std::swap(header, t.header); - std::swap(node_count, t.node_count); - std::swap(insert_always, t.insert_always); - std::swap(key_compare, t.key_compare); - /* - * Added By Terris - */ - std::swap(NIL, t.NIL); - std::swap(buffer_list, t.buffer_list); - std::swap(free_list, t.free_list); - std::swap(next_avail, t.next_avail); - std::swap(last, t.last); - /* - * Added By Terris - */ - } - -// insert/erase - - typedef pair pair_iterator_bool; - // typedef done to get around compiler bug - pair_iterator_bool insert(const value_type& x); - iterator insert(iterator position, const value_type& x); - void insert(iterator first, iterator last); - void insert(const value_type* first, const value_type* last); - void erase(iterator position); - size_type erase(const key_type& x); - void erase(iterator first, iterator last); - void erase(const key_type* first, const key_type* last); - -// set operations: - - iterator find(const key_type& x); - const_iterator find(const key_type& x) const; - size_type count(const key_type& x) const; - iterator lower_bound(const key_type& x); - const_iterator lower_bound(const key_type& x) const; - iterator upper_bound(const key_type& x); - const_iterator upper_bound(const key_type& x) const; - typedef pair pair_iterator_iterator; - // typedef done to get around compiler bug - pair_iterator_iterator equal_range(const key_type& x); - typedef pair pair_citerator_citerator; - // typedef done to get around compiler bug - pair_citerator_citerator equal_range(const key_type& x) const; - inline void rotate_left(link_type x); - inline void rotate_right(link_type x); -}; - -/* - * Added by Terris - */ -#if 0 -template -rb_tree::buffer_pointer - rb_tree::buffer_list = 0; - -template -rb_tree::link_type - rb_tree::free_list = 0; - -template -rb_tree::link_type - rb_tree::next_avail = 0; - -template -rb_tree::link_type - rb_tree::last = 0; - -template -rb_tree::size_type - rb_tree::number_of_trees = 0; -/* - * Added by Terris - */ -#endif - -template -rb_tree::rb_tree_node_allocator_type - rb_tree::rb_tree_node_allocator; - -template -Allocator rb_tree::value_allocator; - -template -rb_tree::buffer_allocator_type - rb_tree::buffer_allocator; - -/* Added by Terris - */ -#if 0 -template -rb_tree::link_type - rb_tree::NIL = 0; -#endif - -template -void rb_tree::deallocate_buffers() { - while (buffer_list) { - buffer_pointer tmp = buffer_list; - buffer_list = (buffer_pointer)(buffer_list->next_buffer); - rb_tree_node_allocator.deallocate(tmp->buffer); - buffer_allocator.deallocate(tmp); - } -} - -template -inline bool operator==(const rb_tree& x, - const rb_tree& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const rb_tree& x, - const rb_tree& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - -template -rb_tree& -rb_tree:: -operator=(const rb_tree& x) { - if (this != &x) { - // can't be done as in list because Key may be a constant type - erase(begin(), end()); -/* - * Changed by Terris - */ - root() = __copy(x.root(), header, x.NIL); - if (root() == NIL) { - leftmost() = header; - rightmost() = header; - } else { - leftmost() = minimum(root()); - rightmost() = maximum(root()); - } - node_count = x.node_count; - } - return *this; -} - -template -rb_tree::iterator -rb_tree:: -__insert(link_type x, link_type y, const Value& v) { - ++node_count; - link_type z = get_node(); - construct(value_allocator.address(value(z)), v); - if (y == header || x != NIL || key_compare(KeyOfValue()(v), key(y))) { - left(y) = z; // also makes leftmost() = z when y == header - if (y == header) { - root() = z; - rightmost() = z; - } else if (y == leftmost()) - leftmost() = z; // maintain leftmost() pointing to minimum node - } else { - right(y) = z; - if (y == rightmost()) - rightmost() = z; // maintain rightmost() pointing to maximum node - } - parent(z) = y; - left(z) = NIL; - right(z) = NIL; - x = z; // recolor and rebalance the tree - color(x) = red; - while (x != root() && color(parent(x)) == red) - if (parent(x) == left(parent(parent(x)))) { - y = right(parent(parent(x))); - if (color(y) == red) { - color(parent(x)) = black; - color(y) = black; - color(parent(parent(x))) = red; - x = parent(parent(x)); - } else { - if (x == right(parent(x))) { - x = parent(x); - rotate_left(x); - } - color(parent(x)) = black; - color(parent(parent(x))) = red; - rotate_right(parent(parent(x))); - } - } else { - y = left(parent(parent(x))); - if (color(y) == red) { - color(parent(x)) = black; - color(y) = black; - color(parent(parent(x))) = red; - x = parent(parent(x)); - } else { - if (x == left(parent(x))) { - x = parent(x); - rotate_right(x); - } - color(parent(x)) = black; - color(parent(parent(x))) = red; - rotate_left(parent(parent(x))); - } - } - color(root()) = black; - return iterator(z, NIL); -} - -template -rb_tree::pair_iterator_bool -rb_tree::insert(const Value& v) { - link_type y = header; - link_type x = root(); - bool comp = true; - while (x != NIL) { - y = x; - comp = key_compare(KeyOfValue()(v), key(x)); - x = comp ? left(x) : right(x); - } - if (insert_always) - return pair_iterator_bool(__insert(x, y, v), true); - iterator j = iterator(y, NIL); - if (comp) - if (j == begin()) - return pair_iterator_bool(__insert(x, y, v), true); - else - --j; - if (key_compare(key(j.node), KeyOfValue()(v))) - return pair_iterator_bool(__insert(x, y, v), true); - return pair_iterator_bool(j, false); -} - -template -rb_tree::iterator -rb_tree::insert(iterator position, - const Value& v) { - if (position == iterator(begin())) - if (size() > 0 && key_compare(KeyOfValue()(v), key(position.node))) - return __insert(position.node, position.node, v); - // first argument just needs to be non-NIL - else - return insert(v).first; - else if (position == iterator(end())) - if (key_compare(key(rightmost()), KeyOfValue()(v))) - return __insert(NIL, rightmost(), v); - else - return insert(v).first; - else { - iterator before = --position; - if (key_compare(key(before.node), KeyOfValue()(v)) - && key_compare(KeyOfValue()(v), key(position.node))) - if (right(before.node) == NIL) - return __insert(NIL, before.node, v); - else - return __insert(position.node, position.node, v); - // first argument just needs to be non-NIL - else - return insert(v).first; - } -} - -template -void rb_tree::insert(iterator first, - iterator last) { - while (first != last) insert(*first++); -} - -template -void rb_tree::insert(const Value* first, - const Value* last) { - while (first != last) insert(*first++); -} - -template -void rb_tree::erase(iterator position) { - link_type z = position.node; - link_type y = z; - link_type x; - if (left(y) == NIL) - x = right(y); - else - if (right(y) == NIL) - x = left(y); - else { - y = right(y); - while (left(y) != NIL) - y = left(y); - x = right(y); - } - if (y != z) { // relink y in place of z - parent(left(z)) = y; - left(y) = left(z); - if (y != right(z)) { - parent(x) = parent(y); // possibly x == NIL - left(parent(y)) = x; // y must be a left child - right(y) = right(z); - parent(right(z)) = y; - } else - parent(x) = y; // needed in case x == NIL - if (root() == z) - root() = y; - else if (left(parent(z)) == z) - left(parent(z)) = y; - else - right(parent(z)) = y; - parent(y) = parent(z); - std::swap(color(y), color(z)); - std::swap(y, z); - // y points to node to be actually deleted, - // z points to old z's former successor - } else { // y == z - parent(x) = parent(y); // possibly x == NIL - if (root() == z) - root() = x; - else - if (left(parent(z)) == z) - left(parent(z)) = x; - else - right(parent(z)) = x; - if (leftmost() == z) - if (right(z) == NIL) // left(z) must be NIL also - leftmost() = parent(z); - // makes leftmost() == header if z == root() - else - leftmost() = minimum(x); - if (rightmost() == z) - if (left(z) == NIL) // right(z) must be NIL also - rightmost() = parent(z); - // makes rightmost() == header if z == root() - else // x == left(z) - rightmost() = maximum(x); - } - if (color(y) != red) { - while (x != root() && color(x) == black) - if (x == left(parent(x))) { - link_type w = right(parent(x)); - if (color(w) == red) { - color(w) = black; - color(parent(x)) = red; - rotate_left(parent(x)); - w = right(parent(x)); - } - if (color(left(w)) == black && color(right(w)) == black) { - color(w) = red; - x = parent(x); - } else { - if (color(right(w)) == black) { - color(left(w)) = black; - color(w) = red; - rotate_right(w); - w = right(parent(x)); - } - color(w) = color(parent(x)); - color(parent(x)) = black; - color(right(w)) = black; - rotate_left(parent(x)); - break; - } - } else { // same as then clause with "right" and "left" exchanged - link_type w = left(parent(x)); - if (color(w) == red) { - color(w) = black; - color(parent(x)) = red; - rotate_right(parent(x)); - w = left(parent(x)); - } - if (color(right(w)) == black && color(left(w)) == black) { - color(w) = red; - x = parent(x); - } else { - if (color(left(w)) == black) { - color(right(w)) = black; - color(w) = red; - rotate_left(w); - w = left(parent(x)); - } - color(w) = color(parent(x)); - color(parent(x)) = black; - color(left(w)) = black; - rotate_right(parent(x)); - break; - } - } - color(x) = black; - } - destroy(value_allocator.address(value(y))); - put_node(y); - --node_count; -} - -template -rb_tree::size_type -rb_tree::erase(const Key& x) { - pair_iterator_iterator p = equal_range(x); - size_type n = 0; - distance(p.first, p.second, n); - erase(p.first, p.second); - return n; -} - -template -rb_tree::link_type -/* - * Changed by Terris - */ -rb_tree::__copy(link_type x, link_type p, link_type xNIL) { - // structural copy - link_type r = x; - while (x != xNIL) { - link_type y = get_node(); - if (r == x) r = y; // save for return value - construct(value_allocator.address(value(y)), value(x)); - left(p) = y; - parent(y) = p; - color(y) = color(x); -/* - * Changed by Terris - */ - right(y) = __copy(right(x), y, xNIL); - p = y; - x = left(x); - } - left(p) = NIL; -/* - * Changed by Terris - */ - return r == xNIL ? NIL : r; -} - -template -void rb_tree::__erase(link_type x) { - // erase without rebalancing - while (x != NIL) { - __erase(right(x)); - link_type y = left(x); - destroy(value_allocator.address(value(x))); - put_node(x); - x = y; - } -} - -template -void rb_tree::erase(iterator first, - iterator last) { - if (first == begin() && last == end() && node_count != 0) { - __erase(root()); - leftmost() = header; - root() = NIL; - rightmost() = header; - node_count = 0; - } else - while (first != last) erase(first++); -} - -template -void rb_tree::erase(const Key* first, - const Key* last) { - while (first != last) erase(*first++); -} - -template -rb_tree::iterator -rb_tree::find(const Key& k) { - link_type y = header; - link_type x = root(); - bool comp = false; - while (x != NIL) { - y = x; - comp = key_compare(key(x), k); - x = comp ? right(x) : left(x); - } - iterator j = iterator(y, NIL); - if (comp) ++j; - return (j == end() || key_compare(k, key(j.node))) ? end() : j; -} - -template -rb_tree::const_iterator -rb_tree::find(const Key& k) const { - link_type y = header; - link_type x = root(); - bool comp = false; - while (x != NIL) { - y = x; - comp = key_compare(key(x), k); - x = comp ? right(x) : left(x); - } - const_iterator j = const_iterator(y, NIL); - if (comp) ++j; - return (j == end() || key_compare(k, key(j.node))) ? end() : j; -} - -template -rb_tree::size_type -rb_tree::count(const Key& k) const { - pair p = equal_range(k); - size_type n = 0; - distance(p.first, p.second, n); - return n; -} - -template -rb_tree::iterator -rb_tree::lower_bound(const Key& k) { - link_type y = header; - link_type x = root(); - bool comp = false; - while (x != NIL) { - y = x; - comp = key_compare(key(x), k); - x = comp ? right(x) : left(x); - } - iterator j = iterator(y, NIL); - return comp ? ++j : j; -} - -template -rb_tree::const_iterator -rb_tree::lower_bound(const Key& k) const { - link_type y = header; - link_type x = root(); - bool comp = false; - while (x != NIL) { - y = x; - comp = key_compare(key(x), k); - x = comp ? right(x) : left(x); - } - const_iterator j = const_iterator(y, NIL); - return comp ? ++j : j; -} - -template -rb_tree::iterator -rb_tree::upper_bound(const Key& k) { - link_type y = header; - link_type x = root(); - bool comp = true; - while (x != NIL) { - y = x; - comp = key_compare(k, key(x)); - x = comp ? left(x) : right(x); - } - iterator j = iterator(y, NIL); - return comp ? j : ++j; -} - -template -rb_tree::const_iterator -rb_tree::upper_bound(const Key& k) const { - link_type y = header; - link_type x = root(); - bool comp = true; - while (x != NIL) { - y = x; - comp = key_compare(k, key(x)); - x = comp ? left(x) : right(x); - } - const_iterator j = const_iterator(y, NIL); - return comp ? j : ++j; -} - - -template -rb_tree::pair_iterator_iterator -rb_tree::equal_range(const Key& k) { - return pair_iterator_iterator(lower_bound(k), upper_bound(k)); -} - -template -rb_tree::pair_citerator_citerator -rb_tree::equal_range(const Key& k) const { - return pair_citerator_citerator(lower_bound(k), upper_bound(k)); -} - -template -inline void -rb_tree::rotate_left(link_type x) { - link_type y = right(x); - right(x) = left(y); - if (left(y) != NIL) - parent(left(y)) = x; - parent(y) = parent(x); - if (x == root()) - root() = y; - else if (x == left(parent(x))) - left(parent(x)) = y; - else - right(parent(x)) = y; - left(y) = x; - parent(x) = y; -} - -template -inline void -rb_tree::rotate_right(link_type x) { - link_type y = left(x); - left(x) = right(y); - if (right(y) != NIL) - parent(right(y)) = x; - parent(y) = parent(x); - if (x == root()) - root() = y; - else if (x == right(parent(x))) - right(parent(x)) = y; - else - left(parent(x)) = y; - right(y) = x; - parent(x) = y; -} - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif diff --git a/STL/vector.h b/STL/vector.h deleted file mode 100644 index 7e2f11448b2..00000000000 --- a/STL/vector.h +++ /dev/null @@ -1,308 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company and Microsoft - * Corporation make no representations about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - */ - -#ifndef VECTOR_H -#define VECTOR_H - -#include -#include -#include - -#ifndef Allocator -#define Allocator allocator -#include -#endif - -#ifndef vector -#define vector vector -#endif - - -/* - *Added by d:\\convert.pl --begin-- - */ -namespace std { -/* - *Added by d:\\convert.pl --end-- - */ - -template -class vector { -public: - - typedef Allocator vector_allocator; - typedef T value_type; - typedef vector_allocator::pointer pointer; - typedef vector_allocator::pointer iterator; - typedef vector_allocator::const_pointer const_iterator; - typedef vector_allocator::reference reference; - typedef vector_allocator::const_reference const_reference; - typedef vector_allocator::size_type size_type; - typedef vector_allocator::difference_type difference_type; - typedef reverse_iterator const_reverse_iterator; - typedef reverse_iterator - reverse_iterator; -protected: - static Allocator static_allocator; - iterator start; - iterator finish; - iterator end_of_storage; - void insert_aux(iterator position, const T& x); -public: - iterator begin() { return start; } - const_iterator begin() const { return start; } - iterator end() { return finish; } - const_iterator end() const { return finish; } - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - size_type size() const { return size_type(end() - begin()); } - size_type max_size() const { return static_allocator.max_size(); } - size_type capacity() const { return size_type(end_of_storage - begin()); } - bool empty() const { return begin() == end(); } - reference operator[](size_type n) { return *(begin() + n); } - const_reference operator[](size_type n) const { return *(begin() + n); } - vector() : start(0), finish(0), end_of_storage(0) {} - /* - * This is cause the VC++ compiler sucks - * and does not recognize nested classes properly - * - * Here is the original: - * vector(size_type n, const T& value = T()) { - * - */ - vector(size_type n, const T& value /* = T() */) { - start = static_allocator.allocate(n); - uninitialized_fill_n(start, n, value); - finish = start + n; - end_of_storage = finish; - } - vector(const vector& x) { - start = static_allocator.allocate(x.end() - x.begin()); - finish = uninitialized_copy(x.begin(), x.end(), start); - end_of_storage = finish; - } - vector(const_iterator first, const_iterator last) { - size_type n = 0; - distance(first, last, n); - start = static_allocator.allocate(n); - finish = uninitialized_copy(first, last, start); - end_of_storage = finish; - } - ~vector() { - destroy(start, finish); - static_allocator.deallocate(start); - } - vector& operator=(const vector& x); - void reserve(size_type n) { - if (capacity() < n) { - iterator tmp = static_allocator.allocate(n); - uninitialized_copy(begin(), end(), tmp); - destroy(start, finish); - static_allocator.deallocate(start); - finish = tmp + size(); - start = tmp; - end_of_storage = begin() + n; - } - } - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - void push_back(const T& x) { - if (finish != end_of_storage) { - /* Borland bug */ - construct(finish, x); - finish++; - } else - insert_aux(end(), x); - } - void swap(vector& x) { - std::swap(start, x.start); - std::swap(finish, x.finish); - std::swap(end_of_storage, x.end_of_storage); - } - iterator insert(iterator position, const T& x) { - size_type n = position - begin(); - if (finish != end_of_storage && position == end()) { - /* Borland bug */ - construct(finish, x); - finish++; - } else - insert_aux(position, x); - return begin() + n; - } - void insert (iterator position, const_iterator first, - const_iterator last); - void insert (iterator position, size_type n, const T& x); - void pop_back() { - /* Borland bug */ - --finish; - destroy(finish); - } - void erase(iterator position) { - if (position + 1 != end()) - copy(position + 1, end(), position); - /* Borland bug */ - --finish; - destroy(finish); - } - void erase(iterator first, iterator last) { - vector::iterator i = copy(last, end(), first); - destroy(i, finish); - // work around for destroy(copy(last, end(), first), finish); - finish = finish - (last - first); - } -}; - -template -inline bool operator==(const vector& x, const vector& y) { - return x.size() == y.size() && equal(x.begin(), x.end(), y.begin()); -} - -template -inline bool operator<(const vector& x, const vector& y) { - return lexicographical_compare(x.begin(), x.end(), y.begin(), y.end()); -} - - -template -vector::vector_allocator vector::static_allocator; - - -template -vector& vector::operator=(const vector& x) { - if (&x == this) return *this; - if (x.size() > capacity()) { - destroy(start, finish); - static_allocator.deallocate(start); - start = static_allocator.allocate(x.end() - x.begin()); - end_of_storage = uninitialized_copy(x.begin(), x.end(), start); - } else if (size() >= x.size()) { - vector::iterator i = copy(x.begin(), x.end(), begin()); - destroy(i, finish); - // work around for destroy(copy(x.begin(), x.end(), begin()), finish); - } else { - copy(x.begin(), x.begin() + size(), begin()); - uninitialized_copy(x.begin() + size(), x.end(), begin() + size()); - } - finish = begin() + x.size(); - return *this; -} - -template -void vector::insert_aux(iterator position, const T& x) { - if (finish != end_of_storage) { - construct(finish, *(finish - 1)); - copy_backward(position, finish - 1, finish); - *position = x; - ++finish; - } else { - size_type len = size() ? 2 * size() - : static_allocator.init_page_size(); - iterator tmp = static_allocator.allocate(len); - uninitialized_copy(begin(), position, tmp); - construct(tmp + (position - begin()), x); - uninitialized_copy(position, end(), tmp + (position - begin()) + 1); - destroy(begin(), end()); - static_allocator.deallocate(begin()); - end_of_storage = tmp + len; - finish = tmp + size() + 1; - start = tmp; - } -} - -template -void vector::insert(iterator position, size_type n, const T& x) { - if (n == 0) return; - if (end_of_storage - finish >= n) { - if (end() - position > n) { - uninitialized_copy(end() - n, end(), end()); - copy_backward(position, end() - n, end()); - fill(position, position + n, x); - } else { - uninitialized_copy(position, end(), position + n); - fill(position, end(), x); - uninitialized_fill_n(end(), n - (end() - position), x); - } - finish += n; - } else { - size_type len = size() + max(size(), n); - iterator tmp = static_allocator.allocate(len); - uninitialized_copy(begin(), position, tmp); - uninitialized_fill_n(tmp + (position - begin()), n, x); - uninitialized_copy(position, end(), tmp + (position - begin() + n)); - destroy(begin(), end()); - static_allocator.deallocate(begin()); - end_of_storage = tmp + len; - finish = tmp + size() + n; - start = tmp; - } -} - -template -void vector::insert(iterator position, - const_iterator first, - const_iterator last) { - if (first == last) return; - size_type n = 0; - distance(first, last, n); - if (end_of_storage - finish >= n) { - if (end() - position > n) { - uninitialized_copy(end() - n, end(), end()); - copy_backward(position, end() - n, end()); - copy(first, last, position); - } else { - uninitialized_copy(position, end(), position + n); - copy(first, first + (end() - position), position); - uninitialized_copy(first + (end() - position), last, end()); - } - finish += n; - } else { - size_type len = size() + max(size(), n); - iterator tmp = static_allocator.allocate(len); - uninitialized_copy(begin(), position, tmp); - uninitialized_copy(first, last, tmp + (position - begin())); - uninitialized_copy(position, end(), tmp + (position - begin() + n)); - destroy(begin(), end()); - static_allocator.deallocate(begin()); - end_of_storage = tmp + len; - finish = tmp + size() + n; - start = tmp; - } -} - -#undef Allocator -#undef vector - - -/* - *Added by d:\\convert.pl --begin-- - */ -} -/* - *Added by d:\\convert.pl --end-- - */ - -#endif - - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/Makefile b/TAO/Benchmark/Marshal_Test/Orbix/Makefile deleted file mode 100644 index 0c40916fb67..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/Makefile +++ /dev/null @@ -1,75 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the Orbix Marshal Benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lACE -lbenchmark - -PROG_SRCS = marshalC.cpp marshalS.cpp orbix_marshal_client.cpp orbix_marshal_server.cpp \ - orbix_marshal_impl.cpp client.cpp server.cpp - -LSRC = $(PROG_SRCS) - -MARSHAL_CLIENT_OBJS = marshalC.o orbix_marshal_client.o client.o - -ifdef dsi -MARSHAL_SERVER_OBJS = orbix_marshal_impl.o orbix_marshal_server.o server.o -else -MARSHAL_SERVER_OBJS = marshalS.o orbix_marshal_impl.o orbix_marshal_server.o server.o -endif -BIN = client server - -BUILD = $(BIN) - -#CLIENT_LIBS = -lITini -liiop -lorbix -#SERVER_LIBS = -lITini -liiop -lDSI -lorbix -lIRclt -CLIENT_LIBS = -liiop -lorbix -SERVER_LIBS = -liiop -lDSI -lorbix -lIRclt - -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 -# include Orbix specific file -include /project/mambo/gokhale/CONFIG/orbixsol2s4.mk - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -CPPFLAGS += -I$(TAO_ROOT)/Benchmark - -server: $(addprefix $(VDIR),$(MARSHAL_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(SERVER_LIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(MARSHAL_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(CLIENT_LIBS) $(POSTLINK) - -marshal.h marshalC.cpp marshalS.cpp: marshal.idl - $(IDL) $(IDLFLAGS) $< - -clean: - rm -f core *.o *~ client server *C.cpp *S.cpp *S.h *C.h - $(MAKE) realclean - - - - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/client.cpp b/TAO/Benchmark/Marshal_Test/Orbix/client.cpp deleted file mode 100644 index 80c62f5e6a7..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/client.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "orbix_marshal_client.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Orbix_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Orbix_Marshal_Client_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/Orbix/marshal.h b/TAO/Benchmark/Marshal_Test/Orbix/marshal.h deleted file mode 100644 index c4791df7661..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/marshal.h +++ /dev/null @@ -1,1327 +0,0 @@ -// $Id$ - - -#ifndef marshal_h -#define marshal_h - -#include - -#include - - -#ifndef _IDL_SEQUENCE_any_defined -#define _IDL_SEQUENCE_any_defined - -class _IDL_SEQUENCE_any { - CORBA::ULong _maximum; - CORBA::ULong _length; - CORBA::any* _buffer; - unsigned char _release; - - public: - _IDL_SEQUENCE_any& operator= (const _IDL_SEQUENCE_any&); - _IDL_SEQUENCE_any (const _IDL_SEQUENCE_any&); - - _IDL_SEQUENCE_any (CORBA::ULong max); - _IDL_SEQUENCE_any (CORBA::ULong max, CORBA::ULong length, CORBA::any* data, CORBA::Boolean release = 0); - _IDL_SEQUENCE_any (); - - ~_IDL_SEQUENCE_any (); - - static CORBA::any* allocbuf(CORBA::ULong nelems); - static void freebuf(CORBA::any* data); - - CORBA::ULong maximum() const; - CORBA::ULong length() const; - void length (CORBA::ULong len); - - CORBA::any& operator [] (CORBA::ULong IT_i); - - const CORBA::any& operator [] (CORBA::ULong IT_i) const; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - -extern const CORBA::TypeCode_ptr _tc__IDL_SEQUENCE_any; - -#ifndef _IDL_SEQUENCE_anyVarH -#define _IDL_SEQUENCE_anyVarH - -#ifndef _IDL_SEQUENCE_anyvPtr -#define _IDL_SEQUENCE_anyvPtr -typedef _IDL_SEQUENCE_any* _IDL_SEQUENCE_any_vPtr; -typedef const _IDL_SEQUENCE_any* _IDL_SEQUENCE_any_cvPtr; -#endif - -class _IDL_SEQUENCE_any_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const _IDL_SEQUENCE_any_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new _IDL_SEQUENCE_any; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - _IDL_SEQUENCE_any_var (const _IDL_SEQUENCE_any_var &IT_s) { - (void) copyHelper (IT_s); - } - - _IDL_SEQUENCE_any_var () { - _ptr = NULL; - } - - _IDL_SEQUENCE_any_var (_IDL_SEQUENCE_any *IT_p) { - _ptr = IT_p; - } - - _IDL_SEQUENCE_any_var &operator= (_IDL_SEQUENCE_any *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - _IDL_SEQUENCE_any_var &operator= (const _IDL_SEQUENCE_any_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new _IDL_SEQUENCE_any; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~_IDL_SEQUENCE_any_var () { - delete _ptr; - } - - _IDL_SEQUENCE_any* operator-> () { - return _ptr; - } - - operator _IDL_SEQUENCE_any_cvPtr () const { return _ptr;} - operator _IDL_SEQUENCE_any_vPtr& () { return _ptr;} - operator _IDL_SEQUENCE_any& () const { return * _ptr;} - - const CORBA::any& operator[] (CORBA::ULong index) const; - - CORBA::any& operator[] (CORBA::ULong index); - - protected: - _IDL_SEQUENCE_any *_ptr; - private: - _IDL_SEQUENCE_any_var &operator= (const CORBA::_var &IT_s); - _IDL_SEQUENCE_any_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - -#ifndef _Marshal_defined -#define _Marshal_defined -class Marshal_dispatch : public virtual CORBA::PPTR { -public: - - Marshal_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Marshal_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Marshal_dispatch () {} - - Marshal_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Marshal_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Marshal; - -#ifndef MarshalPtr -#define MarshalPtr - -typedef Marshal* Marshal_ptr; - -typedef Marshal* MarshalRef; - -#endif - - -#ifndef MarshalForwH -#define MarshalForwH -CORBA::ObjectRef Marshal_getBase (void *); -void Marshal_release (Marshal *, CORBA::Environment &IT_env); -void Marshal_release (Marshal_ptr); -Marshal* Marshal_duplicate (Marshal_ptr, CORBA::Environment &IT_env); -Marshal* Marshal_duplicate (Marshal_ptr ); -Marshal_ptr Marshal_nil (CORBA::Environment &IT_env); -Marshal_ptr Marshal_nil (); -#endif -#define Marshal_IMPL "Marshal" - - -class Marshal; - -typedef Marshal MarshalProxy; -#define Marshal_IR "Marshal" -#define Marshal_IMPL "Marshal" - -#ifndef MarshalPtr -#define MarshalPtr - -typedef Marshal* Marshal_ptr; - -typedef Marshal* MarshalRef; - -#endif - -class Marshal: public virtual CORBA::Object { -public: - Marshal (char *IT_OR); - Marshal (ObjectReference *IT_OR); - Marshal () : CORBA::Object (1) {} -protected: - Marshal_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Marshal_ptr _duplicate( - Marshal_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Marshal* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Marshal* _bind (CORBA::Environment &IT_env); - static Marshal* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Marshal* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); -private: - static const void* IT_impl; -public: - static Marshal_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Marshal_ptr) CORBA::OBJECT_NIL;} - -#ifndef Marshal_Marshal_Struct_defined -#define Marshal_Marshal_Struct_defined - -struct Marshal_Struct { - CORBA::Short s; - CORBA::Long l; - CORBA::Char c; - CORBA::Octet o; - CORBA::Double d; - - 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; - Marshal_Struct(const Marshal_Struct &); - Marshal_Struct(); - ~Marshal_Struct(); - Marshal_Struct& operator= (const Marshal_Struct&); -}; - -static const CORBA::TypeCode_ptr _tc_Marshal_Struct; - -#ifndef Marshal_Marshal_StructVarH -#define Marshal_Marshal_StructVarH - -#ifndef Marshal_Marshal_StructvPtr -#define Marshal_Marshal_StructvPtr -typedef Marshal_Struct* Marshal_Struct_vPtr; -typedef const Marshal_Struct* Marshal_Struct_cvPtr; -#endif - -class Marshal_Struct_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Marshal_Struct_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Marshal_Struct; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Marshal_Struct_var (const Marshal_Struct_var &IT_s) { - (void) copyHelper (IT_s); - } - - Marshal_Struct_var () { - _ptr = new Marshal_Struct; -; - } - - Marshal_Struct_var (Marshal_Struct *IT_p) { - _ptr = IT_p; - } - - Marshal_Struct_var &operator= (Marshal_Struct *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Marshal_Struct_var &operator= (const Marshal_Struct_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Marshal_Struct; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Marshal_Struct_var () { - delete _ptr; - } - - Marshal_Struct* operator-> () { - return _ptr; - } - - operator Marshal_Struct_cvPtr () const { return _ptr;} - operator Marshal_Struct_vPtr& () { return _ptr;} - operator Marshal_Struct& () const { return * _ptr;} - - protected: - Marshal_Struct *_ptr; - private: - Marshal_Struct_var &operator= (const CORBA::_var &IT_s); - Marshal_Struct_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -static const CORBA::TypeCode_ptr _tc_discrim; - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th,e_6th, IT__ENUM_Marshal_discrim=CORBA_ULONG_MAX}; - -#ifndef Marshal_Marshal_Union_defined -#define Marshal_Marshal_Union_defined - -struct Marshal_Union { - private: - - discrim __d; - union { - CORBA::Short _s_; - CORBA::Long _l_; - CORBA::Char _c_; - CORBA::Octet _o_; - CORBA::Double _d_; - Marshal_Struct * _ms_; - }; - - public: - - 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; - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Marshal::e_0th)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_0th; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Marshal::e_1st)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_1st; - isSet = 1; - _l_ = IT_member; - } - - CORBA::Char c () const { - return _c_; - } - - void c (CORBA::Char IT_member) { - if (isSet && (__d != Marshal::e_2nd)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_2nd; - isSet = 1; - _c_ = IT_member; - } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Marshal::e_3rd)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_3rd; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Double d () const { - return _d_; - } - - void d (CORBA::Double IT_member) { - if (isSet && (__d != Marshal::e_4th)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_4th; - isSet = 1; - _d_ = IT_member; - } - - Marshal_Struct& ms () { - return (*_ms_); - } - - const Marshal_Struct& ms () const { - return (*_ms_); - } - - void ms (const Marshal_Struct& IT_member) { - if (isSet && (__d != Marshal::e_6th)) - { - this-> Marshal_Union::~Marshal_Union(); - memset(this, 0, sizeof(*this)); - } - - __d = Marshal::e_6th; - - if (!isSet) { - _ms_ = new Marshal_Struct; - isSet = 1; - } - *(_ms_) = IT_member; - } - - - Marshal_Union(); - Marshal_Union(const Marshal_Union &); - ~Marshal_Union(); - Marshal_Union& operator= (const Marshal_Union&); -}; - -static const CORBA::TypeCode_ptr _tc_Marshal_Union; - -#ifndef Marshal_Marshal_UnionVarH -#define Marshal_Marshal_UnionVarH - -#ifndef Marshal_Marshal_UnionvPtr -#define Marshal_Marshal_UnionvPtr -typedef Marshal_Union* Marshal_Union_vPtr; -typedef const Marshal_Union* Marshal_Union_cvPtr; -#endif - -class Marshal_Union_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Marshal_Union_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Marshal_Union; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Marshal_Union_var (const Marshal_Union_var &IT_s) { - (void) copyHelper (IT_s); - } - - Marshal_Union_var () { - _ptr = NULL; - } - - Marshal_Union_var (Marshal_Union *IT_p) { - _ptr = IT_p; - } - - Marshal_Union_var &operator= (Marshal_Union *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Marshal_Union_var &operator= (const Marshal_Union_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Marshal_Union; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Marshal_Union_var () { - delete _ptr; - } - - Marshal_Union* operator-> () { - return _ptr; - } - - operator Marshal_Union_cvPtr () const { return _ptr;} - operator Marshal_Union_vPtr& () { return _ptr;} - operator Marshal_Union& () const { return * _ptr;} - - protected: - Marshal_Union *_ptr; - private: - Marshal_Union_var &operator= (const CORBA::_var &IT_s); - Marshal_Union_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif -static const CORBA::TypeCode_ptr _tc_AnySeq; - -typedef _IDL_SEQUENCE_any AnySeq; -typedef const _IDL_SEQUENCE_any AnySeq_IT_const; - -typedef _IDL_SEQUENCE_any_var AnySeq_var; - - -#ifndef Marshal__IDL_SEQUENCE_Marshal_Marshal_Recursive_defined -#define Marshal__IDL_SEQUENCE_Marshal_Marshal_Recursive_defined - -struct Marshal_Recursive; -class _IDL_SEQUENCE_Marshal_Marshal_Recursive { - CORBA::ULong _maximum; - CORBA::ULong _length; - Marshal_Recursive* _buffer; - unsigned char _release; - - public: - _IDL_SEQUENCE_Marshal_Marshal_Recursive& operator= (const _IDL_SEQUENCE_Marshal_Marshal_Recursive&); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (const _IDL_SEQUENCE_Marshal_Marshal_Recursive&); - - _IDL_SEQUENCE_Marshal_Marshal_Recursive (CORBA::ULong max); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (CORBA::ULong max, CORBA::ULong length, Marshal_Recursive* data, CORBA::Boolean release = 0); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (); - - ~_IDL_SEQUENCE_Marshal_Marshal_Recursive (); - - static Marshal_Recursive* allocbuf(CORBA::ULong nelems); - static void freebuf(Marshal_Recursive* data); - - CORBA::ULong maximum() const; - CORBA::ULong length() const; - void length (CORBA::ULong len); - - Marshal_Recursive& operator [] (CORBA::ULong IT_i); - - const Marshal_Recursive& operator [] (CORBA::ULong IT_i) const; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - -static const CORBA::TypeCode_ptr _tc__IDL_SEQUENCE_Marshal_Marshal_Recursive; - -#ifndef Marshal__IDL_SEQUENCE_Marshal_Marshal_RecursiveVarH -#define Marshal__IDL_SEQUENCE_Marshal_Marshal_RecursiveVarH - -#ifndef Marshal__IDL_SEQUENCE_Marshal_Marshal_RecursivevPtr -#define Marshal__IDL_SEQUENCE_Marshal_Marshal_RecursivevPtr -typedef _IDL_SEQUENCE_Marshal_Marshal_Recursive* _IDL_SEQUENCE_Marshal_Marshal_Recursive_vPtr; -typedef const _IDL_SEQUENCE_Marshal_Marshal_Recursive* _IDL_SEQUENCE_Marshal_Marshal_Recursive_cvPtr; -#endif - -class _IDL_SEQUENCE_Marshal_Marshal_Recursive_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new _IDL_SEQUENCE_Marshal_Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - (void) copyHelper (IT_s); - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var () { - _ptr = NULL; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (_IDL_SEQUENCE_Marshal_Marshal_Recursive *IT_p) { - _ptr = IT_p; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (_IDL_SEQUENCE_Marshal_Marshal_Recursive *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new _IDL_SEQUENCE_Marshal_Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~_IDL_SEQUENCE_Marshal_Marshal_Recursive_var () { - delete _ptr; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive* operator-> () { - return _ptr; - } - - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive_cvPtr () const { return _ptr;} - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive_vPtr& () { return _ptr;} - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive& () const { return * _ptr;} - - const Marshal_Recursive& operator[] (CORBA::ULong index) const; - - Marshal_Recursive& operator[] (CORBA::ULong index); - - protected: - _IDL_SEQUENCE_Marshal_Marshal_Recursive *_ptr; - private: - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (const CORBA::_var &IT_s); - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - -#ifndef Marshal_Marshal_Recursive_defined -#define Marshal_Marshal_Recursive_defined - -struct Marshal_Recursive { - CORBA::any value; - _IDL_SEQUENCE_Marshal_Marshal_Recursive next; - - 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; - Marshal_Recursive(const Marshal_Recursive &); - Marshal_Recursive(); - ~Marshal_Recursive(); - Marshal_Recursive& operator= (const Marshal_Recursive&); -}; - -static const CORBA::TypeCode_ptr _tc_Marshal_Recursive; - -#ifndef Marshal_Marshal_RecursiveVarH -#define Marshal_Marshal_RecursiveVarH - -#ifndef Marshal_Marshal_RecursivevPtr -#define Marshal_Marshal_RecursivevPtr -typedef Marshal_Recursive* Marshal_Recursive_vPtr; -typedef const Marshal_Recursive* Marshal_Recursive_cvPtr; -#endif - -class Marshal_Recursive_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Marshal_Recursive_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Marshal_Recursive_var (const Marshal_Recursive_var &IT_s) { - (void) copyHelper (IT_s); - } - - Marshal_Recursive_var () { - _ptr = NULL; - } - - Marshal_Recursive_var (Marshal_Recursive *IT_p) { - _ptr = IT_p; - } - - Marshal_Recursive_var &operator= (Marshal_Recursive *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Marshal_Recursive_var &operator= (const Marshal_Recursive_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Marshal_Recursive_var () { - delete _ptr; - } - - Marshal_Recursive* operator-> () { - return _ptr; - } - - operator Marshal_Recursive_cvPtr () const { return _ptr;} - operator Marshal_Recursive_vPtr& () { return _ptr;} - operator Marshal_Recursive& () const { return * _ptr;} - - protected: - Marshal_Recursive *_ptr; - private: - Marshal_Recursive_var &operator= (const CORBA::_var &IT_s); - Marshal_Recursive_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - virtual void test_short (CORBA::Short s1, CORBA::Short& s2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_long (CORBA::Long l1, CORBA::Long& l2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_octet (CORBA::Octet o1, CORBA::Octet& o2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_char (CORBA::Char c1, CORBA::Char& c2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_double (CORBA::Double d1, CORBA::Double& d2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_struct (const Marshal_Struct& ms1, Marshal_Struct& ms2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_union (const Marshal_Union& u1, Marshal_Union& u2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_any (const CORBA::any& a1, CORBA::any*& a2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_sequence (const AnySeq& as1, AnySeq*& as2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void test_recursive (const Marshal_Recursive& mr1, Marshal_Recursive*& mr2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -extern const CORBA::TypeCode_ptr _tc_MarshalRef; - -#ifndef MarshalVarH -#define MarshalVarH - -#ifndef MarshalvPtr -#define MarshalvPtr -typedef Marshal* Marshal_vPtr; -typedef const Marshal* Marshal_cvPtr; -#endif - -class Marshal_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Marshal_var &IT_s) { - { - _ptr = Marshal_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Marshal_var (const Marshal_var &IT_s) { - (void) copyHelper (IT_s); - } - - Marshal_var () { - _ptr = Marshal_nil (); - } - - Marshal_var (Marshal *IT_p) { - _ptr = IT_p; - } - - Marshal_var &operator= (Marshal *IT_p) { - Marshal_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Marshal_var &operator= (const Marshal_var &IT_s) { - Marshal_release (_ptr); - _ptr = Marshal_duplicate (IT_s._ptr); - return (*this); - } - - ~Marshal_var () { - Marshal_release (_ptr); - } - - Marshal* operator-> () { - return _ptr; - } - - operator Marshal_cvPtr () const { return _ptr;} - operator Marshal_vPtr& () { return _ptr;} - - protected: - Marshal *_ptr; - private: - Marshal_var &operator= (const CORBA::_var &IT_s); - Marshal_var (const CORBA::_var &IT_s); - Marshal_var &operator= (const CORBA::_mgr &IT_s); - Marshal_var &operator= (const CORBA::_SeqElem &IT_s); - Marshal_var (const CORBA::_mgr &IT_s); - Marshal_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef MarshalMgrH -#define MarshalMgrH - -class Marshal_mgr : public CORBA::_mgr -{ - public: - - Marshal_mgr () { - _ptr = Marshal_nil (); - _release = 1; - } - - Marshal_mgr (const Marshal_mgr &IT_s) { - _ptr = Marshal_duplicate (IT_s._ptr); - _release = 1; - } - - Marshal_mgr &operator= (Marshal *IT_p) { - if (_ptr && _release) - Marshal_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Marshal_mgr &operator= (const Marshal_mgr &IT_s) { - if (_ptr && _release) - Marshal_release (_ptr); - _ptr = Marshal_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Marshal_mgr &operator= (Marshal_var &IT_s) { - if (_ptr && _release) - Marshal_release (_ptr); - _ptr = Marshal_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Marshal_mgr () { - if (_release) - Marshal_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Marshal* () const { - return (Marshal*) _ptr; - } - - Marshal_ptr operator-> () const { - return _ptr; - } - - Marshal *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Marshal_mgr Marshal_mgr_IT_const; -#endif - -#ifndef MarshalSeqElemH -#define MarshalSeqElemH - -class Marshal_SeqElem : public CORBA::_SeqElem -{ - public: - - Marshal_SeqElem (Marshal_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Marshal_SeqElem &operator= (Marshal_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Marshal_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Marshal_SeqElem &operator= (const Marshal_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Marshal_release (*(_ptr)); - *(_ptr) = Marshal_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Marshal_ptr () const { - return _ptr ? (Marshal_ptr) (*_ptr) : Marshal_nil(); - } - - Marshal_ptr operator->() const { return *_ptr;} - - protected: - Marshal_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Marshal(X) Marshal##X - -#define DEF_TIE_Marshal(X) \ - class Marshal##X : public virtual Marshal { \ - X* m_obj; \ - public: \ - \ - \ - Marshal##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Marshal(), m_obj(objp) { \ - m_pptr = new Marshal_dispatch \ - (( Marshal*)this,(CORBA::Object*)this,m,l,Marshal_IR,m_obj); \ - } \ - Marshal##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Marshal() { \ - m_pptr = new Marshal_dispatch \ - (( Marshal*)this,(CORBA::Object*)this,IT_m,Marshal_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Marshal##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual void test_short (CORBA::Short s1, CORBA::Short& s2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_short ( s1, s2,IT_env);\ -}\ - \ -virtual void test_long (CORBA::Long l1, CORBA::Long& l2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_long ( l1, l2,IT_env);\ -}\ - \ -virtual void test_octet (CORBA::Octet o1, CORBA::Octet& o2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_octet ( o1, o2,IT_env);\ -}\ - \ -virtual void test_char (CORBA::Char c1, CORBA::Char& c2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_char ( c1, c2,IT_env);\ -}\ - \ -virtual void test_double (CORBA::Double d1, CORBA::Double& d2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_double ( d1, d2,IT_env);\ -}\ - \ -virtual void test_struct (const Marshal::Marshal_Struct& ms1, Marshal::Marshal_Struct& ms2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_struct ( ms1, ms2,IT_env);\ -}\ - \ -virtual void test_union (const Marshal::Marshal_Union& u1, Marshal::Marshal_Union& u2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_union ( u1, u2,IT_env);\ -}\ - \ -virtual void test_any (const CORBA::any& a1, CORBA::any*& a2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_any ( a1, a2,IT_env);\ -}\ - \ -virtual void test_sequence (const Marshal::AnySeq& as1, Marshal::AnySeq*& as2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_sequence ( as1, as2,IT_env);\ -}\ - \ -virtual void test_recursive (const Marshal::Marshal_Recursive& mr1, Marshal::Marshal_Recursive*& mr2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_recursive ( mr1, mr2,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Marshal \ -virtual void test_short (CORBA::Short s1, CORBA::Short& s2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_short ( s1, s2,IT_env);\ -}\ - \ -virtual void test_long (CORBA::Long l1, CORBA::Long& l2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_long ( l1, l2,IT_env);\ -}\ - \ -virtual void test_octet (CORBA::Octet o1, CORBA::Octet& o2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_octet ( o1, o2,IT_env);\ -}\ - \ -virtual void test_char (CORBA::Char c1, CORBA::Char& c2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_char ( c1, c2,IT_env);\ -}\ - \ -virtual void test_double (CORBA::Double d1, CORBA::Double& d2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_double ( d1, d2,IT_env);\ -}\ - \ -virtual void test_struct (const Marshal_Struct& ms1, Marshal_Struct& ms2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_struct ( ms1, ms2,IT_env);\ -}\ - \ -virtual void test_union (const Marshal_Union& u1, Marshal_Union& u2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_union ( u1, u2,IT_env);\ -}\ - \ -virtual void test_any (const CORBA::any& a1, CORBA::any*& a2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_any ( a1, a2,IT_env);\ -}\ - \ -virtual void test_sequence (const AnySeq& as1, AnySeq*& as2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_sequence ( as1, as2,IT_env);\ -}\ - \ -virtual void test_recursive (const Marshal_Recursive& mr1, Marshal_Recursive*& mr2, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->test_recursive ( mr1, mr2,IT_env);\ -}\ - - - - -class MarshalProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - MarshalProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Marshal_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern MarshalProxyFactoryClass MarshalProxyFactory; - -class MarshalBOAImpl : public virtual Marshal { -public: - MarshalBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Marshal_IR)) - m_pptr = new Marshal_dispatch ( (Marshal*)this, - (CORBA::Object*)this, m, l, Marshal_IR, this); -} - - virtual void test_short (CORBA::Short s1, CORBA::Short& s2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_long (CORBA::Long l1, CORBA::Long& l2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_octet (CORBA::Octet o1, CORBA::Octet& o2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_char (CORBA::Char c1, CORBA::Char& c2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_double (CORBA::Double d1, CORBA::Double& d2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_struct (const Marshal_Struct& ms1, Marshal_Struct& ms2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_union (const Marshal_Union& u1, Marshal_Union& u2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_any (const CORBA::any& a1, CORBA::any*& a2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_sequence (const AnySeq& as1, AnySeq*& as2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void test_recursive (const Marshal_Recursive& mr1, Marshal_Recursive*& mr2, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _IDL_SEQUENCE_Marshal_Marshal_Recursive_defined -#define _IDL_SEQUENCE_Marshal_Marshal_Recursive_defined - -class _IDL_SEQUENCE_Marshal_Marshal_Recursive { - CORBA::ULong _maximum; - CORBA::ULong _length; - Marshal::Marshal_Recursive* _buffer; - unsigned char _release; - - public: - _IDL_SEQUENCE_Marshal_Marshal_Recursive& operator= (const _IDL_SEQUENCE_Marshal_Marshal_Recursive&); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (const _IDL_SEQUENCE_Marshal_Marshal_Recursive&); - - _IDL_SEQUENCE_Marshal_Marshal_Recursive (CORBA::ULong max); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (CORBA::ULong max, CORBA::ULong length, Marshal::Marshal_Recursive* data, CORBA::Boolean release = 0); - _IDL_SEQUENCE_Marshal_Marshal_Recursive (); - - ~_IDL_SEQUENCE_Marshal_Marshal_Recursive (); - - static Marshal::Marshal_Recursive* allocbuf(CORBA::ULong nelems); - static void freebuf(Marshal::Marshal_Recursive* data); - - CORBA::ULong maximum() const; - CORBA::ULong length() const; - void length (CORBA::ULong len); - - Marshal::Marshal_Recursive& operator [] (CORBA::ULong IT_i); - - const Marshal::Marshal_Recursive& operator [] (CORBA::ULong IT_i) const; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); -}; - -extern const CORBA::TypeCode_ptr _tc__IDL_SEQUENCE_Marshal_Marshal_Recursive; - -#ifndef _IDL_SEQUENCE_Marshal_Marshal_RecursiveVarH -#define _IDL_SEQUENCE_Marshal_Marshal_RecursiveVarH - -#ifndef _IDL_SEQUENCE_Marshal_Marshal_RecursivevPtr -#define _IDL_SEQUENCE_Marshal_Marshal_RecursivevPtr -typedef _IDL_SEQUENCE_Marshal_Marshal_Recursive* _IDL_SEQUENCE_Marshal_Marshal_Recursive_vPtr; -typedef const _IDL_SEQUENCE_Marshal_Marshal_Recursive* _IDL_SEQUENCE_Marshal_Marshal_Recursive_cvPtr; -#endif - -class _IDL_SEQUENCE_Marshal_Marshal_Recursive_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new _IDL_SEQUENCE_Marshal_Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - (void) copyHelper (IT_s); - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var () { - _ptr = NULL; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (_IDL_SEQUENCE_Marshal_Marshal_Recursive *IT_p) { - _ptr = IT_p; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (_IDL_SEQUENCE_Marshal_Marshal_Recursive *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (const _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new _IDL_SEQUENCE_Marshal_Marshal_Recursive; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~_IDL_SEQUENCE_Marshal_Marshal_Recursive_var () { - delete _ptr; - } - - _IDL_SEQUENCE_Marshal_Marshal_Recursive* operator-> () { - return _ptr; - } - - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive_cvPtr () const { return _ptr;} - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive_vPtr& () { return _ptr;} - operator _IDL_SEQUENCE_Marshal_Marshal_Recursive& () const { return * _ptr;} - - const Marshal::Marshal_Recursive& operator[] (CORBA::ULong index) const; - - Marshal::Marshal_Recursive& operator[] (CORBA::ULong index); - - protected: - _IDL_SEQUENCE_Marshal_Marshal_Recursive *_ptr; - private: - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var &operator= (const CORBA::_var &IT_s); - _IDL_SEQUENCE_Marshal_Marshal_Recursive_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - - -void operator<<= (CORBA::any &IT_a, const Marshal::Marshal_Union& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal::Marshal_Union*& IT_t); - - -void operator<<= (CORBA::any &IT_a, const Marshal::Marshal_Recursive& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal::Marshal_Recursive*& IT_t); - - -void operator<<= (CORBA::any &IT_a, Marshal_ptr IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal_ptr& IT_t); - - -void operator<<= (CORBA::any &IT_a, const Marshal::_IDL_SEQUENCE_Marshal_Marshal_Recursive& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal::_IDL_SEQUENCE_Marshal_Marshal_Recursive*& IT_t); - - -void operator<<= (CORBA::any &IT_a, const _IDL_SEQUENCE_Marshal_Marshal_Recursive& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, _IDL_SEQUENCE_Marshal_Marshal_Recursive*& IT_t); - - -void operator<<= (CORBA::any &IT_a, Marshal::discrim IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal::discrim& IT_t); - - -void operator<<= (CORBA::any &IT_a, const _IDL_SEQUENCE_any& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, _IDL_SEQUENCE_any*& IT_t); - - -void operator<<= (CORBA::any &IT_a, const Marshal::Marshal_Struct& IT_t); -CORBA::Boolean operator>>= (const CORBA::any &IT_a, Marshal::Marshal_Struct*& IT_t); - - -#endif diff --git a/TAO/Benchmark/Marshal_Test/Orbix/marshal.idl b/TAO/Benchmark/Marshal_Test/Orbix/marshal.idl deleted file mode 100644 index 80b3ec9ab20..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/marshal.idl +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -// Interface for the marshal benchmark - -interface Marshal -{ - struct Marshal_Struct - { - short s; - long l; - char c; - octet o; - double d; - }; - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th, e_6th}; - - union Marshal_Union - switch (discrim) - { - case e_0th: - short s; - case e_1st: - long l; - case e_2nd: - char c; - case e_3rd: - octet o; - case e_4th: - double d; - default: // this will test typecode indirection - Marshal_Struct ms; - }; - - /* - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence OctetSeq; - typedef sequence CharSeq; - typedef sequence DoubleSeq; - typedef sequence StructSeq; - typedef sequence UnionSeq; - */ - // for testing sequences of Any - typedef sequence AnySeq; - - // testing recursive behavior - // complex. - struct Marshal_Recursive - { - // we use this to test the limited recursion allowed by IDL. This is an - // ideal test for indirected typecodes. - - // simulate a behavior of a list node - any value; - sequence next; - }; - - void test_short (in short s1, out short s2); // test a short - void test_long (in long l1, out long l2); // test a long - void test_octet (in octet o1, out octet o2); // test an octet - void test_char (in char c1, out char c2); // test a char - void test_double (in double d1, out double d2); // test a double - void test_struct (in Marshal_Struct ms1, out Marshal_Struct ms2); // test a - // struct - void test_union (in Marshal_Union u1, out Marshal_Union u2); // test a - // union. - void test_any (in any a1, out any a2); // test an Any - /* - void test_sequence (in ShortSeq ss1, in LongSeq ls1, in OctetSeq os1, in - CharSeq cs1, in DoubleSeq ds1, in StructSeq Ss1, in - UnionSeq us1, in AnySeq as1, - out ShortSeq ss2, out LongSeq ls2, out OctetSeq os2, out - CharSeq cs2, out DoubleSeq ds2, out StructSeq Ss2, out - UnionSeq us2, out AnySeq as2); - */ - void test_sequence (in AnySeq as1, out AnySeq as2); // this will result in a - // 3 level indirection - - // sequence, any, and its - // value type - void test_recursive (in Marshal_Recursive mr1, out Marshal_Recursive mr2); // - // very complicated -}; - - - - - - - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.cpp b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.cpp deleted file mode 100644 index a42fee980f7..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.cpp +++ /dev/null @@ -1,1336 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Orbix marshal benchmark -// -// = FILENAME -// orbix_marshal_proxy.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -//#define USE_INIT -#include "orbix_marshal_client.h" - -#if !defined (__ACE_INLINE__) -#include "orbix_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -int -Orbix_Marshal_Client_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - CORBA::Object_ptr target; - char *markerserver; - int mlen=0, slen=0; // length of marker and service name - -#if 0 - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA::ORB_init (argc, (char *const *)argv, "Orbix"); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } -#endif - - // create a marker server - if (options.service_name ()) - slen = ACE_OS::strlen (options.service_name ()); - if (options.object_name ()) - mlen = ACE_OS::strlen (options.object_name ()); - - if (slen > 0) - { - markerserver = new char [mlen+slen+1+1]; - ACE_OS::sprintf (markerserver, "%s:%s", (mlen ? options.object_name ():""), - options.service_name ()); - ACE_DEBUG ((LM_DEBUG, "markerserver = %s\n", markerserver)); - } - else // server name is required - { - markerserver = NULL; - } - - // get the obj ref by binding it to the specified host using the specified obj_name - try { - target = Marshal::_bind (markerserver, options.hostname ()); - } - catch (CORBA::SystemException &se) - { - cerr << "failed to bind: " << &se << endl; - return 0; - } - if (CORBA::is_nil (target)) - { - ACE_DEBUG ((LM_DEBUG, "bind call failed\n")); - return -1; - } - - this->ref_ = Marshal::_narrow (target); - if (CORBA::is_nil (this->ref_)) - { - ACE_DEBUG ((LM_DEBUG, "narrow to Marshal failed\n")); - return -1; - } - - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SII - return this->use_sii (options, results); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DII - return this->use_dii (options, results); - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - // hopefully we are never here, else something is seriously wrong - return -1; -} - -int -Orbix_Marshal_Client_Proxy::use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the static invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = sii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = sii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = sii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = sii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = sii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = sii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = sii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = sii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = sii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = sii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - -int -Orbix_Marshal_Client_Proxy::use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the dynamic invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = dii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = dii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = dii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = dii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = dii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = dii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = dii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = dii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = dii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = dii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - - -// all helper functions : SII -int -Orbix_Marshal_Client_Proxy::sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA::Short s1, s2; - s1 = 3; - ref_->test_short (s1, s2); - if (s2 == 2*s1) - { - ACE_DEBUG ((LM_DEBUG, "SII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA::Long l1, l2; - l1 = 256; - ref_->test_long (l1, l2); - if (l2 == 3*l1) - { - ACE_DEBUG ((LM_DEBUG, "SII test_long success: l1 = %d, l2 = %d\n", l1, l2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - CORBA::Octet o1, o2; - o1 = (CORBA::Octet) 127; - ref_->test_octet (o1, o2); - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - CORBA::Char c1, c2; - c1 = 'B'; - ref_->test_char (c1, c2); - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - CORBA::Double d1, d2; - d1 = 3.1415; - ref_->test_double (d1, d2); - if (d2 == d1/2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - Marshal::Marshal_Struct ms1, ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - ref_->test_struct (ms1, ms2); - if (ms1.s == ms2.s && ms1.l == ms2.l && ms1.c == ms2.c && ms1.o == ms2.o && - ms1.d == ms2.d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct failed\n")); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - Marshal::Marshal_Union u1, u2; - Marshal::Marshal_Struct ms; - - // first test an enumerated case - // u1._d (Marshal::e_1st); Orbix does this on its own - u1.l (4567); - - ref_->test_union (u1, u2); - if ( (u1._d () == u2._d()) && (u1.l () == u2.l ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) failed\n")); - return -1; - } - - // now test the default case - // In Orbix, setting each field like this will not work because the poor - // Union has no clue what discriminant it must set to. -#if 0 - u1.ms ().s = 3; - u1.ms ().l = 256; - u1.ms ().c = 'B'; - u1.ms ().o = (CORBA::Octet) 127; - u1.ms ().d = 3.1415; -#endif - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u1.ms (ms); - - ref_->test_union (u1, u2); - - if (u1.ms ().s == u2.ms ().s && u1.ms ().l == u2.ms ().l && u1.ms ().c == u2.ms ().c && u1.ms ().o == u2.ms ().o && - u1.ms ().d == u2.ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) failed\n")); - return -1; - } -} - -int -Orbix_Marshal_Client_Proxy::sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we send a struct thru the any - CORBA::Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - a1 <<= ms1; - - a2 = new CORBA::Any; - - // now test it - ref_->test_any (a1, a2); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_any success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any value match failed\n")); - return -1; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any failed due to typecode mismatch\n")); - } - return 0; -} - -int -Orbix_Marshal_Client_Proxy::sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u.ms (ms); - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - - as1[0] <<= (CORBA::Short)3; - as1[1] <<= (CORBA::Long) 256; - as1[2] <<= CORBA::Any::from_octet ((CORBA::Octet)127); - as1[3] <<= CORBA::Any::from_char ('B'); - as1[4] <<= (CORBA::Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union - - as2 = new Marshal::AnySeq; - - ref_->test_sequence (as1, as2); - - ACE_DEBUG ((LM_DEBUG, "SII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { - if (as1[i].type ()->equal ((*as2)[i].type ())) - { - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA::Short *)as1[i].value () == *(CORBA::Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA::Long *)as1[i].value () == *(CORBA::Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA::Octet *)as1[i].value () == *(CORBA::Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA::Char *)as1[i].value () == *(CORBA::Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA::Double *)as1[i].value () == *(CORBA::Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on unions match\n")); - } - } - break; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, - "SII test_sequence: typecode mismatch for element %d\n", i)); - break; - } - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - return 0; -} - -int -Orbix_Marshal_Client_Proxy::sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - - mr1.value <<= (CORBA::Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA::Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2); - } - catch (CORBA::SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA::Long *)mr1.value.value () == *(CORBA::Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA::Char *)elem1->value.value () == *(CORBA::Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive failure\n")); - } - - return 0; -} - -// ------------------------------------------------------- -// all helper functions : DII -// ------------------------------------------------------- - -int -Orbix_Marshal_Client_Proxy::dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Short s1, s2; - - s1 = 3; - s2 = 0; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add (CORBA::ARG_IN)->value ()) <<= s1; - // this usage is also correct. All we care is to supply a storage area for - // the OUT parameter - // arglist->add (CORBA::ARG_OUT)->value ()->replace (CORBA::_tc_short, &s2); - *(arglist->add (CORBA::ARG_OUT)->value ()) <<= s2; - orb_->create_list(1, result_list); // 1 result - result = result_list->item (0); - - // create a request - ref_->_create_request(ctx, - "test_short", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= s2; - - if (s2 == 2*s1) - { - ACE_DEBUG ((LM_DEBUG, "DII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Long l1, l2; - - l1 = 256; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= l1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_long, &l2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_long", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= l2; - - if (l2 == 3*l1) - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long success: l1 = %d, l2 = %d\n", l1, l2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Octet o1, o2; - - o1 = (CORBA::Octet) 127; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= CORBA::Any::from_octet (o1); - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_octet, &o2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_octet", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= CORBA::Any::to_octet (o2); - - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Char c1, c2; - - c1 = 'B'; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= CORBA::Any::from_char (c1); - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_char, &c2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_char", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= CORBA::Any::to_char (c2); - - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Double d1, d2; - - d1 = 3.1415; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= d1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_double, &d2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_double", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= d2; - - if (d2 == d1/2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - Marshal::Marshal_Struct ms1, *ms2=0; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= ms1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Struct, ms2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_struct", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= ms2; - - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct failed\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - Marshal::Marshal_Union u1, *u2 = 0; - Marshal::Marshal_Struct ms; - - - // first test an enumerated case - // u1._d (Marshal::e_1st); - u1.l (4567); - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= u1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, u2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_union", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= u2; - - if ( (u1._d () == u2->_d()) && (u1.l () == u2->l ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) failed\n")); - } - delete u2; - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - - // test the default case - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u1.ms (ms); - u2 = 0; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= u1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, u2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_union", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= u2; - - if (u1.ms ().s == u2->ms ().s && u1.ms ().l == u2->ms ().l && u1.ms ().c == u2->ms ().c && u1.ms ().o == u2->ms ().o && - u1.ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) failed\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - // we send a struct thru the any - CORBA::Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - a1 <<= ms1; - - a2 = new CORBA::Any; - - // now test it - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= a1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_any, a2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_any", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= (*a2); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_any success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any value match failed\n")); - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any failed due to typecode mismatch\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u.ms (ms); - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - - as1[0] <<= (CORBA::Short)3; - as1[1] <<= (CORBA::Long) 256; - as1[2] <<= CORBA::Any::from_octet ((CORBA::Octet)127); - as1[3] <<= CORBA::Any::from_char ('B'); - as1[4] <<= (CORBA::Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union - - as2 = new Marshal::AnySeq; - - orb_->create_list(2, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= as1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_AnySeq, as2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_sequence", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= as2; - - ACE_DEBUG ((LM_DEBUG, "DII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { - if (as1[i].type ()->equal ((*as2)[i].type ())) - { - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA::Short *)as1[i].value () == *(CORBA::Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA::Long *)as1[i].value () == *(CORBA::Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA::Octet *)as1[i].value () == *(CORBA::Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA::Char *)as1[i].value () == *(CORBA::Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA::Double *)as1[i].value () == *(CORBA::Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on unions match\n")); - } - } - break; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, - "DII test_sequence: typecode mismatch for element %d\n", i)); - break; - } - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Orbix_Marshal_Client_Proxy::dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - - mr1.value <<= (CORBA::Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA::Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2); - } - catch (CORBA::SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA::Long *)mr1.value.value () == *(CORBA::Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA::Char *)elem1->value.value () == *(CORBA::Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive failure\n")); - } - - return 0; -} - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.h b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.h deleted file mode 100644 index 9fce90ef265..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.h +++ /dev/null @@ -1,125 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Orbix Benchmark -// -// = FILENAME -// orbix_marshal_client.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_ORBIX_MARSHAL_CLIENT_H_) -#define _ORBIX_MARSHAL_CLIENT_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// include Orbix specific include files -#include "marshal.h" // generated by IDL compiler - -class Orbix_Marshal_Client_Proxy : public CORBA_Marshal_Proxy -{ - // =TITLE - // Orbix_Marshal_Client_Proxy - // =DESCRIPTION - // Orbix client size specialization of the CORBA Marshal proxy class -public: - Orbix_Marshal_Client_Proxy (void); - // constructor - - ~Orbix_Marshal_Client_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work - - virtual int use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the static invocation interface - - virtual int use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the dynamic invocation interface -private: - // =helper functions - int sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - // all the DII helpers - int dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - CORBA::ORB_ptr orb_; - // handle to the underlying orb - - Marshal_ptr ref_; - // the object reference -}; - -#if defined (__ACE_INLINE__) -#include "orbix_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.i b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.i deleted file mode 100644 index a99b72db952..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_client.i +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - - -ACE_INLINE -Orbix_Marshal_Client_Proxy::Orbix_Marshal_Client_Proxy (void) - : orb_ (CORBA::ORB::_nil ()), - ref_ (0) -{ -} - -ACE_INLINE -Orbix_Marshal_Client_Proxy::~Orbix_Marshal_Client_Proxy (void) -{ - // releasing order is important - - // release the reference - CORBA::release (ref_); - - // release the ORB - CORBA::release (orb_); -} - - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.cpp b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.cpp deleted file mode 100644 index 6ef34f0d8bd..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.cpp +++ /dev/null @@ -1,311 +0,0 @@ -// $Id$ - -#include "orbix_marshal_impl.h" - -#if !defined (__ACE_INLINE__) -#include "orbix_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -// All the methods of the SSI class -void -Marshal_SSI_Impl::test_short (CORBA::Short s1, - CORBA::Short &s2, - CORBA::Environment &IT_env) -{ - s2 = 2*s1; -} - -void -Marshal_SSI_Impl::test_long (CORBA::Long l1, - CORBA::Long &l2, - CORBA::Environment &IT_env) -{ - l2 = 3*l1; -} - -void -Marshal_SSI_Impl::test_octet (CORBA::Octet o1, - CORBA::Octet &o2, - CORBA::Environment &IT_env) -{ - o2 = o1; -} - -void -Marshal_SSI_Impl::test_char (CORBA::Char c1, - CORBA::Char &c2, - CORBA::Environment &IT_env) -{ - c2 = c1; -} - -void -Marshal_SSI_Impl::test_double (CORBA::Double d1, - CORBA::Double &d2, - CORBA::Environment &IT_env) -{ - d2 = d1/2; -} - -void -Marshal_SSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA::Environment &IT_env) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_SSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA::Environment &IT_env) -{ - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_SSI_Impl::test_any (const CORBA::Any &a1, - CORBA::Any *&a2, - CORBA::Environment &IT_env) -{ - a2 = new CORBA::Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_SSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2, - CORBA::Environment &IT_env) -{ - as2 = new Marshal::AnySeq (as1); -} - -void -Marshal_SSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2, - CORBA::Environment &IT_env) -{ -} - -//---------------------------------------------------------------------------- -//the methods of the DSI implementation class - -void -Marshal_DSI_Impl::invoke (CORBA::ServerRequest& req, CORBA::Environment_ptr - ep, CORBA::Environment &IT_env) -{ - ACE_DEBUG ((LM_DEBUG, "************ inside invoke **********\n")); - // parse the incoming request and find out for what operation it is. We use a - // simple linear search here - if (!ACE_OS::strcmp (req.op_name (IT_env), "test_short")) - { - test_short_skel (req); - } - else if (!ACE_OS::strcmp (req.op_name (), "test_long")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_octet")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_char")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_double")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_struct")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_union")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_any")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_sequence")) - { - } -} - -void -Marshal_DSI_Impl::test_short (CORBA::Short s1, - CORBA::Short &s2) -{ - s2 = 5*s1; -} - -void -Marshal_DSI_Impl::test_long (CORBA::Long l1, - CORBA::Long &l2) -{ - l2 = l1; -} - -void -Marshal_DSI_Impl::test_octet (CORBA::Octet o1, - CORBA::Octet &o2) -{ - o2 = o1; -} - -void -Marshal_DSI_Impl::test_char (CORBA::Char c1, - CORBA::Char &c2) -{ - c2 = c1; -} - -void -Marshal_DSI_Impl::test_double (CORBA::Double d1, - CORBA::Double &d2) -{ - d2 = d1; -} - -void -Marshal_DSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_DSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2) -{ - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_DSI_Impl::test_any (const CORBA::Any &a1, - CORBA::Any *&a2) -{ - a2 = new CORBA::Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_DSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2) -{ - as2 = new Marshal::AnySeq (as1); -} - -void -Marshal_DSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2) -{ -} - -// all the helper functions for the DSI class -void -Marshal_DSI_Impl::test_short_skel (CORBA::ServerRequest& req) -{ - CORBA::NVList_ptr short_nv; - CORBA::Any *any_s1, *any_s2; - CORBA::Short s1 = 0, s2 = 0; - - orb_->create_list (2, short_nv); // parse 2 args - any_s1 = new CORBA::Any (CORBA::_tc_short, &s1, 0); - any_s2 = new CORBA::Any (CORBA::_tc_short, &s2, 0); - short_nv->add_value ("s1", *any_s1, CORBA::ARG_IN); - short_nv->add_value ("s2", *any_s2, CORBA::ARG_OUT); - - req.params (short_nv); - - test_short (s1, s2); - ACE_DEBUG ((LM_DEBUG, ">>>>>>>s1 = %d and s2 = %d\n<<<<<<<<", s1, s2)); -} - -void -Marshal_DSI_Impl::test_long_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_octet_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_char_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_double_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_struct_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_union_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_any_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_sequence_skel (CORBA::ServerRequest& req) -{ -} - -void -Marshal_DSI_Impl::test_recursive_skel (CORBA::ServerRequest& req) -{ -} diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.h b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.h deleted file mode 100644 index a74866173d8..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.h +++ /dev/null @@ -1,191 +0,0 @@ -// $Id$ - -#if !defined (ORBIX_MARSHAL_IMPL_H) -#define ORBIX_MARSHAL_IMPL_H - -// to include DSI related files - -#include "ace/OS.h" - -#include "marshal.h" - - -class Marshal_SSI_Impl - : public virtual MarshalBOAImpl -{ - // =TITLE - // Marshal_SSI_Impl - // =DESCRIPTION - // Implementation of the interface using the static skeleton interface -public: - Marshal_SSI_Impl (const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_SSI_Impl (void); - // destructor - - virtual void test_short (CORBA::Short s1, - CORBA::Short& s2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test short - - virtual void test_long (CORBA::Long l1, - CORBA::Long& l2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test long - - virtual void test_octet (CORBA::Octet o1, - CORBA::Octet& o2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test octet - - virtual void test_char (CORBA::Char c1, - CORBA::Char& c2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test char - - virtual void test_double (CORBA::Double d1, - CORBA::Double& d2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test double - - virtual void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test struct - - virtual void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test union - - virtual void test_any (const CORBA::Any& a1, - CORBA::Any *& a2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test any - - /* - virtual void test_sequence (const Marshal::ShortSeq& s1, - const Marshal::LongSeq& l1, - const Marshal::OctetSeq& o1, - const Marshal::CharSeq& c1, - const Marshal::DoubleSeq& d1, - const Marshal::StructSeq& S1, - const Marshal::UnionSeq& U1, - const Marshal::AnySeq& a1, - Marshal::ShortSeq *& s2, - Marshal::LongSeq *& l2, - Marshal::OctetSeq *& o2, - Marshal::CharSeq *& c2, - Marshal::DoubleSeq *& d2, - Marshal::StructSeq *& S2, - Marshal::UnionSeq *& U2, - Marshal::AnySeq *& a2); - */ - virtual void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test sequence - - virtual void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - // test struct - -}; - -class Marshal_DSI_Impl : public CORBA::DynamicImplementation -{ - // =TITLE - // Marshal_DSI_Impl - // =DESCRIPTION - // Implementation of the interface using the dynamic skeleton interface -public: - Marshal_DSI_Impl (CORBA::ORB_ptr orb, const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_DSI_Impl (void); - // destructor - -private: - virtual void invoke (CORBA::ServerRequest& req, CORBA::Environment_ptr, - CORBA::Environment&IT_env = - CORBA::IT_chooseDefaultEnv()); - // This method is a must - - void test_short (CORBA::Short s1, - CORBA::Short& s2); - // test short - - void test_long (CORBA::Long l1, - CORBA::Long& l2); - // test long - - void test_octet (CORBA::Octet o1, - CORBA::Octet& o2); - // test octet - - void test_char (CORBA::Char c1, - CORBA::Char& c2); - // test char - - void test_double (CORBA::Double d1, - CORBA::Double& d2); - // test double - - void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2); - // test struct - - void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2); - // test union - - void test_any (const CORBA::Any& a1, - CORBA::Any *& a2); - // test any - - void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2); - // test sequence - - void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2); - // test struct - -private: - //= helper functions - they behave as if they were skeletons - void test_short_skel (CORBA::ServerRequest& req); - void test_long_skel (CORBA::ServerRequest& req); - void test_octet_skel (CORBA::ServerRequest& req); - void test_char_skel (CORBA::ServerRequest& req); - void test_double_skel (CORBA::ServerRequest& req); - void test_struct_skel (CORBA::ServerRequest& req); - void test_union_skel (CORBA::ServerRequest& req); - void test_any_skel (CORBA::ServerRequest& req); - void test_sequence_skel (CORBA::ServerRequest& req); - void test_recursive_skel (CORBA::ServerRequest& req); - - // we need the orb to create argument lists (NVList) for us - CORBA::ORB_ptr orb_; // not owned by us - -#if 0 - CORBA::NVList_ptr short_nv_; - CORBA::NVList_ptr long_nv_; - CORBA::NVList_ptr octet_nv_; - CORBA::NVList_ptr char_nv_; - CORBA::NVList_ptr double_nv_; - CORBA::NVList_ptr struct_nv_; - CORBA::NVList_ptr union_nv_; - CORBA::NVList_ptr any_nv_; - CORBA::NVList_ptr seq_nv_; - CORBA::NVList_ptr recursive_nv_; - CORBA::Any_ptr result_; // void result -#endif -}; - -#if defined (__ACE_INLINE__) -#include "orbix_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -#endif // defined (ORBIX_MARSHAL_IMPL_H) diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.i b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.i deleted file mode 100644 index 0efa658c148..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_impl.i +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Marshal_SSI_Impl::Marshal_SSI_Impl (const char *obj_name) - : MarshalBOAImpl (obj_name) -{ -} - -// destructor -ACE_INLINE -Marshal_SSI_Impl::~Marshal_SSI_Impl (void) -{ -} - -// constructor -ACE_INLINE -Marshal_DSI_Impl::Marshal_DSI_Impl (CORBA::ORB_ptr orb, const char *obj_name) - : orb_ (orb) -{ -} - -// destructor -ACE_INLINE -Marshal_DSI_Impl::~Marshal_DSI_Impl (void) -{ - orb_ = CORBA::ORB::_nil (); -} - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.cpp b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.cpp deleted file mode 100644 index 33ea3dcd535..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Orbix marshal benchmark -// -// = FILENAME -// orbix_marshal_server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -//#define USE_INIT - -#include "orbix_marshal_server.h" - -#if !defined (__ACE_INLINE__) -#include "orbix_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -int -Orbix_Marshal_Server_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - -#if 0 - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA::ORB_init (argc, (char *const *)argv, "Orbix"); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // get the argument list to be passed on to the BOA_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->boa_ = this->orb_->BOA_init (argc, (char *const *)argv, "Orbix_BOA"); - if (this->boa_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } -#endif - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SSI - this->ssi_ = new Marshal_SSI_Impl (options.object_name ()); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DSI - // this->dsi_ = new Marshal_DSI_Impl (this->orb_, ACE_OS::strdup (options.object_name ())); - this->dsi_ = new Marshal_DSI_Impl (&CORBA::Orbix, ACE_OS::strdup (options.object_name ())); - // register with the BOA - try { - // we need to do a setImpl - //this->boa_->setImpl ("Marshal", *this->dsi_); - CORBA::Orbix.setImpl ("Marshal", *this->dsi_); - } - catch (CORBA::SystemException &se) - { - cerr << "system exception in obj_is_ready" << se << endl; - } - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Calling impl is ready\n")); - try { - // call impl_is_ready - // this->boa_->impl_is_ready ((char *)options.service_name ()); - CORBA::Orbix.impl_is_ready ("marshalDSI"); - } - catch (CORBA::SystemException &se) - { - cerr << "system exception: " << se << endl; - } - - return 0; -} - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.h b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.h deleted file mode 100644 index 09a64b4bbc8..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.h +++ /dev/null @@ -1,59 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Orbix Benchmark -// -// = FILENAME -// orbix_marshal_server.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_ORBIX_MARSHAL_SERVER_H_) -#define _ORBIX_MARSHAL_SERVER_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// implementation classes -#include "orbix_marshal_impl.h" - -// include Orbix specific include files -#include "marshal.h" // generated by IDL compiler - -class Orbix_Marshal_Server_Proxy : public CORBA_Marshal_Proxy -{ -public: - Orbix_Marshal_Server_Proxy (void); - // constructor - - ~Orbix_Marshal_Server_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work -private: - CORBA::ORB_ptr orb_; - // underlying orb; - - CORBA::BOA_ptr boa_; - // underlying boa; - - Marshal_SSI_Impl *ssi_; - Marshal_DSI_Impl *dsi_; - // the implementation (SSI or DSI) -}; - - -#if defined (__ACE_INLINE__) -#include "orbix_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.i b/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.i deleted file mode 100644 index 8219d7d5042..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/orbix_marshal_server.i +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Orbix_Marshal_Server_Proxy::Orbix_Marshal_Server_Proxy (void) - : orb_ (0), - boa_ (0), - ssi_ (0), - dsi_ (0) -{ -} - -// destructor -ACE_INLINE -Orbix_Marshal_Server_Proxy::~Orbix_Marshal_Server_Proxy (void) -{ - // releasing order is important - - // release the impl - delete ssi_; - delete dsi_; - - // release the BOA - CORBA::release (boa_); - - // release the ORB - CORBA::release (orb_); -} diff --git a/TAO/Benchmark/Marshal_Test/Orbix/run_client b/TAO/Benchmark/Marshal_Test/Orbix/run_client deleted file mode 100755 index b0f7503d7bc..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/run_client +++ /dev/null @@ -1,23 +0,0 @@ -echo "********* Static Invocation Interface **********" -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T s -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T l -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T o -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T c -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T d -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T S -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T U -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T A -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T Q -#client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T R -# -echo "********* Dynamic Invocation Interface **********" -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T s -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T l -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T o -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T c -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T d -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T S -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T U -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T A -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T Q - diff --git a/TAO/Benchmark/Marshal_Test/Orbix/run_dsi b/TAO/Benchmark/Marshal_Test/Orbix/run_dsi deleted file mode 100755 index f44f488aee7..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/run_dsi +++ /dev/null @@ -1,4 +0,0 @@ -echo "********* Static Invocation Interface **********" -client -i 1 -h mambo -R s -P S -n marshalDSI -T s -echo "********* Dynamic Invocation Interface **********" -client -i 1 -h mambo -R s -P D -n marshalDSI -T s diff --git a/TAO/Benchmark/Marshal_Test/Orbix/run_dsi_server b/TAO/Benchmark/Marshal_Test/Orbix/run_dsi_server deleted file mode 100755 index 19dc309e0dc..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/run_dsi_server +++ /dev/null @@ -1 +0,0 @@ -putit marshalDSI "${TAO_ROOT}/Benchmark/Marshal_Test/Orbix/server -R r -P D -I V -o dsi_marshal -n marshalDSI" \ No newline at end of file diff --git a/TAO/Benchmark/Marshal_Test/Orbix/run_ssi b/TAO/Benchmark/Marshal_Test/Orbix/run_ssi deleted file mode 100755 index 9a1ca614e4e..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/run_ssi +++ /dev/null @@ -1,4 +0,0 @@ -echo "********* Static Invocation Interface **********" -client -i 1 -h mambo -R s -P S -o ssi_marshal -n marshalSSI -T s -echo "********* Dynamic Invocation Interface **********" -client -i 1 -h mambo -R s -P D -o ssi_marshal -n marshalSSI -T s diff --git a/TAO/Benchmark/Marshal_Test/Orbix/run_ssi_server b/TAO/Benchmark/Marshal_Test/Orbix/run_ssi_server deleted file mode 100755 index a0af5a0dcf4..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/run_ssi_server +++ /dev/null @@ -1 +0,0 @@ -putit marshalSSI "${TAO_ROOT}/Benchmark/Marshal_Test/Orbix/server -R r -P S -I V -o ssi_marshal -n marshalSSI" \ No newline at end of file diff --git a/TAO/Benchmark/Marshal_Test/Orbix/server.cpp b/TAO/Benchmark/Marshal_Test/Orbix/server.cpp deleted file mode 100644 index 510ee107a5e..00000000000 --- a/TAO/Benchmark/Marshal_Test/Orbix/server.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "orbix_marshal_server.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Orbix_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Orbix_Marshal_Server_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/TAO/Makefile b/TAO/Benchmark/Marshal_Test/TAO/Makefile deleted file mode 100644 index 048d0705dbc..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the Tao Marshal Benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lACE -lbenchmark -lTAO - -PROG_SRCS = marshalC.cpp marshalS.cpp tao_marshal_client.cpp tao_marshal_server.cpp \ - tao_marshal_impl.cpp client.cpp server.cpp - -LSRC = $(PROG_SRCS) - -MARSHAL_CLIENT_OBJS = marshalC.o tao_marshal_client.o client.o - -MARSHAL_SERVER_OBJS = marshalC.o marshalS.o tao_marshal_impl.o tao_marshal_server.o server.o - -BIN = client server - -BUILD = $(BIN) - -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 - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/Benchmark -I$(TAO_ROOT)/tao/compat -server: $(addprefix $(VDIR),$(MARSHAL_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(MARSHAL_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - rm -f core *.o *~ client server - $(MAKE) realclean - - - - - - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/client.cpp b/TAO/Benchmark/Marshal_Test/TAO/client.cpp deleted file mode 100644 index 9edd07784db..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/client.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "tao_marshal_client.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Tao_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Tao_Marshal_Client_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/TAO/marshal.idl b/TAO/Benchmark/Marshal_Test/TAO/marshal.idl deleted file mode 100644 index 077a98e58fd..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/marshal.idl +++ /dev/null @@ -1,91 +0,0 @@ -// $Id$ - -// Interface for the marshal benchmark - -interface Marshal -{ - struct Marshal_Struct - { - short s; - long l; - char c; - octet o; - double d; - }; - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th, e_6th}; - - union Marshal_Union - switch (discrim) - { - case e_0th: - short s; - case e_1st: - long l; - case e_2nd: - char c; - case e_3rd: - octet o; - case e_4th: - double d; - case e_5th: - default: // this will test typecode indirection - Marshal_Struct ms; - }; - - /* - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence OctetSeq; - typedef sequence CharSeq; - typedef sequence DoubleSeq; - typedef sequence StructSeq; - typedef sequence UnionSeq; - */ - // for testing sequences of Any - typedef sequence AnySeq; - - // testing recursive behavior - // complex. - struct Marshal_Recursive - { - // we use this to test the limited recursion allowed by IDL. This is an - // ideal test for indirected typecodes. - - // simulate a behavior of a list node - any value; - sequence next; - }; - - void test_short (in short s1, out short s2); // test a short - void test_long (in long l1, out long l2); // test a long - void test_octet (in octet o1, out octet o2); // test an octet - void test_char (in char c1, out char c2); // test a char - void test_double (in double d1, out double d2); // test a double - void test_struct (in Marshal_Struct ms1, out Marshal_Struct ms2); // test a - // struct - void test_union (in Marshal_Union u1, out Marshal_Union u2); // test a - // union. - void test_any (in any a1, out any a2); // test an Any - /* - void test_sequence (in ShortSeq ss1, in LongSeq ls1, in OctetSeq os1, in - CharSeq cs1, in DoubleSeq ds1, in StructSeq Ss1, in - UnionSeq us1, in AnySeq as1, - out ShortSeq ss2, out LongSeq ls2, out OctetSeq os2, out - CharSeq cs2, out DoubleSeq ds2, out StructSeq Ss2, out - UnionSeq us2, out AnySeq as2); - */ - void test_sequence (in AnySeq as1, out AnySeq as2); // this will result in a - // 3 level indirection - - // sequence, any, and its - // value type - void test_recursive (in Marshal_Recursive mr1, out Marshal_Recursive mr2); // - // very complicated -}; - - - - - - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/marshalC.cpp b/TAO/Benchmark/Marshal_Test/TAO/marshalC.cpp deleted file mode 100644 index 1557f836df9..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/marshalC.cpp +++ /dev/null @@ -1,587 +0,0 @@ -// $Id$ - -#include -#include "marshalC.h" - -// constructor -Marshal::Marshal(STUB_Object *refdata) - : CORBA_Object(refdata) -{ -} - -// static duplicate method -Marshal_ptr Marshal::_duplicate(Marshal_ptr obj) -{ - void *dupl; - - if (obj) - { - obj->AddRef(); - } - return obj; -} - -// static _narrow method -Marshal_ptr Marshal::_narrow(CORBA_Object_ptr obj) -{ - CORBA_Environment env; - if (obj->_is_a("IDL:Marshal:1.0", env)){ - STUB_Object *istub; - if (obj->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR){ - return Marshal::_nil(); - } - Marshal_ptr new_obj = new Marshal(istub); - return Marshal::_duplicate(new_obj); - } - return Marshal::_nil(); -} - -Marshal_ptr Marshal::_nil() -{ - return (Marshal_ptr)NULL; -} - -Marshal::Marshal_Union::Marshal_Union(const Marshal::Marshal_Union& obj) -{ - _disc = obj._d(); - switch (_disc) { - case e_0th: - __s = obj.__s; - break; - case e_1st: - __l = obj.__l; - break; - case e_2nd: - __c = obj.__c; - break; - case e_3rd: - __o = obj.__o; - break; - case e_4th: - __d = obj.__d; - break; - case e_5th: - default: - __ms = obj.__ms; - break; - } -} - -Marshal::Marshal_Union& Marshal::Marshal_Union::operator=(const Marshal::Marshal_Union& obj) -{ - _disc = obj._d(); - switch (_disc) { - case e_0th: - __s = obj.__s; - break; - case e_1st: - __l = obj.__l; - break; - case e_2nd: - __c = obj.__c; - break; - case e_3rd: - __o = obj.__o; - break; - case e_4th: - __d = obj.__d; - break; - case e_5th: - default: - __ms = obj.__ms; - break; - } - return *this; -} - -// AnySeq methods -Marshal::AnySeq::AnySeq (CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Any [this->_maximum]; - } else { - this->_buffer = 0; - } -} - -Marshal::AnySeq::AnySeq (CORBA_ULong max, CORBA_ULong length, - CORBA_Any *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -Marshal::AnySeq::~AnySeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void Marshal::AnySeq::length (CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Any *temp = new CORBA_Any [newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof (CORBA_Any))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Any)); - this->_length = newlen; -} - -CORBA_ULong Marshal::AnySeq::length() const -{ - return this->_length; -} - -CORBA_Any &Marshal::AnySeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Any& Marshal::AnySeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - - -/***************** TypeCodes **************/ -// In the typecode, all repoIDs and names are omitted by providing their length -// as 1 that stands for the NULL terminator - -// encapsulated parameters for struct Marshal_Struct typecode -static const CORBA_Long _oc_Marshal_Struct [] = { - MY_BYTE_SEX, // byte order - 1, 0, // repoID omitted (16, "IDL:Marshal/Marshal:1.0") - 1, 0, // struct name (15, "Marshal_Struct") omitted - 5, // 5 struct elements - - // short - 1, 0, // should be 2, "s", - tk_short, - - // long - 1, 0, // should be 2, "l", - tk_long, - - // char - 1, 0, // should be 2, "c", - tk_char, - - // octet - 1, 0, // should be 2, "o", - tk_octet, - - // double - 1, 0, // should be 2, "d", - tk_double, -}; - - -static CORBA_TypeCode _tc__tc_Marshal_Struct (tk_struct, - sizeof _oc_Marshal_Struct, - (unsigned char *) &_oc_Marshal_Struct, - CORBA_B_FALSE); -CORBA_TypeCode_ptr Marshal::_tc_Marshal_Struct = &_tc__tc_Marshal_Struct; - - -static const CORBA_Long _oc_discrim [] = { - MY_BYTE_SEX, // byte order flag (TRICKY) - 1, 0, // should be 20, "IDL:Marshal/discrim", - 1, 0, // should be 8, "discrim", - 7, // 7 elements in the enum - - 1, 0, // 6, "e_0th", // omitted member name, "e_0th" - 1, 0, // 6, "e_1st", // omitted member name, "e_1st" - 1, 0, // 6, "e_2nd", // omitted member name, "e_2nd" - 1, 0, // 6, "e_3rd", // omitted member name, "e_3rd" - 1, 0, // 6, "e_4th", // omitted member name, "e_4th" - 1, 0, // 6, "e_5th", // omitted member name, "e_5th" - 1, 0 //6, "e_6th" // omitted member name, "e_6th" -}; - -static CORBA_TypeCode _tc__tc_discrim (tk_enum, - sizeof _oc_discrim, - (unsigned char *) &_oc_discrim, - CORBA_B_FALSE); - -CORBA_TypeCode_ptr Marshal::_tc_discrim = &_tc__tc_discrim; - -// Union -static const CORBA_Long _oc_Marshal_Union [] = -{ - MY_BYTE_SEX, // byte order flag (TRICKY) - 1, 0, // 26, "IDL:Marshal/Marshal_Union", // omitted repository/type ID - 1, 0, // 14, "Marshal_Union", // union name - - // - // discriminant typecode: - // - - tk_enum, // tk_enum - 80, // encapsulation length - MY_BYTE_SEX, - 1, 0, // repoID - 1, 0, // name - 7, // 7 elements in the enum - - 1, 0, // e_Oth - 1, 0, - 1, 0, - 1, 0, - 1, 0, - 1, 0, - 1, 0, // e_6th - - 5, // default member index (zero based) - 6, // number of union members - - // the 1st union branch arm - Marshal::e_0th, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 2nd union branch arm - Marshal::e_1st, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 3rd union branch arm - Marshal::e_2nd, // member label value - 1, 0, // omitted member name, "c" - tk_char, // member typecode - - // the 4th union branch arm - Marshal::e_3rd, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 5th union branch arm - Marshal::e_4th, // member label value - 1, 0, // omitted member name, "d" - tk_double, - - // the 6th union branch - Marshal::e_5th, // member label value - 1, 0, // omitted member name, "ms" - tk_struct, // tk_struct - 84, // encapsulation length - - MY_BYTE_SEX, // byte order - 1, 0, // repoID omitted (16, "IDL:Marshal/Marshal:1.0") - 1, 0, // struct name (15, "Marshal_Struct") omitted - 5, // 5 struct elements - - // short - 1, 0, // should be 2, "s", - tk_short, - - // long - 1, 0, // should be 2, "l", - tk_long, - - // char - 1, 0, // should be 2, "c", - tk_char, - - // octet - 1, 0, // should be 2, "o", - tk_octet, - - // double - 1, 0, // should be 2, "d", - tk_double, - - // default case - 6, // 7th member, default index val - 1, 0, // struct name "ms" - ~0, // indirected typecode - -108 // has to point to tk_struct in this stream -}; - -static CORBA_TypeCode _tc__tc_Marshal_Union (tk_union, - sizeof _oc_Marshal_Union, - (unsigned char *) &_oc_Marshal_Union, - CORBA_B_FALSE); - -CORBA_TypeCode_ptr Marshal::_tc_Marshal_Union = &_tc__tc_Marshal_Union; - -// AnySeq -static const CORBA_Long _oc_AnySeq [] = { - MY_BYTE_SEX, // byte order - tk_any, // sequence of any - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_AnySeq (tk_sequence, - sizeof - _oc_AnySeq, - (unsigned char *) - &_oc_AnySeq, - CORBA_B_FALSE); - -CORBA_TypeCode_ptr Marshal::_tc_AnySeq = &_tc__tc_AnySeq; - -/***************** All the methods ********************/ -// test_short -static const TAO_Param_Data marshal_test_short_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Short, PARAM_IN, 0}, - {_tc_CORBA_Short, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_short_calldata = { - "test_short", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_short_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_short (CORBA_Short s1, CORBA_Short &s2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_short_calldata, 0, &s1, &s2); -} - -// test_long -static const TAO_Param_Data marshal_test_long_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Long, PARAM_IN, 0}, - {_tc_CORBA_Long, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_long_calldata = { - "test_long", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_long_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_long (CORBA_Long l1, CORBA_Long &l2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_long_calldata, 0, &l1, &l2); -} - -// test_octet -static const TAO_Param_Data marshal_test_octet_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Octet, PARAM_IN, 0}, - {_tc_CORBA_Octet, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_octet_calldata = { - "test_octet", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_octet_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_octet (CORBA_Octet o1, CORBA_Octet &o2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_octet_calldata, 0, &o1, &o2); -} - -// test_char -static const TAO_Param_Data marshal_test_char_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Char, PARAM_IN, 0}, - {_tc_CORBA_Char, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_char_calldata = { - "test_char", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_char_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_char (CORBA_Char c1, CORBA_Char &c2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_char_calldata, 0, &c1, &c2); -} - -// test_double -static const TAO_Param_Data marshal_test_double_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Double, PARAM_IN, 0}, - {_tc_CORBA_Double, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_double_calldata = { - "test_double", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_double_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_double (CORBA_Double d1, CORBA_Double &d2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call (env, &marshal_test_double_calldata, 0, &d1, &d2); -} - -// test_struct -static const TAO_Param_Data marshal_test_struct_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {Marshal::_tc_Marshal_Struct, PARAM_IN, 0}, - {Marshal::_tc_Marshal_Struct, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_struct_calldata = { - "test_struct", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_struct_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_struct (const Marshal::Marshal_Struct &ms1, Marshal::Marshal_Struct - &ms2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_struct_calldata, 0, &ms1, &ms2); -} - -// test_union -static const TAO_Param_Data marshal_test_union_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {Marshal::_tc_Marshal_Union, PARAM_IN, 0}, - {Marshal::_tc_Marshal_Union, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_union_calldata = { - "test_union", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_union_paramdata [0], // - 0, 0 -}; - -// The stub -void Marshal::test_union (const Marshal_Union &u1, Marshal::Marshal_Union - &u2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call (env, &marshal_test_union_calldata, 0, &u1, &u2); -} - -// test_any -static const TAO_Param_Data marshal_test_any_paramdata [] = { - {_tc_CORBA_Void, PARAM_RETURN, 0}, - {_tc_CORBA_Any, PARAM_IN, 0}, - {_tc_CORBA_Any, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_any_calldata = { - "test_any", // op_name - CORBA_B_TRUE, // twoway, although it returns void - 3, // param count - & marshal_test_any_paramdata[0], // - 0, 0 -}; - -// The stub -void Marshal::test_any (const CORBA_Any &a1, CORBA_Any *&a2, CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_any_calldata, 0, &a1, &a2); -} - -// test_sequence -static const TAO_Param_Data marshal_test_sequence_paramdata [] = { - { _tc_CORBA_Void, PARAM_RETURN, 0}, - { Marshal::_tc_AnySeq, PARAM_IN, 0}, - { Marshal::_tc_AnySeq, PARAM_OUT, 0} -}; - -static const TAO_Call_Data marshal_test_sequence_calldata = { - "test_sequence", // opname - CORBA_B_TRUE, // twoway - 2, // param count - &marshal_test_sequence_paramdata [0], - 0, 0 -}; - -// stub -void Marshal::test_sequence (const Marshal::AnySeq &as1, Marshal::AnySeq *&as2, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - // twoway - istub->do_call(env, &marshal_test_sequence_calldata, 0, &as1, &as2); -} - diff --git a/TAO/Benchmark/Marshal_Test/TAO/marshalC.h b/TAO/Benchmark/Marshal_Test/TAO/marshalC.h deleted file mode 100644 index d45d3cf0611..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/marshalC.h +++ /dev/null @@ -1,196 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef MARSHAL_C_H -#define MARSHAL_C_H - -#include -#include - -#include "tao/orb.h" -#include "tao/orbobj.h" -#include "tao/object.h" -#include "tao/stub.h" -#include "tao/typecode.h" -#include "tao/cdr.h" - -class Marshal; -typedef Marshal *Marshal_ptr; -typedef Marshal_ptr MarshalRef; - -class Marshal: public virtual CORBA_Object -{ -public: - static Marshal_ptr _duplicate (Marshal_ptr obj); - static Marshal_ptr _narrow (CORBA_Object_ptr obj); - static Marshal_ptr _nil (); - - struct Marshal_Struct { - CORBA_Short s; - CORBA_Long l; - CORBA_Char c; - CORBA_Octet o; - CORBA_Double d; - }; - static CORBA_TypeCode_ptr _tc_Marshal_Struct; - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th, - e_6th - }; - - static CORBA_TypeCode_ptr _tc_discrim; - - class Marshal_Union - { - private: - discrim _disc; - CORBA_Short __s; - CORBA_Long __l; - CORBA_Char __c; - CORBA_Octet __o; - CORBA_Double __d; - Marshal::Marshal_Struct __ms; - public: - Marshal_Union() : _disc(discrim(0)) {} - ~Marshal_Union() {} - Marshal_Union(const Marshal_Union& obj); - Marshal_Union& operator=(const Marshal_Union& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void s(CORBA_Short val) { - __s = val; - _disc = Marshal::e_0th; - } - CORBA_Short s() const { return __s; } - - void l(CORBA_Long val) { - __l = val; - _disc = Marshal::e_1st; - } - CORBA_Long l() const { return __l; } - - void c(CORBA_Char val) { - __c = val; - _disc = Marshal::e_2nd; - } - CORBA_Char c() const { return __c; } - - void o(CORBA_Octet val) { - __o = val; - _disc = Marshal::e_3rd; - } - CORBA_Octet o() const { return __o; } - - void d(CORBA_Double val) { - __d = val; - _disc = Marshal::e_4th; - } - CORBA_Double d() const { return __d; } - - void ms(const Marshal::Marshal_Struct& val) { - __ms = val; - _disc = Marshal::e_5th; - } - const Marshal::Marshal_Struct& ms() const { return __ms; } - Marshal::Marshal_Struct& ms() { return __ms; } - - }; - - static CORBA_TypeCode_ptr _tc_Marshal_Union; - - class AnySeq - { - public: - static CORBA_Any *allocbuf (CORBA_ULong nelems); - static void freebuf (CORBA_Any *data); - AnySeq (CORBA_ULong max=0); - AnySeq (CORBA_ULong max, - CORBA_ULong length, - CORBA_Any *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // AnySeq (const AnySeq&); - ~AnySeq (); - CORBA_ULong maximum () const; - void length (CORBA_ULong); - CORBA_ULong length () const; - CORBA_Any &operator[] (CORBA_ULong index); - const CORBA_Any &operator[] (CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Any *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_AnySeq; - - - // now the methods - virtual void test_short(CORBA_Short s1, - CORBA_Short& s2, - CORBA_Environment &env); - - virtual void test_long(CORBA_Long l1, - CORBA_Long& l2, - CORBA_Environment &env); - - virtual void test_octet(CORBA_Octet o1, - CORBA_Octet& o2, - CORBA_Environment &env); - - virtual void test_char(CORBA_Char c1, - CORBA_Char& c2, - CORBA_Environment &env); - - virtual void test_double(CORBA_Double d1, - CORBA_Double& d2, - CORBA_Environment &env); - - virtual void test_struct(const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env); - - virtual void test_union(const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env); - - virtual void test_any(const CORBA_Any& a1, - CORBA_Any *& a2, - CORBA_Environment &env); - - virtual void test_sequence(const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2, - CORBA_Environment &env); - -#if 0 - virtual void test_recursive(const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2, - CORBA_Environment &env); -#endif - -protected: - Marshal() {} - Marshal(STUB_Object *refdata); - virtual ~Marshal() {} - -private: - Marshal(const Marshal &) {} - void operator=(const Marshal &) {} -}; - -#endif - - - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/marshalS.cpp b/TAO/Benchmark/Marshal_Test/TAO/marshalS.cpp deleted file mode 100644 index fe116a642b0..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/marshalS.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// $Id$ - -#include -#include "marshalS.h" - -static const TAO_operation_db_entry Marshal_operations[] = { - {"_is_a", &_skel_Marshal::_Marshal_is_a_skel}, - { "test_short", &_skel_Marshal::_Marshal_test_short_skel}, - { "test_long", &_skel_Marshal::_Marshal_test_long_skel}, - { "test_octet", &_skel_Marshal::_Marshal_test_octet_skel}, - { "test_char", &_skel_Marshal::_Marshal_test_char_skel}, - { "test_double", &_skel_Marshal::_Marshal_test_double_skel}, - { "test_struct", &_skel_Marshal::_Marshal_test_struct_skel}, - { "test_union", &_skel_Marshal::_Marshal_test_union_skel}, - { "test_any", &_skel_Marshal::_Marshal_test_any_skel}, - { "test_sequence", &_skel_Marshal::_Marshal_test_sequence_skel}, - { 0, 0 } -}; - -TAO_Dynamic_Hash_OpTable tao_Marshal_optable(Marshal_operations, 10, - // 9 + 1 operations on our - // interface - 20); -// constructor -_skel_Marshal::_skel_Marshal (const char *obj_name) -{ - const CORBA_String repoID = "IDL:Marshal:1.0"; // repository ID - IIOP_Object *data; // IIOP object - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); // underlying BOA - this->optable_ = &tao_Marshal_optable; // operation database - CORBA_Long i; - - // setup an IIOP object - data = new IIOP_Object (CORBA_string_dup (repoID)); - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name()); - data->profile.port = oa->get_addr().get_port_number(); - data->profile.object_key.length = ACE_OS::strlen(obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - ACE_OS::memcpy (data->profile.object_key.buffer, obj_name, - data->profile.object_key.length); // set the object key - this->set_parent(data); // store the IIOP obj reference with ourselves - this->sub_ = this; // set the most derived class to be ourselves - if (oa) oa->bind(data->profile.object_key, this);// register ourselves -} - -// skeletons -void _skel_Marshal::_Marshal_test_short_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -#if 0 - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(_tc_CORBA_Short); - Marshal_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - Marshal::ShortSeq *value = (Marshal::ShortSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (Marshal_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendShortSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -#endif - - // One immediate thought is to do the following: - // define a specialized marshal factory derived from TAO_Marshal_Factory - // then: - // CDR compiledStream (req._incoming.next, req._incoming.remaining, - // byte_order, consume_buf = 0, instance of our marshal factory -} - -void _skel_Marshal::_Marshal_test_long_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_char_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_double_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_struct_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_union_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_any_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_test_sequence_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ -} - -void _skel_Marshal::_Marshal_is_a_skel ( - CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env - ) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - char *type_id = "IDL:Marshal:1.0"; - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *)nv->value ()->value (); - - cout << "object id = " << ((char *)value) << endl; - if (strcmp ((char *)value, (char *)type_id) == 0 - || strcmp ((char *)value, _tc_CORBA_Object->id(env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - diff --git a/TAO/Benchmark/Marshal_Test/TAO/marshalS.h b/TAO/Benchmark/Marshal_Test/TAO/marshalS.h deleted file mode 100644 index 4f34a11d0ab..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/marshalS.h +++ /dev/null @@ -1,110 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef MARSHAL_S_H -#define MARSHAL_S_H - -#include -#include - -#include "marshalC.h" -#include "tao/connect.h" -#include "tao/orb.h" -#include "tao/params.h" -#include "tao/iiopobj.h" -#include "tao/optable.h" // for registering our methods -#include "tao/corbacom.h" -#include "tao/nvlist.h" -#include "tao/orbobj.h" -#include "tao/debug.h" - - -class _skel_Marshal; -typedef _skel_Marshal *_skel_Marshal_ptr; -typedef _skel_Marshal *_skel_Marshal_ref; - -class _skel_Marshal: public Marshal -{ -public: - // pure virtual functions implemented by the implementation class - virtual void test_short(CORBA_Short s1, - CORBA_Short& s2, - CORBA_Environment &env) = 0; - - virtual void test_long(CORBA_Long l1, - CORBA_Long& l2, - CORBA_Environment &env) = 0; - - virtual void test_octet(CORBA_Octet o1, - CORBA_Octet& o2, - CORBA_Environment &env) = 0; - - virtual void test_char(CORBA_Char c1, - CORBA_Char& c2, - CORBA_Environment &env) = 0; - - virtual void test_double(CORBA_Double d1, - CORBA_Double& d2, - CORBA_Environment &env) = 0; - - virtual void test_struct(const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env) = 0; - - virtual void test_union(const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env) = 0; - - virtual void test_any(const CORBA_Any& a1, - CORBA_Any *& a2, - CORBA_Environment &env) = 0; - - virtual void test_sequence(const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2, - CORBA_Environment &env) = 0; - - - // skeletons that do the upcall - static void _Marshal_is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_octet_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_char_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_double_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_any_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_sequence_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -protected: - _skel_Marshal (const char *obj_name = 0); - virtual ~_skel_Marshal () {} -}; - -#endif - - - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/server.cpp b/TAO/Benchmark/Marshal_Test/TAO/server.cpp deleted file mode 100644 index 53102d6e189..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/server.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "tao_marshal_server.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Tao_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Tao_Marshal_Server_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.cpp b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.cpp deleted file mode 100644 index bd678bfad9a..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.cpp +++ /dev/null @@ -1,1426 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Tao marshal benchmark -// -// = FILENAME -// tao_marshal_proxy.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include -#include -#include "tao_marshal_client.h" - -#if !defined (__ACE_INLINE__) -#include "tao_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -int -Tao_Marshal_Client_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - CORBA_Object_ptr target; - CORBA_Environment env; - CORBA_String str; // IOR - fstream iorfile; // persistent storage - - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA_ORB_init (argc, (char *const *)argv, "IOR", env); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - str = CORBA_string_alloc(500); - - // read the IOR from the file ior.txt - iorfile.open("ior.txt", ios::in); - iorfile >> ((char *)str); - iorfile.close(); - - cout << "Read IOR string as: " << ((char *)str) << endl; - - target = this->orb_->string_to_object(str, env); - if (env.exception() != 0){ - ACE_DEBUG ((LM_ERROR, "str to obj failed")); - return 1; - } - CORBA_string_free(str); - -#if 0 - // get the obj ref by binding it to the specified host using the specified obj_name - target = Marshal::_bind (options.object_name (), options.hostname ()); - if (CORBA_is_nil (target)) - { - ACE_DEBUG ((LM_DEBUG, "bind call failed\n")); - return -1; - } -#endif - - this->ref_ = Marshal::_narrow (target); - if (CORBA_is_nil (this->ref_)) - { - ACE_DEBUG ((LM_DEBUG, "narrow to Marshal failed\n")); - return -1; - } - - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SII - return this->use_sii (options, results); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DII - return this->use_dii (options, results); - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - // hopefully we are never here, else something is seriously wrong - return -1; -} - -int -Tao_Marshal_Client_Proxy::use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the static invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = sii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = sii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = sii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = sii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = sii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = sii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = sii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = sii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = sii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = sii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - -int -Tao_Marshal_Client_Proxy::use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the dynamic invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = dii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = dii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = dii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = dii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = dii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = dii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = dii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = dii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = dii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = dii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - - -// all helper functions : SII -int -Tao_Marshal_Client_Proxy::sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA_Short s1, s2; - CORBA_Environment env; - - s1 = 3; - ref_->test_short (s1, s2, env); - if (s2 == 2*s1) - { - ACE_DEBUG ((LM_DEBUG, "SII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA_Long l1, l2; - CORBA_Environment env; - - l1 = 256; - ref_->test_long (l1, l2, env); - if (l2 == 3*l1) - { - ACE_DEBUG ((LM_DEBUG, "SII test_long success: l1 = %d, l2 = %d\n", l1, l2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - CORBA_Octet o1, o2; - CORBA_Environment env; - - o1 = (CORBA_Octet) 127; - ref_->test_octet (o1, o2, env); - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - CORBA_Char c1, c2; - CORBA_Environment env; - - c1 = 'B'; - ref_->test_char (c1, c2, env); - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - CORBA_Double d1, d2; - CORBA_Environment env; - - d1 = 3.1415; - ref_->test_double (d1, d2, env); - if (d2 == d1/2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - Marshal::Marshal_Struct ms1, ms2; - CORBA_Environment env; - - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA_Octet) 127; - ms1.d = 3.1415; - - ref_->test_struct (ms1, ms2, env); - if (ms1.s == ms2.s && ms1.l == ms2.l && ms1.c == ms2.c && ms1.o == ms2.o && - ms1.d == ms2.d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct failed\n")); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - Marshal::Marshal_Union u1, u2; - Marshal::Marshal_Struct ms1, ms2; - CORBA_Environment env; - - // first test an enumerated case - u1._d (Marshal::e_1st); - u1.l (4567); - - ref_->test_union (u1, u2, env); - if ( (u1._d () == u2._d()) && (u1.l () == u2.l ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) failed\n")); - } - - // now test the default case - u1._d (Marshal::e_6th); // this case doesn't exist which will lead to using - // the default case - - u1.ms ().s = 3; - u1.ms ().l = 256; - u1.ms ().c = 'B'; - u1.ms ().o = (CORBA_Octet) 127; - u1.ms ().d = 3.1415; - - ref_->test_union (u1, u2, env); - - if (u1.ms ().s == u2.ms ().s && u1.ms ().l == u2.ms ().l && u1.ms ().c == u2.ms ().c && u1.ms ().o == u2.ms ().o && - u1.ms ().d == u2.ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) failed\n")); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we send a struct thru the any - CORBA_Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - CORBA_Environment env; - - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA_Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - // a1 <<= ms1; // not in TAO yet - a1.replace (Marshal::_tc_Marshal_Struct, &ms1, 0, env); - - a2 = new CORBA_Any; - - // now test it - ref_->test_any (a1, a2, env); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct, env)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_any success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any value match failed\n")); - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any failed due to typecode mismatch\n")); - } - return 0; -} - -int -Tao_Marshal_Client_Proxy::sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - CORBA_Environment env; - - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA_Octet) 127; - ms.d = 3.1415; - - u._d (Marshal::e_5th); // somehow, the default case e_6th doesn't seem to - // work here - u.ms ().s = 3; - u.ms ().l = 256; - u.ms ().c = 'B'; - u.ms ().o = (CORBA_Octet) 127; - u.ms ().d = 3.1415; - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - -#if 0 // to be supported later - as1[0] <<= (CORBA_Short)3; - as1[1] <<= (CORBA_Long) 256; - as1[2] <<= CORBA_Any::from_octet ((CORBA_Octet)127); - as1[3] <<= CORBA_Any::from_char ('B'); - as1[4] <<= (CORBA_Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union -#endif - as1[0].replace (_tc_CORBA_Short, new CORBA_Short (3), 1, env); - as1[1].replace (_tc_CORBA_Long, new CORBA_Long (256), 1, env); - as1[2].replace (_tc_CORBA_Octet, new CORBA_Octet ((CORBA_Octet)127), 1, env); - as1[3].replace (_tc_CORBA_Char, new CORBA_Char ('B'), 1, env); - as1[4].replace (_tc_CORBA_Double, new CORBA_Double (3.1415), 1, env); - as1[5].replace (Marshal::_tc_Marshal_Struct, new Marshal::Marshal_Struct - (ms), 1, env); - as1[6].replace (Marshal::_tc_Marshal_Union, new Marshal::Marshal_Union (u), 1, env); - - as2 = new Marshal::AnySeq; - - ref_->test_sequence (as1, as2, env); - - ACE_DEBUG ((LM_DEBUG, "SII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { - if (as1[i].type ()->equal ((*as2)[i].type (), env)) - { - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA_Short *)as1[i].value () == *(CORBA_Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA_Long *)as1[i].value () == *(CORBA_Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA_Octet *)as1[i].value () == *(CORBA_Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA_Char *)as1[i].value () == *(CORBA_Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA_Double *)as1[i].value () == *(CORBA_Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on unions match\n")); - } - } - break; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, - "SII test_sequence: typecode mismatch for element %d\n", i)); - break; - } - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - return 0; -} - -#if 0 -int -Tao_Marshal_Client_Proxy::sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - CORBA_Environment env; - - - mr1.value <<= (CORBA_Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA_Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2, env); - } - catch (CORBA_SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA_Long *)mr1.value.value () == *(CORBA_Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA_Char *)elem1->value.value () == *(CORBA_Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive failure\n")); - } - - return 0; -} -#endif - -// ------------------------------------------------------- -// all helper functions : DII -// ------------------------------------------------------- - -int -Tao_Marshal_Client_Proxy::dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - CORBA_Short s1, s2; - CORBA_Environment env; - - s1 = 3; - s2 = 0; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add (CORBA_ARG_IN)->value ()) <<= s1; - arglist->add_value ("s1", CORBA_Any (_tc_CORBA_Short, &s1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - // this usage is also correct. All we care is to supply a storage area for - // the OUT parameter - // arglist->add (CORBA_ARG_OUT)->value ()->replace (CORBA__tc_short, &s2); - // *(arglist->add (CORBA_ARG_OUT)->value ()) <<= s2; - arglist->add_value ("s2", CORBA_Any (_tc_CORBA_Short, &s2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item (0); - - // create a request - ref_->_create_request(//ctx, - "test_short", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= s2; - s2 = *(CORBA_Short *)arglist->item(1)->value()->value(); - - if (s2 == 2*s1) - { - ACE_DEBUG ((LM_DEBUG, "DII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - CORBA_Long l1, l2; - CORBA_Environment env; - - l1 = 256; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= l1; - arglist->add_value ("l1", CORBA_Any (_tc_CORBA_Long, &l1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - // arglist->add(CORBA_ARG_OUT)->value()->replace (CORBA__tc_long, &l2); - arglist->add_value ("l2", CORBA_Any (_tc_CORBA_Long, &l2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_long", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= l2; - l2 = *(CORBA_Long *)arglist->item (1)->value ()->value (); - - if (l2 == 3*l1) - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long success: l1 = %d, l2 = %d\n", l1, l2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - CORBA_Octet o1, o2; - CORBA_Environment env; - - o1 = (CORBA_Octet) 127; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= CORBA_Any::from_octet (o1); - // arglist->add(CORBA_ARG_OUT)->value()->replace (CORBA__tc_octet, &o2); - arglist->add_value ("o1", CORBA_Any (_tc_CORBA_Octet, &o1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("o2", CORBA_Any (_tc_CORBA_Octet, &o2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_octet", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= CORBA_Any::to_octet (o2); - o2 = *(CORBA_Octet *)arglist->item (1)->value ()->value (); - - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - CORBA_Char c1, c2; - CORBA_Environment env; - - c1 = 'B'; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= CORBA_Any::from_char (c1); - // arglist->add(CORBA_ARG_OUT)->value()->replace (CORBA__tc_char, &c2); - arglist->add_value ("c1", CORBA_Any (_tc_CORBA_Char, &c1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("c2", CORBA_Any (_tc_CORBA_Char, &c2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_char", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= CORBA_Any::to_char (c2); - c2 = *(CORBA_Char *)arglist->item (1)->value ()->value (); - - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - CORBA_Double d1, d2; - CORBA_Environment env; - - d1 = 3.1415; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= d1; - // arglist->add(CORBA_ARG_OUT)->value()->replace (CORBA__tc_double, &d2); - arglist->add_value ("d1", CORBA_Any (_tc_CORBA_Double, &d1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("d2", CORBA_Any (_tc_CORBA_Double, &d2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_double", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= d2; - d2 = *(CORBA_Double *)arglist->item (1)->value ()->value (); - - if (d2 == d1/2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - Marshal::Marshal_Struct ms1, ms2; - CORBA_Environment env; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA_Octet) 127; - ms1.d = 3.1415; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= ms1; - // arglist->add(CORBA_ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Struct, &ms2); - arglist->add_value ("ms1", CORBA_Any (Marshal::_tc_Marshal_Struct, &ms1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("ms2", CORBA_Any (Marshal::_tc_Marshal_Struct, &ms2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_struct", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= ms2; - ms2 = *(Marshal::Marshal_Struct *)arglist->item (1)->value ()->value (); - - if (ms1.s == ms2.s && ms1.l == ms2.l && ms1.c == ms2.c && ms1.o == ms2.o && - ms1.d == ms2.d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct failed\n")); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - Marshal::Marshal_Union u1, u2; - Marshal::Marshal_Struct ms1, ms2; - CORBA_Environment env; - - - // first test an enumerated case - u1._d (Marshal::e_1st); - u1.l (4567); - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= u1; - // arglist->add(CORBA_ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, &u2); - arglist->add_value ("u1", CORBA_Any (Marshal::_tc_Marshal_Union, &u1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("u2", CORBA_Any (Marshal::_tc_Marshal_Union, &u2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_union", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= u2; - u2 = *(Marshal::Marshal_Union *)arglist->item (1)->value ()->value (); - - if ( (u1._d () == u2._d()) && (u1.l () == u2.l ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) failed\n")); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - - // now test the default case - u1._d (Marshal::e_5th); // e_6th doesn't work - - u1.ms ().s = 3; - u1.ms ().l = 256; - u1.ms ().c = 'B'; - u1.ms ().o = (CORBA_Octet) 127; - u1.ms ().d = 3.1415; - - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= u1; - //arglist->add(CORBA_ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, &u2); - arglist->add_value ("u1", CORBA_Any (Marshal::_tc_Marshal_Union, &u1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("u2", CORBA_Any (Marshal::_tc_Marshal_Union, &u2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_union", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= u2; - u2 = *(Marshal::Marshal_Union *)arglist->item (1)->value ()->value (); - - if (u1.ms ().s == u2.ms ().s && u1.ms ().l == u2.ms ().l && u1.ms ().c == u2.ms ().c && u1.ms ().o == u2.ms ().o && - u1.ms ().d == u2.ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) failed\n")); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - // we send a struct thru the any - CORBA_Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - CORBA_Environment env; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA_Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - // a1 <<= ms1; - a1.replace (Marshal::_tc_Marshal_Struct, &ms1, CORBA_B_FALSE, env); - - a2 = new CORBA_Any; - - // now test it - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= a1; - // arglist->add(CORBA_ARG_OUT)->value()->replace (CORBA__tc_any, a2); - arglist->add_value ("a1", CORBA_Any (_tc_CORBA_Any, &a1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("a2", CORBA_Any (_tc_CORBA_Any, a2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_any", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= (*a2); - a2->replace (_tc_CORBA_Any, (CORBA_Any *)arglist->item (1)->value ()->value - (), 1, env); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct, env)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_any success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any value match failed\n")); - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any failed due to typecode mismatch\n")); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -int -Tao_Marshal_Client_Proxy::dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA_Request_ptr request = 0; //CORBA_Request::_nil(); // DII request - CORBA_NVList_ptr arglist = 0; //CORBA_NVList::_nil(); // argument list - // CORBA_Context_ptr ctx = CORBA_Context::_nil(); // context - CORBA_NVList_ptr result_list = 0; //CORBA_NVList::_nil(); // result list - CORBA_NamedValue_ptr result = 0; //CORBA_NamedValue::_nil();// actual result - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - CORBA_Environment env; - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA_Octet) 127; - ms.d = 3.1415; - - u._d (Marshal::e_5th); // somehow, the default case e_6th doesn't seem to - // work here - u.ms ().s = 3; - u.ms ().l = 256; - u.ms ().c = 'B'; - u.ms ().o = (CORBA_Octet) 127; - u.ms ().d = 3.1415; - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - -#if 0 - as1[0] <<= (CORBA_Short)3; - as1[1] <<= (CORBA_Long) 256; - as1[2] <<= CORBA_Any::from_octet ((CORBA_Octet)127); - as1[3] <<= CORBA_Any::from_char ('B'); - as1[4] <<= (CORBA_Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union -#endif - as1[0].replace (_tc_CORBA_Short, new CORBA_Short (3), 1, env); - as1[1].replace (_tc_CORBA_Long, new CORBA_Long (256), 1, env); - as1[2].replace (_tc_CORBA_Octet, new CORBA_Octet ((CORBA_Octet)127), 1, env); - as1[3].replace (_tc_CORBA_Char, new CORBA_Char ('B'), 1, env); - as1[4].replace (_tc_CORBA_Double, new CORBA_Double (3.1415), 1, env); - as1[5].replace (Marshal::_tc_Marshal_Struct, new Marshal::Marshal_Struct - (ms), 1, env); - as1[6].replace (Marshal::_tc_Marshal_Union, new Marshal::Marshal_Union (u), 1, env); - - as2 = new Marshal::AnySeq; - - orb_->create_list(0, arglist); // 2 arguments to be added - // *(arglist->add(CORBA_ARG_IN)->value()) <<= as1; - // arglist->add(CORBA_ARG_OUT)->value()->replace (Marshal::_tc_AnySeq, as2); - arglist->add_value ("as1", CORBA_Any (Marshal::_tc_AnySeq, &as1, CORBA_B_FALSE), - CORBA_ARG_IN, env); - arglist->add_value ("o2", CORBA_Any (Marshal::_tc_AnySeq, as2, CORBA_B_FALSE), - CORBA_ARG_OUT, env); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(//ctx, - "test_sequence", - arglist, - result, - request, - 0, env); - - request->invoke (); // 2 way - // *(arglist->item(1)->value()) >>= (*as2); - *as2 = *(Marshal::AnySeq *)arglist->item (1)->value ()->value (); - - ACE_DEBUG ((LM_DEBUG, "DII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { - if (as1[i].type ()->equal ((*as2)[i].type (), env)) - { - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA_Short *)as1[i].value () == *(CORBA_Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA_Long *)as1[i].value () == *(CORBA_Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA_Octet *)as1[i].value () == *(CORBA_Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA_Char *)as1[i].value () == *(CORBA_Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA_Double *)as1[i].value () == *(CORBA_Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on unions match\n")); - } - } - break; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, - "DII test_sequence: typecode mismatch for element %d\n", i)); - break; - } - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - CORBA_release (request); - CORBA_release (arglist); - CORBA_release (result); - CORBA_release (result_list); - return 0; -} - -#if 0 -int -Tao_Marshal_Client_Proxy::dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - - mr1.value <<= (CORBA_Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA_Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2); - } - catch (CORBA_SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA_Long *)mr1.value.value () == *(CORBA_Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA_Char *)elem1->value.value () == *(CORBA_Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive failure\n")); - } - - return 0; -} -#endif diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.h b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.h deleted file mode 100644 index d7b8269b2c2..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.h +++ /dev/null @@ -1,126 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Tao Benchmark -// -// = FILENAME -// tao_marshal_client.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_TAO_MARSHAL_CLIENT_H_) -#define _TAO_MARSHAL_CLIENT_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// include Tao specific include files -#include "marshalC.h" // generated by IDL compiler -#include "tao/nvlist.h" - -class Tao_Marshal_Client_Proxy : public CORBA_Marshal_Proxy -{ - // =TITLE - // Tao_Marshal_Client_Proxy - // =DESCRIPTION - // Tao client size specialization of the CORBA Marshal proxy class -public: - Tao_Marshal_Client_Proxy (void); - // constructor - - ~Tao_Marshal_Client_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work - - virtual int use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the static invocation interface - - virtual int use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the dynamic invocation interface -private: - // =helper functions - int sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - // all the DII helpers - int dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - CORBA_ORB_ptr orb_; - // handle to the underlying orb - - Marshal_ptr ref_; - // the object reference -}; - -#if defined (__ACE_INLINE__) -#include "tao_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.i b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.i deleted file mode 100644 index 5fcdc2e209f..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_client.i +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - - -ACE_INLINE -Tao_Marshal_Client_Proxy::Tao_Marshal_Client_Proxy (void) - : orb_ (0), - ref_ (0) -{ -} - -ACE_INLINE -Tao_Marshal_Client_Proxy::~Tao_Marshal_Client_Proxy (void) -{ - // releasing order is important - - // release the reference - CORBA_release (ref_); - - // release the ORB - CORBA_release (orb_); -} - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.cpp b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.cpp deleted file mode 100644 index d4d555d5dee..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.cpp +++ /dev/null @@ -1,652 +0,0 @@ -// $Id$ - -#include "tao_marshal_impl.h" - -#if !defined (__ACE_INLINE__) -#include "tao_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -// All the methods of the SSI class -void -Marshal_SSI_Impl::test_short (CORBA_Short s1, - CORBA_Short &s2, - CORBA_Environment &env) -{ - s2 = 2*s1; -} - -void -Marshal_SSI_Impl::test_long (CORBA_Long l1, - CORBA_Long &l2, - CORBA_Environment &env) -{ - l2 = 3*l1; -} - -void -Marshal_SSI_Impl::test_octet (CORBA_Octet o1, - CORBA_Octet &o2, - CORBA_Environment &env) -{ - o2 = o1; -} - -void -Marshal_SSI_Impl::test_char (CORBA_Char c1, - CORBA_Char &c2, - CORBA_Environment &env) -{ - c2 = c1; -} - -void -Marshal_SSI_Impl::test_double (CORBA_Double d1, - CORBA_Double &d2, - CORBA_Environment &env) -{ - d2 = d1/2; -} - -void -Marshal_SSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_SSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env) -{ - u2._d (u1._d ()); // set the discriminant value - - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_SSI_Impl::test_any (const CORBA_Any &a1, - CORBA_Any *&a2, - CORBA_Environment &env) -{ - a2 = new CORBA_Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_SSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2, - CORBA_Environment &env) -{ - as2 = new Marshal::AnySeq (as1); -} - -#if 0 -void -Marshal_SSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2, - CORBA_Environment &env) -{ -} -#endif - -//---------------------------------------------------------------------------- -//the methods of the DSI implementation class - -static const TAO_operation_db_entry Marshal_DSI_operations[] = { - {"_is_a", &Marshal_DSI_Impl::_Marshal_is_a_skel}, - { "test_short", &Marshal_DSI_Impl::_Marshal_test_short_skel}, - { "test_long", &Marshal_DSI_Impl::_Marshal_test_long_skel}, - { "test_octet", &Marshal_DSI_Impl::_Marshal_test_octet_skel}, - { "test_char", &Marshal_DSI_Impl::_Marshal_test_char_skel}, - { "test_double", &Marshal_DSI_Impl::_Marshal_test_double_skel}, - { "test_struct", &Marshal_DSI_Impl::_Marshal_test_struct_skel}, - { "test_union", &Marshal_DSI_Impl::_Marshal_test_union_skel}, - { "test_any", &Marshal_DSI_Impl::_Marshal_test_any_skel}, - { "test_sequence", &Marshal_DSI_Impl::_Marshal_test_sequence_skel}, - { 0, 0 } -}; - -// Note that we use a linear table because rest of the DSI implementations we -// compare with also use linear search in their "invoke" method. -TAO_Linear_OpTable tao_Marshal_DSI_optable (Marshal_DSI_operations, 10); - -// constructor -Marshal_DSI_Impl::Marshal_DSI_Impl (CORBA_ORB_ptr orb, const char *obj_name) - : orb_ (orb) - //,CORBA_DynamicImplementation ("Marshal", obj_name) // interface name is necessary -{ - // Note that this is a HACK to achieve DSI behavior. But this way we can - // cleanly integrate ourselves with the dispatch mechanism of the OA. - - const CORBA_String repoID = "IDL:Marshal:1.0"; // repository ID - IIOP_Object *data; // IIOP object - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); // underlying BOA - this->optable_ = &tao_Marshal_DSI_optable; // operation database - CORBA_Long i; - - // setup an IIOP object - data = new IIOP_Object (CORBA_string_dup (repoID)); - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup (oa->get_addr ().get_host_name ()); - data->profile.port = oa->get_addr ().get_port_number (); - data->profile.object_key.length = ACE_OS::strlen (obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - ACE_OS::memcpy (data->profile.object_key.buffer, obj_name, - data->profile.object_key.length); // set the object key - this->set_parent (data); // store the IIOP obj reference with ourselves - this->sub_ = this; // set the most derived class to be ourselves - if (oa) oa->bind (data->profile.object_key, this);// register ourselves -} - -void -Marshal_DSI_Impl::invoke (CORBA_ServerRequest& req, CORBA_Environment &env) -{ - // parse the incoming request and find out for what operation it is. We use a - // simple linear search here - if (!ACE_OS::strcmp (req.op_name (), "test_short")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_long")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_octet")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_char")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_double")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_struct")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_union")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_any")) - { - } - else if (!ACE_OS::strcmp (req.op_name (), "test_sequence")) - { - } -} - -// simulate the skeletons -void Marshal_DSI_Impl::_Marshal_is_a_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - char *type_id = "IDL:Marshal:1.0"; - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *)nv->value ()->value (); - - cout << "object id = " << ((char *)value) << endl; - if (strcmp ((char *)value, (char *)type_id) == 0 - || strcmp ((char *)value, _tc_CORBA_Object->id(env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - -void Marshal_DSI_Impl::_Marshal_test_short_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_s1 (_tc_CORBA_Short); - CORBA_Any any_s2 (_tc_CORBA_Short); - Marshal_DSI_Impl* impl; - CORBA_Short s1, s2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_s1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_s2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - s1 = *(CORBA_Short *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_short (s1, s2, env); - - nv2->value ()->replace (_tc_CORBA_Short, &s2, 0, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_long_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_l1 (_tc_CORBA_Long); - CORBA_Any any_l2 (_tc_CORBA_Long); - Marshal_DSI_Impl* impl; - CORBA_Long l1, l2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_l1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_l2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - l1 = *(CORBA_Long *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_long (l1, l2, env); - - nv2->value ()->replace (_tc_CORBA_Long, &l2, 0, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_o1 (_tc_CORBA_Octet); - CORBA_Any any_o2 (_tc_CORBA_Octet); - Marshal_DSI_Impl* impl; - CORBA_Octet o1, o2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_o1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_o2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - o1 = *(CORBA_Octet *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_octet (o1, o2, env); - - nv2->value ()->replace (_tc_CORBA_Octet, &o2, 0, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_char_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_c1 (_tc_CORBA_Char); - CORBA_Any any_c2 (_tc_CORBA_Char); - Marshal_DSI_Impl* impl; - CORBA_Char c1, c2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_c1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_c2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - c1 = *(CORBA_Char *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_char (c1, c2, env); - - nv2->value ()->replace (_tc_CORBA_Char, &c2, 0, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_double_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_d1 (_tc_CORBA_Double); - CORBA_Any any_d2 (_tc_CORBA_Double); - Marshal_DSI_Impl* impl; - CORBA_Double d1, d2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_d1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_d2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - d1 = *(CORBA_Double *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_double (d1, d2, env); - - nv2->value ()->replace (_tc_CORBA_Double, &d2, 0, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_struct_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_ms1 (Marshal::_tc_Marshal_Struct); - CORBA_Any any_ms2 (Marshal::_tc_Marshal_Struct); - Marshal_DSI_Impl* impl; - Marshal::Marshal_Struct ms1, *ms2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_ms1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_ms2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - // note that the second parameter being an out parameter, we are allocating - // it from heap and filling it up. We will then insert it into the Any that - // will get written to the stream. We should have done this for the - // primitives too, but somehow they worked (because nothing got written onto - // the stack frame onto which they existed, but this phenomenon was occuring - // here and possibly will occur for the rest of the case - ms1 = *(Marshal::Marshal_Struct *) nv1->value ()->value (); - ms2 = new Marshal::Marshal_Struct; - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_struct (ms1, *ms2, env); - - nv2->value ()->replace (Marshal::_tc_Marshal_Struct, ms2, 1, env); - - // result - NO result - // CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - // req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_union_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_u1 (Marshal::_tc_Marshal_Union); - CORBA_Any any_u2 (Marshal::_tc_Marshal_Union); - Marshal_DSI_Impl* impl; - Marshal::Marshal_Union u1, *u2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_u1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_u2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - u1 = *(Marshal::Marshal_Union *) nv1->value ()->value (); - u2 = new Marshal::Marshal_Union; - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_union (u1, *u2, env); - - nv2->value ()->replace (Marshal::_tc_Marshal_Union, u2, 0, env); - - // result - NO result - // CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - // req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_any_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any *a1=0, *a2=0; - CORBA_Any any_a1 (_tc_CORBA_Any, &a1); - CORBA_Any any_a2 (_tc_CORBA_Any); - Marshal_DSI_Impl* impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_a1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_a2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - a1 = (CORBA_Any *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_any (*a1, a2, env); - - nv2->value ()->replace (_tc_CORBA_Any, a2, 1, env); - - // result - NO result - // CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - // req.result(any, env); -} - -void Marshal_DSI_Impl::_Marshal_test_sequence_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv1, nv2; - CORBA_Any any_as1 (Marshal::_tc_AnySeq); - CORBA_Any any_as2 (Marshal::_tc_AnySeq); - Marshal_DSI_Impl* impl; - Marshal::AnySeq *as1, *as2; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv1 = nvlist->add_value (0, any_as1, CORBA_ARG_IN, env); - nv2 = nvlist->add_value (0, any_as2, CORBA_ARG_OUT, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - as1 = (Marshal::AnySeq *) nv1->value ()->value (); - - // now invoke the implementation - impl = (Marshal_DSI_Impl *)(obj->get_subclass ()); - // now the magic of dynamic binding - impl->test_sequence (*as1, as2, env); - - nv2->value ()->replace (Marshal::_tc_AnySeq, as2, 1, env); - - // result - NO result - // CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - // req.result(any, env); -} - -// private methods of our DSI class -void -Marshal_DSI_Impl::test_short (CORBA_Short s1, - CORBA_Short &s2, - CORBA_Environment &env) -{ - s2 = 2*s1; -} - -void -Marshal_DSI_Impl::test_long (CORBA_Long l1, - CORBA_Long &l2, - CORBA_Environment &env) -{ - l2 = 3*l1; -} - -void -Marshal_DSI_Impl::test_octet (CORBA_Octet o1, - CORBA_Octet &o2, - CORBA_Environment &env) -{ - o2 = o1; -} - -void -Marshal_DSI_Impl::test_char (CORBA_Char c1, - CORBA_Char &c2, - CORBA_Environment &env) -{ - c2 = c1; -} - -void -Marshal_DSI_Impl::test_double (CORBA_Double d1, - CORBA_Double &d2, - CORBA_Environment &env) -{ - d2 = d1/2; -} - -void -Marshal_DSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_DSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env) -{ - u2._d (u1._d ()); // set the discriminant value - - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_DSI_Impl::test_any (const CORBA_Any &a1, - CORBA_Any *&a2, - CORBA_Environment &env) -{ - a2 = new CORBA_Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_DSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2, - CORBA_Environment &env) -{ - as2 = new Marshal::AnySeq (as1); -} - -#if 0 -void -Marshal_DSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2, - CORBA_Environment &env) -{ -} -#endif - diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.h b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.h deleted file mode 100644 index dab7e662d74..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.h +++ /dev/null @@ -1,192 +0,0 @@ -// $Id$ - -#if !defined (TAO_MARSHAL_IMPL_H) -#define TAO_MARSHAL_IMPL_H - -// to include DSI related files - -#include "ace/OS.h" - -#include "marshalS.h" -//#include "tao/dynimpl.h" - -class Marshal_SSI_Impl - : public virtual _skel_Marshal -{ - // =TITLE - // Marshal_SSI_Impl - // =DESCRIPTION - // Implementation of the interface using the static skeleton interface -public: - Marshal_SSI_Impl (const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_SSI_Impl (void); - // destructor - - virtual void test_short (CORBA_Short s1, - CORBA_Short& s2, - CORBA_Environment &env); - // test short - - virtual void test_long (CORBA_Long l1, - CORBA_Long& l2, - CORBA_Environment &env); - // test long - - virtual void test_octet (CORBA_Octet o1, - CORBA_Octet& o2, - CORBA_Environment &env); - // test octet - - virtual void test_char (CORBA_Char c1, - CORBA_Char& c2, - CORBA_Environment &env); - // test char - - virtual void test_double (CORBA_Double d1, - CORBA_Double& d2, - CORBA_Environment &env); - // test double - - virtual void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env); - // test struct - - virtual void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env); - // test union - - virtual void test_any (const CORBA_Any& a1, - CORBA_Any *& a2, - CORBA_Environment &env); - // test any - - virtual void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2, - CORBA_Environment &env); - // test sequence - -#if 0 - virtual void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2, - CORBA_Environment &env); - // test struct -#endif - -}; - -class Marshal_DSI_Impl : public CORBA_Object //: public CORBA_DynamicImplementation -{ - // =TITLE - // Marshal_DSI_Impl - // =DESCRIPTION - // Implementation of the interface using the dynamic skeleton interface - // =NOTES - // We do not have a DynamicImplementation as yet. So we do a trick here. We - // simulate the skeletons here and these call the private methods defined below: -public: - Marshal_DSI_Impl (CORBA_ORB_ptr orb, const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_DSI_Impl (void); - // destructor - - virtual void invoke (CORBA_ServerRequest & req, CORBA_Environment &env); - // This method is a must, but of no use - - // skeletons that do the upcall - static void _Marshal_is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_octet_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_char_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_double_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_any_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _Marshal_test_sequence_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -private: - void test_short (CORBA_Short s1, - CORBA_Short& s2, - CORBA_Environment &env); - // test short - - void test_long (CORBA_Long l1, - CORBA_Long& l2, - CORBA_Environment &env); - // test long - - void test_octet (CORBA_Octet o1, - CORBA_Octet& o2, - CORBA_Environment &env); - // test octet - - void test_char (CORBA_Char c1, - CORBA_Char& c2, - CORBA_Environment &env); - // test char - - void test_double (CORBA_Double d1, - CORBA_Double& d2, - CORBA_Environment &env); - // test double - - void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2, - CORBA_Environment &env); - // test struct - - void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2, - CORBA_Environment &env); - // test union - - void test_any (const CORBA_Any& a1, - CORBA_Any *& a2, - CORBA_Environment &env); - // test any - - void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2, - CORBA_Environment &env); - // test sequence - -#if 0 - void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2, - CORBA_Environment &env); - // test struct -#endif - - // we need the orb to create argument lists (NVList) for us - CORBA_ORB_ptr orb_; // not owned by us -}; - -#if defined (__ACE_INLINE__) -#include "tao_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -#endif // defined (TAO_MARSHAL_IMPL_H) diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.i b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.i deleted file mode 100644 index a730daf8106..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_impl.i +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Marshal_SSI_Impl::Marshal_SSI_Impl (const char *obj_name) - : _skel_Marshal (obj_name) -{ -} - -// destructor -ACE_INLINE -Marshal_SSI_Impl::~Marshal_SSI_Impl (void) -{ -} - -// destructor -ACE_INLINE -Marshal_DSI_Impl::~Marshal_DSI_Impl (void) -{ - orb_ = 0;//CORBA::ORB::_nil (); -} - - diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.cpp b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.cpp deleted file mode 100644 index fea710364a6..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Tao marshal benchmark -// -// = FILENAME -// tao_marshal_server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "tao_marshal_server.h" -#include -#include - -#if !defined (__ACE_INLINE__) -#include "tao_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -int -Tao_Marshal_Server_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - CORBA_Environment env; - CORBA_String str; // for the IOR string - fstream iorfile; // persistent storage for IOR - - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA_ORB_init (argc, (char *const *)argv, "IOR", env); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // get the argument list to be passed on to the BOA_init method - argv = options.boa_init_args (argc); - - char *foo [] = {"-OAhost","mambo"}; argc = 2; - // get the orb. Pass any ORB_init arguments - this->boa_ = this->orb_->BOA_init (argc, foo, "ROA");//(argc, (char *const *)argv); - if (this->boa_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SSI - this->ssi_ = new Marshal_SSI_Impl (options.object_name ()); - // register with the BOA - // this->boa_->obj_is_ready (this->ssi_); - - // get a stringified representation of the object reference created above - str = this->orb_->object_to_string (this->dsi_, env); - if (env.exception() != 0) - { - // print_exception (env.exception(), "object_to_string", stdout); - return 1; - } - - // save the IOR in persistent storage so that clients can read this and obtain - // object references. We need to do this since we do not yet have some kind - // of a naming service that will allow clients to "bind" to desired objects - iorfile.open ("./ior.txt", ios::out); - iorfile << ((char *)str) << endl; - iorfile.close (); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DSI - this->dsi_ = new Marshal_DSI_Impl (this->orb_, ACE_OS::strdup (options.object_name ())); - // register with the BOA - // this->boa_->obj_is_ready (this->dsi_); - - // get a stringified representation of the object reference created above - str = this->orb_->object_to_string (this->dsi_, env); - if (env.exception() != 0) - { - ACE_DEBUG ((LM_ERROR, "cannot get IOR from DSI object" )); - // print_exception (env.exception(), "object_to_string", stdout); - return 1; - } - - // save the IOR in persistent storage so that clients can read this and obtain - // object references. We need to do this since we do not yet have some kind - // of a naming service that will allow clients to "bind" to desired objects - iorfile.open ("./ior.txt", ios::out); - iorfile << ((char *)str) << endl; - iorfile.close (); - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - - ACE_Reactor::run_event_loop (); // should be replaced by impl_is_ready - return 0; -} - diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.h b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.h deleted file mode 100644 index 8bd965301ff..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.h +++ /dev/null @@ -1,59 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Tao Benchmark -// -// = FILENAME -// tao_marshal_server.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_TAO_MARSHAL_SERVER_H_) -#define _TAO_MARSHAL_SERVER_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// implementation classes -#include "tao_marshal_impl.h" - -// include Tao specific include files -#include "marshalS.h" // generated by IDL compiler - -class Tao_Marshal_Server_Proxy : public CORBA_Marshal_Proxy -{ -public: - Tao_Marshal_Server_Proxy (void); - // constructor - - ~Tao_Marshal_Server_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work -private: - CORBA_ORB_ptr orb_; - // underlying orb; - - CORBA_BOA_ptr boa_; - // underlying boa; - - Marshal_SSI_Impl *ssi_; - Marshal_DSI_Impl *dsi_; - // the implementation (SSI or DSI) -}; - - -#if defined (__ACE_INLINE__) -#include "tao_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.i b/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.i deleted file mode 100644 index 446b96cf468..00000000000 --- a/TAO/Benchmark/Marshal_Test/TAO/tao_marshal_server.i +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Tao_Marshal_Server_Proxy::Tao_Marshal_Server_Proxy (void) - : orb_ (0), - boa_ (0), - ssi_ (0), - dsi_ (0) -{ -} - -// destructor -ACE_INLINE -Tao_Marshal_Server_Proxy::~Tao_Marshal_Server_Proxy (void) -{ - // releasing order is important - - // release the impl - delete ssi_; - delete dsi_; - - // release the BOA - CORBA_release (boa_); - - // release the ORB - CORBA_release (orb_); -} diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/Makefile b/TAO/Benchmark/Marshal_Test/VisiBroker/Makefile deleted file mode 100644 index 93cfc461a32..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the VisiBroker Marshal Benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lACE -lbenchmark -lorb - -PROG_SRCS = marshalC.cpp marshalS.cpp visi_marshal_client.cpp visi_marshal_server.cpp \ - visi_marshal_impl.cpp client.cpp server.cpp - -LSRC = $(PROG_SRCS) - -MARSHAL_CLIENT_OBJS = marshalC.o visi_marshal_client.o client.o - -MARSHAL_SERVER_OBJS = marshalC.o marshalS.o visi_marshal_impl.o visi_marshal_server.o server.o - -BIN = client server - -BUILD = $(BIN) - -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 -# include VisiBroker specific file -include /project/mambo/gokhale/CONFIG/orbeline_defaults.mk - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/Benchmark -D_PMC_INCLUDE_DSI - -server: $(addprefix $(VDIR),$(MARSHAL_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(MARSHAL_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -marshalC.h marshalS.h marshalC.cpp marshalS.cpp: marshal.idl - $(IDL) $(IDLFLAGS) $< - -clean: - rm -f core *.o *~ client server *C.cpp *S.cpp *S.h *C.h - $(MAKE) realclean - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/client.cpp b/TAO/Benchmark/Marshal_Test/VisiBroker/client.cpp deleted file mode 100644 index 76218a98e84..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/client.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "visi_marshal_client.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Visi_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Visi_Marshal_Client_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/marshal.idl b/TAO/Benchmark/Marshal_Test/VisiBroker/marshal.idl deleted file mode 100644 index 077a98e58fd..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/marshal.idl +++ /dev/null @@ -1,91 +0,0 @@ -// $Id$ - -// Interface for the marshal benchmark - -interface Marshal -{ - struct Marshal_Struct - { - short s; - long l; - char c; - octet o; - double d; - }; - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th, e_6th}; - - union Marshal_Union - switch (discrim) - { - case e_0th: - short s; - case e_1st: - long l; - case e_2nd: - char c; - case e_3rd: - octet o; - case e_4th: - double d; - case e_5th: - default: // this will test typecode indirection - Marshal_Struct ms; - }; - - /* - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence OctetSeq; - typedef sequence CharSeq; - typedef sequence DoubleSeq; - typedef sequence StructSeq; - typedef sequence UnionSeq; - */ - // for testing sequences of Any - typedef sequence AnySeq; - - // testing recursive behavior - // complex. - struct Marshal_Recursive - { - // we use this to test the limited recursion allowed by IDL. This is an - // ideal test for indirected typecodes. - - // simulate a behavior of a list node - any value; - sequence next; - }; - - void test_short (in short s1, out short s2); // test a short - void test_long (in long l1, out long l2); // test a long - void test_octet (in octet o1, out octet o2); // test an octet - void test_char (in char c1, out char c2); // test a char - void test_double (in double d1, out double d2); // test a double - void test_struct (in Marshal_Struct ms1, out Marshal_Struct ms2); // test a - // struct - void test_union (in Marshal_Union u1, out Marshal_Union u2); // test a - // union. - void test_any (in any a1, out any a2); // test an Any - /* - void test_sequence (in ShortSeq ss1, in LongSeq ls1, in OctetSeq os1, in - CharSeq cs1, in DoubleSeq ds1, in StructSeq Ss1, in - UnionSeq us1, in AnySeq as1, - out ShortSeq ss2, out LongSeq ls2, out OctetSeq os2, out - CharSeq cs2, out DoubleSeq ds2, out StructSeq Ss2, out - UnionSeq us2, out AnySeq as2); - */ - void test_sequence (in AnySeq as1, out AnySeq as2); // this will result in a - // 3 level indirection - - // sequence, any, and its - // value type - void test_recursive (in Marshal_Recursive mr1, out Marshal_Recursive mr2); // - // very complicated -}; - - - - - - - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/run_client b/TAO/Benchmark/Marshal_Test/VisiBroker/run_client deleted file mode 100755 index 2a35700495f..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/run_client +++ /dev/null @@ -1,23 +0,0 @@ -echo "********* Static Invocation Interface **********" -client -i 1 -h mambo -R s -P S -o marshal -T s -client -i 1 -h mambo -R s -P S -o marshal -T l -client -i 1 -h mambo -R s -P S -o marshal -T o -client -i 1 -h mambo -R s -P S -o marshal -T c -client -i 1 -h mambo -R s -P S -o marshal -T d -client -i 1 -h mambo -R s -P S -o marshal -T S -client -i 1 -h mambo -R s -P S -o marshal -T U -client -i 1 -h mambo -R s -P S -o marshal -T A -client -i 1 -h mambo -R s -P S -o marshal -T Q -#client -i 1 -h mambo -R s -P S -o marshal -T R -# -echo "********* Dynamic Invocation Interface **********" -client -i 1 -h mambo -R s -P D -o marshal -T s -client -i 1 -h mambo -R s -P D -o marshal -T l -client -i 1 -h mambo -R s -P D -o marshal -T o -client -i 1 -h mambo -R s -P D -o marshal -T c -client -i 1 -h mambo -R s -P D -o marshal -T d -client -i 1 -h mambo -R s -P D -o marshal -T S -client -i 1 -h mambo -R s -P D -o marshal -T U -client -i 1 -h mambo -R s -P D -o marshal -T A -client -i 1 -h mambo -R s -P D -o marshal -T Q - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/run_server b/TAO/Benchmark/Marshal_Test/VisiBroker/run_server deleted file mode 100755 index c5ff4cdc2f0..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/run_server +++ /dev/null @@ -1 +0,0 @@ -server -R r -P S -I V -o marshal \ No newline at end of file diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/server.cpp b/TAO/Benchmark/Marshal_Test/VisiBroker/server.cpp deleted file mode 100644 index c77676fefc3..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/server.cpp +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" -#include "visi_marshal_server.h" - -int main (int argc, char *argv []) -{ - // instantiate a DRIVER with the Visi_Client_Proxy as the template - CORBA_Benchmark_Driver driver (new - Visi_Marshal_Server_Proxy ()); - - // let the driver do everything for us so that we remain very simple - return driver.run (argc, argv); -} diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.cpp b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.cpp deleted file mode 100644 index 2b185405543..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.cpp +++ /dev/null @@ -1,1346 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Visibroker marshal benchmark -// -// = FILENAME -// visi_marshal_proxy.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "visi_marshal_client.h" - -#if !defined (__ACE_INLINE__) -#include "visi_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -int -Visi_Marshal_Client_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - CORBA::Object_ptr target; - - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA::ORB_init (argc, (char *const *)argv); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // get the obj ref by binding it to the specified host using the specified obj_name - target = Marshal::_bind (options.object_name (), options.hostname ()); - if (CORBA::is_nil (target)) - { - ACE_DEBUG ((LM_DEBUG, "bind call failed\n")); - return -1; - } - - this->ref_ = Marshal::_narrow (target); - if (CORBA::is_nil (this->ref_)) - { - ACE_DEBUG ((LM_DEBUG, "narrow to Marshal failed\n")); - return -1; - } - - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SII - return this->use_sii (options, results); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DII - return this->use_dii (options, results); - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - // hopefully we are never here, else something is seriously wrong - return -1; -} - -int -Visi_Marshal_Client_Proxy::use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the static invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = sii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = sii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = sii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = sii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = sii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = sii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = sii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = sii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = sii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = sii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - -int -Visi_Marshal_Client_Proxy::use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - int i; - int status = 0; - // This method tests the dynamic invocation interface - - for (i=0; i < options.iterations () && !status; i++) - { - switch (options.data_type ()) - { - // shorts - case CORBA_Marshal_Options::SHORT: - status = dii_test_short (options, results); - break; - // longs - case CORBA_Marshal_Options::LONG: - status = dii_test_long (options, results); - break; - // octets - case CORBA_Marshal_Options::OCTET: - status = dii_test_octet (options, results); - break; - // chars - case CORBA_Marshal_Options::CHAR: - status = dii_test_char (options, results); - break; - // doubles - case CORBA_Marshal_Options::DOUBLE: - status = dii_test_double (options, results); - break; - // Structs - case CORBA_Marshal_Options::STRUCT: - status = dii_test_struct (options, results); - break; - // unions - case CORBA_Marshal_Options::UNION: - status = dii_test_union (options, results); - break; - // anys - case CORBA_Marshal_Options::ANY: - status = dii_test_any (options, results); - break; - // sequences - case CORBA_Marshal_Options::SEQUENCE: - status = dii_test_sequence (options, results); - break; - // longs - case CORBA_Marshal_Options::RECURSIVE: - // status = dii_test_recursive (options, results); - // doesn't work - break; - default: - status = -1; - } // end of switch - } // for loop - - if (!status) - return 0; - else - return -1; -} - - -// all helper functions : SII -int -Visi_Marshal_Client_Proxy::sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA::Short s1, s2; - s1 = 3; - ref_->test_short (s1, s2); - if (s1 == s2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - CORBA::Long l1, l2; - l1 = 256; - ref_->test_long (l1, l2); - if (l1 == l2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_long success: l1 = %d, l2 = %d\n", l1, l2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - CORBA::Octet o1, o2; - o1 = (CORBA::Octet) 127; - ref_->test_octet (o1, o2); - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - CORBA::Char c1, c2; - c1 = 'B'; - ref_->test_char (c1, c2); - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - CORBA::Double d1, d2; - d1 = 3.1415; - ref_->test_double (d1, d2); - if (d1 == d2) - { - ACE_DEBUG ((LM_DEBUG, "SII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - Marshal::Marshal_Struct ms1, ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - ref_->test_struct (ms1, ms2); - if (ms1.s == ms2.s && ms1.l == ms2.l && ms1.c == ms2.c && ms1.o == ms2.o && - ms1.d == ms2.d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_struct failed\n")); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - Marshal::Marshal_Union u1, u2; - Marshal::Marshal_Struct ms1, ms2; - - - // first test an enumerated case - u1._d (Marshal::e_1st); - u1.l (4567); - - ref_->test_union (u1, u2); - if ( (u1._d () == u2._d()) && (u1.l () == u2.l ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for long (case e_1st) failed\n")); - return -1; - } - - // now test the default case - u1._d (Marshal::e_6th); // this case doesn't exist which will lead to using - // the default case - - u1.ms ().s = 3; - u1.ms ().l = 256; - u1.ms ().c = 'B'; - u1.ms ().o = (CORBA::Octet) 127; - u1.ms ().d = 3.1415; - - ref_->test_union (u1, u2); - - if (u1.ms ().s == u2.ms ().s && u1.ms ().l == u2.ms ().l && u1.ms ().c == u2.ms ().c && u1.ms ().o == u2.ms ().o && - u1.ms ().d == u2.ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_union for default (case e_6th) failed\n")); - return -1; - } -} - -int -Visi_Marshal_Client_Proxy::sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we send a struct thru the any - CORBA::Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - a1 <<= ms1; - - a2 = new CORBA::Any; - - // now test it - ref_->test_any (a1, a2); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "SII test_any success\n")); - return 0; - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any value match failed\n")); - return -1; - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_any failed due to typecode mismatch\n")); - } - return 0; -} - -int -Visi_Marshal_Client_Proxy::sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u._d (Marshal::e_5th); // somehow, the default case e_6th doesn't seem to - // work here - u.ms ().s = 3; - u.ms ().l = 256; - u.ms ().c = 'B'; - u.ms ().o = (CORBA::Octet) 127; - u.ms ().d = 3.1415; - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - - as1[0] <<= (CORBA::Short)3; - as1[1] <<= (CORBA::Long) 256; - as1[2] <<= CORBA::Any::from_octet ((CORBA::Octet)127); - as1[3] <<= CORBA::Any::from_char ('B'); - as1[4] <<= (CORBA::Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union - - as2 = new Marshal::AnySeq; - - ref_->test_sequence (as1, as2); - -#if 0 - // the following is extremely weird. I do not understand why it is not the - // same as _tc_Marshal_Union, but its _kind field does have _tk_union in it. - if ((*as2)[6].type ()->equal (Marshal::_tc_Marshal_Union)) - { - cerr << "6th elem has union typecode" << endl; - } - else - { - cerr << "6th elem doesnot have union typecode" << endl; - cerr << "its typecode kind = " << (*as2)[6].type ()->kind () << endl; - } -#endif - - ACE_DEBUG ((LM_DEBUG, "SII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { -#if 0 - if (as1[i].type ()->equal ((*as2)[i].type ())) - { -#endif - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA::Short *)as1[i].value () == *(CORBA::Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA::Long *)as1[i].value () == *(CORBA::Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA::Octet *)as1[i].value () == *(CORBA::Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA::Char *)as1[i].value () == *(CORBA::Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA::Double *)as1[i].value () == *(CORBA::Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tSII test_sequence failed on unions match\n")); - } - } - break; - } -#if 0 - } - else - { - ACE_DEBUG ((LM_DEBUG, - "SII test_sequence: typecode mismatch for element %d\n", i)); - break; - } -#endif - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - return 0; -} - -int -Visi_Marshal_Client_Proxy::sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - - mr1.value <<= (CORBA::Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA::Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2); - } - catch (CORBA::SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA::Long *)mr1.value.value () == *(CORBA::Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA::Char *)elem1->value.value () == *(CORBA::Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "SII test_recursive failure\n")); - } - - return 0; -} - -// ------------------------------------------------------- -// all helper functions : DII -// ------------------------------------------------------- - -int -Visi_Marshal_Client_Proxy::dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Short s1, s2; - - s1 = 3; - s2 = 0; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add (CORBA::ARG_IN)->value ()) <<= s1; - // this usage is also correct. All we care is to supply a storage area for - // the OUT parameter - // arglist->add (CORBA::ARG_OUT)->value ()->replace (CORBA::_tc_short, &s2); - *(arglist->add (CORBA::ARG_OUT)->value ()) <<= s2; - orb_->create_list(1, result_list); // 1 result - result = result_list->item (0); - - // create a request - ref_->_create_request(ctx, - "test_short", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= s2; - - if (s1 == s2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_short success: s1 = %d, s2 = %d\n", s1, s2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_short failed: s1 = %d, s2 = %d\n", s1, s2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Long l1, l2; - - l1 = 256; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= l1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_long, &l2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_long", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= l2; - - if (l1 == l2) - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long success: l1 = %d, l2 = %d\n", l1, l2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII: test_long failed: l1 = %d, l2 = %d\n", l1, l2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // octets -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Octet o1, o2; - - o1 = (CORBA::Octet) 127; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= CORBA::Any::from_octet (o1); - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_octet, &o2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_octet", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= CORBA::Any::to_octet (o2); - - if (o1 == o2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet success: o1 = %c, o2 = %c\n", o1, o2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_octet failed: o1 = %c, o2 = %c\n", o1, o2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // chars -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Char c1, c2; - - c1 = 'B'; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= CORBA::Any::from_char (c1); - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_char, &c2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_char", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= CORBA::Any::to_char (c2); - - if (c1 == c2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_char success: c1 = %c, c2 = %c\n", c1, c2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_char failed: c1 = %c, c2 = %c\n", c1, c2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // doubles -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - CORBA::Double d1, d2; - - d1 = 3.1415; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= d1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_double, &d2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_double", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= d2; - - if (d1 == d2) - { - ACE_DEBUG ((LM_DEBUG, "DII test_double success: d1 = %f, d2 = %f\n", d1, d2)); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_double failed: d1 = %f, d2 = %f\n", d1, d2)); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // structs -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - Marshal::Marshal_Struct ms1, ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= ms1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Struct, &ms2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_struct", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= ms2; - - if (ms1.s == ms2.s && ms1.l == ms2.l && ms1.c == ms2.c && ms1.o == ms2.o && - ms1.d == ms2.d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_struct failed\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) - // unions -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - Marshal::Marshal_Union u1, u2; - Marshal::Marshal_Struct ms1, ms2; - - - // first test an enumerated case - u1._d (Marshal::e_1st); - u1.l (4567); - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= u1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, &u2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_union", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= u2; - - if ( (u1._d () == u2._d()) && (u1.l () == u2.l ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for long (case e_1st) failed\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - - // now test the default case - u1._d (Marshal::e_5th); // e_6th doesn't work - - u1.ms ().s = 3; - u1.ms ().l = 256; - u1.ms ().c = 'B'; - u1.ms ().o = (CORBA::Octet) 127; - u1.ms ().d = 3.1415; - - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= u1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_Marshal_Union, &u2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_union", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= u2; - - if (u1.ms ().s == u2.ms ().s && u1.ms ().l == u2.ms ().l && u1.ms ().c == u2.ms ().c && u1.ms ().o == u2.ms ().o && - u1.ms ().d == u2.ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_union for default (case e_6th) failed\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - // we send a struct thru the any - CORBA::Any a1, *a2; - Marshal::Marshal_Struct ms1, *ms2; - - ms1.s = 3; - ms1.l = 256; - ms1.c = 'B'; - ms1.o = (CORBA::Octet) 127; - ms1.d = 3.1415; - - // populate the any with a MarshalStruct - a1 <<= ms1; - - a2 = new CORBA::Any; - - // now test it - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= a1; - arglist->add(CORBA::ARG_OUT)->value()->replace (CORBA::_tc_any, a2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_any", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= (*a2); - - // check if the two typecodes are equal - if (a2->type ()->equal (Marshal::_tc_Marshal_Struct)) - { - // now see if the values are same - ms2 = (Marshal::Marshal_Struct *)a2->value (); - if (ms1.s == ms2->s && ms1.l == ms2->l && ms1.c == ms2->c && ms1.o == ms2->o && - ms1.d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "DII test_any success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any value match failed\n")); - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_any failed due to typecode mismatch\n")); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // DII variables - CORBA::Request_ptr request = CORBA::Request::_nil(); // DII request - CORBA::NVList_ptr arglist = CORBA::NVList::_nil(); // argument list - CORBA::Context_ptr ctx = CORBA::Context::_nil(); // context - CORBA::NVList_ptr result_list = CORBA::NVList::_nil(); // result list - CORBA::NamedValue_ptr result = CORBA::NamedValue::_nil();// actual result - // make a sequence of Anys and fill each one with a different data type - Marshal::AnySeq as1 (7), *as2; - Marshal::Marshal_Struct ms; - Marshal::Marshal_Union u; - - ms.s = 3; - ms.l = 256; - ms.c = 'B'; - ms.o = (CORBA::Octet) 127; - ms.d = 3.1415; - - u._d (Marshal::e_5th); // somehow, the default case e_6th doesn't seem to - // work here - u.ms ().s = 3; - u.ms ().l = 256; - u.ms ().c = 'B'; - u.ms ().o = (CORBA::Octet) 127; - u.ms ().d = 3.1415; - - // it looks like we must tell the sequence how many elements it is going to - // carry. By just fixing the max value does not work. - - as1.length (7); - - as1[0] <<= (CORBA::Short)3; - as1[1] <<= (CORBA::Long) 256; - as1[2] <<= CORBA::Any::from_octet ((CORBA::Octet)127); - as1[3] <<= CORBA::Any::from_char ('B'); - as1[4] <<= (CORBA::Double)3.1415; // double - as1[5] <<= ms; // struct - as1[6] <<= u; // union - - as2 = new Marshal::AnySeq; - - orb_->create_list(0, arglist); // 2 arguments to be added - *(arglist->add(CORBA::ARG_IN)->value()) <<= as1; - arglist->add(CORBA::ARG_OUT)->value()->replace (Marshal::_tc_AnySeq, as2); - orb_->create_list(1, result_list); // 1 result - result = result_list->item(0); - - // create a request - ref_->_create_request(ctx, - "test_sequence", - arglist, - result, - request, - 0); - - request->invoke (); // 2 way - *(arglist->item(1)->value()) >>= (*as2); - -#if 0 - // the following is extremely weird. I do not understand why it is not the - // same as _tc_Marshal_Union, but its _kind field does have _tk_union in it. - if ((*as2)[6].type ()->equal (Marshal::_tc_Marshal_Union)) - { - cerr << "6th elem has union typecode" << endl; - } - else - { - cerr << "6th elem doesnot have union typecode" << endl; - cerr << "its typecode kind = " << (*as2)[6].type ()->kind () << endl; - } -#endif - - ACE_DEBUG ((LM_DEBUG, "DII test_sequence\n")); - if (as1.length () == as2->length ()) - { - // now make sure that the elements are same - for (int i=0; i < as1.length (); i++) - { -#if 0 - if (as1[i].type ()->equal ((*as2)[i].type ())) - { -#endif - // now see if the values are same - switch (i) - { - case 0: - if (*(CORBA::Short *)as1[i].value () == *(CORBA::Short - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, shorts matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on shorts match\n")); - } - break; - case 1: - if (*(CORBA::Long *)as1[i].value () == *(CORBA::Long - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, longs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on longs match\n")); - } - break; - case 2: - if (*(CORBA::Octet *)as1[i].value () == *(CORBA::Octet - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, octets matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on octets match\n")); - } - break; - case 3: - if (*(CORBA::Char *)as1[i].value () == *(CORBA::Char - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, chars matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on chars match\n")); - } - break; - case 4: - if (*(CORBA::Double *)as1[i].value () == *(CORBA::Double - *)(*as2)[i].value ()) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, doubles matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on doubles match\n")); - } - break; - case 5: - { - Marshal::Marshal_Struct *ms1, *ms2; - - ms1 = (Marshal::Marshal_Struct *)as1[i].value (); - ms2 = (Marshal::Marshal_Struct *)(*as2)[i].value (); - - if (ms1->s == ms2->s && ms1->l == ms2->l && ms1->c == ms2->c && ms1->o == ms2->o && - ms1->d == ms2->d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, structs matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on structs match\n")); - } - } - break; - case 6: - { - Marshal::Marshal_Union *u1, *u2; - - u1 = (Marshal::Marshal_Union *)as1[i].value (); - u2 = (Marshal::Marshal_Union *)(*as2)[i].value (); - - if (u1->_d () == u2->_d () && u1->ms ().s == u2->ms ().s && - u1->ms ().l == u2->ms ().l && - u1->ms ().c == u2->ms ().c && u1->ms ().o == u2->ms ().o && - u1->ms ().d == u2->ms ().d) - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence, unions matched\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "\tDII test_sequence failed on unions match\n")); - } - } - break; - } -#if 0 - } - else - { - ACE_DEBUG ((LM_DEBUG, - "DII test_sequence: typecode mismatch for element %d\n", i)); - break; - } -#endif - } - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_sequence failed: as2->length = %d\n", - as2->length ())); - } - CORBA::release (request); - CORBA::release (arglist); - CORBA::release (result); - CORBA::release (result_list); - return 0; -} - -int -Visi_Marshal_Client_Proxy::dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - // we will try a simple one here - Marshal::Marshal_Recursive mr1, *elem1, *mr2, *elem2; - - mr1.value <<= (CORBA::Long)1; - mr1.next.length (1); // sequence of length 1 - - // fill the element - elem1 = &mr1.next[0]; - elem1->value <<= CORBA::Any::from_char ('D'); - elem1->next.length (0); // end of seq - - mr2 = new Marshal::Marshal_Recursive; - - try { - ref_->test_recursive (mr1, mr2); - } - catch (CORBA::SystemException &se){ - cerr << "error invoking request: " << se << endl; - } - - elem2 = &mr2->next[0]; - - if ((*(CORBA::Long *)mr1.value.value () == *(CORBA::Long*)mr2->value.value ()) - && (mr1.next.length () == mr2->next.length ()) // same length sequence - && (*(CORBA::Char *)elem1->value.value () == *(CORBA::Char *)elem2->value.value ()) - && (elem1->next.length () == elem2->next.length ())) - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive success\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "DII test_recursive failure\n")); - } - - return 0; -} - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.h b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.h deleted file mode 100644 index def1c6189c2..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.h +++ /dev/null @@ -1,142 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Visibroker Benchmark -// -// = FILENAME -// visi_marshal_client.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_VISI_MARSHAL_CLIENT_H_) -#define _VISI_MARSHAL_CLIENT_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// include VisiBroker specific include files -#include "marshalC.h" // generated by IDL compiler -#include "pmcext.h" // VisiBroker extensions - -#if 0 -// Define an event handler specific to this class -class marshal_event_handler: public PMC_EXT::ClientEventHandler -{ - // =TITLE - // marshal_event_handler - // =DESCRIPTION - // event handler. Specifically, we use this to set socket buffer and no delay - // flags -public: - void bind_succeeded(CORBA::Object_ptr obj, - const PMC_EXT::ConnectionInfo &); - // on success from a bind call, set the desired quantities -}; -#endif - -class Visi_Marshal_Client_Proxy : public CORBA_Marshal_Proxy -{ - // =TITLE - // Visi_Marshal_Client_Proxy - // =DESCRIPTION - // VisiBroker client size specialization of the CORBA Marshal proxy class -public: - Visi_Marshal_Client_Proxy (void); - // constructor - - ~Visi_Marshal_Client_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work - - virtual int use_sii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the static invocation interface - - virtual int use_dii (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // use the dynamic invocation interface -private: - // =helper functions - int sii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int sii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - // all the DII helpers - int dii_test_short (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_long (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_octet (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_char (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_double (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_struct (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_union (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_any (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_sequence (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - int dii_test_recursive (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - - CORBA::ORB_ptr orb_; - // handle to the underlying orb - - Marshal_ptr ref_; - // the object reference -}; - -#if defined (__ACE_INLINE__) -#include "visi_marshal_client.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.i b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.i deleted file mode 100644 index 30c73abb503..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_client.i +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - - -ACE_INLINE -Visi_Marshal_Client_Proxy::Visi_Marshal_Client_Proxy (void) - : orb_ (CORBA_ORB::_nil ()), - ref_ (0) -{ -} - -ACE_INLINE -Visi_Marshal_Client_Proxy::~Visi_Marshal_Client_Proxy (void) -{ - // releasing order is important - - // release the reference - CORBA::release (ref_); - - // release the ORB - CORBA::release (orb_); -} - - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.cpp b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.cpp deleted file mode 100644 index 29d8a82d289..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.cpp +++ /dev/null @@ -1,331 +0,0 @@ -// $Id$ - -#include "visi_marshal_impl.h" - -#if !defined (__ACE_INLINE__) -#include "visi_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -// All the methods of the SSI class -void -Marshal_SSI_Impl::test_short (CORBA::Short s1, - CORBA::Short &s2) -{ - s2 = s1; -} - -void -Marshal_SSI_Impl::test_long (CORBA::Long l1, - CORBA::Long &l2) -{ - l2 = l1; -} - -void -Marshal_SSI_Impl::test_octet (CORBA::Octet o1, - CORBA::Octet &o2) -{ - o2 = o1; -} - -void -Marshal_SSI_Impl::test_char (CORBA::Char c1, - CORBA::Char &c2) -{ - c2 = c1; -} - -void -Marshal_SSI_Impl::test_double (CORBA::Double d1, - CORBA::Double &d2) -{ - d2 = d1; -} - -void -Marshal_SSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_SSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2) -{ - u2._d (u1._d ()); // set the discriminant value - - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_SSI_Impl::test_any (const CORBA::Any &a1, - CORBA::Any *&a2) -{ - a2 = new CORBA::Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_SSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2) -{ - as2 = new Marshal::AnySeq (as1); -} - -void -Marshal_SSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2) -{ -} - -//---------------------------------------------------------------------------- -//the methods of the DSI implementation class - -void -Marshal_DSI_Impl::invoke (CORBA::ServerRequest_ptr req) -{ - // parse the incoming request and find out for what operation it is. We use a - // simple linear search here - if (!ACE_OS::strcmp (req->op_name (), "test_short")) - { - test_short_skel (req); - } - else if (!ACE_OS::strcmp (req->op_name (), "test_long")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_octet")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_char")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_double")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_struct")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_union")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_any")) - { - } - else if (!ACE_OS::strcmp (req->op_name (), "test_sequence")) - { - } -} - -void -Marshal_DSI_Impl::test_short (CORBA::Short s1, - CORBA::Short &s2) -{ - s2 = 5*s1; -} - -void -Marshal_DSI_Impl::test_long (CORBA::Long l1, - CORBA::Long &l2) -{ - l2 = l1; -} - -void -Marshal_DSI_Impl::test_octet (CORBA::Octet o1, - CORBA::Octet &o2) -{ - o2 = o1; -} - -void -Marshal_DSI_Impl::test_char (CORBA::Char c1, - CORBA::Char &c2) -{ - c2 = c1; -} - -void -Marshal_DSI_Impl::test_double (CORBA::Double d1, - CORBA::Double &d2) -{ - d2 = d1; -} - -void -Marshal_DSI_Impl::test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2) -{ - ms2.s = ms1.s; - ms2.l = ms1.l; - ms2.c = ms1.c; - ms2.o = ms1.o; - ms2.d = ms1.d; -} - -void -Marshal_DSI_Impl::test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2) -{ - u2._d (u1._d ()); // set the discriminant value - - switch (u1._d ()) - { - case Marshal::e_0th: - u2.s (u1.s ()); // set short - break; - case Marshal::e_1st: - u2.l (u1.l ()); // set long - break; - case Marshal::e_2nd: - u2.c (u1.c ()); // set char - break; - case Marshal::e_3rd: - u2.o (u1.o ()); // set octet - break; - case Marshal::e_4th: - u2.d (u1.d ()); // set double - break; - case Marshal::e_5th: - default: - u2.ms (u1. ms ()); // set structs - break; - } -} - -void -Marshal_DSI_Impl::test_any (const CORBA::Any &a1, - CORBA::Any *&a2) -{ - a2 = new CORBA::Any (a1.type (), (void *)a1.value ()); // will do a deep copy -} - -void -Marshal_DSI_Impl::test_sequence (const Marshal::AnySeq& as1, - Marshal::AnySeq *& as2) -{ - as2 = new Marshal::AnySeq (as1); -} - -void -Marshal_DSI_Impl::test_recursive (const Marshal::Marshal_Recursive &mr1, - Marshal::Marshal_Recursive *&mr2) -{ -} - -// all the helper functions for the DSI class -void -Marshal_DSI_Impl::test_short_skel (CORBA::ServerRequest_ptr req) -{ - CORBA::NVList_var short_nv_; - CORBA::Any *any_s1, *any_s2; - CORBA::Short s1=0, - *s2=0; - - orb_->create_list (0, short_nv_); - - ACE_DEBUG ((LM_DEBUG, "short_nv_ created with %d nodes\n", short_nv_->count ())); - - any_s1 = new CORBA::Any (CORBA::_tc_short, &s1, 0); - s2 = new CORBA::Short; - any_s2 = new CORBA::Any (CORBA::_tc_short, s2, 1); - - short_nv_->add_value ("s1", *any_s1, CORBA::ARG_IN); - // if I do the next line, I get CORBA::Marshal exception from - // req->params. I don't know why - short_nv_->add_value ("s2", *any_s2, CORBA::ARG_OUT); - // However, the following line works. I think I know what is the - // problem. Since the 2nd argument is a ARG_OUT, we cannot add_value. We must - // just tell it what type to expect and leave it to the ORB to allocate the - // memory - //short_nv_->add_item ("s2", CORBA::ARG_OUT); - // My explanation is confirmed if I use the following in which case I get a - // marshaling exception. Thus, for OUT args, only add_item works. - // *(short_nv_->add (CORBA::ARG_OUT)->value ()) <<= s2; - - ACE_DEBUG ((LM_DEBUG, "short_nv_ created with %d nodes\n", short_nv_->count ())); - - try { - req->params (short_nv_); - } - catch (CORBA::SystemException &se) - { - cerr << "System Exception doing params: " << se << endl; - } - cout << "after params" << endl; - *(short_nv_->item (0)->value ()) >>= s1; - ACE_DEBUG ((LM_DEBUG, "s1 = %d\n", s1)); - test_short (s1, *s2); - // *(short_nv_->item (1)->value ()) <<= s2; - ACE_DEBUG ((LM_DEBUG, "s1 = %d, s2 = %d\n", s1, *s2)); - ACE_DEBUG ((LM_DEBUG, "short_nv_ after the call has %d nodes\n", short_nv_->count ())); -} - -void -Marshal_DSI_Impl::test_long_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_octet_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_char_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_double_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_struct_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_union_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_any_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_sequence_skel (CORBA::ServerRequest_ptr req) -{ -} - -void -Marshal_DSI_Impl::test_recursive_skel (CORBA::ServerRequest_ptr req) -{ -} diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.h b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.h deleted file mode 100644 index ec3b0ee0ef2..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.h +++ /dev/null @@ -1,179 +0,0 @@ -// $Id$ - -#if !defined (VISI_MARSHAL_IMPL_H) -#define VISI_MARSHAL_IMPL_H - -// to include DSI related files - -#include "ace/OS.h" - -#include "marshalS.h" - - -class Marshal_SSI_Impl - : public virtual _sk_Marshal -{ - // =TITLE - // Marshal_SSI_Impl - // =DESCRIPTION - // Implementation of the interface using the static skeleton interface -public: - Marshal_SSI_Impl (const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_SSI_Impl (void); - // destructor - - virtual void test_short (CORBA::Short s1, - CORBA::Short& s2); - // test short - - virtual void test_long (CORBA::Long l1, - CORBA::Long& l2); - // test long - - virtual void test_octet (CORBA::Octet o1, - CORBA::Octet& o2); - // test octet - - virtual void test_char (CORBA::Char c1, - CORBA::Char& c2); - // test char - - virtual void test_double (CORBA::Double d1, - CORBA::Double& d2); - // test double - - virtual void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2); - // test struct - - virtual void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2); - // test union - - virtual void test_any (const CORBA::Any& a1, - CORBA::Any *& a2); - // test any - - /* - virtual void test_sequence (const Marshal::ShortSeq& s1, - const Marshal::LongSeq& l1, - const Marshal::OctetSeq& o1, - const Marshal::CharSeq& c1, - const Marshal::DoubleSeq& d1, - const Marshal::StructSeq& S1, - const Marshal::UnionSeq& U1, - const Marshal::AnySeq& a1, - Marshal::ShortSeq *& s2, - Marshal::LongSeq *& l2, - Marshal::OctetSeq *& o2, - Marshal::CharSeq *& c2, - Marshal::DoubleSeq *& d2, - Marshal::StructSeq *& S2, - Marshal::UnionSeq *& U2, - Marshal::AnySeq *& a2); - */ - virtual void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2); - // test sequence - - virtual void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2); - // test struct - -}; - -class Marshal_DSI_Impl : public CORBA::DynamicImplementation -{ - // =TITLE - // Marshal_DSI_Impl - // =DESCRIPTION - // Implementation of the interface using the dynamic skeleton interface -public: - Marshal_DSI_Impl (CORBA::ORB_ptr orb, const char *object_name = (const char *)NULL); - // constructor - - ~Marshal_DSI_Impl (void); - // destructor - - virtual void invoke (CORBA::ServerRequest_ptr req); - // This method is a must - -private: - void test_short (CORBA::Short s1, - CORBA::Short& s2); - // test short - - void test_long (CORBA::Long l1, - CORBA::Long& l2); - // test long - - void test_octet (CORBA::Octet o1, - CORBA::Octet& o2); - // test octet - - void test_char (CORBA::Char c1, - CORBA::Char& c2); - // test char - - void test_double (CORBA::Double d1, - CORBA::Double& d2); - // test double - - void test_struct (const Marshal::Marshal_Struct& ms1, - Marshal::Marshal_Struct& ms2); - // test struct - - void test_union (const Marshal::Marshal_Union& u1, - Marshal::Marshal_Union& u2); - // test union - - void test_any (const CORBA::Any& a1, - CORBA::Any *& a2); - // test any - - void test_sequence (const Marshal::AnySeq& a1, - Marshal::AnySeq *& a2); - // test sequence - - void test_recursive (const Marshal::Marshal_Recursive& mr1, - Marshal::Marshal_Recursive *& mr2); - // test struct - -private: - //= helper functions - they behave as if they were skeletons - void test_short_skel (CORBA::ServerRequest_ptr req); - void test_long_skel (CORBA::ServerRequest_ptr req); - void test_octet_skel (CORBA::ServerRequest_ptr req); - void test_char_skel (CORBA::ServerRequest_ptr req); - void test_double_skel (CORBA::ServerRequest_ptr req); - void test_struct_skel (CORBA::ServerRequest_ptr req); - void test_union_skel (CORBA::ServerRequest_ptr req); - void test_any_skel (CORBA::ServerRequest_ptr req); - void test_sequence_skel (CORBA::ServerRequest_ptr req); - void test_recursive_skel (CORBA::ServerRequest_ptr req); - - // we need the orb to create argument lists (NVList) for us - CORBA::ORB_ptr orb_; // not owned by us - -#if 0 - CORBA::NVList_ptr short_nv_; - CORBA::NVList_ptr long_nv_; - CORBA::NVList_ptr octet_nv_; - CORBA::NVList_ptr char_nv_; - CORBA::NVList_ptr double_nv_; - CORBA::NVList_ptr struct_nv_; - CORBA::NVList_ptr union_nv_; - CORBA::NVList_ptr any_nv_; - CORBA::NVList_ptr seq_nv_; - CORBA::NVList_ptr recursive_nv_; - CORBA::Any_ptr result_; // void result -#endif -}; - -#if defined (__ACE_INLINE__) -#include "visi_marshal_impl.i" -#endif /* __ACE_INLINE__ */ - -#endif // defined (VISI_MARSHAL_IMPL_H) diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.i b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.i deleted file mode 100644 index 7e9405f734b..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_impl.i +++ /dev/null @@ -1,30 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Marshal_SSI_Impl::Marshal_SSI_Impl (const char *obj_name) - : _sk_Marshal (obj_name) -{ -} - -// destructor -ACE_INLINE -Marshal_SSI_Impl::~Marshal_SSI_Impl (void) -{ -} - -// constructor -ACE_INLINE -Marshal_DSI_Impl::Marshal_DSI_Impl (CORBA::ORB_ptr orb, const char *obj_name) - : orb_ (orb), - CORBA::DynamicImplementation ("Marshal", obj_name) // interface name is necessary -{ -} - -// destructor -ACE_INLINE -Marshal_DSI_Impl::~Marshal_DSI_Impl (void) -{ - orb_ = CORBA::ORB::_nil (); -} - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.cpp b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.cpp deleted file mode 100644 index 334c80f30cd..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Visibroker marshal benchmark -// -// = FILENAME -// visi_marshal_server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "visi_marshal_server.h" - -#if !defined (__ACE_INLINE__) -#include "visi_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -int -Visi_Marshal_Server_Proxy::run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results) -{ - char **argv; - int argc; - - // get the argument list to be passed on to the ORB_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->orb_ = CORBA::ORB_init (argc, (char *const *)argv); - if (this->orb_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // get the argument list to be passed on to the BOA_init method - argv = options.orb_init_args (argc); - - // get the orb. Pass any ORB_init arguments - this->boa_ = this->orb_->BOA_init (argc, (char *const *)argv); - if (this->boa_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB_init failed\n")); - return -1; - } - - // tell the "results" object what file it must store the results into - results.filename (options.filename ()); - - // use SII or DII accordingly - switch (options.policy ()) - { - case CORBA_Marshal_Options::STATIC : // use SSI - this->ssi_ = new Marshal_SSI_Impl (options.object_name ()); - // register with the BOA - this->boa_->obj_is_ready (this->ssi_); - break; - case CORBA_Marshal_Options::DYNAMIC : // use DSI - this->dsi_ = new Marshal_DSI_Impl (this->orb_, ACE_OS::strdup (options.object_name ())); - // register with the BOA - try { - this->boa_->obj_is_ready (this->dsi_); - } - catch (CORBA::SystemException &se) - { - cerr << "system exception in obj_is_ready" << se << endl; - } - break; - default: - ACE_DEBUG ((LM_DEBUG, "bad policy\n")); - return -1; - } - - try { - // call impl_is_ready - this->boa_->impl_is_ready (); - } - catch (CORBA::SystemException &se) - { - cerr << "system exception: " << se << endl; - } - return 0; -} - diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.h b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.h deleted file mode 100644 index 36076c8fe90..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.h +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Marshal Visibroker Benchmark -// -// = FILENAME -// visi_marshal_server.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_VISI_MARSHAL_SERVER_H_) -#define _VISI_MARSHAL_SERVER_H_ - -// benchmark library includes -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" -#include "benchmark/marshal_proxy.h" - -// implementation classes -#include "visi_marshal_impl.h" - -// include VisiBroker specific include files -#include "marshalS.h" // generated by IDL compiler -#include "pmcext.h" // VisiBroker extensions - -class Visi_Marshal_Server_Proxy : public CORBA_Marshal_Proxy -{ -public: - Visi_Marshal_Server_Proxy (void); - // constructor - - ~Visi_Marshal_Server_Proxy (void); - // destructor - - virtual int run (CORBA_Marshal_Proxy::OPTIONS &options, - CORBA_Marshal_Proxy::RESULTS &results); - // do the actual work -private: - CORBA::ORB_ptr orb_; - // underlying orb; - - CORBA::BOA_ptr boa_; - // underlying boa; - - Marshal_SSI_Impl *ssi_; - Marshal_DSI_Impl *dsi_; - // the implementation (SSI or DSI) -}; - - -#if defined (__ACE_INLINE__) -#include "visi_marshal_server.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.i b/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.i deleted file mode 100644 index d43226e0f57..00000000000 --- a/TAO/Benchmark/Marshal_Test/VisiBroker/visi_marshal_server.i +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -// constructor -ACE_INLINE -Visi_Marshal_Server_Proxy::Visi_Marshal_Server_Proxy (void) - : orb_ (0), - boa_ (0), - ssi_ (0), - dsi_ (0) -{ -} - -// destructor -ACE_INLINE -Visi_Marshal_Server_Proxy::~Visi_Marshal_Server_Proxy (void) -{ - // releasing order is important - - // release the impl - delete ssi_; - delete dsi_; - - // release the BOA - CORBA::release (boa_); - - // release the ORB - CORBA::release (orb_); -} diff --git a/TAO/Benchmark/benchmark/Makefile b/TAO/Benchmark/benchmark/Makefile deleted file mode 100644 index 9f5327741bf..00000000000 --- a/TAO/Benchmark/benchmark/Makefile +++ /dev/null @@ -1,125 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the CORBA_Benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LIBNAME = libbenchmark -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) - -FILES = driver \ - marshal_options \ - marshal_results \ - marshal_proxy - -LSRC = $(addsuffix .cpp,$(FILES)) - -LDLIBS = -lACE -LIBS = -lACE -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VSHLIB) $(VLIB) - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#---------------------------------------------------------------------------- -# 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 modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -CPPFLAGS += -I$(TAO_ROOT)/Benchmark/ - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/driver.o .shobj/driver.so: driver.cpp \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/driver.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i -.obj/marshal_options.o .shobj/marshal_options.so: marshal_options.cpp \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_options.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_options.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/marshal_results.o .shobj/marshal_results.so: marshal_results.cpp \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_results.h \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_results.i -.obj/marshal_proxy.o .shobj/marshal_proxy.so: marshal_proxy.cpp \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_proxy.h \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_options.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_options.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_results.h \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_results.i \ - $(ACE_ROOT)/TAO/Benchmark/benchmark/marshal_proxy.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/Benchmark/benchmark/driver.cpp b/TAO/Benchmark/benchmark/driver.cpp deleted file mode 100644 index ab9c67a3981..00000000000 --- a/TAO/Benchmark/benchmark/driver.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -#include "benchmark/driver.h" - -template -CORBA_Benchmark_Driver::CORBA_Benchmark_Driver (T *proxy) - : proxy_ (proxy) -{ -} - -template -CORBA_Benchmark_Driver::~CORBA_Benchmark_Driver (void) -{ - delete proxy_; -} - -template -int -CORBA_Benchmark_Driver::run (int argc, char *argv[]) -{ - // The run method delegates the task of parsing the command line options to - // the options data member - if (this->options_.parse_args (argc, argv) == -1) - { - ACE_DEBUG ((LM_DEBUG, "CORBA_Benchmark_Driver cannot parse arguments\n")); - return -1; - } - -#if 0 - // get a handle to the proxy - this->proxy_ = this->options_.make_proxy (); - if (this->proxy_ == 0) - { - ACE_DEBUG ((LM_DEBUG, "CORBA_Benchmark_Driver cannot make proxy\n")); - return -1; - } -#endif - - // The driver delegates the task of running the test to the newly created - // proxy - if (this->proxy_->run (this->options_, this->results_) == -1) - { - ACE_DEBUG ((LM_DEBUG, "CORBA_Benchmark_Driver cannot run\n")); - return -1; - } - - // The driver delegates the task of printing the results to the TTCP_Results - // class - if (this->results_.print_results () == -1) - { - ACE_DEBUG ((LM_DEBUG, "CORBA_Benchmark_Driver cannot print results\n")); - return -1; - } - - return 0; -} - - diff --git a/TAO/Benchmark/benchmark/driver.h b/TAO/Benchmark/benchmark/driver.h deleted file mode 100644 index 690041eac73..00000000000 --- a/TAO/Benchmark/benchmark/driver.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark -// -// = FILENAME -// driver.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_CORBA_BENCHMARK_DRIVER_H_) -#define _CORBA_BENCHMARK_DRIVER_H_ - -#include "ace/Log_Msg.h" - -template -class CORBA_Benchmark_Driver -{ - // = TITLE - // CORBA Benchmark Driver. - // - // = DESCRIPTION - // This class encapsulates all the driver common to the CORBA benchmark - // tests. It provides a template to run the benchmarking code. The real - // work will be done by the PROXY class. -public: - - CORBA_Benchmark_Driver (PROXY *p); - // Constructor. - - ~CORBA_Benchmark_Driver (void); - // Destructor - - int run (int argc, char *argv[]); - // This is the starting point of all CORBA benchmark tests. - // Returns 0 on success, -1 on error. - -private: - PROXY *proxy_; - // the actual object that will do the work - - PROXY::RESULTS results_; - // Storage of test results. - - PROXY::OPTIONS options_; - // CORBA test command line options -}; - -#endif /* CORBA_BENCHMARK_DRIVER_H */ diff --git a/TAO/Benchmark/benchmark/marshal_options.cpp b/TAO/Benchmark/benchmark/marshal_options.cpp deleted file mode 100644 index 1ff157826b2..00000000000 --- a/TAO/Benchmark/benchmark/marshal_options.cpp +++ /dev/null @@ -1,280 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark -// -// = FILENAME -// marshal_options.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "benchmark/marshal_options.h" -#include "ace/Get_Opt.h" - -#if !defined (__ACE_INLINE__) -#include "benchmark/marshal_options.i" -#endif /* __ACE_INLINE__ */ - -static char *usage_string = -"Marshal_Test available options: \n\ --d : set debug ON \n\ --D : set TCP NO DELAY on \n\ --n : set the service name\n\ --s : set sender sock buf \n\ --r : set recv sock buf \n\ --h : hostname to listen/connect \n\ --p : port num to listen \n\ --i : number of iters \n\ --R : s(ender)/r(eceiver) \n\ --T : s(hort)/l(ong)/d(ouble)/o(ctet)/c(har)/\n\ - S(truct)/U(nion)/A(ny)/(se)Q/R(ecursive)\n\ --P : S(II/SI)/D(II/SI) depending on role \n\ --I : O(rbix)/V(isiBroker)/T(AO)\n\ --o : obj to bind to \n\ --f : filename to store results \n\ -"; - -int -CORBA_Marshal_Options::Usage (void) -{ - ACE_DEBUG ((LM_DEBUG, "%s\n", usage_string)); - return -1; -} - -int -CORBA_Marshal_Options::parse_args (int argc, char *argv []) -{ - int c; // option letter used - ACE_Get_Opt get_opt (argc, argv, "dDn:s:r:h:p:i:R:T:P:I:o:f:"); - - // ACE_DEBUG ((LM_DEBUG, "CORBA_Marshal_Options::parse_args\n")); - - while ((c = get_opt ()) != -1) - { - switch (c) - { - case 'd': // debug - this->debug (1); - break; - case 'D': // TCP NODELAY - this->disable_nagle (1); - break; - case 'n': - this->service_name (get_opt.optarg); - break; - case 's': // sender socket size - this->snd_socket_queue_size (ACE_OS::atoi (get_opt.optarg)); - break; - case 'r': // receive socket size - this->rcv_socket_queue_size (ACE_OS::atoi (get_opt.optarg)); - break; - case 'h': // hostname - this->hostname (ACE_OS::strdup (get_opt.optarg)); - break; - case 'p': // port number - this->port (ACE_OS::atoi (get_opt.optarg)); - break; - case 'i': // port number - this->iterations (ACE_OS::atoi (get_opt.optarg)); - break; - case 'R': // role - switch (*get_opt.optarg) - { - case 'S': // sender - case 's': // sender - this->role (SENDER); - break; - case 'R': // receiver - case 'r': // receiver - this->role (RECEIVER); - break; - default: - return this->Usage (); - } - break; - case 'T': // data type to test - switch (*get_opt.optarg) - { - case 's': // short - this->data_type (SHORT); - break; - case 'd': // double - this->data_type (DOUBLE); - break; - case 'o': // octet - this->data_type (OCTET); - break; - case 'c': // char - this->data_type (CHAR); - break; - case 'S': // Struct - this->data_type (STRUCT); - break; - case 'U': // Union - this->data_type (UNION); - break; - case 'A': // Any - this->data_type (ANY); - break; - case 'Q': // Sequence - this->data_type (SEQUENCE); - break; - case 'R': // Recursive - this->data_type (RECURSIVE); - break; - case 'l': // long, also the default - default: - this->data_type (LONG); - break; - } - break; - case 'P': // policy - switch (*get_opt.optarg) - { - case 'S': - case 's': - this->policy (STATIC); - break; - case 'D': - case 'd': - this->policy (DYNAMIC); - break; - default: - return this->Usage (); - } - break; - case 'I': // impl - switch (*get_opt.optarg) - { - case 'O': // Orbix - this->proxy_type (ORBIX); - break; - case 'V': // VisiBroker - this->proxy_type (VISIBROKER); - break; - case 'T': // TAO - this->proxy_type (TAO); - break; - } - break; - case 'o': // obj name - this->object_name (ACE_OS::strdup (get_opt.optarg)); - break; - case 'f': // file name to save results - this->filename (ACE_OS::strdup (get_opt.optarg)); - break; - default: // error - return this->Usage (); - } - } - return 0; -} - -int -CORBA_Marshal_Options::orb_init_args (int &argc, char *argv []) -{ - char buffer [200]; - - argc = 0; - switch (this->proxy_type_) - { - case ORBIX: - break; - case VISIBROKER: - { - ACE_OS::memset (buffer, '\0', 200); - if (snd_socket_queue_size_ > 0) - { - ACE_OS::sprintf (buffer, "-ORBsendbufsize %d", snd_socket_queue_size_); - orb_init_args_ += ACE_CString (buffer); - argc ++; - } - - ACE_OS::memset (buffer, '\0', 200); - if (rcv_socket_queue_size_ > 0) - { - ACE_OS::sprintf (buffer, "-ORBrcvbufsize %d", rcv_socket_queue_size_); - orb_init_args_ += ACE_CString (buffer); - argc ++; - } - } - break; - case TAO: - break; - } - ACE_OS::memset (buffer, '\0', 200); - ACE_OS::memcpy (buffer, boa_init_args_.rep (), boa_init_args_.length ()); - return 0; -} - -static char buffer [20][200]; - -int -CORBA_Marshal_Options::boa_init_args (int &argc, char *argv []) -{ - argc = 0; - switch (this->proxy_type_) - { - case ORBIX: - break; - case VISIBROKER: - { - ACE_OS::memset (buffer[argc], '\0', 200); - if (snd_socket_queue_size_ > 0) - { - ACE_OS::sprintf (buffer[argc], "-OAsendbufsize %d", snd_socket_queue_size_); - // boa_init_args_ += ACE_CString (buffer[argc]); - argc ++; - } - ACE_OS::memset (buffer[argc], '\0', 200); - if (rcv_socket_queue_size_ > 0) - { - ACE_OS::sprintf (buffer[argc], "-OArcvbufsize %d", rcv_socket_queue_size_); - // boa_init_args_ += ACE_CString (buffer[argc]); - argc ++; - } - ACE_OS::memset (buffer[argc], '\0', 200); - if (port_ > 0) - { - ACE_OS::sprintf (buffer[argc], "-OAport %d", port_); - // boa_init_args_ += ACE_CString (buffer[argc]); - argc ++; - } - ACE_OS::memset (buffer[argc], '\0', 200); - if (hostname_ != 0 && role_ == RECEIVER) - { - ACE_OS::sprintf (buffer[argc], "-OAipaddr %s", hostname_); - // boa_init_args_ += ACE_CString (buffer[argc]); - argc ++; - } - } - break; - case TAO: - { - ACE_OS::memset (buffer[argc], '\0', 200); - if (port_ > 0) - { - ACE_OS::sprintf (buffer[argc], "-OAport %d", port_); - // boa_init_args_ += ACE_CString (buffer); - argc ++; - } - ACE_OS::memset (buffer[argc], '\0', 200); - if (hostname_ != 0 && role_ == RECEIVER) - { - ACE_OS::sprintf (buffer[argc], "-OAhostname %s", hostname_); - // boa_init_args_ += ACE_CString (buffer); - argc ++; - } - } - break; - } - // ACE_OS::memset (buffer, '\0', 200); - // ACE_OS::memcpy (buffer, boa_init_args_.rep (), boa_init_args_.length ()); - return 0; -} - diff --git a/TAO/Benchmark/benchmark/marshal_options.h b/TAO/Benchmark/benchmark/marshal_options.h deleted file mode 100644 index 51a02a38ffa..00000000000 --- a/TAO/Benchmark/benchmark/marshal_options.h +++ /dev/null @@ -1,209 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark/Marshal -// -// = FILENAME -// marshal_options.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_CORBA_MARSHAL_OPTIONS_H_) -#define _CORBA_MARSHAL_OPTIONS_H_ - -#include "ace/OS.h" -#include "ace/SString.h" - -class CORBA_Marshal_Options -{ - // = TITLE - // CORBA_Marshal_Options - // = DESCRIPTION - // An encapsulation of all the CORBA_MARSHAL test parameters. This is - // used to communicate between the ACE_CORBA_Marshal_Driver and all - // specializations of CORBA_Marshal_Proxy. It must be noted that not all - // options will be valid for a given specialization of CORBA_Marshal_Proxy. This is - // a "all-encompassing" class. -public: - // The following data types will be tested - enum DATATYPE - { - NO_DATATYPE, - SHORT, - LONG, - DOUBLE, - CHAR, - OCTET, - STRUCT, - UNION, - ANY, - SEQUENCE, - RECURSIVE - }; - - // The following CORBA implementations will be tested - enum PROXY_TYPE - { - NO_PROXY, - TAO, - ORBIX, - VISIBROKER - }; - - // Invocation policy - enum POLICY - { - NO_POLICY, - STATIC, // SII, SSI - DYNAMIC // DII, DSI - }; - - // what role do we play? - enum ROLE - { - NO_ROLE, - SENDER, - RECEIVER - }; - - CORBA_Marshal_Options (void); - // Construction. Sets default values. - - ~CORBA_Marshal_Options (void); - // Destructor - - int parse_args (int argc, char *argv[]); - // Parse command line arguments. This decides what type of CORBA_MARSHAL - // test to run. - - // All the command line options - - //= Get/Set the data type to be sent/received - CORBA_Marshal_Options::DATATYPE data_type (void); - void data_type (CORBA_Marshal_Options::DATATYPE); - - //= Get/set the proxy type - CORBA_Marshal_Options::PROXY_TYPE proxy_type (void); - void proxy_type (CORBA_Marshal_Options::PROXY_TYPE); - - //= Get/Set the policy used by clients/servers for communication - CORBA_Marshal_Options::POLICY policy (void); - void policy (CORBA_Marshal_Options::POLICY); - - //= Get/Set whether we are client or server (sender/receiver) - CORBA_Marshal_Options::ROLE role (void); - void role (CORBA_Marshal_Options::ROLE); - - //= Get/Set the hostname client connects to or the interface on which the - //server listens to - const char *hostname (void); - void hostname (const char *); - - //= Get/set the port number on which the server listens - short port (void); - void port (short); - - //= Get/Set the object name (to which to connect to) - const char *object_name (void); - void object_name (const char *); - - //= Get/Set the service name (for impl is ready) - const char *service_name (void); - void service_name (const char *); - - // = Get/set receive sockbufsize. - int rcv_socket_queue_size (void); - void rcv_socket_queue_size (int); - - // = Get/set send sockbufsize. - int snd_socket_queue_size (void); - void snd_socket_queue_size (int); - - // = Get/set whether to use TCP_NODELAY or not - unsigned short disable_nagle (void); - void disable_nagle (unsigned short); - - // = Get/set whether to print debug messages. - unsigned short debug (void); - void debug (unsigned short); - - // =Get/Set filename to store results - const char *filename (void); - void filename (const char *fname); - - // =Get/set number of iterations - int iterations (void); - void iterations (int iter); - - int Usage (void); - // prints a usage message and always returns -1 - - int orb_init_args (int &argc, char * argv []); - // return a string that will be passed to the ORB init method based on the - // other options and proxy type - - int boa_init_args (int &argc, char * argv []); - // return a string that will be passed to the BOA init method based on the - // other options and proxy type - -private: - const char *object_name_; - // name of the object. - - const char *service_name_; - // name of the service. - - CORBA_Marshal_Options::DATATYPE data_type_; - // data type to send/receive - - CORBA_Marshal_Options::PROXY_TYPE proxy_type_; - // the proxy type, e.g., ACE, Orbix, VisiBroker, etc - - CORBA_Marshal_Options::POLICY policy_; - // communications policy used by the communicating entity - - CORBA_Marshal_Options::ROLE role_; - // Are we creating a sender or receiver? - - int rcv_socket_queue_size_; - // Size of socket queue. - - int snd_socket_queue_size_; - // Size of socket queue. - - unsigned short disable_nagle_; - // Nagle must be stopped. - - unsigned short debug_; - // Should we print debug messages? - - short port_; - // Port for socket connections to use. - - const char *hostname_; - // Host for senders to connect to. and servers to listen on - - const char *filename_; - // filename in which to store the results - - int iterations_; - // number of times to run the same test - - ACE_CString orb_init_args_; - // arguments to orb_init - - ACE_CString boa_init_args_; - // arguments to boa_init - -}; - -#if defined (__ACE_INLINE__) -#include "benchmark/marshal_options.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/benchmark/marshal_options.i b/TAO/Benchmark/benchmark/marshal_options.i deleted file mode 100644 index 6c860fac93c..00000000000 --- a/TAO/Benchmark/benchmark/marshal_options.i +++ /dev/null @@ -1,235 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark/Marshal -// -// = FILENAME -// marshal_options.i -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -// constructor -ACE_INLINE -CORBA_Marshal_Options::CORBA_Marshal_Options (void) - : object_name_ (0), - data_type_ (CORBA_Marshal_Options::NO_DATATYPE), - proxy_type_ (CORBA_Marshal_Options::NO_PROXY), - policy_ (CORBA_Marshal_Options::NO_POLICY), - role_ (CORBA_Marshal_Options::NO_ROLE), - rcv_socket_queue_size_ (-1), - snd_socket_queue_size_ (-1), - disable_nagle_ (0), - debug_ (0), - hostname_ (0), - port_ (-1), - iterations_ (0) -{ -} - - -// destructor -ACE_INLINE -CORBA_Marshal_Options::~CORBA_Marshal_Options (void) -{ -} - -// set the data type to be transferred -ACE_INLINE void -CORBA_Marshal_Options::data_type (CORBA_Marshal_Options::DATATYPE dt) -{ - data_type_ = dt; -} - -// get the data type to be transferred -ACE_INLINE CORBA_Marshal_Options::DATATYPE -CORBA_Marshal_Options::data_type (void) -{ - return data_type_; -} - -// set the proxy type to be transferred -ACE_INLINE void -CORBA_Marshal_Options::proxy_type (CORBA_Marshal_Options::PROXY_TYPE pt) -{ - proxy_type_ = pt; -} - -// get the data type to be transferred -ACE_INLINE CORBA_Marshal_Options::PROXY_TYPE -CORBA_Marshal_Options::proxy_type (void) -{ - return proxy_type_; -} - -// set the policy type to be transferred -ACE_INLINE void -CORBA_Marshal_Options::policy (CORBA_Marshal_Options::POLICY inv) -{ - policy_ = inv; -} - -// get the policy type to be transferred -ACE_INLINE CORBA_Marshal_Options::POLICY -CORBA_Marshal_Options::policy (void) -{ - return policy_; -} - -// set the role type to be transferred -ACE_INLINE void -CORBA_Marshal_Options::role (CORBA_Marshal_Options::ROLE my_role) -{ - role_ = my_role; -} - -// get the role type to be transferred -ACE_INLINE CORBA_Marshal_Options::ROLE -CORBA_Marshal_Options::role (void) -{ - return role_; -} - -// set the hostname -ACE_INLINE void -CORBA_Marshal_Options::hostname (const char *hname) -{ - hostname_ = hname; -} - -// get the hostname -ACE_INLINE const char* -CORBA_Marshal_Options::hostname (void) -{ - return hostname_; -} - -// set the post -ACE_INLINE void -CORBA_Marshal_Options::port (short portnum) -{ - port_ = portnum; -} - -// get the port -ACE_INLINE short -CORBA_Marshal_Options::port (void) -{ - return port_; -} - -// set the object name -ACE_INLINE void -CORBA_Marshal_Options::object_name (const char *objname) -{ - object_name_ = objname; -} - -// get the object name -ACE_INLINE const char * -CORBA_Marshal_Options::object_name (void) -{ - return object_name_; -} - -// set the service name -ACE_INLINE void -CORBA_Marshal_Options::service_name (const char *srvname) -{ - service_name_ = srvname; -} - -// get the service name -ACE_INLINE const char * -CORBA_Marshal_Options::service_name (void) -{ - return service_name_; -} - -// set the receive sock size -ACE_INLINE void -CORBA_Marshal_Options::rcv_socket_queue_size (int socksize) -{ - rcv_socket_queue_size_ = socksize; -} - -// get the receive sock size -ACE_INLINE int -CORBA_Marshal_Options::rcv_socket_queue_size (void) -{ - return rcv_socket_queue_size_; -} - -// set the sender sock size -ACE_INLINE void -CORBA_Marshal_Options::snd_socket_queue_size (int socksize) -{ - snd_socket_queue_size_ = socksize; -} - -// get the snd sock size -ACE_INLINE int -CORBA_Marshal_Options::snd_socket_queue_size (void) -{ - return snd_socket_queue_size_; -} - -// set whether Nagle algo is to be disabled -ACE_INLINE void -CORBA_Marshal_Options::disable_nagle (unsigned short val) -{ - disable_nagle_ = (val ? 1 : 0); -} - -// get whether Nagle algo is disabled -ACE_INLINE unsigned short -CORBA_Marshal_Options::disable_nagle (void) -{ - return disable_nagle_; -} - -// set whether debug is to be disabled -ACE_INLINE void -CORBA_Marshal_Options::debug (unsigned short val) -{ - debug_ = (val ? 1 : 0); -} - -// get whether debug is disabled -ACE_INLINE unsigned short -CORBA_Marshal_Options::debug (void) -{ - return debug_; -} - -// set the filename -ACE_INLINE void -CORBA_Marshal_Options::filename (const char *fname) -{ - filename_ = fname; -} - -// get the filename -ACE_INLINE const char* -CORBA_Marshal_Options::filename (void) -{ - return filename_; -} - -// set the iterations -ACE_INLINE void -CORBA_Marshal_Options::iterations (int iter) -{ - iterations_ = iter; -} - -// get the iterations -ACE_INLINE int -CORBA_Marshal_Options::iterations (void) -{ - return iterations_; -} diff --git a/TAO/Benchmark/benchmark/marshal_proxy.cpp b/TAO/Benchmark/benchmark/marshal_proxy.cpp deleted file mode 100644 index 7a5a05e9a7a..00000000000 --- a/TAO/Benchmark/benchmark/marshal_proxy.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark -// -// = FILENAME -// marshal_proxy.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "benchmark/marshal_proxy.h" - -#if !defined (__ACE_INLINE__) -#include "benchmark/marshal_proxy.i" -#endif /* __ACE_INLINE__ */ - diff --git a/TAO/Benchmark/benchmark/marshal_proxy.h b/TAO/Benchmark/benchmark/marshal_proxy.h deleted file mode 100644 index 7b3951f4e11..00000000000 --- a/TAO/Benchmark/benchmark/marshal_proxy.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark -// -// = FILENAME -// marshal_proxy.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined(_CORBA_MARSHAL_PROXY_H_) -#define _CORBA_MARSHAL_PROXY_H_ - -#include "benchmark/marshal_options.h" -#include "benchmark/marshal_results.h" - -class CORBA_Marshal_Proxy -{ - // = TITLE - // Abstract handle for all CORBA_Marshal tests. - // = DESCRIPTION - // The IMPL class is the CORBA specific class which does the real work. The - // IMPL class must support the run method -public: - typedef CORBA_Marshal_Options OPTIONS; - typedef CORBA_Marshal_Results RESULTS; - - CORBA_Marshal_Proxy (void); - // constructor - - virtual ~CORBA_Marshal_Proxy (void); - // destructor - - virtual int run (OPTIONS &, RESULTS &) = 0; - // run the test - -}; - -#if defined (__ACE_INLINE__) -#include "benchmark/marshal_proxy.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/benchmark/marshal_proxy.i b/TAO/Benchmark/benchmark/marshal_proxy.i deleted file mode 100644 index a5e95d393cd..00000000000 --- a/TAO/Benchmark/benchmark/marshal_proxy.i +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - - -ACE_INLINE -CORBA_Marshal_Proxy::CORBA_Marshal_Proxy (void) -{ -} - -ACE_INLINE -CORBA_Marshal_Proxy::~CORBA_Marshal_Proxy (void) -{ -} diff --git a/TAO/Benchmark/benchmark/marshal_results.cpp b/TAO/Benchmark/benchmark/marshal_results.cpp deleted file mode 100644 index 1231fe38b22..00000000000 --- a/TAO/Benchmark/benchmark/marshal_results.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark/Marshal -// -// = FILENAME -// marshal_results.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "benchmark/marshal_results.h" - -#if !defined (__ACE_INLINE__) -#include "benchmark/marshal_results.i" -#endif /* __ACE_INLINE__ */ - -int -CORBA_Marshal_Results::log_results (void) -{ - return 0; -} - -int -CORBA_Marshal_Results::print_results (void) -{ - // ACE_DEBUG ((LM_DEBUG, "CORBA_Marshal_Results::print_results\n")); - - return 0; // success -} diff --git a/TAO/Benchmark/benchmark/marshal_results.h b/TAO/Benchmark/benchmark/marshal_results.h deleted file mode 100644 index 5d635cf83d7..00000000000 --- a/TAO/Benchmark/benchmark/marshal_results.h +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark -// -// = FILENAME -// marshal_results.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_CORBA_MARSHAL_RESULTS_H_) -#define _CORBA_MARSHAL_RESULTS_H_ - -#include "ace/Profile_Timer.h" - -class CORBA_Marshal_Results -{ -public: - CORBA_Marshal_Results (void); - // Construction. - - ~CORBA_Marshal_Results (void); - // destructor. - - void clear (void); - // Clear all results. - - ACE_Profile_Timer::ACE_Elapsed_Time & elapsed_time (void); - // Get the elapsed time. - - ACE_Profile_Timer::Rusage elapsed_rusage (void); - // compute the rusage - - int start_timer (void); - // starts a profile timer. - - int stop_timer (void); - // stops the profile timer. - - void filename (const char *fname); - // set the name of the file to store results - - int log_results (void); - // log results - - int print_results (void); - // prints the results - -private: - - // = Used for performance statistics - ACE_Profile_Timer timer_; - ACE_Profile_Timer::ACE_Elapsed_Time et_; - ACE_Profile_Timer::Rusage rusage_; - - double elapsed_time_; - // Real elapsed time in seconds. - - const char *filename_; - // filename -}; - -#if defined (__ACE_INLINE__) -#include "benchmark/marshal_results.i" -#endif /* __ACE_INLINE__ */ - -#endif diff --git a/TAO/Benchmark/benchmark/marshal_results.i b/TAO/Benchmark/benchmark/marshal_results.i deleted file mode 100644 index aa914b2f3d3..00000000000 --- a/TAO/Benchmark/benchmark/marshal_results.i +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// CORBA Benchmark/Marshal -// -// = FILENAME -// marshal_results.i -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -ACE_INLINE -CORBA_Marshal_Results::CORBA_Marshal_Results (void) - : filename_ (0), - elapsed_time_ (0) -{ -} - -ACE_INLINE -CORBA_Marshal_Results::~CORBA_Marshal_Results (void) -{ -} - -ACE_INLINE int -CORBA_Marshal_Results::start_timer (void) -{ - return this->timer_.start (); -} - -ACE_INLINE int -CORBA_Marshal_Results::stop_timer (void) -{ - return this->timer_.stop (); -} - -ACE_INLINE ACE_Profile_Timer::ACE_Elapsed_Time & -CORBA_Marshal_Results::elapsed_time (void) -{ - (void) this->timer_.elapsed_time (this->et_); - return this->et_; -} - -ACE_INLINE ACE_Profile_Timer::Rusage -CORBA_Marshal_Results::elapsed_rusage (void) -{ - (void) this->timer_.elapsed_rusage (this->rusage_); - return this->rusage_; -} - -ACE_INLINE void -CORBA_Marshal_Results::filename (const char *fname) -{ - this->filename_ = fname; -} - - diff --git a/TAO/IIOP/Build/default.bld b/TAO/IIOP/Build/default.bld deleted file mode 100755 index 7b67d4a13c9..00000000000 --- a/TAO/IIOP/Build/default.bld +++ /dev/null @@ -1,16 +0,0 @@ -#!build -default: - nobuild - :debuglevel=multi -tao.bld - library - :cx_e_option=nomsgnumbers - :dependency=nodepend - :cx_silent=1 - :cx_silent=21 - :cx_silent=191 - :sourcedirs=/home/ace/ACE_wrappers.vxworks - :sourcedirs=../lib - :sourcedirs=.. - :libraries=/home/ace/ACE_wrappers.vxworks/libACE.a - :libraries=/appl/newgreen/vxppc603/indlib.o diff --git a/TAO/IIOP/Build/tao.bld b/TAO/IIOP/Build/tao.bld deleted file mode 100755 index 21007d8ab61..00000000000 --- a/TAO/IIOP/Build/tao.bld +++ /dev/null @@ -1,53 +0,0 @@ -#!build -default: - library - :defines=__IIOP_BUILD - :defines=DEBUG -../lib/any.cpp - C++ -../lib/cdr.cpp - C++ -../lib/connmgr.cpp - C++ -../lib/corbacom.cpp - C++ -../lib/debug.cpp - C++ -../lib/except.cpp - C++ -../lib/giop.cpp - C++ -../lib/iiopobj.cpp - C++ -../lib/iioporb.cpp - C++ -../lib/interp.cpp - C++ -../lib/invoke.cpp - C++ -../lib/marshal.cpp - C++ -../lib/nvlist.cpp - C++ -../lib/object.cpp - C++ -../lib/orbobj.cpp - C++ -../lib/principa.cpp - C++ -../lib/request.cpp - C++ -../lib/svrrqst.cpp - C++ -../lib/t-sizes.cpp - C++ -../lib/tc_const.cpp - C++ -../lib/tcpoa.cpp - C++ -../lib/toa.cpp - C++ -../lib/typecode.cpp - C++ -../lib/roa.cpp - C++ diff --git a/TAO/IIOP/Makefile b/TAO/IIOP/Makefile deleted file mode 100644 index f6dba1717ab..00000000000 --- a/TAO/IIOP/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = - -DIRS = lib #test - -CLONE = - -#---------------------------------------------------------------------------- -# 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/TAO/IIOP/docs/us/codecounts/align.hh.cccc b/TAO/IIOP/docs/us/codecounts/align.hh.cccc deleted file mode 100644 index 13cb1ddca0e..00000000000 --- a/TAO/IIOP/docs/us/codecounts/align.hh.cccc +++ /dev/null @@ -1,29 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/align.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef unsigned int ptr_arith_t; 1 21 14 2 0 0.1 0.0 -typedef unsigned long ptr_arith_t; 24 24 0 0 0 -typedef unsigned long long ptr_arit 27 27 0 0 0 -static inline ptr_arith_t align_bin 35 46 5 5 1 1.0 0.2 -static inline unsigned char*ptr_ali 49 61 8 4 1 0.5 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 27 16 2 0.6 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/any.cpp.cccc b/TAO/IIOP/docs/us/codecounts/any.cpp.cccc deleted file mode 100644 index 44e6cce66e5..00000000000 --- a/TAO/IIOP/docs/us/codecounts/any.cpp.cccc +++ /dev/null @@ -1,41 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/any.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t any_lock=PTH 1 48 34 1 0 0.0 0.0 -CORBA_TypeCode_ptr CORBA_Any::type( 53 57 0 4 1 ! *** ! *** -void*CORBA_Any::value()const{return 59 63 0 4 1 ! *** ! *** -CORBA_Any::CORBA_Any(){} 65 78 7 6 0 0.9 0.0 -CORBA_Any::CORBA_Any(){} 81 97 5 11 0 2.2 0.0 -static CORBA_TypeCode::traverse_sta 100 305 44 ? 131 ! 30 3.0 0.7 -CORBA_Any::CORBA_Any(){} 308 329 4 13 1 3.3 0.3 -static CORBA_TypeCode::traverse_sta 332 457 46 60 ! 21 1.3 0.5 -CORBA_Any::~CORBA_Any(){} 460 481 10 9 2 0.9 0.2 -void CORBA_Any::replace(){} 484 509 3 19 2 6.3 0.7 -DEFINE_GUID(IID_CORBA_Any,0xa201e4c 511 517 4 2 0 0.5 0.0 -ULONG __stdcall CORBA_Any::AddRef() 520 529 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_Any::Release( 531 548 0 10 3 ! *** ! *** -HRESULT __stdcall CORBA_Any::QueryI 550 567 0 14 5 ! *** ! *** -CORBA_Any::CORBA_Any(){} 570 583 4 8 0 2.0 0.0 -CORBA_Any&CORBA_Any::operator=(){} 585 660 16 45 ? 15 2.8 0.9 -CORBA_Any::operator VARIANT(){VARIA 662 670 1 5 1 5.0 1.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 178 365 83 2.1 0.5 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/any.hh.cccc b/TAO/IIOP/docs/us/codecounts/any.hh.cccc deleted file mode 100644 index 6cfac7fd831..00000000000 --- a/TAO/IIOP/docs/us/codecounts/any.hh.cccc +++ /dev/null @@ -1,27 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/any.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef CORBA_Any*CORBA_Any_ptr; 1 10 9 0 0 0.0 0.0 -extern const IID IID_CORBA_Any; 12 12 0 0 0 -class CORBA_Any{}; 14 87 16 46 2 2.9 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 25 49 2 2.0 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/cdr.cpp.cccc b/TAO/IIOP/docs/us/codecounts/cdr.cpp.cccc deleted file mode 100644 index aa92c9f81bd..00000000000 --- a/TAO/IIOP/docs/us/codecounts/cdr.cpp.cccc +++ /dev/null @@ -1,36 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/cdr.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -CORBA_Boolean CDR::put_byte(){} 1 60 37 11 4 0.3 0.1 -CORBA_Boolean CDR::put_short(){} 63 90 7 18 4 2.6 0.6 -CORBA_Boolean CDR::put_long(){} 92 120 7 18 4 2.6 0.6 -CORBA_Boolean CDR::put_longlong(){} 122 149 7 18 4 2.6 0.6 -CORBA_Boolean CDR::put_longdouble() 151 178 7 18 4 2.6 0.6 -CORBA_Boolean CDR::get_byte(){} 181 196 3 11 3 3.7 1.0 -CORBA_Boolean CDR::get_short(){} 199 230 6 22 4 3.7 0.7 -CORBA_Boolean CDR::get_long(){} 232 269 10 24 4 2.4 0.4 -CORBA_Boolean CDR::get_longlong(){} 271 312 10 28 4 2.8 0.4 -CORBA_Boolean CDR::get_longdouble() 315 363 9 36 4 4.0 0.4 -CORBA_Boolean CDR::skip_string(){CO 366 377 2 8 4 4.0 2.0 -CORBA_Boolean CDR::grow(){} 380 460 37 34 ? 9 0.9 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 142 258 52 1.8 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/cdr.hh.cccc b/TAO/IIOP/docs/us/codecounts/cdr.hh.cccc deleted file mode 100644 index 627ff33a9d9..00000000000 --- a/TAO/IIOP/docs/us/codecounts/cdr.hh.cccc +++ /dev/null @@ -1,26 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/cdr.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -struct _EXPCLASS CDR{enum{SHORT_SIZ 1 362 155 ? 142 ! 25 0.9 0.2 -; 362 362 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 155 143 25 0.9 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/connmgr.cpp.cccc b/TAO/IIOP/docs/us/codecounts/connmgr.cpp.cccc deleted file mode 100644 index e934a7ebd12..00000000000 --- a/TAO/IIOP/docs/us/codecounts/connmgr.cpp.cccc +++ /dev/null @@ -1,38 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/connmgr.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static client_endpoint*client_list; 1 77 40 2 0 0.1 0.0 -static server_endpoint*server_list; 78 78 0 0 0 -static pthread_mutex_t client_lock= 82 88 6 0 0 0.0 0.0 -static pthread_mutex_t server_lock= 89 89 0 0 0 -static ACE_HANDLE signal_fd; 91 97 6 0 0 0.0 0.0 -static ACE_HANDLE signal_in_fd; 99 103 4 0 0 0.0 0.0 -void client_endpoint::release(){} 108 120 3 6 0 2.0 0.0 -client_endpoint*client_endpoint::lo 123 290 75 69 ? 18 0.9 0.2 -void client_endpoint::dump(){} 295 318 6 12 1 2.0 0.2 -void server_endpoint::release(){} 324 354 17 7 0 0.4 0.0 -server_endpoint*server_endpoint::in 357 507 50 72 ? 16 1.4 0.3 -server_endpoint*server_endpoint::bl 510 742 89 ? 105 ! 27 1.2 0.3 -void server_endpoint::shutdown_conn 744 765 0 16 2 ! *** ! *** -void server_endpoint::dump(){} 770 790 3 12 2 4.0 0.7 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 299 315 66 1.1 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/connmgr.hh.cccc b/TAO/IIOP/docs/us/codecounts/connmgr.hh.cccc deleted file mode 100644 index e688b27d271..00000000000 --- a/TAO/IIOP/docs/us/codecounts/connmgr.hh.cccc +++ /dev/null @@ -1,27 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/connmgr.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -template<>class autorelease{}; 1 47 14 16 6 1.1 0.4 -struct client_endpoint{}; 50 85 11 15 0 1.4 0.0 -class server_endpoint{}; 88 141 15 27 0 1.8 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 40 61 6 1.5 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/corbacom.cpp.cccc b/TAO/IIOP/docs/us/codecounts/corbacom.cpp.cccc deleted file mode 100644 index b7859bad94a..00000000000 --- a/TAO/IIOP/docs/us/codecounts/corbacom.cpp.cccc +++ /dev/null @@ -1,32 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/corbacom.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -CORBA_String CORBA_string_alloc(){} 1 26 10 5 1 0.5 0.1 -CORBA_String CORBA_string_copy(){} 28 37 0 7 3 ! *** ! *** -void CORBA_string_free(){} 39 43 0 4 0 ! *** -extern"unsigned wslen(const wchar_t 47 60 4 8 2 2.0 0.5 -extern"wchar_t*wscpy(wchar_t*dest,c 62 70 0 7 2 ! *** ! *** -CORBA_WString CORBA_wstring_alloc() 74 82 4 4 1 1.0 0.3 -CORBA_WString CORBA_wstring_copy(){ 84 92 0 7 3 ! *** ! *** -void CORBA_wstring_free(){} 94 98 0 4 0 ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 18 54 12 3.0 0.7 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/corbacom.hh.cccc b/TAO/IIOP/docs/us/codecounts/corbacom.hh.cccc deleted file mode 100644 index 256095a8f3e..00000000000 --- a/TAO/IIOP/docs/us/codecounts/corbacom.hh.cccc +++ /dev/null @@ -1,59 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/corbacom.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef bool CORBA_Boolean; 1 13 6 1 0 0.2 0.0 -typedef int CORBA_Boolean; 18 18 0 0 0 -enum{CORBA_B_FALSE=0,CORBA_B_TRUE=1 19 19 0 0 0 -; 19 19 0 0 0 -typedef unsigned char CORBA_Octet; 22 22 0 0 0 -typedef short CORBA_Short; 24 24 0 0 0 -typedef unsigned short CORBA_UShort 25 25 0 0 0 -typedef long CORBA_Long; 27 32 4 0 0 0.0 0.0 -typedef unsigned long CORBA_ULong; 33 33 0 0 0 -typedef int CORBA_Long; 35 36 1 0 0 0.0 0.0 -typedef unsigned CORBA_ULong; 37 37 0 0 0 -typedef long long CORBA_LongLong; 40 47 6 0 0 0.0 0.0 -typedef unsigned long long CORBA_UL 48 48 0 0 0 -typedef long CORBA_LongLong; 50 50 0 0 0 -typedef unsigned long CORBA_ULongLo 51 51 0 0 0 -typedef __int64 CORBA_LongLong; 53 53 0 0 0 -typedef unsigned __int64 CORBA_ULon 54 54 0 0 0 -struct CORBA_LongLong{}; 56 64 6 0 0 0.0 0.0 -struct CORBA_ULongLong{}; 65 65 0 0 0 -struct CORBA_LongLong{}; 67 67 0 0 0 -struct CORBA_ULongLong{}; 68 68 0 0 0 -typedef float CORBA_Float; 72 72 0 0 0 -typedef double CORBA_Double; 73 73 0 0 0 -typedef long double CORBA_LongDoubl 75 83 7 0 0 0.0 0.0 -struct CORBA_LongDouble{}; 86 88 0 2 0 ! *** -typedef char CORBA_Char; 91 91 0 0 0 -typedef CORBA_Char*CORBA_String; 92 92 0 0 0 -CORBA_String CORBA_string_alloc(); 94 94 0 0 0 -CORBA_String CORBA_string_copy(); 95 95 0 0 0 -void CORBA_string_free(); 96 96 0 0 0 -typedef wchar_t CORBA_WChar; 98 104 6 0 0 0.0 0.0 -typedef CORBA_WChar*CORBA_WString; 105 105 0 0 0 -CORBA_WString CORBA_wstring_alloc() 107 107 0 0 0 -CORBA_WString CORBA_wstring_copy(); 108 108 0 0 0 -void CORBA_wstring_free(); 109 109 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 36 37 0 1.0 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/debug.cpp.cccc b/TAO/IIOP/docs/us/codecounts/debug.cpp.cccc deleted file mode 100644 index 486b8373461..00000000000 --- a/TAO/IIOP/docs/us/codecounts/debug.cpp.cccc +++ /dev/null @@ -1,39 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/debug.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -unsigned debug_level=0; 1 43 13 1 0 0.1 0.0 -char*debug_filter="; 44 44 0 0 0 -static FILE*debug_stream=stderr; 45 45 0 0 0 -static pid_t my_pid; 48 63 13 1 0 0.1 0.0 -static pthread_once_t debug_init=PT 68 71 3 0 0 0.0 0.0 -static void setup_once(){} 75 79 0 4 0 ! *** -static void emit_prefix(){} 81 87 0 5 0 ! *** -static void setup(){} 91 102 5 6 1 1.2 0.2 -static void setup(){} 109 120 5 6 1 1.2 0.2 -void _EXPFUNC dmsg_filter(const cha 130 170 3 28 ? 12 ? 9.3 4.0 -void _EXPFUNC dmsg_filter(unsigned 172 193 1 15 3 ?15.0 3.0 -void _EXPFUNC dmsg_v(const char*_FA 195 213 1 13 1 ?13.0 1.0 -void _EXPFUNC _dmsg_x(CORBA_Environ 215 239 1 18 1 ?18.0 1.0 -void _EXPFUNC dmsg_opaque(char*_FAR 241 286 1 38 ? 10 !38.0 ?10.0 -void _EXPFUNC dmsg_opaque_full(char 288 335 1 39 ? 11 !39.0 ?11.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 47 189 40 4.0 0.9 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/debug.hh.cccc b/TAO/IIOP/docs/us/codecounts/debug.hh.cccc deleted file mode 100644 index 932d9fb5a19..00000000000 --- a/TAO/IIOP/docs/us/codecounts/debug.hh.cccc +++ /dev/null @@ -1,29 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/debug.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -extern"char*strerror(int); 1 12 6 1 0 0.2 0.0 -extern unsigned debug_level; 15 22 7 0 0 0.0 0.0 -extern char*debug_filter; 22 23 1 0 0 0.0 0.0 -_dmsg_x(env,s); 23 43 8 3 0 0.4 0.0 -line 43: syntax error at "}" missing Eof --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 42 21 0 0.5 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/except.cpp.cccc b/TAO/IIOP/docs/us/codecounts/except.cpp.cccc deleted file mode 100644 index 8b1b2294821..00000000000 --- a/TAO/IIOP/docs/us/codecounts/except.cpp.cccc +++ /dev/null @@ -1,53 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/except.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t except_lock= 1 31 12 1 0 0.1 0.0 -DEFINE_GUID(IID_CORBA_Exception,0x7 35 45 2 2 0 1.0 0.0 -DEFINE_GUID(IID_CORBA_UserException 47 49 1 1 0 1.0 0.0 -DEFINE_GUID(IID_CORBA_SystemExcepti 51 53 1 1 0 1.0 0.0 -CORBA_Exception::CORBA_Exception(){ 56 66 0 10 1 ! *** ! *** -CORBA_Exception::CORBA_Exception(){ 68 78 0 10 1 ! *** ! *** -CORBA_Exception::~CORBA_Exception() 80 91 5 5 0 1.0 0.0 -CORBA_Exception&CORBA_Exception::op 93 107 0 13 3 ! *** ! *** -const CORBA_String CORBA_Exception: 109 119 0 9 3 ! *** ! *** -const CORBA_TypeCode_ptr CORBA_Exce 121 126 0 5 1 ! *** ! *** -ULONG __stdcall CORBA_Exception::Ad 128 141 3 7 1 2.3 0.3 -ULONG __stdcall CORBA_Exception::Re 143 167 2 12 3 6.0 1.5 -HRESULT __stdcall CORBA_Exception:: 169 192 4 15 5 3.8 1.3 -CORBA_UserException::CORBA_UserExce 195 203 3 5 0 1.7 0.0 -CORBA_UserException::~CORBA_UserExc 205 207 0 2 0 ! *** -CORBA_SystemException::CORBA_System 209 218 0 9 0 ! *** -CORBA_SystemException::~CORBA_Syste 220 222 0 2 0 ! *** -static CORBA_TypeCode_ptr sys_excep 228 228 0 0 0 -CORBA_ExceptionList __system_except 229 229 0 0 0 -static void make_standard_typecode( 231 318 29 49 ? 10 1.7 0.3 -SYSEX(UNKNOWN)SYSEX(BAD_PARAM)SYSEX 321 396 24 36 1 1.5 0.0 -static CORBA_Octet tc_buf_Bounds[]= 400 418 7 11 0 1.6 0.0 -static CORBA_TypeCode tc_std_Bounds 419 420 0 1 0 ! *** -CORBA_TypeCode_ptr _tc_CORBA_Bounds 421 421 0 0 0 -static CORBA_Octet tc_buf_BadKind[] 423 437 3 11 0 3.7 0.0 -static CORBA_TypeCode tc_std_BadKin 438 439 0 1 0 ! *** -CORBA_TypeCode_ptr _tc_CORBA_BadKin 440 440 0 0 0 -CORBA_ExceptionType CORBA_Environme 444 469 8 13 6 1.6 0.8 -void _EXPFUNC print_exception(const 472 535 24 35 7 1.5 0.3 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 128 295 42 2.3 0.3 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/except.hh.cccc b/TAO/IIOP/docs/us/codecounts/except.hh.cccc deleted file mode 100644 index 430ef037b0d..00000000000 --- a/TAO/IIOP/docs/us/codecounts/except.hh.cccc +++ /dev/null @@ -1,37 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/except.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -extern const IID IID_CORBA_Exceptio 1 15 13 1 0 0.1 0.0 -extern const IID IID_CORBA_UserExce 16 16 0 0 0 -extern const IID IID_CORBA_SystemEx 17 17 0 0 0 -class _EXPCLASS CORBA_Exception:pub 19 52 3 25 2 ? 8.3 0.7 -; 52 52 0 0 0 -typedef CORBA_Exception*CORBA_Excep 53 53 0 0 0 -class _EXPCLASS CORBA_UserException 55 65 5 5 0 1.0 0.0 -; 65 65 0 0 0 -enum CORBA_CompletionStatus{}; 67 75 7 1 0 0.1 0.0 -class _EXPCLASS CORBA_SystemExcepti 77 99 2 16 2 ? 8.0 1.0 -; 99 99 0 0 0 -extern CORBA_TypeCode_ptr _tc_CORBA 102 117 6 4 0 0.7 0.0 -line 117: syntax error at "}" missing Eof --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 44 112 6 2.5 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/generate b/TAO/IIOP/docs/us/codecounts/generate deleted file mode 100755 index c04f8b92e19..00000000000 --- a/TAO/IIOP/docs/us/codecounts/generate +++ /dev/null @@ -1,24 +0,0 @@ -#/bin/sh - -error() -{ - ret=$1; shift - echo "ERROR: " $@ - return $ret -} - -test -x ${CCCC:=/usr/local/bin/cccc} \ - || error 1 "Value of \$CCCC ($CCCC) not found." - -test -d ${TOPDIR:=../../../lib} \ - || error 1 "Unable to locate \$TOPDIR ($TOPDIR)." - -find $TOPDIR \( -name '*.h' -o -name '*.i' -o -name '*.hh' -o -name '*.cpp' \) -print | -while read file -do - outname=`basename $file`.cccc - $CCCC $file > $outname 2>&1 - echo -n "." -done - -echo diff --git a/TAO/IIOP/docs/us/codecounts/giop.cpp.cccc b/TAO/IIOP/docs/us/codecounts/giop.cpp.cccc deleted file mode 100644 index d4aa24bb14b..00000000000 --- a/TAO/IIOP/docs/us/codecounts/giop.cpp.cccc +++ /dev/null @@ -1,50 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/giop.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t fwd_info_loc 1 79 45 2 0 0.0 0.0 -static inline CORBA_Boolean start_m 83 112 6 19 3 3.2 0.5 -static const char digits[]="; 115 115 0 0 0 -static const char*names[]={}; 116 120 0 4 0 ! *** -static void dump_msg(){} 122 136 0 13 4 ! *** ! *** -CORBA_Boolean GIOP::send_message(){ 142 226 30 43 ? 12 1.4 0.4 -static const char close_message[]={ 229 250 16 5 0 0.3 0.0 -void GIOP::close_connection(ACE_HAN 253 272 8 11 0 1.4 0.0 -static const char error_message[]={ 274 286 7 5 0 0.7 0.0 -static inline void send_error(ACE_H 288 297 0 9 0 ! *** -static int read_buffer(){} 300 331 6 18 4 3.0 0.7 -GIOP::MsgType GIOP::read_message(){ 334 481 75 56 ? 18 0.7 0.2 -GIOP::Invocation::Invocation(IIOP_O 484 524 22 14 0 0.6 0.0 -GIOP::Invocation::~Invocation(){} 526 528 0 2 0 ! *** -static const CORBA_Long _oc_opaque[ 530 543 13 0 0 0.0 0.0 -CORBA_TypeCode TC_opaque(); 544 546 0 2 0 ! *** -static const CORBA_Long _oc_svc_ctx 549 610 50 9 0 0.2 0.0 -static CORBA_TypeCode TC_ServiceCon 611 613 0 2 0 ! *** -void GIOP::Invocation::start(CORBA_ 616 729 58 45 ? 15 0.8 0.3 -extern CORBA_ExceptionList __system 731 731 0 0 0 -GIOP::ReplyStatusType GIOP::Invocat 733 1086 175 ? 144 ! 38 0.8 0.2 -void GIOP::incoming_message(){} 1089 1353 79 ? 151 ! 24 1.9 0.3 -template class autorelease 1 37 19 1 0 0.1 0.0 -class IOP{}; 39 109 45 21 0 0.5 0.0 -class GIOP{}; 112 321 65 ? 120 0 1.8 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 129 145 0 1.1 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/iiopobj.cpp.cccc b/TAO/IIOP/docs/us/codecounts/iiopobj.cpp.cccc deleted file mode 100644 index b440bf69b76..00000000000 --- a/TAO/IIOP/docs/us/codecounts/iiopobj.cpp.cccc +++ /dev/null @@ -1,34 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/iiopobj.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t iiopobj_lock 1 30 13 1 0 0.1 0.0 -IIOP::ProfileBody::ProfileBody(cons 35 50 0 13 0 ! *** -CORBA_ULong IIOP_Object::hash(){} 53 81 10 15 2 1.5 0.2 -CORBA_Boolean IIOP_Object::is_equiv 84 124 10 25 ? 9 2.5 0.9 -DEFINE_GUID(IID_IIOP_Object,0xa201e 127 133 4 2 0 0.5 0.0 -DEFINE_GUID(IID_STUB_Object,0xa201e 135 141 4 2 0 0.5 0.0 -DEFINE_GUID(IID_CORBA_Object,0xa201 143 145 1 1 0 1.0 0.0 -ULONG __stdcall IIOP_Object::AddRef 147 160 3 7 1 2.3 0.3 -ULONG __stdcall IIOP_Object::Releas 162 179 0 10 3 ! *** ! *** -HRESULT __stdcall IIOP_Object::Quer 182 214 11 18 7 1.6 0.6 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 56 104 22 1.9 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/iiopobj.hh.cccc b/TAO/IIOP/docs/us/codecounts/iiopobj.hh.cccc deleted file mode 100644 index 866ab27c769..00000000000 --- a/TAO/IIOP/docs/us/codecounts/iiopobj.hh.cccc +++ /dev/null @@ -1,30 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/iiopobj.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef CORBA_SEQUENCE 1 15 10 1 0 0.1 0.0 -class _EXPCLASS IIOP{public:struct 17 48 8 17 0 2.1 0.0 -; 48 48 0 0 0 -extern"const IID IID_IIOP_Object; 51 59 8 0 0 0.0 0.0 -class _EXPCLASS IIOP_Object:public 61 152 33 47 0 1.4 0.0 -; 152 152 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 59 69 0 1.2 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/iioporb.cpp.cccc b/TAO/IIOP/docs/us/codecounts/iioporb.cpp.cccc deleted file mode 100644 index 6d1e462cf27..00000000000 --- a/TAO/IIOP/docs/us/codecounts/iioporb.cpp.cccc +++ /dev/null @@ -1,35 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/iioporb.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static const char ior_prefix[]="; 1 27 9 1 0 0.1 0.0 -static const char iiop_prefix[]="; 28 28 0 0 0 -static const char xchars[]="; 29 29 0 0 0 -static inline char nibble2hex(unsig 32 39 3 4 1 1.3 0.3 -static inline unsigned char hex2byt 41 51 0 10 5 ! *** ! *** -CORBA_String IIOP_ORB::object_to_st 54 174 42 64 ? 17 1.5 0.4 -static CORBA_Object_ptr ior_string_ 177 231 14 33 ? 10 2.4 0.7 -static CORBA_Object_ptr iiop_string 234 349 34 68 ! 22 2.0 0.6 -CORBA_Object_ptr IIOP_ORB::string_t 352 374 6 13 5 2.2 0.8 -DEFINE_GUID(IID_IIOP_ORB,0xa201e4c4 376 382 4 2 0 0.5 0.0 -HRESULT __stdcall IIOP_ORB::QueryIn 385 408 3 16 6 5.3 2.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 115 222 66 1.9 0.6 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/iioporb.hh.cccc b/TAO/IIOP/docs/us/codecounts/iioporb.hh.cccc deleted file mode 100644 index e016469fd1e..00000000000 --- a/TAO/IIOP/docs/us/codecounts/iioporb.hh.cccc +++ /dev/null @@ -1,28 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/iioporb.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class IIOP_ORB*IIOP_ORB_ptr 1 13 9 1 0 0.1 0.0 -extern const IID IID_IIOP_ORB; 15 15 0 0 0 -class _EXPCLASS IIOP_ORB:public COR 17 47 4 22 0 5.5 0.0 -; 47 47 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 13 26 0 2.0 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/initguid.h.cccc b/TAO/IIOP/docs/us/codecounts/initguid.h.cccc deleted file mode 100644 index b106c9a8731..00000000000 --- a/TAO/IIOP/docs/us/codecounts/initguid.h.cccc +++ /dev/null @@ -1,25 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/initguid.h -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -const IID name={0} 1 6 2 1 0 0.5 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 2 2 0 1.0 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/interp.cpp.cccc b/TAO/IIOP/docs/us/codecounts/interp.cpp.cccc deleted file mode 100644 index 690563b2274..00000000000 --- a/TAO/IIOP/docs/us/codecounts/interp.cpp.cccc +++ /dev/null @@ -1,40 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/interp.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef size_t attribute_calculator 1 86 69 6 0 0.1 0.0 -static attribute_calculator calc_st 88 88 0 0 0 -static attribute_calculator calc_ex 89 89 0 0 0 -static attribute_calculator calc_un 90 90 0 0 0 -static attribute_calculator calc_al 91 91 0 0 0 -static attribute_calculator calc_ar 92 92 0 0 0 -typedef CORBA_Boolean param_skip_rt 95 99 4 0 0 0.0 0.0 -static CORBA_Boolean skip_encapsula 101 105 0 4 1 ! *** ! *** -static CORBA_Boolean skip_long(){} 107 113 0 5 1 ! *** ! *** -struct table_element{}; 116 139 18 5 0 0.3 0.0 -static table_element table[]={}; 141 188 37 10 0 0.3 0.0 -{struct align_struct_ x one;char du 191 221 23 4 0 0.2 0.0 -; 221 221 0 0 0 -align_struct_ table[t].size=sizeof( 223 224 0 0 0 -table[t].alignment=(char*)&align.tw 225 226 0 1 0 ! *** -line 227: syntax error at "}" missing Eof --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 603 709 174 1.2 0.3 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/invoke.cpp.cccc b/TAO/IIOP/docs/us/codecounts/invoke.cpp.cccc deleted file mode 100644 index a6b006f91e5..00000000000 --- a/TAO/IIOP/docs/us/codecounts/invoke.cpp.cccc +++ /dev/null @@ -1,26 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/invoke.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -void IIOP_Object::do_call(CORBA_Env 1 193 87 77 ! 24 0.9 0.3 -void IIOP_Object::do_dynamic_call(c 196 346 44 85 ! 26 1.9 0.6 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 131 164 50 1.3 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/marshal.cpp.cccc b/TAO/IIOP/docs/us/codecounts/marshal.cpp.cccc deleted file mode 100644 index 90175d333fb..00000000000 --- a/TAO/IIOP/docs/us/codecounts/marshal.cpp.cccc +++ /dev/null @@ -1,30 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/marshal.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -extern"{unsigned wslen(const wchar_ 1 58 39 4 0 0.1 0.0 -extern CORBA_TypeCode TC_opaque; 61 61 0 0 0 -CORBA_TypeCode::traverse_status CDR 64 494 146 ? 230 ! 71 1.6 0.5 -const CORBA_TypeCode_ptr __tc_const 497 548 23 24 0 1.0 0.0 -; 548 548 0 0 0 -CORBA_TypeCode::traverse_status CDR 551 1107 163 ? 323 ! 88 2.0 0.5 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 371 586 159 1.6 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/nvlist.cpp.cccc b/TAO/IIOP/docs/us/codecounts/nvlist.cpp.cccc deleted file mode 100644 index d07414860b1..00000000000 --- a/TAO/IIOP/docs/us/codecounts/nvlist.cpp.cccc +++ /dev/null @@ -1,40 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/nvlist.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t nvlist_lock= 1 21 9 1 0 0.1 0.0 -DEFINE_GUID(IID_CORBA_NamedValue,0x 26 32 4 2 0 0.5 0.0 -ULONG __stdcall CORBA_NamedValue::A 35 44 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_NamedValue::R 46 61 0 10 3 ! *** ! *** -HRESULT __stdcall CORBA_NamedValue: 63 80 0 14 5 ! *** ! *** -void CORBA_release(){} 82 90 3 5 1 1.7 0.3 -CORBA_Boolean CORBA_is_nil(){} 92 96 0 4 1 ! *** ! *** -CORBA_NamedValue::~CORBA_NamedValue 98 102 0 4 1 ! *** ! *** -DEFINE_GUID(IID_CORBA_NVList,0x7742 105 111 4 2 0 0.5 0.0 -ULONG __stdcall CORBA_NVList::AddRe 114 123 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_NVList::Relea 125 140 0 10 3 ! *** ! *** -HRESULT __stdcall CORBA_NVList::Que 142 159 0 14 5 ! *** ! *** -void CORBA_release(){} 161 169 3 5 1 1.7 0.3 -CORBA_Boolean CORBA_is_nil(){} 171 175 0 4 1 ! *** ! *** -CORBA_NVList::~CORBA_NVList(){} 177 188 0 9 2 ! *** ! *** -CORBA_NamedValue_ptr CORBA_NVList:: 190 262 32 35 6 1.1 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 55 147 31 2.7 0.6 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/nvlist.hh.cccc b/TAO/IIOP/docs/us/codecounts/nvlist.hh.cccc deleted file mode 100644 index b680140d4b9..00000000000 --- a/TAO/IIOP/docs/us/codecounts/nvlist.hh.cccc +++ /dev/null @@ -1,37 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/nvlist.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -class _EXPCLASS CORBA_NamedValue; 1 13 12 0 0 0.0 0.0 -void CORBA_release(); 15 15 0 0 0 -CORBA_Boolean CORBA_is_nil(); 16 16 0 0 0 -enum{CORBA_ARG_IN=0x01,CORBA_ARG_OU 18 25 1 6 0 6.0 0.0 -; 25 25 0 0 0 -class _EXPCLASS CORBA_NamedValue{pu 27 57 3 21 3 7.0 1.0 -; 57 57 0 0 0 -class _EXPCLASS CORBA_NVList; 60 71 11 0 0 0.0 0.0 -void CORBA_release(); 73 73 0 0 0 -CORBA_Boolean CORBA_is_nil(); 74 74 0 0 0 -extern"const IID IID_CORBA_NVList; 76 76 0 0 0 -class _EXPCLASS CORBA_NVList{public 78 119 3 31 2 ?10.3 0.7 -; 119 119 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 30 68 5 2.3 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/objbase.h.cccc b/TAO/IIOP/docs/us/codecounts/objbase.h.cccc deleted file mode 100644 index 02225ed7d9f..00000000000 --- a/TAO/IIOP/docs/us/codecounts/objbase.h.cccc +++ /dev/null @@ -1,37 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/objbase.h -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef unsigned long ULONG; 1 23 18 1 0 0.1 0.0 -typedef unsigned long HRESULT; 24 24 0 0 0 -typedef char IID[16]; 26 36 8 1 0 0.1 0.0 -typedef const IID&REFIID; 36 37 1 0 0 0.0 0.0 -DEFINE_GUID(IID_IUnknown,b,c,d,e,f, 41 55 4 9 0 2.3 0.0 -; 55 55 0 0 0 -typedef unsigned long SCODE; 59 61 1 1 0 1.0 0.0 -inline HRESULT ResultFromScode(SCOD 63 63 0 0 1 ! *** -typedef unsigned short VARTYPE; 69 79 10 0 0 0.0 0.0 -enum VARENUM{}; 80 98 18 0 0 0.0 0.0 -struct CY{}; 100 111 3 5 0 1.7 0.0 -typedef double DATE; 113 117 4 0 0 0.0 0.0 -struct VARIANT{}; 119 160 35 6 0 0.2 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 102 34 1 0.3 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/object.cpp.cccc b/TAO/IIOP/docs/us/codecounts/object.cpp.cccc deleted file mode 100644 index 82d8215949f..00000000000 --- a/TAO/IIOP/docs/us/codecounts/object.cpp.cccc +++ /dev/null @@ -1,55 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/object.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -CORBA_Object::CORBA_Object(){} 1 25 9 5 0 0.6 0.0 -CORBA_Object::~CORBA_Object(){} 27 29 0 2 0 ! *** -void CORBA_release(){} 31 41 3 7 1 2.3 0.3 -CORBA_Object_ptr CORBA_Object::_dup 43 49 0 6 2 ! *** ! *** -CORBA_Object_ptr CORBA_Object::_nil 51 58 3 4 1 1.3 0.3 -CORBA_Boolean CORBA_is_nil(){} 60 64 0 4 1 ! *** ! *** -void __stdcall CORBA_Object::_creat 67 86 6 13 0 2.2 0.0 -CORBA_Request_ptr __stdcall CORBA_O 89 98 0 9 1 ! *** ! *** -static const paramdata Object_get_i 101 108 5 2 0 0.4 0.0 -static const calldata Object_get_in 109 113 0 4 0 ! *** -; 113 113 0 0 0 -CORBA_InterfaceDef_ptr __stdcall CO 116 150 16 15 3 0.9 0.2 -static const paramdata Object_is_a_ 153 160 4 3 0 0.8 0.0 -static const calldata Object_is_a_c 161 165 0 4 0 ! *** -; 165 165 0 0 0 -CORBA_Boolean __stdcall CORBA_Objec 168 218 27 19 6 0.7 0.2 -static const paramdata Object_get_i 221 228 5 2 0 0.4 0.0 -static const calldata Object_get_im 229 233 0 4 0 ! *** -; 233 233 0 0 0 -CORBA_ImplementationDef_ptr __stdca 236 253 0 15 3 ! *** ! *** -static const paramdata Object_non_e 256 263 5 2 0 0.4 0.0 -static const calldata Object_non_ex 264 268 0 4 0 ! *** -; 268 268 0 0 0 -CORBA_Boolean __stdcall CORBA_Objec 271 306 3 28 ? 8 ? 9.3 2.7 -CORBA_ULong __stdcall CORBA_Object: 309 329 4 14 3 3.5 0.8 -CORBA_Boolean __stdcall CORBA_Objec 332 360 7 18 5 2.6 0.7 -DEFINE_GUID(IID_IUnknown,0x77420089 363 374 7 3 0 0.4 0.0 -DEFINE_GUID(IID_CORBA_Object,0xa201 378 380 1 1 0 1.0 0.0 -ULONG __stdcall CORBA_Object::AddRe 384 389 0 5 1 ! *** ! *** -ULONG __stdcall CORBA_Object::Relea 391 396 0 5 1 ! *** ! *** -HRESULT __stdcall CORBA_Object::Que 398 406 0 8 1 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 105 233 37 2.2 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/object.hh.cccc b/TAO/IIOP/docs/us/codecounts/object.hh.cccc deleted file mode 100644 index b8f3b41f6c5..00000000000 --- a/TAO/IIOP/docs/us/codecounts/object.hh.cccc +++ /dev/null @@ -1,31 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/object.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class CORBA_Object*CORBA_Ob 1 11 10 0 0 0.0 0.0 -void CORBA_release(); 12 12 0 0 0 -CORBA_Boolean CORBA_is_nil(); 13 13 0 0 0 -extern const IID IID_CORBA_Object; 15 15 0 0 0 -class _EXPCLASS CORBA_Object:public 17 109 28 58 0 2.1 0.0 -; 109 109 0 0 0 -line 112: syntax error at "ÿ" missing Start --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 39 63 0 1.6 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/orb.hh.cccc b/TAO/IIOP/docs/us/codecounts/orb.hh.cccc deleted file mode 100644 index c5687f297f9..00000000000 --- a/TAO/IIOP/docs/us/codecounts/orb.hh.cccc +++ /dev/null @@ -1,33 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/orb.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class CORBA_TypeCode*CORBA_ 1 112 90 5 0 0.1 0.0 -typedef class CORBA_Any*CORBA_Any_p 113 113 0 0 0 -typedef class CORBA_ImplementationD 115 115 0 0 0 -typedef class CORBA_InterfaceDef*CO 117 117 0 0 0 -typedef class CORBA_Request*CORBA_R 119 119 0 0 0 -typedef class CORBA_NamedValue*CORB 121 121 0 0 0 -typedef class CORBA_NVList*CORBA_NV 123 123 0 0 0 -typedef unsigned CORBA_Flags; 125 125 0 0 0 -line 160: syntax error at "ÿ" missing Start --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 101 17 0 0.2 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/orbconf.hh.cccc b/TAO/IIOP/docs/us/codecounts/orbconf.hh.cccc deleted file mode 100644 index 12c296cc020..00000000000 --- a/TAO/IIOP/docs/us/codecounts/orbconf.hh.cccc +++ /dev/null @@ -1,26 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/orbconf.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef unsigned long pid_t; 1 148 56 24 0 0.4 0.0 -line 183: syntax error at "ÿ" missing Start --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 67 27 0 0.4 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/orbobj.cpp.cccc b/TAO/IIOP/docs/us/codecounts/orbobj.cpp.cccc deleted file mode 100644 index 927fc2f58fb..00000000000 --- a/TAO/IIOP/docs/us/codecounts/orbobj.cpp.cccc +++ /dev/null @@ -1,41 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/orbobj.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -extern void __TC_init_table(); 1 28 10 1 0 0.1 0.0 -extern void __TC_init_standard_exce 29 29 0 0 0 -static pthread_mutex_t refcnt_lock= 32 32 0 0 0 -CORBA_ORB::CORBA_ORB(){} 41 47 3 3 0 1.0 0.0 -CORBA_ORB::~CORBA_ORB(){} 49 52 0 3 0 ! *** -void CORBA_release(){} 54 64 3 7 1 2.3 0.3 -CORBA_ORB_ptr CORBA_ORB::_duplicate 66 72 0 6 2 ! *** ! *** -CORBA_ORB_ptr CORBA_ORB::_nil(){} 74 81 3 4 1 1.3 0.3 -CORBA_Boolean CORBA_is_nil(){} 83 87 0 4 1 ! *** ! *** -DEFINE_GUID(IID_CORBA_ORB,0xa201e4c 90 96 4 2 0 0.5 0.0 -DEFINE_GUID(IID_STUB_Object,0xa201e 99 101 1 1 0 1.0 0.0 -ULONG __stdcall CORBA_ORB::AddRef() 105 114 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_ORB::Release( 116 135 0 11 3 ! *** ! *** -static CORBA_ORB_ptr the_orb; 138 145 7 0 0 0.0 0.0 -CORBA_ORB_ptr CORBA_ORB_init(int&,c 147 290 59 60 ! 23 1.0 0.4 -void CORBA_ORB::create_list(){} 292 308 0 14 1 ! *** ! *** -CORBA_ORB_ptr _orb(){} 311 322 7 4 1 0.6 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 97 143 34 1.5 0.4 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/orbobj.hh.cccc b/TAO/IIOP/docs/us/codecounts/orbobj.hh.cccc deleted file mode 100644 index ccc192d6a06..00000000000 --- a/TAO/IIOP/docs/us/codecounts/orbobj.hh.cccc +++ /dev/null @@ -1,31 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/orbobj.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class CORBA_ORB*CORBA_ORB_p 1 8 7 0 0 0.0 0.0 -void CORBA_release(); 9 9 0 0 0 -CORBA_Boolean CORBA_is_nil(); 10 10 0 0 0 -extern const IID IID_CORBA_ORB; 12 12 0 0 0 -CORBA_ORB_ptr CORBA_ORB_init(); 14 23 3 6 0 2.0 0.0 -class _EXPCLASS CORBA_ORB:public IU 25 71 13 26 0 2.0 0.0 -; 71 71 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 23 38 0 1.7 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/principa.cpp.cccc b/TAO/IIOP/docs/us/codecounts/principa.cpp.cccc deleted file mode 100644 index 6486125713e..00000000000 --- a/TAO/IIOP/docs/us/codecounts/principa.cpp.cccc +++ /dev/null @@ -1,33 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/principa.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t principal_lo 1 22 9 1 0 0.1 0.0 -void CORBA_release(){} 26 31 0 5 1 ! *** ! *** -CORBA_Boolean CORBA_is_nil(){} 33 37 0 4 1 ! *** ! *** -CORBA_Principal::CORBA_Principal(){ 39 41 0 2 0 ! *** -CORBA_Principal::~CORBA_Principal() 43 49 0 5 1 ! *** ! *** -DEFINE_GUID(IID_CORBA_Principal,0xa 51 57 4 2 0 0.5 0.0 -ULONG __stdcall CORBA_Principal::Ad 60 69 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_Principal::Re 71 88 0 10 3 ! *** ! *** -HRESULT __stdcall CORBA_Principal:: 90 107 0 14 5 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 13 58 12 4.5 0.9 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/principa.hh.cccc b/TAO/IIOP/docs/us/codecounts/principa.hh.cccc deleted file mode 100644 index eee81276ec6..00000000000 --- a/TAO/IIOP/docs/us/codecounts/principa.hh.cccc +++ /dev/null @@ -1,30 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/principa.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class CORBA_Principal*CORBA 1 8 7 0 0 0.0 0.0 -void CORBA_release(); 10 10 0 0 0 -CORBA_Boolean CORBA_is_nil(); 11 11 0 0 0 -extern const IID IID_CORBA_Principa 13 13 0 0 0 -class _EXPCLASS CORBA_Principal:pub 15 52 12 17 0 1.4 0.0 -; 52 52 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 19 22 0 1.2 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/request.cpp.cccc b/TAO/IIOP/docs/us/codecounts/request.cpp.cccc deleted file mode 100644 index 5b717985743..00000000000 --- a/TAO/IIOP/docs/us/codecounts/request.cpp.cccc +++ /dev/null @@ -1,36 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/request.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -DEFINE_GUID(IID_CORBA_Request,0x774 1 19 7 2 0 0.3 0.0 -static pthread_mutex_t refcnt_lock= 22 22 0 0 0 -ULONG __stdcall CORBA_Request::AddR 26 35 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_Request::Rele 37 52 0 10 3 ! *** ! *** -HRESULT __stdcall CORBA_Request::Qu 54 71 0 14 5 ! *** ! *** -void CORBA_release(){} 73 81 3 5 1 1.7 0.3 -CORBA_Boolean CORBA_is_nil(){} 83 87 0 4 1 ! *** ! *** -CORBA_Request::CORBA_Request(CORBA_ 89 106 3 14 0 4.7 0.0 -CORBA_Request::CORBA_Request(){} 109 121 0 11 0 ! *** -CORBA_Request::~CORBA_Request(){} 123 131 0 7 0 ! *** -void CORBA_Request::invoke(){} 133 154 8 11 2 1.4 0.3 -void CORBA_Request::send_oneway(){} 156 168 0 11 2 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 21 107 15 5.1 0.7 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/request.hh.cccc b/TAO/IIOP/docs/us/codecounts/request.hh.cccc deleted file mode 100644 index 6859f7eaf38..00000000000 --- a/TAO/IIOP/docs/us/codecounts/request.hh.cccc +++ /dev/null @@ -1,31 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/request.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -void CORBA_release(); 1 8 6 1 0 0.2 0.0 -CORBA_Boolean CORBA_is_nil(); 9 9 0 0 0 -typedef CORBA_SEQUENCE 86 87 1 0 0 0.0 0.0 -template class ACE_Message_Queuestruct CORBA_SEQUENCE{}; 1 21 5 10 0 2.0 0.0 -typedef CORBA_SEQUENCE 23 23 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 5 12 0 2.4 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/stub.hh.cccc b/TAO/IIOP/docs/us/codecounts/stub.hh.cccc deleted file mode 100644 index 2dad231e858..00000000000 --- a/TAO/IIOP/docs/us/codecounts/stub.hh.cccc +++ /dev/null @@ -1,32 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/stub.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -enum param_type{}; 1 27 20 4 0 0.2 0.0 -struct paramdata{}; 29 49 19 1 0 0.1 0.0 -struct calldata{}; 52 83 28 3 0 0.1 0.0 -typedef void(*skeleton)(); 86 98 12 0 0 0.0 0.0 -struct skel_entry{}; 100 103 1 2 0 2.0 0.0 -extern const IID IID_STUB_Object; 107 117 10 0 0 0.0 0.0 -class _EXPCLASS STUB_Object:public 119 224 63 34 0 0.5 0.0 -; 224 224 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 153 51 0 0.3 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/svrrqst.cpp.cccc b/TAO/IIOP/docs/us/codecounts/svrrqst.cpp.cccc deleted file mode 100644 index b9e9230c2e0..00000000000 --- a/TAO/IIOP/docs/us/codecounts/svrrqst.cpp.cccc +++ /dev/null @@ -1,39 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/svrrqst.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -DEFINE_GUID(IID_IIOP_ServerRequest, 1 20 7 2 0 0.3 0.0 -DEFINE_GUID(IID_CORBA_ServerRequest 22 24 1 1 0 1.0 0.0 -static pthread_mutex_t svrqst_lock= 29 29 0 0 0 -IIOP_ServerRequest::~IIOP_ServerReq 33 42 0 9 3 ! *** ! *** -ULONG __stdcall IIOP_ServerRequest: 45 55 0 7 1 ! *** ! *** -ULONG __stdcall IIOP_ServerRequest: 57 73 0 11 3 ! *** ! *** -HRESULT __stdcall IIOP_ServerReques 75 95 0 17 6 ! *** ! *** -void __stdcall IIOP_ServerRequest:: 98 173 36 31 3 0.9 0.1 -void __stdcall IIOP_ServerRequest:: 176 196 6 12 3 2.0 0.5 -void __stdcall IIOP_ServerRequest:: 199 219 4 15 3 3.8 0.8 -CORBA_String __stdcall IIOP_ServerR 222 230 3 5 1 1.7 0.3 -CORBA_Object_ptr __stdcall IIOP_Ser 232 238 1 5 1 5.0 1.0 -CORBA_Principal_ptr __stdcall IIOP_ 240 246 1 5 1 5.0 1.0 -CORBA_ORB_ptr __stdcall IIOP_Server 248 253 0 5 1 ! *** ! *** -TOA_ptr __stdcall IIOP_ServerReques 255 260 0 5 1 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 59 145 27 2.5 0.5 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/svrrqst.hh.cccc b/TAO/IIOP/docs/us/codecounts/svrrqst.hh.cccc deleted file mode 100644 index aa6da40edce..00000000000 --- a/TAO/IIOP/docs/us/codecounts/svrrqst.hh.cccc +++ /dev/null @@ -1,35 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/svrrqst.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class CORBA_ServerRequest*C 1 16 9 1 0 0.1 0.0 -typedef class CORBA_ORB*CORBA_ORB_p 17 17 0 0 0 -typedef class TOA*TOA_ptr; 18 18 0 0 0 -void CORBA_release(); 20 20 0 0 0 -CORBA_Boolean CORBA_is_nil(); 21 21 0 0 0 -extern const IID IID_CORBA_ServerRe 23 23 0 0 0 -class _EXPCLASS CORBA_ServerRequest 25 78 29 21 0 0.7 0.0 -; 78 78 0 0 0 -extern const IID IID_IIOP_ServerReq 80 80 0 0 0 -class _EXPCLASS IIOP_ServerRequest: 82 159 17 51 0 3.0 0.0 -; 159 159 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 55 82 0 1.5 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/t-sizes.cpp.cccc b/TAO/IIOP/docs/us/codecounts/t-sizes.cpp.cccc deleted file mode 100644 index 24592ade908..00000000000 --- a/TAO/IIOP/docs/us/codecounts/t-sizes.cpp.cccc +++ /dev/null @@ -1,25 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/t-sizes.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -int main(){} 6 15 0 9 0 ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 0 10 0 ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/t-xdr.cpp.cccc b/TAO/IIOP/docs/us/codecounts/t-xdr.cpp.cccc deleted file mode 100644 index b32010c4109..00000000000 --- a/TAO/IIOP/docs/us/codecounts/t-xdr.cpp.cccc +++ /dev/null @@ -1,29 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/t-xdr.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef CORBA_SEQUENCE 1 34 12 2 0 0.2 0.0 -struct interesting{}; 36 73 18 12 0 0.7 0.0 -extern CORBA_TypeCode TC_opaque; 75 78 2 1 0 0.5 0.0 -static void do_test(){} 80 225 34 82 ! 30 2.4 0.9 -int main(){} 228 264 3 29 3 ? 9.7 1.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 69 131 33 1.9 0.5 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/tc_const.cpp.cccc b/TAO/IIOP/docs/us/codecounts/tc_const.cpp.cccc deleted file mode 100644 index e606b23721b..00000000000 --- a/TAO/IIOP/docs/us/codecounts/tc_const.cpp.cccc +++ /dev/null @@ -1,68 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/tc_const.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static CORBA_TypeCode tc_null(); 1 25 18 1 0 0.1 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 26 26 0 0 0 -CORBA_TypeCode_ptr CORBA_TypeCode:: 28 32 0 4 1 ! *** ! *** -static CORBA_TypeCode tc_void(); 34 34 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 35 35 0 0 0 -static CORBA_TypeCode tc_short(); 37 40 3 0 0 0.0 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 41 41 0 0 0 -static CORBA_TypeCode tc_long(); 43 43 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 44 44 0 0 0 -static CORBA_TypeCode tc_longlong() 46 46 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 47 47 0 0 0 -static CORBA_TypeCode tc_ushort(); 49 49 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 50 50 0 0 0 -static CORBA_TypeCode tc_ulong(); 52 52 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 53 53 0 0 0 -static CORBA_TypeCode tc_ulonglong( 55 55 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 56 56 0 0 0 -static CORBA_TypeCode tc_float(); 58 61 3 0 0 0.0 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 62 62 0 0 0 -static CORBA_TypeCode tc_double(); 64 64 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 65 65 0 0 0 -static CORBA_TypeCode tc_longdouble 67 67 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 68 68 0 0 0 -static CORBA_TypeCode tc_boolean(); 70 73 3 0 0 0.0 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 74 74 0 0 0 -static CORBA_TypeCode tc_octet(); 76 76 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 77 77 0 0 0 -static CORBA_TypeCode tc_char(); 79 84 5 0 0 0.0 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 85 85 0 0 0 -static CORBA_TypeCode tc_wchar(); 87 87 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 88 88 0 0 0 -static CORBA_TypeCode tc_string(); 90 90 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 91 91 0 0 0 -static CORBA_TypeCode tc_wstring(); 93 93 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 94 94 0 0 0 -static CORBA_TypeCode tc_any(); 96 100 4 0 0 0.0 0.0 -const CORBA_TypeCode_ptr _tc_CORBA_ 101 101 0 0 0 -static CORBA_TypeCode tc_typecode() 103 103 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 104 104 0 0 0 -static CORBA_TypeCode tc_principal( 106 106 0 0 0 -const CORBA_TypeCode_ptr _tc_CORBA_ 107 107 0 0 0 -static const unsigned char oc_objre 109 128 8 11 0 1.4 0.0 -static CORBA_TypeCode tc_objref(); 129 131 0 2 0 ! *** -const CORBA_TypeCode_ptr _tc_CORBA_ 132 132 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 44 62 1 1.4 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/tcpoa.cpp.cccc b/TAO/IIOP/docs/us/codecounts/tcpoa.cpp.cccc deleted file mode 100644 index a5e145edfe2..00000000000 --- a/TAO/IIOP/docs/us/codecounts/tcpoa.cpp.cccc +++ /dev/null @@ -1,51 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/tcpoa.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static TCP_OA*the_oa; 1 44 14 1 0 0.1 0.0 -static pthread_key_t request_key; 47 47 0 0 0 -static pthread_mutex_t tcpoa_mutex= 48 48 0 0 0 -static pthread_mutex_t tcpoa_lock=P 49 49 0 0 0 -static pthread_attr_t thread_attr; 50 50 0 0 0 -static void tcp_oa_dispatcher(){} 53 180 45 59 ? 10 1.3 0.2 -static GIOP::LocateStatusType tcp_o 182 206 4 18 5 4.5 1.3 -TCP_OA::TCP_OA(CORBA_ORB_ptr owning 209 237 5 19 3 3.8 0.6 -TCP_OA::~TCP_OA(){} 239 241 0 2 0 ! *** -TCP_OA_ptr TCP_OA::init(){} 244 288 11 18 3 1.6 0.3 -CORBA_Object_ptr __stdcall TCP_OA:: 291 348 9 41 ? 8 4.6 0.9 -CORBA_OctetSeq*__stdcall TCP_OA::ge 351 364 4 9 1 2.3 0.3 -((GIOP::RequestHeader*)pthread_gets 368 382 9 1 0 0.1 0.0 -CORBA_Object_ptr __stdcall _this(){ 386 436 23 22 6 1.0 0.3 -CORBA_OctetSeq*__stdcall TCP_OA::ge 439 454 6 8 1 1.3 0.2 -CORBA_Principal_ptr __stdcall TCP_O 457 472 6 8 1 1.3 0.2 -void TCP_OA::handle_message(){} 474 489 3 8 1 2.7 0.3 -void*TCP_OA::worker(){} 493 527 16 15 4 0.9 0.3 -void __stdcall TCP_OA::get_request( 531 779 128 82 ? 14 0.6 0.1 -void __stdcall TCP_OA::please_shutd 782 797 3 9 0 3.0 0.0 -void __stdcall TCP_OA::clean_shutdo 799 824 3 15 2 5.0 0.7 -void __stdcall TCP_OA::register_dir 827 848 3 16 2 5.3 0.7 -void __stdcall TCP_OA::get_request( 850 873 9 13 2 1.4 0.2 -DEFINE_GUID(IID_TCP_OA,0xa201e4c4,0 876 882 4 2 0 0.5 0.0 -ULONG __stdcall TCP_OA::AddRef(){Cr 885 894 0 6 1 ! *** ! *** -ULONG __stdcall TCP_OA::Release(){C 896 913 0 10 3 ! *** ! *** -HRESULT __stdcall TCP_OA::QueryInte 915 934 0 16 6 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 305 425 73 1.4 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/tcpoa.hh.cccc b/TAO/IIOP/docs/us/codecounts/tcpoa.hh.cccc deleted file mode 100644 index 8feca7cce56..00000000000 --- a/TAO/IIOP/docs/us/codecounts/tcpoa.hh.cccc +++ /dev/null @@ -1,31 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/tcpoa.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -class _EXPCLASS TCP_OA; 1 33 26 1 0 0.0 0.0 -typedef TCP_OA*TCP_OA_ptr; 34 34 0 0 0 -extern const IID IID_TCP_OA; 38 38 0 0 0 -class _EXPCLASS TCP_OA:public TOA{p 40 224 93 61 2 0.7 0.0 -; 224 224 0 0 0 -typedef TCP_OA*TCP_OA_ptr; 226 226 0 0 0 -extern CORBA_Object_ptr __stdcall _ 229 245 16 0 0 0.0 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 135 68 2 0.5 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/thread.hh.cccc b/TAO/IIOP/docs/us/codecounts/thread.hh.cccc deleted file mode 100644 index 4b1e08a0cfd..00000000000 --- a/TAO/IIOP/docs/us/codecounts/thread.hh.cccc +++ /dev/null @@ -1,35 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/thread.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef thread_t pthread_t; 1 67 39 4 0 0.1 0.0 -typedef mutex_t pthread_mutex_t; 68 68 0 0 0 -typedef cond_t pthread_cond_t; 69 69 0 0 0 -typedef unsigned long pthread_attr_ 70 70 0 0 0 -typedef thread_key_t pthread_key_t; 71 71 0 0 0 -struct pthread_once_t{}; 81 84 0 3 0 ! *** -inline void pthread_once(pthread_on 88 97 0 9 1 ! *** ! *** -inline void*pthread_getspecific(pth 107 114 0 6 1 ! *** ! *** -inline int pthread_create(pthread_t 118 127 0 9 1 ! *** ! *** -class Critical{}; 133 156 6 14 0 2.3 0.0 -class ForceSynchronousCancel{}; 159 181 10 8 0 0.8 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 55 64 3 1.2 0.1 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/toa.cpp.cccc b/TAO/IIOP/docs/us/codecounts/toa.cpp.cccc deleted file mode 100644 index 98d352ea297..00000000000 --- a/TAO/IIOP/docs/us/codecounts/toa.cpp.cccc +++ /dev/null @@ -1,27 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/toa.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -DEFINE_GUID(IID_TOA,0xa201e4c8,0xf2 1 44 14 3 0 0.2 0.0 -TOA_ptr TOA::get_named_toa(){} 47 102 28 22 5 0.8 0.2 -TOA_ptr TOA::get_toa(){} 105 147 15 22 5 1.5 0.3 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 57 50 10 0.9 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/toa.hh.cccc b/TAO/IIOP/docs/us/codecounts/toa.hh.cccc deleted file mode 100644 index 3229e548e61..00000000000 --- a/TAO/IIOP/docs/us/codecounts/toa.hh.cccc +++ /dev/null @@ -1,30 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/toa.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -typedef class TOA*TOA_ptr; 1 18 10 1 0 0.1 0.0 -CORBA_Boolean is_nil(); 20 20 0 0 0 -void release(); 21 21 0 0 0 -extern const IID IID_TOA; 23 23 0 0 0 -class TOA:public IUnknown{public:vi 25 187 113 41 0 0.4 0.0 -; 187 187 0 0 0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 123 47 0 0.4 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/typecode.cpp.cccc b/TAO/IIOP/docs/us/codecounts/typecode.cpp.cccc deleted file mode 100644 index 11a4a8c0c88..00000000000 --- a/TAO/IIOP/docs/us/codecounts/typecode.cpp.cccc +++ /dev/null @@ -1,41 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/typecode.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -static pthread_mutex_t refcnt_lock= 1 38 20 1 0 0.1 0.0 -void CORBA_release(){} 42 47 0 5 1 ! *** ! *** -CORBA_Boolean CORBA_is_nil(){} 49 53 0 4 1 ! *** ! *** -CORBA_TypeCode::CORBA_TypeCode(CORB 55 69 4 10 0 2.5 0.0 -CORBA_TypeCode::CORBA_TypeCode(CORB 72 115 20 21 1 1.0 0.1 -CORBA_TypeCode::~CORBA_TypeCode(){} 118 129 5 6 2 1.2 0.4 -DEFINE_GUID(IID_CORBA_TypeCode,0xa2 132 139 5 2 0 0.4 0.0 -ULONG __stdcall CORBA_TypeCode::Add 142 151 0 6 1 ! *** ! *** -ULONG __stdcall CORBA_TypeCode::Rel 153 168 0 11 4 ! *** ! *** -HRESULT __stdcall CORBA_TypeCode::Q 170 187 0 14 5 ! *** ! *** -CORBA_TCKind CORBA_TypeCode::kind(C 190 200 3 7 1 2.3 0.3 -static CORBA_Boolean skip_typecode( 203 252 15 29 ? 9 1.9 0.6 -CORBA_Any_ptr CORBA_TypeCode::membe 255 341 29 44 ? 19 1.5 0.7 -CORBA_ULong CORBA_TypeCode::param_c 344 434 23 53 ! 22 2.3 1.0 -CORBA_ULong CORBA_TypeCode::ulong_p 437 507 26 36 ? 16 1.4 0.6 -CORBA_TypeCode_ptr CORBA_TypeCode:: 510 672 43 99 ! 58 2.3 1.3 -CORBA_String CORBA_TypeCode::id(COR 675 711 15 19 3 1.3 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 208 384 143 1.8 0.7 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/typecode.hh.cccc b/TAO/IIOP/docs/us/codecounts/typecode.hh.cccc deleted file mode 100644 index 494931168d4..00000000000 --- a/TAO/IIOP/docs/us/codecounts/typecode.hh.cccc +++ /dev/null @@ -1,36 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/typecode.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -enum CORBA_TCKind{}; 1 50 23 26 0 1.1 0.0 -extern CORBA_TypeCode_ptr _tc_CORBA 53 56 3 0 0 0.0 0.0 -class CORBA_Bounds{}; 57 62 0 5 0 ! *** -extern CORBA_TypeCode_ptr _tc_CORBA 64 64 0 0 0 -class CORBA_BadKind{}; 65 70 0 5 0 ! *** -typedef class CORBA_TypeCode*CORBA_ 73 82 9 0 0 0.0 0.0 -void CORBA_release(); 83 83 0 0 0 -CORBA_Boolean CORBA_is_nil(); 84 84 0 0 0 -extern const IID IID_CORBA_TypeCode 86 86 0 0 0 -class _EXPCLASS CORBA_TypeCode:publ 88 266 101 56 2 0.6 0.0 -; 266 266 0 0 0 -extern const CORBA_TypeCode_ptr _tc 268 298 3 21 0 7.0 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 139 124 2 0.9 0.0 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/xdr.cpp.cccc b/TAO/IIOP/docs/us/codecounts/xdr.cpp.cccc deleted file mode 100644 index 90d59d8dd98..00000000000 --- a/TAO/IIOP/docs/us/codecounts/xdr.cpp.cccc +++ /dev/null @@ -1,33 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/xdr.cpp -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -CORBA_Boolean XDR_stream::put_longl 1 52 31 6 1 0.2 0.0 -CORBA_Boolean XDR_stream::get_longl 54 59 0 5 1 ! *** ! *** -CORBA_Boolean XDR_stream::put_longd 62 70 3 5 1 1.7 0.3 -CORBA_Boolean XDR_stream::get_longd 72 77 0 5 1 ! *** ! *** -CORBA_TypeCode::traverse_status XDR 80 406 82 ? 202 ! 65 2.5 0.8 -extern CORBA_TypeCode_ptr __tc_cons 410 413 3 0 0 0.0 0.0 -CORBA_TypeCode::traverse_status XDR 416 766 82 ? 220 ! 60 2.7 0.7 -CORBA_Boolean XDR_stream::flush_fra 769 801 10 15 3 1.5 0.3 -CORBA_Boolean XDR_stream::read_frag 804 815 5 5 1 1.0 0.2 --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 216 472 133 2.2 0.6 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/codecounts/xdr.hh.cccc b/TAO/IIOP/docs/us/codecounts/xdr.hh.cccc deleted file mode 100644 index 45e2ca773c7..00000000000 --- a/TAO/IIOP/docs/us/codecounts/xdr.hh.cccc +++ /dev/null @@ -1,27 +0,0 @@ - -CCCC - a code counter for C and C++ -=================================== - -A program to analyse C and C++ source code and report on -some simple software metrics -Version 1.00 -Copyright Tim Littlefair, 1995 - -The development of this program was heavily dependent on -the Purdue Compiler Construction Tool Set (PCCTS) -by Terence Parr, Will Cohen, Hank Dietz, Russel Quoung -and others. - -This software is provided with NO WARRANTY - - -Scope: ../../../lib/xdr.hh -Canonical name From To COM LOC MVG L/C M/C --------------------- ---- ---- ----- ----- ----- ----- ----- -class XDR_stream{}; 1 269 78 ? 149 ! 32 1.9 0.4 -inline CORBA_Boolean XDR_stream::ou 271 275 0 4 1 ! *** ! *** -inline CORBA_Boolean XDR_stream::pu 277 287 0 10 4 ! *** ! *** --------------------- ---- ---- ----- ----- ----- ----- ----- -Summary for scope: 78 166 37 2.1 0.5 --------------------- ---- ---- ----- ----- ----- ----- ----- - diff --git a/TAO/IIOP/docs/us/plan.html b/TAO/IIOP/docs/us/plan.html deleted file mode 100644 index 5650257a330..00000000000 --- a/TAO/IIOP/docs/us/plan.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - IIOP Notes - - - -

    IIOP Notes

    - -

    - The current plan for transforming the Sun IIOP Reference - implementation into the basis of the TAO is: - -

      -
    1. Replace selected portions of code with ACE components while maintaining the current architecture and design. -
    2. Distill the design patterns and begin re-architecting. -
    - -

    - Please feel free to email additions to this list! - -


    -
    Chris Cleeland
    - - -Last modified: Fri Feb 14 15:46:52 CST - - - diff --git a/TAO/IIOP/docs/us/server b/TAO/IIOP/docs/us/server deleted file mode 100644 index afad69638a8..00000000000 --- a/TAO/IIOP/docs/us/server +++ /dev/null @@ -1,5 +0,0 @@ -This note describes architectural differences between the Sun IIOP -Reference implementation (SIR) and a new architecture based on ACE. -After narrating the SIR architecture, shortcomings of that design are -highlighted, and a solution known as The ACE ORB (TAO) presented. - diff --git a/TAO/IIOP/test/Build/clnt.bld b/TAO/IIOP/test/Build/clnt.bld deleted file mode 100755 index 76e60ef8967..00000000000 --- a/TAO/IIOP/test/Build/clnt.bld +++ /dev/null @@ -1,8 +0,0 @@ -#!build -default: - program - :debuglevel=multi -../cubit.cpp - C++ -../clnt.cpp - C++ diff --git a/TAO/IIOP/test/Build/default.bld b/TAO/IIOP/test/Build/default.bld deleted file mode 100755 index cdf3e2e8210..00000000000 --- a/TAO/IIOP/test/Build/default.bld +++ /dev/null @@ -1,19 +0,0 @@ -#!build -default: - nobuild - :debuglevel=multi - :target=vxwppc - :sourcedirs=/home/ace/ACE_wrappers.vxworks - :sourcedirs=../../proto/include - :sourcedirs=../.. - :libraries=../../proto/lib/tao.a - :libraries=/home/ace/ACE_wrappers.vxworks/ace/libACE.a - :libraries=/appl/newgreen/vxppc603/indlib.o - :defines=DEBUG -clnt.bld - program - :debuglevel=multi -svr.bld - program - :debuglevel=multi - :defines=USE_ACE_EVENT_HANDLING diff --git a/TAO/IIOP/test/Build/svr.bld b/TAO/IIOP/test/Build/svr.bld deleted file mode 100755 index 7c8725356b2..00000000000 --- a/TAO/IIOP/test/Build/svr.bld +++ /dev/null @@ -1,8 +0,0 @@ -#!build -default: - program - :debuglevel=multi -../svr.cpp - C++ -../cubit.cpp - C++ diff --git a/TAO/IIOP/test/Makefile b/TAO/IIOP/test/Makefile deleted file mode 100644 index 9237323f9c8..00000000000 --- a/TAO/IIOP/test/Makefile +++ /dev/null @@ -1,121 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba - -PROG_SRCS = svr.cpp clnt.cpp cubit.cpp \ - test1.cpp test1_clnt.cpp test1_svr.cpp \ - echo_clnt.cpp echo_svr.cpp - -LSRC = $(PROG_SRCS) - -CUBIT_SVR_OBJS = svr.o cubit_i.o cubitS.o -CUBIT_CLT_OBJS = clnt.o cubitC.o - -BASIC_SVR_OBJS = test1.o test1_svr.o -BASIC_CLT_OBJS = test1.o test1_clnt.o - -ECHO_SVR_OBJS = test1.o echo_svr.o -ECHO_CLT_OBJS = test1.o echo_clnt.o - -BIN = svr clnt test1_svr test1_clnt -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# Local modifications to variables imported by includes above. -LDFLAGS += -L../proto/lib -CPPFLAGS += -I../proto/include -DUSE_ACE_EVENT_HANDLING -DDEBUG - -svr: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clnt: $(addprefix $(VDIR),$(CUBIT_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_svr: $(addprefix $(VDIR),$(BASIC_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_clnt: $(addprefix $(VDIR),$(BASIC_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -######## -# Sanity check builds by running basic functionality tests. -# -# "sleep 5" in the server startup is usually enough to get the -# objref into the file so the client can read it. -# -check: $(TESTS) - @echo "testing with 'cube' calls, stub + DII, IOR strings" - @./svr -i30 -o non-internet > obj.1 & sleep 5 - @./clnt -n250 -O `cat obj.1` -x - @echo '' - @echo "testing request forwarding with 'cube' calls, stub + DII" - @./svr -f -i30 > obj.2 & sleep 5 - @./clnt -n250 -O `cat obj.2` -x - @echo '' - @echo "testing transmission of primitive data types" - @./test1_svr -i30 > obj.3 & sleep 5 - @./test1_clnt -n50 -O `cat obj.3` -x - @echo '' -# @echo "testing echo of primitive data values" -# @./echo_svr -i30 > obj.4 & sleep 5 -# @./echo_clnt -O `cat obj.4` -x -# @echo '' - @echo "testing with 'cube' calls, MT-ized (no forwarding)" - @./svr -t -i30 -o non-internet > obj.5 & sleep 5 - @./clnt -n250 -O `cat obj.5` -x - @echo '' - -ifdef LOCALRULES -######## -# CUBIT test -svr: svr.o cubit.o - $(LINK.cc) -o svr svr.o cubit.o $(LDLIBS) $(POSTLINK) -clnt: cubit.o clnt.o - $(LINK.cc) -o clnt clnt.o cubit.o $(LDLIBS) $(POSTLINK) - -######## -# BASIC DATATYPES test -test1_clnt: test1.o test1_clnt.o - $(LINK.cc) -o test1_clnt test1_clnt.o test1.o $(LDLIBS) $(POSTLINK) -test1_svr: test1.o test1_svr.o - $(LINK.cc) -o test1_svr test1_svr.o test1.o $(LDLIBS) $(POSTLINK) - -######## -# ECHO test ... "test1" where the operation semantics are violated; -# this aids some porting work, but is a less rigorous test -echo_clnt: test1.o echo_clnt.o - $(LINK.cc) -o echo_clnt echo_clnt.o test1.o $(LDLIBS) $(POSTLINK) -echo_svr: test1.o echo_svr.o - $(LINK.cc) -o echo_svr echo_svr.o test1.o $(LDLIBS) $(POSTLINK) -endif - -clean: - -rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -install: - -@echo "Nothing to install, these are tests!" - - - - - diff --git a/TAO/IIOP/test/Orbeline/base_server/Makefile b/TAO/IIOP/test/Orbeline/base_server/Makefile deleted file mode 100644 index 9fdad280ffc..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = server - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -server: cubitS.o cubitC.o server.o Profile_Timer.o cubit_impl.o - $(CC) -o server cubitS.o cubitC.o cubit_impl.o server.o Profile_Timer.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.cpp b/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.h b/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/IIOP/test/Orbeline/base_server/cubit.idl b/TAO/IIOP/test/Orbeline/base_server/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbeline/base_server/cubit_impl.cpp b/TAO/IIOP/test/Orbeline/base_server/cubit_impl.cpp deleted file mode 100644 index c4313a1fccb..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit () - {} diff --git a/TAO/IIOP/test/Orbeline/base_server/cubit_impl.h b/TAO/IIOP/test/Orbeline/base_server/cubit_impl.h deleted file mode 100644 index f1f5e3fa3ea..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/cubit_impl.h +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubitS.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual _sk_Cubit { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - -#ifdef Cubit_USE_BOA - Cubit_Impl (const char *obj_name = NULL) : - _sk_Cubit(obj_name) - {} -#else - Cubit_Impl (const char *obj_name = NULL) - {} -#endif /* Cubit_USE_BOA */ - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - virtual CORBA::Short cube_short(CORBA::Short s); - virtual CORBA::Long cube_long(CORBA::Long l); - virtual Cubit::Many cube_struct(const Cubit::Many& values); - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - virtual void please_exit(); -}; - -#endif diff --git a/TAO/IIOP/test/Orbeline/base_server/server.cpp b/TAO/IIOP/test/Orbeline/base_server/server.cpp deleted file mode 100644 index 99c65c6718e..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/server.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#include "cubit_impl.h" // server header file - -int -main (int argc, char** argv) -{ - - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); - CORBA::BOA_var boa = orb->BOA_init(argc, argv); - -#ifdef Cubit_USE_BOA - Cubit_Impl cb("Cubit"); - cout << "Using BOA approach" << endl; -#else - Cubit_Impl tied("Cubit"); - _tie_Cubit cb(tied, "Cubit"); - - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - try { - - boa->obj_is_ready(&cb); - - boa->impl_is_ready(); - - } catch (const CORBA::Exception &excep) { - cerr << "Server error: " << excep << endl; - return -1; - } catch (...) { - cerr << "Unknown exception" << endl; - return -1; - } - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/test/Orbeline/base_server/stdmk b/TAO/IIOP/test/Orbeline/base_server/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/IIOP/test/Orbeline/base_server/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/IIOP/test/Orbeline/client/Makefile b/TAO/IIOP/test/Orbeline/client/Makefile deleted file mode 100644 index d9c26fe56f0..00000000000 --- a/TAO/IIOP/test/Orbeline/client/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = client - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -client: cubitC.o Profile_Timer.o client.o - $(CC) -o client cubitC.o Profile_Timer.o client.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/IIOP/test/Orbeline/client/Profile_Timer.cpp b/TAO/IIOP/test/Orbeline/client/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/IIOP/test/Orbeline/client/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/IIOP/test/Orbeline/client/Profile_Timer.h b/TAO/IIOP/test/Orbeline/client/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/IIOP/test/Orbeline/client/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/IIOP/test/Orbeline/client/client.cpp b/TAO/IIOP/test/Orbeline/client/client.cpp deleted file mode 100644 index d9eb91526d7..00000000000 --- a/TAO/IIOP/test/Orbeline/client/client.cpp +++ /dev/null @@ -1,232 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include -#include -#include -#include -#include -#include "cubitC.h" -#include "Profile_Timer.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - if (argc != 3) { - cerr << "Format: client " << endl; - return -1; - } - - strcpy(SERVER_HOST, argv[1]); - - LOOP_COUNT = atoi(argv[2]); - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - try { - cb = Cubit::_bind ("Cubit", SERVER_HOST); - - } catch (const CORBA::Exception & sysEx) { - cerr << "Binding failed: " << endl; - cerr << sysEx; - } catch (...) { - cerr << "Unexpected exception" << endl; - } - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - Profile_Timer pt; - - pt.start(); - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - try { - ret_octet = cb->cube_octet (arg_octet); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - try { - ret_short = cb->cube_short (arg_short); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - try { - ret_long = cb->cube_long (arg_long); - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - try { - ret_struct = cb->cube_struct (arg_struct); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - pt.stop(); - - Elapsed_Time et; - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/test/Orbeline/client/cubit.idl b/TAO/IIOP/test/Orbeline/client/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/IIOP/test/Orbeline/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbeline/client/stdmk b/TAO/IIOP/test/Orbeline/client/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/IIOP/test/Orbeline/client/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/IIOP/test/Orbix/Makefile b/TAO/IIOP/test/Orbix/Makefile deleted file mode 100644 index 96935fb78fc..00000000000 --- a/TAO/IIOP/test/Orbix/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the Gateway application -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = base_server \ - client \ - tpr \ - tpool \ - tps - -#---------------------------------------------------------------------------- -# 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/TAO/IIOP/test/Orbix/base_server/Makefile b/TAO/IIOP/test/Orbix/base_server/Makefile deleted file mode 100644 index 3bf0684dfd5..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/base_server/cubit.h b/TAO/IIOP/test/Orbix/base_server/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/base_server/cubit.idl b/TAO/IIOP/test/Orbix/base_server/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbix/base_server/cubitC.cpp b/TAO/IIOP/test/Orbix/base_server/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/base_server/cubitC.h b/TAO/IIOP/test/Orbix/base_server/cubitC.h deleted file mode 100644 index 584efa67c8d..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubitC.h +++ /dev/null @@ -1,345 +0,0 @@ -// $Id$ - -#ifndef _cubitC_h -#define _cubitC_h - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -#include "corba.h" - - - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr CubitRef; - -#ifndef _Cubit_var_ -#define _Cubit_var_ -class Cubit_var -{ - public: - Cubit_var(); - Cubit_var(Cubit_ptr); - Cubit_var(const Cubit_var&); - ~Cubit_var(); - Cubit_var& operator=(Cubit_ptr); - operator Cubit_ptr() const { return _ptr; } -#if defined(_HPCC_BUG) - operator Cubit *&() { return _ptr; } -#else - operator Cubit_ptr&() { return _ptr; } -#endif - Cubit_ptr operator->() const { return _ptr;} - friend NCistream& operator>>(NCistream&, Cubit_var&); - friend NCostream& operator<<(NCostream&, const Cubit_var&); - friend istream& operator>>(istream&, Cubit_var&); - friend ostream& operator<<(ostream&, const Cubit_var&); - private: - Cubit_ptr _ptr; - void operator=(const Cubit_var&) {} -}; -#endif -class Cubit: public virtual CORBA_Object -{ - private: - static const CORBA::TypeInfo _class_info; - Cubit(const Cubit&) {} - void operator=(const Cubit&){} - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo& ) const; - static CORBA::Object *_factory(); - protected: - Cubit(const char *obj_name = NULL) :CORBA_Object(obj_name, 1) {} - Cubit(NCistream& strm) :CORBA_Object(strm) {} - virtual ~Cubit() {} - public: - static Cubit_ptr _duplicate(Cubit_ptr obj) { - if (obj ) obj->_ref(); - return obj; - } - static Cubit_ptr _nil() { return (Cubit_ptr)NULL;} - static Cubit_ptr _narrow(CORBA::Object *obj); - static Cubit_ptr _clone(Cubit_ptr obj) { - CORBA::Object_var obj_var(__clone(obj)); - -#if defined(_HPCC_BUG) - return _narrow(obj_var.operator CORBA::Object_ptr()); -#else - return _narrow(obj_var); -#endif - } - static Cubit_ptr _bind(const char *object_name = NULL, - const char *host_name = NULL, - const CORBA::BindOptions* opt = NULL); - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - - virtual CORBA::Short cube_short(CORBA::Short s); - - virtual CORBA::Long cube_long(CORBA::Long l); - - struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - }; - friend NCostream& operator<<(NCostream&, const Many& ); - friend NCistream& operator>>(NCistream&, Many& ); - - friend ostream& operator<<(ostream&, const Many& ); - inline friend istream& operator>>(istream& _strm, Many& _obj) { - NCistream _istrm(_strm); - _istrm >> _obj; - return _strm; - } - - - typedef Many *Many_ptr; - class Many_var - { - public: - Many_var() { _ptr = (Many*)NULL;} - Many_var(Many *ptr) { - _ptr = ptr; - } - Many_var(const Many_var& var) { - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - } - ~Many_var() { - if (_ptr != (Many *)NULL) delete _ptr; - } - Many_var& operator=(Many *ptr) { - if (_ptr != (Many *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - Many_var& operator=(const Many_var& var) { - if (_ptr != (Many *)NULL) delete _ptr; - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - return *this; - } - Many *operator->() { return _ptr; } - operator Many () const { return *_ptr; } - operator Many& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const Many_var& var) { - if (var._ptr == (Many *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - Many_var& var) { - if ( ! var._ptr) - var._ptr = new Many; - strm >> *var._ptr; - return strm; - } - private: - Many *_ptr; - }; - - - virtual Cubit::Many cube_struct(const Cubit::Many& values); - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th - }; - inline friend NCostream& operator<<(NCostream& _strm, discrim _enum_type) { - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend NCistream& operator>>(NCistream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - if (_temp >= 6) - throw CORBA::BAD_PARAM(); - _enum_type = discrim(_temp); - return _strm; - } - inline friend ostream& operator<<(ostream& _strm, discrim _enum_type) { - if( &_strm == &cout || &_strm == &cerr || &_strm == &clog) { - _strm << "discrim:"; - switch(_enum_type) { - case e_0th: - _strm << "e_0th" << endl; - break; - case e_1st: - _strm << "e_1st" << endl; - break; - case e_2nd: - _strm << "e_2nd" << endl; - break; - case e_3rd: - _strm << "e_3rd" << endl; - break; - case e_4th: - _strm << "e_4th" << endl; - break; - case e_5th: - _strm << "e_5th" << endl; - break; - } - } - else - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend istream& operator>>(istream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - _enum_type = discrim(_temp); - return _strm; - } - - - class oneof - { - public: - private: - discrim _disc; - CORBA::Octet __o; - CORBA::Short __s; - CORBA::Long __l; - Cubit::Many __cm; - public: - oneof() : _disc(discrim(0)) {} - ~oneof() {} - oneof(const oneof& obj); - oneof& operator=(const oneof& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void o(CORBA::Octet val) { - __o = val; - _disc = Cubit::e_0th; - } - CORBA::Octet o() const { return __o; } - - void s(CORBA::Short val) { - __s = val; - _disc = Cubit::e_1st; - } - CORBA::Short s() const { return __s; } - - void l(CORBA::Long val) { - __l = val; - _disc = Cubit::e_2nd; - } - CORBA::Long l() const { return __l; } - - void cm(const Cubit::Many& val) { - __cm = val; - _disc = Cubit::e_3rd; - } - const Cubit::Many& cm() const { return __cm; } - Cubit::Many& cm() { return __cm; } - - friend NCostream& operator<<(NCostream&, const oneof& ); - friend NCistream& operator>>(NCistream&, oneof& ); - friend ostream& operator<<(ostream&, const oneof&); - inline friend istream& operator>>(istream& strm, oneof& obj) { - NCistream istrm(strm); - strm >> obj; - return strm; - } - }; - - typedef oneof *oneof_ptr; - class oneof_var - { - public: - oneof_var() { _ptr = (oneof*)NULL;} - oneof_var(oneof *ptr) { - _ptr = ptr; - } - oneof_var(const oneof_var& var) { - _ptr = new oneof(*var._ptr); - } - ~oneof_var() { - if (_ptr != (oneof *)NULL) delete _ptr; - } - oneof_var& operator=(oneof *ptr) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - oneof_var& operator=(const oneof_var& var) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = new oneof(*var._ptr); - return *this; - } - oneof *operator->() { return _ptr; } - operator oneof () const { return *_ptr; } - operator oneof& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const oneof_var& var) { - if (var._ptr == (oneof *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - oneof_var& var) { - if ( ! var._ptr) - var._ptr = new oneof; - strm >> *var._ptr; - return strm; - } - private: - oneof *_ptr; - }; - - - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - - virtual void please_exit(); - - inline friend NCistream& operator>>(NCistream& strm, Cubit_ptr& obj) { - CORBA::Object_var _obj(obj); - _obj = CORBA::Object::_read(strm, Cubit::_desc()); - obj = Cubit::_narrow(_obj); - return strm; - } - inline friend ostream& operator<<(ostream& strm, const Cubit_ptr obj) { - strm << (CORBA::Object_ptr)obj; - return strm; - } - inline friend istream& operator>>(istream& strm, Cubit_ptr& obj) { - NCistream istrm(strm); - istrm >> obj; - return strm; - } -}; - - -#endif - diff --git a/TAO/IIOP/test/Orbix/base_server/cubitS.cpp b/TAO/IIOP/test/Orbix/base_server/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/test/Orbix/base_server/cubitS.h b/TAO/IIOP/test/Orbix/base_server/cubitS.h deleted file mode 100644 index 3ca717e2b49..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubitS.h +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#ifndef _cubitS_h -#define _cubitS_h - -#include "cubitC.h" - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -class _sk_Cubit : public Cubit -{ - protected: - _sk_Cubit(const char *object_name = (const char *)NULL); - _sk_Cubit(const char *service_name, const CORBA::ReferenceData& data); - virtual ~_sk_Cubit() {} - public: - static const CORBA::TypeInfo _skel_info; - - // The following operations need to be implemented by the server. - virtual CORBA::Octet cube_octet(CORBA::Octet o) = 0; - virtual CORBA::Short cube_short(CORBA::Short s) = 0; - virtual CORBA::Long cube_long(CORBA::Long l) = 0; - virtual Cubit::Many cube_struct(const Cubit::Many& values) = 0; - virtual Cubit::oneof cube_union(const Cubit::oneof& values) = 0; - virtual void please_exit() = 0; - - // Skeleton Operations implemented automatically - - static void _cube_octet(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_short(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_long(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_struct(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_union(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _please_exit(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - -}; -template -class _tie_Cubit : public Cubit -{ - public: - _tie_Cubit(T& t, const char *obj_name=(char*)NULL) : - Cubit(obj_name), - _ref(t) { - _object_name(obj_name); - } - _tie_Cubit(T& t, const char *service_name, - const CORBA::ReferenceData& id) - :_ref(t) { - _service(service_name, id); - } - ~_tie_Cubit() {} - CORBA::Octet cube_octet(CORBA::Octet o) { - return _ref.cube_octet( - o); - } - CORBA::Short cube_short(CORBA::Short s) { - return _ref.cube_short( - s); - } - CORBA::Long cube_long(CORBA::Long l) { - return _ref.cube_long( - l); - } - Cubit::Many cube_struct(const Cubit::Many& values) { - return _ref.cube_struct( - values); - } - Cubit::oneof cube_union(const Cubit::oneof& values) { - return _ref.cube_union( - values); - } - void please_exit() { - _ref.please_exit(); - } - - private: - T& _ref; -}; - -#endif - diff --git a/TAO/IIOP/test/Orbix/base_server/cubit_impl.cpp b/TAO/IIOP/test/Orbix/base_server/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/test/Orbix/base_server/cubit_impl.h b/TAO/IIOP/test/Orbix/base_server/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/test/Orbix/base_server/server.cpp b/TAO/IIOP/test/Orbix/base_server/server.cpp deleted file mode 100644 index 527fa13d76e..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/test/Orbix/base_server/tpr.cpp b/TAO/IIOP/test/Orbix/base_server/tpr.cpp deleted file mode 100644 index da78690cc2c..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/tpr.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tpr.h" - -void * -worker(void *vp) -{ - ACE_Thread_Control tc (ACE_Thread_Manager::instance ()); - CORBA::Orbix.continueThreadDispatch (*(CORBA::Request *)vp); - return NULL; -} - - -int -tpr_filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance (); - thr_mgr->spawn (ACE_THR_FUNC (worker), - (void *) &r, - THR_DETACHED); - - return -1; -} - -tpr_filter tpr_dispatcher; diff --git a/TAO/IIOP/test/Orbix/base_server/tpr.h b/TAO/IIOP/test/Orbix/base_server/tpr.h deleted file mode 100644 index b5e8be94cf1..00000000000 --- a/TAO/IIOP/test/Orbix/base_server/tpr.h +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" - -// -// Create a thread filter to dispatch incoming calls -// -class tpr_filter : public CORBA::ThreadFilter { - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/test/Orbix/client/Makefile b/TAO/IIOP/test/Orbix/client/Makefile deleted file mode 100644 index 73f775bee2f..00000000000 --- a/TAO/IIOP/test/Orbix/client/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/client/client.cpp b/TAO/IIOP/test/Orbix/client/client.cpp deleted file mode 100644 index f199078b601..00000000000 --- a/TAO/IIOP/test/Orbix/client/client.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cb = Cubit::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/test/Orbix/client/cubit.h b/TAO/IIOP/test/Orbix/client/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/test/Orbix/client/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/client/cubit.idl b/TAO/IIOP/test/Orbix/client/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/test/Orbix/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbix/client/cubitC.cpp b/TAO/IIOP/test/Orbix/client/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/test/Orbix/client/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/factory_client/Makefile b/TAO/IIOP/test/Orbix/factory_client/Makefile deleted file mode 100644 index 63cc8a65e02..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h -.obj/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/factory_client/client.cpp b/TAO/IIOP/test/Orbix/factory_client/client.cpp deleted file mode 100644 index 1afdecbadf4..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/client.cpp +++ /dev/null @@ -1,237 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - Cubit_Factory_var cf; - - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cf = Cubit_Factory::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - cb = cf->create_cubit ("My_Cubit"); - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/test/Orbix/factory_client/cubit.h b/TAO/IIOP/test/Orbix/factory_client/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/factory_client/cubit.hh b/TAO/IIOP/test/Orbix/factory_client/cubit.hh deleted file mode 100644 index 72e2fb81395..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/cubit.hh +++ /dev/null @@ -1,1111 +0,0 @@ - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/factory_client/cubit.idl b/TAO/IIOP/test/Orbix/factory_client/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/IIOP/test/Orbix/factory_client/cubitC.cpp b/TAO/IIOP/test/Orbix/factory_client/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/factory_client/cubitS.cpp b/TAO/IIOP/test/Orbix/factory_client/cubitS.cpp deleted file mode 100644 index 56cf33174a6..00000000000 --- a/TAO/IIOP/test/Orbix/factory_client/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.hh" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/test/Orbix/orb.mk b/TAO/IIOP/test/Orbix/orb.mk deleted file mode 100644 index cf7b12d3b1b..00000000000 --- a/TAO/IIOP/test/Orbix/orb.mk +++ /dev/null @@ -1,146 +0,0 @@ -# ------------------------------------------------------------ -# Orbix 2.2 implicit rules for SunOS/GNU Make -# ------------------------------------------------------------ -# -# If you cut'n'paste this into your /usr/include/make/default.mk -# file, beware! This is not officially supported by Iona -# Technologies, and you may want to be a bit of a Makefile hacker -# to make it integrate well with your site's setup. - -# The best thing to do would be put it in a standard place and -# anyone who wants the Orbix implicit rule set can include -# it with an "include /orbix.mk" line in their -# Makefile. A good place to put it might be /usr/include/make. - -# These rules define default C++, C++FLAGS and C++SUFFIX. -# C++ is the C++ compiler to use; C++FLAGS are command-line -# flags to the C++ compiler for use in compiling C++ source -# files into objects; C++SUFFIX is the filename suffix -# indicating C++ source. By default, it's set to "C" for AT&T C++, -# and "cc" for GNU g++. - -# Feel free to override these in your Makefiles *after* -# including this file. - -# IMPORTANT: If the -M switch is specified in IDLFLAGS, the IDL -# compiler appends to the user-specified file. The dependency for -# specified_file.o in the linking target should appear _after_ any use -# of the IDL compiler which takes the -M flag. Putting it _last_ -# is normally the best approach. - -# Note that these rule definitions use pattern matching, -# and therefore only work with SunOS make and GNU make. - -# They may not work with other vendor's versions of make. -# If they do not, you may wish to try using GNU make, which -# is free software produced by the Free Software Foundation. - -# If the version of make you wish to use does not support -# pattern matching, use the sample explicit rule set in -# the comments at the end of this file. - -# ------------------------------------------------------------ -# Essential: set these to the locations into which you -# have installed Orbix' components: - -ORBIX_BINDIR = /opt/Orbix_2.2MT/corba2/bin -ORBIX_LIBDIR = /opt/Orbix_2.2MT/corba2/lib -ORBIX_INCDIR = /opt/Orbix_2.2MT/corba2/include - -#------------------------------------------------------------- -# To compile the demos, you should change these values as -# appropriate for your particular system installation -#------------------------------------------------------------- - -X11BASE = /usr/openwin -X11INCDIR = $(X11BASE)/include -X11LIBDIR = $(X11BASE)/lib - -# C++ = CC -# C++FLAGS = -I$(ORBIX_INCDIR) -I. -mt -D_REENTRANT -# C++SUFFIX = cpp - -# ------------------------------------------------------------ -# ITCLT, IRCLT and ITSRV can be either statically or dynamically linked -# Use -Bdynamic or -Bstatic as appropriate. -# ------------------------------------------------------------ - -ITCLT = -Bstatic -lorbixmt -IRCLT = -Bstatic -lIRcltmt -ITSRV = -Bstatic -lorbixmt -ITIIOP = -Bstatic -liiopmt -ITDSI = -Bstatic -lDSImt -ITIFR = -Bstatic -lifrmt - -# ------------------------------------------------------------ -# SYSLIBS must be dynamically linked; otherwise you can expect to -# get linkage errors for symbols in the nsl library -# ------------------------------------------------------------ - -LDFLAGS += -L$(ORBIX_LIBDIR) -SYSLIBS = -Bdynamic -lnsl -lsocket - -IDL = $(ORBIX_BINDIR)/idl -IDLFLAGS = - -# ------------------------------------------------------------ -# The following section defines implicit rules for creating -# *.{C,S}.C files, rules for compiling those -# into objects, and even a rule for compiling C++ source into -# objects (in case one isn't already defined). - -# ------------------------------------------------------------ -# first, put the new suffixes at the *head* of the suffix list, -# overriding any existing .C compilation method. -.SUFFIXES: -.SUFFIXES: .$(C++SUFFIX) .idl $(SUFFIXES) - -# .SUFFIXES: .$(C++SUFFIX) .idl .hh $(SUFFIXES) -# ------------------------------------------------------------ -# *[CS].o must be compiled here, and depends -# mostly on the C++ files produced from the IDL file. - -%C.o: %C.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%S.o: %S.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%.o: %.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -%S.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%C.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%.hh: %.idl - $(IDL) $(IDLFLAGS) $< - -# ------------------------------------------------------------ -# If the version of make you wish to use does not support -# pattern matching, here's a sample of an explicit rule set. - -# We assume the IDL file is called "foobar.idl", we wish -# to compile "foobarC.o", "foobarS.o", and -# "foobar.hh", and the C++ file suffix. -# ------------------------------------------------------------ - -# foobarC.o: foobar.hh foobarC.C -# $(C++) -c ($C++FLAGS) foobarC.C -# -# foobarS.o: foobar.hh foobarS.C -# $(C++) -c ($C++FLAGS) foobarS.C -# -# foobarC.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobarS.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobar.hh: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl diff --git a/TAO/IIOP/test/Orbix/tpool/Makefile b/TAO/IIOP/test/Orbix/tpool/Makefile deleted file mode 100644 index 0e425af78b1..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpool.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpool.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/tpool/cubit.h b/TAO/IIOP/test/Orbix/tpool/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/tpool/cubit.idl b/TAO/IIOP/test/Orbix/tpool/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbix/tpool/cubitC.cpp b/TAO/IIOP/test/Orbix/tpool/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/tpool/cubitS.cpp b/TAO/IIOP/test/Orbix/tpool/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/test/Orbix/tpool/cubit_impl.cpp b/TAO/IIOP/test/Orbix/tpool/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/test/Orbix/tpool/cubit_impl.h b/TAO/IIOP/test/Orbix/tpool/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/test/Orbix/tpool/server.cpp b/TAO/IIOP/test/Orbix/tpool/server.cpp deleted file mode 100644 index ac107f69ec4..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/server.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file -#include "tpool.h" - -int -main (int argc, char** argv) -{ - - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // Register our thread-pool dispatcher - int n_threads = argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_THREADS; - Thread_Pool tpool_dispatcher (n_threads); - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/test/Orbix/tpool/tpool.cpp b/TAO/IIOP/test/Orbix/tpool/tpool.cpp deleted file mode 100644 index 219503a22d7..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/tpool.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "tpool.h" - -Thread_Pool::Thread_Pool (int n_threads) - : ACE_Task (ACE_Thread_Manager::instance ()) -{ - if (this->activate (THR_DETACHED | THR_NEW_LWP, n_threads) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); -} - -int -Thread_Pool::svc (void) -{ - cout << "Pool thread activated" << endl; - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return -1; -} - - -int -Thread_Pool::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - // Enqueue the request - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - this->msg_queue ()->enqueue (mb); - // Done - return -1; -} - - - diff --git a/TAO/IIOP/test/Orbix/tpool/tpool.h b/TAO/IIOP/test/Orbix/tpool/tpool.h deleted file mode 100644 index 337a7f54e65..00000000000 --- a/TAO/IIOP/test/Orbix/tpool/tpool.h +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class Thread_Pool : public ACE_Task, public CORBA::ThreadFilter -{ -public: - Thread_Pool (int n_threads); - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); - virtual int svc (void); - -}; - - diff --git a/TAO/IIOP/test/Orbix/tpr/Makefile b/TAO/IIOP/test/Orbix/tpr/Makefile deleted file mode 100644 index 650d6aaf259..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpr.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpr.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/tpr/cubit.h b/TAO/IIOP/test/Orbix/tpr/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/tpr/cubit.idl b/TAO/IIOP/test/Orbix/tpr/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/Orbix/tpr/cubitC.cpp b/TAO/IIOP/test/Orbix/tpr/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/tpr/cubitC.h b/TAO/IIOP/test/Orbix/tpr/cubitC.h deleted file mode 100644 index 584efa67c8d..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubitC.h +++ /dev/null @@ -1,345 +0,0 @@ -// $Id$ - -#ifndef _cubitC_h -#define _cubitC_h - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -#include "corba.h" - - - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr CubitRef; - -#ifndef _Cubit_var_ -#define _Cubit_var_ -class Cubit_var -{ - public: - Cubit_var(); - Cubit_var(Cubit_ptr); - Cubit_var(const Cubit_var&); - ~Cubit_var(); - Cubit_var& operator=(Cubit_ptr); - operator Cubit_ptr() const { return _ptr; } -#if defined(_HPCC_BUG) - operator Cubit *&() { return _ptr; } -#else - operator Cubit_ptr&() { return _ptr; } -#endif - Cubit_ptr operator->() const { return _ptr;} - friend NCistream& operator>>(NCistream&, Cubit_var&); - friend NCostream& operator<<(NCostream&, const Cubit_var&); - friend istream& operator>>(istream&, Cubit_var&); - friend ostream& operator<<(ostream&, const Cubit_var&); - private: - Cubit_ptr _ptr; - void operator=(const Cubit_var&) {} -}; -#endif -class Cubit: public virtual CORBA_Object -{ - private: - static const CORBA::TypeInfo _class_info; - Cubit(const Cubit&) {} - void operator=(const Cubit&){} - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo& ) const; - static CORBA::Object *_factory(); - protected: - Cubit(const char *obj_name = NULL) :CORBA_Object(obj_name, 1) {} - Cubit(NCistream& strm) :CORBA_Object(strm) {} - virtual ~Cubit() {} - public: - static Cubit_ptr _duplicate(Cubit_ptr obj) { - if (obj ) obj->_ref(); - return obj; - } - static Cubit_ptr _nil() { return (Cubit_ptr)NULL;} - static Cubit_ptr _narrow(CORBA::Object *obj); - static Cubit_ptr _clone(Cubit_ptr obj) { - CORBA::Object_var obj_var(__clone(obj)); - -#if defined(_HPCC_BUG) - return _narrow(obj_var.operator CORBA::Object_ptr()); -#else - return _narrow(obj_var); -#endif - } - static Cubit_ptr _bind(const char *object_name = NULL, - const char *host_name = NULL, - const CORBA::BindOptions* opt = NULL); - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - - virtual CORBA::Short cube_short(CORBA::Short s); - - virtual CORBA::Long cube_long(CORBA::Long l); - - struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - }; - friend NCostream& operator<<(NCostream&, const Many& ); - friend NCistream& operator>>(NCistream&, Many& ); - - friend ostream& operator<<(ostream&, const Many& ); - inline friend istream& operator>>(istream& _strm, Many& _obj) { - NCistream _istrm(_strm); - _istrm >> _obj; - return _strm; - } - - - typedef Many *Many_ptr; - class Many_var - { - public: - Many_var() { _ptr = (Many*)NULL;} - Many_var(Many *ptr) { - _ptr = ptr; - } - Many_var(const Many_var& var) { - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - } - ~Many_var() { - if (_ptr != (Many *)NULL) delete _ptr; - } - Many_var& operator=(Many *ptr) { - if (_ptr != (Many *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - Many_var& operator=(const Many_var& var) { - if (_ptr != (Many *)NULL) delete _ptr; - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - return *this; - } - Many *operator->() { return _ptr; } - operator Many () const { return *_ptr; } - operator Many& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const Many_var& var) { - if (var._ptr == (Many *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - Many_var& var) { - if ( ! var._ptr) - var._ptr = new Many; - strm >> *var._ptr; - return strm; - } - private: - Many *_ptr; - }; - - - virtual Cubit::Many cube_struct(const Cubit::Many& values); - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th - }; - inline friend NCostream& operator<<(NCostream& _strm, discrim _enum_type) { - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend NCistream& operator>>(NCistream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - if (_temp >= 6) - throw CORBA::BAD_PARAM(); - _enum_type = discrim(_temp); - return _strm; - } - inline friend ostream& operator<<(ostream& _strm, discrim _enum_type) { - if( &_strm == &cout || &_strm == &cerr || &_strm == &clog) { - _strm << "discrim:"; - switch(_enum_type) { - case e_0th: - _strm << "e_0th" << endl; - break; - case e_1st: - _strm << "e_1st" << endl; - break; - case e_2nd: - _strm << "e_2nd" << endl; - break; - case e_3rd: - _strm << "e_3rd" << endl; - break; - case e_4th: - _strm << "e_4th" << endl; - break; - case e_5th: - _strm << "e_5th" << endl; - break; - } - } - else - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend istream& operator>>(istream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - _enum_type = discrim(_temp); - return _strm; - } - - - class oneof - { - public: - private: - discrim _disc; - CORBA::Octet __o; - CORBA::Short __s; - CORBA::Long __l; - Cubit::Many __cm; - public: - oneof() : _disc(discrim(0)) {} - ~oneof() {} - oneof(const oneof& obj); - oneof& operator=(const oneof& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void o(CORBA::Octet val) { - __o = val; - _disc = Cubit::e_0th; - } - CORBA::Octet o() const { return __o; } - - void s(CORBA::Short val) { - __s = val; - _disc = Cubit::e_1st; - } - CORBA::Short s() const { return __s; } - - void l(CORBA::Long val) { - __l = val; - _disc = Cubit::e_2nd; - } - CORBA::Long l() const { return __l; } - - void cm(const Cubit::Many& val) { - __cm = val; - _disc = Cubit::e_3rd; - } - const Cubit::Many& cm() const { return __cm; } - Cubit::Many& cm() { return __cm; } - - friend NCostream& operator<<(NCostream&, const oneof& ); - friend NCistream& operator>>(NCistream&, oneof& ); - friend ostream& operator<<(ostream&, const oneof&); - inline friend istream& operator>>(istream& strm, oneof& obj) { - NCistream istrm(strm); - strm >> obj; - return strm; - } - }; - - typedef oneof *oneof_ptr; - class oneof_var - { - public: - oneof_var() { _ptr = (oneof*)NULL;} - oneof_var(oneof *ptr) { - _ptr = ptr; - } - oneof_var(const oneof_var& var) { - _ptr = new oneof(*var._ptr); - } - ~oneof_var() { - if (_ptr != (oneof *)NULL) delete _ptr; - } - oneof_var& operator=(oneof *ptr) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - oneof_var& operator=(const oneof_var& var) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = new oneof(*var._ptr); - return *this; - } - oneof *operator->() { return _ptr; } - operator oneof () const { return *_ptr; } - operator oneof& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const oneof_var& var) { - if (var._ptr == (oneof *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - oneof_var& var) { - if ( ! var._ptr) - var._ptr = new oneof; - strm >> *var._ptr; - return strm; - } - private: - oneof *_ptr; - }; - - - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - - virtual void please_exit(); - - inline friend NCistream& operator>>(NCistream& strm, Cubit_ptr& obj) { - CORBA::Object_var _obj(obj); - _obj = CORBA::Object::_read(strm, Cubit::_desc()); - obj = Cubit::_narrow(_obj); - return strm; - } - inline friend ostream& operator<<(ostream& strm, const Cubit_ptr obj) { - strm << (CORBA::Object_ptr)obj; - return strm; - } - inline friend istream& operator>>(istream& strm, Cubit_ptr& obj) { - NCistream istrm(strm); - istrm >> obj; - return strm; - } -}; - - -#endif - diff --git a/TAO/IIOP/test/Orbix/tpr/cubitS.cpp b/TAO/IIOP/test/Orbix/tpr/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/test/Orbix/tpr/cubitS.h b/TAO/IIOP/test/Orbix/tpr/cubitS.h deleted file mode 100644 index 3ca717e2b49..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubitS.h +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#ifndef _cubitS_h -#define _cubitS_h - -#include "cubitC.h" - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -class _sk_Cubit : public Cubit -{ - protected: - _sk_Cubit(const char *object_name = (const char *)NULL); - _sk_Cubit(const char *service_name, const CORBA::ReferenceData& data); - virtual ~_sk_Cubit() {} - public: - static const CORBA::TypeInfo _skel_info; - - // The following operations need to be implemented by the server. - virtual CORBA::Octet cube_octet(CORBA::Octet o) = 0; - virtual CORBA::Short cube_short(CORBA::Short s) = 0; - virtual CORBA::Long cube_long(CORBA::Long l) = 0; - virtual Cubit::Many cube_struct(const Cubit::Many& values) = 0; - virtual Cubit::oneof cube_union(const Cubit::oneof& values) = 0; - virtual void please_exit() = 0; - - // Skeleton Operations implemented automatically - - static void _cube_octet(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_short(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_long(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_struct(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_union(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _please_exit(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - -}; -template -class _tie_Cubit : public Cubit -{ - public: - _tie_Cubit(T& t, const char *obj_name=(char*)NULL) : - Cubit(obj_name), - _ref(t) { - _object_name(obj_name); - } - _tie_Cubit(T& t, const char *service_name, - const CORBA::ReferenceData& id) - :_ref(t) { - _service(service_name, id); - } - ~_tie_Cubit() {} - CORBA::Octet cube_octet(CORBA::Octet o) { - return _ref.cube_octet( - o); - } - CORBA::Short cube_short(CORBA::Short s) { - return _ref.cube_short( - s); - } - CORBA::Long cube_long(CORBA::Long l) { - return _ref.cube_long( - l); - } - Cubit::Many cube_struct(const Cubit::Many& values) { - return _ref.cube_struct( - values); - } - Cubit::oneof cube_union(const Cubit::oneof& values) { - return _ref.cube_union( - values); - } - void please_exit() { - _ref.please_exit(); - } - - private: - T& _ref; -}; - -#endif - diff --git a/TAO/IIOP/test/Orbix/tpr/cubit_impl.cpp b/TAO/IIOP/test/Orbix/tpr/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/test/Orbix/tpr/cubit_impl.h b/TAO/IIOP/test/Orbix/tpr/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/test/Orbix/tpr/server.cpp b/TAO/IIOP/test/Orbix/tpr/server.cpp deleted file mode 100644 index 527fa13d76e..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/test/Orbix/tpr/tpr.cpp b/TAO/IIOP/test/Orbix/tpr/tpr.cpp deleted file mode 100644 index da78690cc2c..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/tpr.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tpr.h" - -void * -worker(void *vp) -{ - ACE_Thread_Control tc (ACE_Thread_Manager::instance ()); - CORBA::Orbix.continueThreadDispatch (*(CORBA::Request *)vp); - return NULL; -} - - -int -tpr_filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance (); - thr_mgr->spawn (ACE_THR_FUNC (worker), - (void *) &r, - THR_DETACHED); - - return -1; -} - -tpr_filter tpr_dispatcher; diff --git a/TAO/IIOP/test/Orbix/tpr/tpr.h b/TAO/IIOP/test/Orbix/tpr/tpr.h deleted file mode 100644 index b5e8be94cf1..00000000000 --- a/TAO/IIOP/test/Orbix/tpr/tpr.h +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" - -// -// Create a thread filter to dispatch incoming calls -// -class tpr_filter : public CORBA::ThreadFilter { - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/test/Orbix/tps/Makefile b/TAO/IIOP/test/Orbix/tps/Makefile deleted file mode 100644 index 69701ba3b63..00000000000 --- a/TAO/IIOP/test/Orbix/tps/Makefile +++ /dev/null @@ -1,349 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tps.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tps.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitS.o .shobj/cubitS.so: cubitS.cpp cubit.h cubitC.cpp -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/tps.o .shobj/tps.so: tps.cpp tps.h cubit.h cubit_impl.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/test/Orbix/tps/cubit.h b/TAO/IIOP/test/Orbix/tps/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/test/Orbix/tps/cubit.idl b/TAO/IIOP/test/Orbix/tps/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/IIOP/test/Orbix/tps/cubitC.cpp b/TAO/IIOP/test/Orbix/tps/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/test/Orbix/tps/cubitS.cpp b/TAO/IIOP/test/Orbix/tps/cubitS.cpp deleted file mode 100644 index e4637a23680..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/test/Orbix/tps/cubit_impl.cpp b/TAO/IIOP/test/Orbix/tps/cubit_impl.cpp deleted file mode 100644 index 02c30756efc..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubit_impl.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &) throw (CORBA::SystemException) { -} - -Cubit_ptr Cubit_Factory_Impl:: create_cubit (const char * name, CORBA::Environment &) throw (CORBA::SystemException) { - cerr << "Creating Cubit for " << name << endl; - -#ifdef Cubit_USE_BOA - Cubit_Impl_Task *cubit = new Cubit_Impl_Task (); -#else - Cubit_Impl_Task *cubit = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl_Task); -#endif - Cubit::_duplicate ((Cubit *)cubit); - cubit->activate (1); - return (Cubit *) cubit; -} - -int -Cubit_Impl_Task::svc (void) -{ - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return 0; -} - -void * -Cubit_Impl_Task::_deref (void) -{ - return this; -} diff --git a/TAO/IIOP/test/Orbix/tps/cubit_impl.h b/TAO/IIOP/test/Orbix/tps/cubit_impl.h deleted file mode 100644 index 0fea9857af3..00000000000 --- a/TAO/IIOP/test/Orbix/tps/cubit_impl.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" -#include "ace/Task.h" - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - -}; - -#ifdef Cubit_USE_BOA -class Cubit_Factory_Impl : public virtual Cubit_FactoryBOAImpl { -#else -class Cubit_Factory_Impl { -#endif - -public: - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -class Cubit_Impl_Task : public virtual Cubit_Impl, public virtual ACE_Task { -public: - // For ACE_Task - int svc (void); - // for narrowing - virtual void *_deref (); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -DEF_TIE_Cubit_Factory (Cubit_Factory_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/test/Orbix/tps/server.cpp b/TAO/IIOP/test/Orbix/tps/server.cpp deleted file mode 100644 index c90a1603efa..00000000000 --- a/TAO/IIOP/test/Orbix/tps/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_Factory_var cf = new Cubit_Factory_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_Factory_var cf = new TIE_Cubit_Factory (Cubit_Factory) (new Cubit_Factory); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit_Factory", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/test/Orbix/tps/tps.cpp b/TAO/IIOP/test/Orbix/tps/tps.cpp deleted file mode 100644 index 19a86b75ffd..00000000000 --- a/TAO/IIOP/test/Orbix/tps/tps.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tps.h" - -int -TPS_Filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment& env) -{ - // Get target - CORBA::Object_ptr obj = r.target (); - Cubit * cb = Cubit::_narrow (obj, env); - - if (env) // Not for our object!! - return 1; // continue in the same thread - - // Enqueue the request - Cubit_Impl_Task *ct; - if (CORBA::is_nil (cb)) - return 1; - ct = (Cubit_Impl_Task *) DEREF(cb); - if (ct) { - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - ct->msg_queue ()->enqueue (mb); - } - // Done - return -1; -} - -TPS_Filter tps_filter; diff --git a/TAO/IIOP/test/Orbix/tps/tps.h b/TAO/IIOP/test/Orbix/tps/tps.h deleted file mode 100644 index 362c9ed4e91..00000000000 --- a/TAO/IIOP/test/Orbix/tps/tps.h +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "cubit_impl.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class TPS_Filter : public ACE_Task, public CORBA::ThreadFilter -{ -public: - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/test/clnt.cpp b/TAO/IIOP/test/clnt.cpp deleted file mode 100644 index 3e78e8be2f1..00000000000 --- a/TAO/IIOP/test/clnt.cpp +++ /dev/null @@ -1,510 +0,0 @@ -// $Id$ - -// @(#)clnt.cpp 1.2 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: Simple "cube" client, calling hand-crafted stubs. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include -//#include - -#if unix -# include -# include - -#elif defined (VXWORKS) -# include -# include - -#else // windows - -#endif // unix - -#include "cubitC.h" - -#include - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -inline int func (unsigned i) { return i - 117; } - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - - -// -// forward declarations -// -static void cube_union_stub(unsigned, unsigned&, unsigned&, - CORBA_Object_ptr, CORBA_Environment &); - -static void cube_union_dii(unsigned &, unsigned &, - CORBA_Object_ptr, CORBA_Environment &); - -// Global variables -const char* TAO_arg_ior = 0; -unsigned loop_count = 1; -int exit_later = 0; - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "dn:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'n': // loop count - loop_count = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - { - TAO_arg_ior = ACE_OS::strdup(opts.optarg); - } - continue; - - case 'x': - exit_later++; - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-O objref]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - -int -main (int argc, char *argv[]) -{ - CORBA_ORB_ptr orb_ptr; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - CORBA_Environment env; - - orb_ptr = CORBA_ORB_init(argc, argv, "internet", env); - if (env.exception() != 0) - { - print_exception(env.exception(), "ORB initialization"); - return 1; - } - - // - // Parse command line and verify parameters. - // - parse_args(argc, argv); - - if (TAO_arg_ior == 0) - ACE_ERROR_RETURN((LM_ERROR, "%s: must specify an object reference using -O \n", argv[0]), 1); - - objref = orb_ptr->string_to_object ((CORBA_String)TAO_arg_ior, env); - - ACE_OS::free((void*)TAO_arg_ior); - TAO_arg_ior = 0; - - if (env.exception () != 0) - { - print_exception (env.exception (), "string2object"); - return 1; - } - - if (CORBA_is_nil (objref) == CORBA_B_TRUE) - ACE_ERROR_RETURN((LM_ERROR, "%s: must identify non-null target objref\n", argv [0]), 1); - - // Narrow the CORBA_Object reference to the stub object, checking - // the type along the way using _is_a - Cubit_ptr aCubit = Cubit::_narrow(objref); - if (aCubit == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to narrow object reference to a Cubit_ptr.\n"), 1); - - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - // - // Cube an octet. - // - CORBA_Octet arg_octet, ret_octet; - - call_count++; - ret_octet = aCubit->Cubit_cube_octet (arg_octet = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_octet"); - error_count++; - } - else - { - dmsg2 ("cube octet: %d --> %d\n", arg_octet, ret_octet); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) ERROR (--> %d)\n", - (CORBA_Octet) func (i), ret_octet); - error_count++; - } - } - - // - // Cube a short. - // - CORBA_Short arg_short, ret_short; - - call_count++; - ret_short = aCubit->Cubit_cube_short (arg_short = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_short"); - error_count++; - } - else - { - dmsg2 ("cube short: %d --> %d\n", arg_short, ret_short); - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) - { - ACE_OS::printf ("** cube_short(%d) ERROR (--> %d)\n", - (CORBA_Short) func (i), ret_short); - error_count++; - } - } - - // - // Cube a long. - // - CORBA_Long arg_long, ret_long; - - call_count++; - ret_long = aCubit->Cubit_cube_long (arg_long = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_long"); - error_count++; - } - else - { - dmsg2 ("cube long: %d --> %d\n", arg_long, ret_long); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%ld) ERROR (--> %ld)\n", - (CORBA_Long) func (i), ret_long); - error_count++; - } - } - - // - // Cube a "struct" ... - // - Cubit_Many arg_struct, *ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - ret_struct = aCubit->Cubit_cube_struct (arg_struct, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_struct"); - error_count++; - } - else - { - dmsg ("cube struct ..."); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct->l - || arg_struct.s != ret_struct->s - || arg_struct.o != ret_struct->o) - { - ACE_OS::printf ("** cube_struct ERROR\n"); - error_count++; - } - delete ret_struct; - } - - } - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - - // - // Simple test for DII: call "cube_struct". (It's not timed - // since the copious mallocation of DII would bias numbers against - // typical stub-based calls.) - // - do { - // - // Create the request ... - // - CORBA_Request_ptr req; - - req = objref->_request ((const CORBA_String) "cube_struct", env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request create"); - break; - } - - // - // ... initialise the argument list and result ... - // - Cubit_Many arg, *result; - - arg.o = 3; arg.l = 5; arg.s = -7; - - CORBA_Any tmp_arg (TC_Cubit_Many, &arg, CORBA_B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA_ARG_IN, env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request arg add"); - CORBA_release (req); - break; - } - - req->result ()->value () - ->replace (TC_Cubit_Many, 0, CORBA_B_TRUE, env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request result type"); - CORBA_release (req); - break; - } - - // - // Make the invocation, verify the result - // - req->invoke (); - if (req->env ()->exception () != 0) { - print_exception (req->env ()->exception (), "DII invoke"); - CORBA_release (req); - break; - } - - result = (Cubit_Many *) req->result ()->value ()->value (); - - if (result->o != 27 || result->l != 125 || result->s != -343) - ACE_OS::fprintf (stderr, "DII cube_struct -- bad results\n"); - else - dmsg ("DII cube_struct ... success!!"); - - CORBA_release (req); - - } while (0); - - // - // Two more tests, using the "cube_union" function - // - cube_union_dii(call_count, error_count, objref, env); - if (env.exception () != 0) - error_count++; - - cube_union_stub(i, call_count, error_count, objref, env); - if (env.exception () != 0) - error_count++; - - if (exit_later) { - aCubit->Cubit_please_exit (env); - dexc (env, "server, please ACE_OS::exit"); - } - - CORBA_release (objref); - - return (error_count == 0) ? 0 : 1; -} - - -static void -cube_union_stub(unsigned i, - unsigned &call_count, - unsigned &error_count, - CORBA_Object_ptr objref, - CORBA_Environment &env) -{ - Cubit_ptr aCubit = Cubit::_narrow(objref); - // - // Cube a "union" ... - // - Cubit_oneof u, *r; - - call_count++; - - u._disc = e_2nd; - u.l = 3; - - r = aCubit->Cubit_cube_union (u, env); - if (env.exception () != 0) { - print_exception (env.exception (), "from cube_union"); - error_count++; - } else { - dmsg ("cube union ..."); - u.l = u.l * u.l * u.l ; - - if (u.l != r->l) { - ACE_OS::printf ("** cube_union ERROR\n"); - error_count++; - } - - delete r; - } - - // - // Cube another "union" which uses the default arm ... - // - call_count++; - - u._disc = e_5th; - u.cm.l = func (i); - u.cm.s = func (i); - u.cm.o = func (i); - - u.cm.l = 7; - u.cm.s = 5; - u.cm.o = 3; - - r = aCubit->Cubit_cube_union (u, env); - if (env.exception () != 0) { - print_exception (env.exception (), "from cube_union"); - error_count++; - } else { - dmsg ("cube union ..."); - u.cm.l = u.cm.l * u.cm.l * u.cm.l; - u.cm.s = u.cm.s * u.cm.s * u.cm.s; - u.cm.o = u.cm.o * u.cm.o * u.cm.o; - - if (u.cm.l != r->cm.l - || u.cm.s != r->cm.s - || u.cm.o != r->cm.o) { - ACE_OS::printf ("** cube_union ERROR\n"); - error_count++; - } - - delete r; - } -} - - -static void -cube_union_dii (unsigned &call_count, - unsigned &error_count, - CORBA_Object_ptr objref, - CORBA_Environment &env) -{ - // - // Create the request ... - // - CORBA_Request_ptr req; - - call_count++; - - req = objref->_request ((const CORBA_String) "cube_union", env); - if (env.exception () != 0) { - error_count++; - - print_exception (env.exception (), "cube_union_dii request create"); - return; - } - - // - // ... initialise the argument list and result ... - // - Cubit_oneof u, *r; - - u._disc = e_3rd; - u.cm.l = 5; - u.cm.s = -7; - u.cm.o = 3; - - CORBA_Any tmp_arg (TC_Cubit_oneof, &u, CORBA_B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA_ARG_IN, env); - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), "cube_union_dii request arg add"); - CORBA_release (req); - return; - } - - req->result ()->value ()->replace (TC_Cubit_oneof, 0, CORBA_B_TRUE, env); - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), "cube_union_dii result type"); - CORBA_release (req); - return; - } - - // - // Make the invocation, verify the result - // - req->invoke (); - if (req->env ()->exception () != 0) { - error_count++; - print_exception (req->env ()->exception (),"cube_union_dii invoke"); - CORBA_release (req); - return; - } - - r = (Cubit_oneof *) req->result ()->value ()->value (); - - if (r->cm.o != 27 || r->cm.l != 125 || r->cm.s != -343) { - error_count++; - ACE_OS::fprintf (stderr, "cube_union_dii -- bad results\n"); - } - else - dmsg ("cube_union_dii ... success!!"); - - CORBA_release (req); -} diff --git a/TAO/IIOP/test/cubit.cpp b/TAO/IIOP/test/cubit.cpp deleted file mode 100644 index 38f23fac373..00000000000 --- a/TAO/IIOP/test/cubit.cpp +++ /dev/null @@ -1,578 +0,0 @@ -// $Id$ - -// @(#)cubit.cpp 1.2 95/09/29 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// -// NOTE: these "skeletons" are really the methods, using DSI. No real -// ORB would be implemented in this particular way. Several things would -// be more typical of real (static) skeletons: -// -// * Most of the "in" (and much of the "out") parameter data would -// be preallocated on the stack, not heap allocated. (Static -// preallocation doesnt' really work in a multithreaded system, -// and moreover can waste a lot of space.) -// -// * The ORB core wouldn't be told about parameters using heap -// allocated data structures (e.g. NVList). -// -// * Skeletons would need to some kind of "marshal the response NOW" -// API so that stack-allocated "out" values wouldn't become invalid -// up until they were safely marshaled. -// -// * They'd handle exceptions rather than just generating debugging -// messages when they happen. -// -// * Method code would be called by the skeletons, not written as -// part of the "skeleton" itself! -// -// A key part of turning this code into a complete ORB would be to ensure -// that skeletons were always efficient and correct. They might not need -// to be sharable between different implementations of the same OMG-IDL -// object interface, but many ORBs choose to be structured that way. -// - -#include "cubit.h" // for stubs ... -#include // ... and skeletons - -#include // ... and debugging - - -// -// CUBE OCTET -// - -static const TAO_Param_Data Cubit_cube_octet_params [] = { - { _tc_CORBA_Octet, PARAM_RETURN, 0 }, - { _tc_CORBA_Octet, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_octet_calldata = { - "cube_octet", CORBA_B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - - -CORBA_Octet -Cubit_cube_octet ( - Cubit_ptr target, - CORBA_Octet o, - CORBA_Environment &env -) -{ - CORBA_Octet retval = 0; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - data->Release (); - } - return retval; -} - -static void -_cube_octet_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Octet); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - CORBA_Octet* value = new CORBA_Octet; - - *value = *(CORBA_Octet *)nv->value ()->value (); - // dmsg1 ("cube octet, parameter '%d'", *value); - *value = (CORBA_Octet) ((*value) * (*value) * (*value)); - // dmsg1 ("cube octet, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Octet, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - - -// -// CUBE SHORT -// - -static const TAO_Param_Data Cubit_cube_short_params [] = { - { _tc_CORBA_Short, PARAM_RETURN, 0 }, - { _tc_CORBA_Short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = { - "cube_short", CORBA_B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - - -CORBA_Short -Cubit_cube_short (Cubit_ptr target, - CORBA_Short s, - CORBA_Environment &env) -{ - CORBA_Short retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_cube_short_calldata, - &retval, &s); - data->Release (); - } - return retval; -} - -static void -_cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Short); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - CORBA_Short* value = new CORBA_Short; - - *value = *(CORBA_Short *)nv->value ()->value (); - // dmsg1 ("cube short, parameter '%d'", *value); - *value =(CORBA_Short) ((*value) * (*value) * (*value)); - // dmsg1 ("cube short, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Short, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - - -// -// CUBE LONG -// - -static const TAO_Param_Data Cubit_cube_long_params [] = { - { _tc_CORBA_Long, PARAM_RETURN, 0 }, - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = { - "cube_long", CORBA_B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - - -CORBA_Long -Cubit_cube_long (Cubit_ptr target, - CORBA_Long l, - CORBA_Environment &env) -{ - CORBA_Long retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - data->Release (); - } - return retval; -} - - -static void -_cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - CORBA_Long* value = new CORBA_Long; - - *value = *(CORBA_Long *)nv->value ()->value (); - // dmsg1 ("cube long, parameter '%d'", *value); - *value = (*value) * (*value) * (*value); - // dmsg1 ("cube long, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Long, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -// -// Encapsulated parameters for struct "Cubit_Many" typecode. -// None of these parameters is complicated, so this is just -// a linear sequence of element encodings -// -// NOTE: it's important that this be longword aligned!! -// -static const CORBA_Long _oc_Cubit_Many [] = { - 1, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - tk_short, -}; - -static CORBA_TypeCode _tc_Cubit_Many (tk_struct, - sizeof _oc_Cubit_Many, (unsigned char *) &_oc_Cubit_Many, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - - -// -// CUBE STRUCT -// - -static const TAO_Param_Data Cubit_cube_struct_params [] = { - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = { - "cube_struct", CORBA_B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many * -Cubit_cube_struct (Cubit_ptr target, - Cubit_Many &values, - CORBA_Environment &env) -{ - Cubit_Many *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - - -static void -_cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_Many); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - Cubit_Many *value; - Cubit_Many *retval = new Cubit_Many; - - value = (Cubit_Many *)nv->value ()->value (); - - retval->o = (CORBA_Octet) (value->o * value->o * value->o); - retval->s = (CORBA_Short) (value->s * value->s * value->s); - retval->l = value->l * value->l * value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA_Any *any = - new CORBA_Any (TC_Cubit_Many, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -// -// CUBE UNION -// - -// -// NOTE: not all union typecodes can be encoded as an array -// of "long "values, but this one can. Ones with discriminants -// that are one or two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is -// twofold: (a) easier to read; (b) on most systems it's then -// adequately aligned for the typecode interpreter to use, so -// no additional runtime copy needs to be made. -// -static const CORBA_Long _oc_Cubit_oneof [] = { - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // - // discriminant typecode: - // - tk_enum, // tk_enum - 72, // encapsulation length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - tk_struct, // tk_struct - 60, // encap length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - tk_octet, // member type, tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - tk_long, // member type, tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - tk_short, // member type, tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -84 // offset to struct "Many" typecode -}; - -static CORBA_TypeCode _tc_Cubit_oneof (tk_union, - (sizeof _oc_Cubit_oneof), (unsigned char *) &_oc_Cubit_oneof, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = { - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = { - "cube_union", CORBA_B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof * -Cubit_cube_union (Cubit_ptr target, - Cubit_oneof &values, - CORBA_Environment &env) -{ - Cubit_oneof *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - - -static void -_cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_oneof); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - Cubit_oneof *v; - Cubit_oneof *r = new Cubit_oneof; - - v = (Cubit_oneof *)nv->value ()->value (); - r->_disc = v->_disc; - - switch (v->_disc) { - case e_0th: - r->o = (CORBA_Octet) (v->o * v->o * v->o); - break; - - case e_1st: - r->s = (CORBA_Short) (v->s * v->s * v->s); - break; - - case e_2nd: - r->l = v->l * v->l * v->l; - break; - - case e_3rd: - default: - r->cm.o = (CORBA_Octet) (v->cm.o * v->cm.o * v->cm.o); - r->cm.s = (CORBA_Short) (v->cm.s * v->cm.s * v->cm.s); - r->cm.l = v->cm.l * v->cm.l * v->cm.l; - break; - } - - CORBA_Any *any = new CORBA_Any (TC_Cubit_oneof, r, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - - -// -// PLEASE EXIT -// - -static const TAO_Call_Data Cubit_please_exit_calldata = { - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit_please_exit ( - Cubit_ptr target, - CORBA_Environment &env -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_please_exit_calldata - ); - data->Release (); - } -} - -static void -_please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); -} - - -const CORBA_Char *Cubit__id = (CORBA_Char *) - "IDL:Eng.SUN.COM/Cubit:1.1"; - - -// -// table of all operations, used by operation dispatch to get to the -// right skeleton ... could be sorted by the IDL compiler so bsearch -// is effective, perhaps with help from opname hashes and a small cache -// (e.g. like Obj-C?). for now, just lsearch. -// -const TAO_Skel_Entry Cubit_operations [] = { - { &Cubit_cube_octet_calldata, _cube_octet_skel }, - { &Cubit_cube_short_calldata, _cube_short_skel }, - { &Cubit_cube_long_calldata, _cube_long_skel }, - { &Cubit_cube_struct_calldata, _cube_struct_skel }, - { &Cubit_cube_union_calldata, _cube_union_skel }, - { &Cubit_please_exit_calldata, _please_exit_skel }, - { 0, 0 } // last entry -}; diff --git a/TAO/IIOP/test/cubit.h b/TAO/IIOP/test/cubit.h deleted file mode 100644 index 78d6b604052..00000000000 --- a/TAO/IIOP/test/cubit.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -// @(#)cubit.hh 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Hand-crafted C language binding glue ... -// -// This doesn't use C++ since doing the obvious derivation -// (all parent interfaces are virtual public parents) makes -// object references have different "views". That is, a -// pointer to a Cubit (i.e. a Cubit_ptr) would not have -// the same binary value as a pointer to a CORBA_Object -// (i.e. a CORBA_Object_ptr, generic objref). That'd -// mean lots of narrowing/widening/RTTI infrastructure. -// - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include -#include - - -// -// C style binding -// - -typedef CORBA_Object Cubit; -typedef Cubit *Cubit_ptr, *CubitRef; - -extern CORBA_TypeCode_ptr TC_Cubit_Many; -extern CORBA_TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many { - CORBA_Octet o; - CORBA_Long l; - CORBA_Short s; -}; - -enum Cubit_discrim {e_0th = 0, e_1st = 1, e_2nd = 2, - e_3rd = 3, e_4th = 4, e_5th = 5}; - -struct Cubit_oneof { - Cubit_discrim _disc; - - union { - CORBA_Octet o; - CORBA_Short s; - CORBA_Long l; - Cubit_Many cm; - }; -}; - -CORBA_Octet -Cubit_cube_octet ( - Cubit_ptr target, - CORBA_Octet o, - CORBA_Environment &env -); - -CORBA_Short -Cubit_cube_short ( - Cubit_ptr target, - CORBA_Short s, - CORBA_Environment &env -); - -CORBA_Long -Cubit_cube_long ( - Cubit_ptr target, - CORBA_Long l, - CORBA_Environment &env -); - -Cubit_Many * -Cubit_cube_struct ( - Cubit_ptr target, - Cubit_Many &values, - CORBA_Environment &env -); - -Cubit_oneof * -Cubit_cube_union ( - Cubit_ptr target, - Cubit_oneof &values, - CORBA_Environment &env -); - -void -Cubit_please_exit ( - Cubit_ptr target, - CORBA_Environment &env -); - -extern const CORBA_Char *Cubit__id; // type ID - -extern const TAO_Skel_Entry Cubit_operations []; - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH diff --git a/TAO/IIOP/test/cubit.idl b/TAO/IIOP/test/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/test/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/test/cubitC.cpp b/TAO/IIOP/test/cubitC.cpp deleted file mode 100644 index 8bcb0b4f4d9..00000000000 --- a/TAO/IIOP/test/cubitC.cpp +++ /dev/null @@ -1,383 +0,0 @@ -// $Id$ - -// @(#)cubitC.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "cubitC.h" // for stubs ... - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj) -{ - if (obj) - obj->AddRef(); - - return obj; -} - -Cubit_ptr Cubit::_narrow(CORBA_Object_ptr obj) -{ - CORBA_Environment env; - if (obj->_is_a("IDL:Cubit:1.0", env)) - { - STUB_Object *istub; - if (obj->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - return Cubit::_nil(); - } - Cubit_ptr new_obj = new Cubit(istub); - return Cubit::_duplicate(new_obj); - } - return Cubit::_nil(); -} - -Cubit_ptr Cubit::_nil() -{ - return (Cubit_ptr)NULL; -} - -// -// CUBE OCTET -// - -static const TAO_Param_Data Cubit_cube_octet_params [] = -{ - { _tc_CORBA_Octet, PARAM_RETURN, 0 }, - { _tc_CORBA_Octet, PARAM_IN, 0 } -}; - - -static const TAO_Call_Data Cubit_cube_octet_calldata = -{ - "cube_octet", CORBA_B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - - -CORBA_Octet -Cubit::Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) -{ - CORBA_Octet retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - istub->Release (); - - return retval; -} - - -// -// CUBE SHORT -// - -static const TAO_Param_Data Cubit_cube_short_params [] = -{ - { _tc_CORBA_Short, PARAM_RETURN, 0 }, - { _tc_CORBA_Short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = -{ - "cube_short", CORBA_B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - - -CORBA_Short -Cubit::Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) -{ - CORBA_Short retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call(env, &Cubit_cube_short_calldata, - &retval, &s); - - istub->Release (); - - return retval; -} - -// -// CUBE LONG -// - -static const TAO_Param_Data Cubit_cube_long_params [] = -{ - { _tc_CORBA_Long, PARAM_RETURN, 0 }, - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = -{ - "cube_long", CORBA_B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - - -CORBA_Long -Cubit::Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) -{ - CORBA_Long retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - istub->Release (); - - return retval; -} - - -// -// Encapsulated parameters for struct "Cubit_Many" typecode. -// None of these parameters is complicated, so this is just -// a linear sequence of element encodings -// -// NOTE: it's important that this be longword aligned!! -// -static const CORBA_Long _oc_Cubit_Many [] = -{ - 1, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - tk_short, -}; - -static CORBA_TypeCode _tc_Cubit_Many (tk_struct, - sizeof _oc_Cubit_Many, (unsigned char *) &_oc_Cubit_Many, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - - -// -// CUBE STRUCT -// - -static const TAO_Param_Data Cubit_cube_struct_params [] = -{ - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = -{ - "cube_struct", CORBA_B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many* -Cubit::Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) -{ - Cubit_Many *retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - - -// -// CUBE UNION -// - -// -// NOTE: not all union typecodes can be encoded as an array -// of "long "values, but this one can. Ones with discriminants -// that are one or two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is -// twofold: (a) easier to read; (b) on most systems it's then -// adequately aligned for the typecode interpreter to use, so -// no additional runtime copy needs to be made. -// -static const CORBA_Long _oc_Cubit_oneof [] = -{ - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // - // discriminant typecode: - // - tk_enum, // tk_enum - 72, // encapsulation length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - tk_struct, // tk_struct - 60, // encap length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - tk_octet, // member type, tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - tk_long, // member type, tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - tk_short, // member type, tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -84 // offset to struct "Many" typecode -}; - -static CORBA_TypeCode _tc_Cubit_oneof (tk_union, - (sizeof _oc_Cubit_oneof), (unsigned char *) &_oc_Cubit_oneof, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = -{ - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = -{ - "cube_union", CORBA_B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof* -Cubit::Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) -{ - Cubit_oneof *retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - - - -// -// PLEASE EXIT -// - -static const TAO_Call_Data Cubit_please_exit_calldata = -{ - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit::Cubit_please_exit (CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - - istub->do_call (env, &Cubit_please_exit_calldata); - istub->Release (); -} diff --git a/TAO/IIOP/test/cubitC.h b/TAO/IIOP/test/cubitC.h deleted file mode 100644 index 98610b55116..00000000000 --- a/TAO/IIOP/test/cubitC.h +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -// @(#)cubitC.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include "corba/orb.h" -#include "corba/stub.h" - -#include - -extern CORBA_TypeCode_ptr TC_Cubit_Many; -extern CORBA_TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many -{ - CORBA_Octet o; - CORBA_Long l; - CORBA_Short s; -}; - -enum Cubit_discrim - { e_0th = 0, e_1st = 1, e_2nd = 2, - e_3rd = 3, e_4th = 4, e_5th = 5 }; - -struct Cubit_oneof -{ - Cubit_discrim _disc; - - union - { - CORBA_Octet o; - CORBA_Short s; - CORBA_Long l; - Cubit_Many cm; - }; -}; - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr Cubit_ref; - -class Cubit : public virtual CORBA_Object -{ -public: - - static Cubit_ptr _duplicate(Cubit_ptr obj); - static Cubit_ptr _narrow(CORBA_Object_ptr obj); - static Cubit_ptr _nil(); - - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env); - -protected: - Cubit() { } - Cubit(STUB_Object *objref) - : CORBA_Object(objref) { } - virtual ~Cubit() { } - - -}; - -extern const CORBA_Char *Cubit__id; // type ID - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH diff --git a/TAO/IIOP/test/cubitS.cpp b/TAO/IIOP/test/cubitS.cpp deleted file mode 100644 index bf77e70abd6..00000000000 --- a/TAO/IIOP/test/cubitS.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// $Id$ - -// @(#)cubitS.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// - -#include "cubitS.h" -#include "cubitC.cpp" - -#include "connect.h" -#include "params.h" - -#include "corba/debug.h" // ... and debugging -#include "corba/optable.h" // TAO Dynamic Operation Table -#include "method_db.i" -#include "iiopobj.h" - -#if defined(CUBIT_USE_DYNAMIC_HASH) -TAO_Dynamic_Hash_OpTable tao_cubit_optable(7); // Dynamic Operation Table -#else -TAO_Linear_OpTable tao_cubit_optable(7); -#endif - -_skel_Cubit::_skel_Cubit(const char* obj_name) -{ - const char* mn = "_skel_Cubit::_skel_Cubit()"; - - // Initialize Method Database - initialize_method_db (&tao_cubit_optable); - - char *type_id = "IDL:Cubit:1.0"; - // CORBA_String type_id = "IDL:Cubit:1.0"; - IIOP_Object *data; - - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); - if (oa == 0) - { - // We just have to assume that oa will be good, or we have to - // throw an exception. For now we "assume", but we'll - ACE_ERROR((LM_ERROR, "(%P|%t) %s Unable to locate a valid object adapter\n", mn)); - return; - } - - this->optable_ = &tao_cubit_optable; - data = new IIOP_Object(type_id); - - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name()); - data->profile.port = oa->get_addr().get_port_number(); - data->profile.object_key.length = ACE_OS::strlen(obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - - ACE_OS::memcpy (data->profile.object_key.buffer, - obj_name, - data->profile.object_key.length+1); - - this->set_parent(data); - this->sub_ = this; - - if (oa->bind(data->profile.object_key, this) == -1) - { - ACE_ERROR((LM_ERROR, "(%P|%t) %s Unable to bind object to key '%s': %p\n", mn, data->profile.object_key.buffer)); - return; - } -} - -void -_skel_Cubit::_cube_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Octet); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - // Call Implementation - CORBA_Octet *value = new CORBA_Octet; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - - *value = the_cubit->Cubit_cube_octet(*(CORBA_Octet *)nv->value()->value(), env); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Octet, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - -void -_skel_Cubit::_cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Short); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - // Call Implementation - CORBA_Short *value = new CORBA_Short; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - *value = the_cubit->Cubit_cube_short(*(CORBA_Short *)nv->value ()->value (), env); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Short, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - -void -_skel_Cubit::_cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - // Call Implementation - CORBA_Long *value = new CORBA_Long; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - *value = the_cubit->Cubit_cube_long(*(CORBA_Long *)nv->value ()->value (), env); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Long, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -void -_skel_Cubit::_cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_Many); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - // Call Implementation - Cubit_Many *value; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - value = the_cubit->Cubit_cube_struct(*(Cubit_Many*)nv->value()->value(), env); - - Cubit_Many *retval = new Cubit_Many; - retval->o = (CORBA_Octet)value->o; - retval->s = (CORBA_Short)value->s; - retval->l = value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA_Any *any = new CORBA_Any (TC_Cubit_Many, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_oneof); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - // Call Implementation - Cubit_oneof *v; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - v = the_cubit->Cubit_cube_union(*(Cubit_oneof *)nv->value ()->value (), env); - - Cubit_oneof *r = new Cubit_oneof; - r->_disc = v->_disc; - r->o = (CORBA_Octet) (v->o); - r->s = (CORBA_Short) (v->s); - r->l = v->l; - r->cm.o = (CORBA_Octet) (v->cm.o); - r->cm.s = (CORBA_Short) (v->cm.s); - r->cm.l = v->cm.l; - - CORBA_Any *any = new CORBA_Any (TC_Cubit_oneof, r, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - the_cubit->Cubit_please_exit(env); -} diff --git a/TAO/IIOP/test/cubitS.h b/TAO/IIOP/test/cubitS.h deleted file mode 100644 index a4b4b853901..00000000000 --- a/TAO/IIOP/test/cubitS.h +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ - -// @(#)cubitS.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _SKEL_CUBIT_HH -#define _SKEL_CUBIT_HH - -#include "cubitC.h" - -class _skel_Cubit; -typedef _skel_Cubit *_skel_Cubit_ptr; -typedef _skel_Cubit_ptr _skel_Cubit_ref; - -class _skel_Cubit : public Cubit -{ -public: - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) = 0; - static - void _cube_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) = 0; - - static - void _cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) = 0; - - static - void _cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) = 0; - - static - void _cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) = 0; - - static - void _cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env) = 0; - - static - void _please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -protected: - _skel_Cubit(const char* obj_name = 0); - virtual ~_skel_Cubit() { } - -}; - -#endif // _SKEL_CUBIT_HH diff --git a/TAO/IIOP/test/cubit_i.cpp b/TAO/IIOP/test/cubit_i.cpp deleted file mode 100644 index ec3d3717768..00000000000 --- a/TAO/IIOP/test/cubit_i.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "cubit_i.h" - -#include // ... and skeletons -#include // ... and debugging - -#include "connect.h" -#include "params.h" - -Cubit_i::Cubit_i(const char* obj_name) -: _skel_Cubit(obj_name) -{ -} - -Cubit_i::~Cubit_i() -{ -} - -CORBA_Octet -Cubit_i::Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) -{ - - return (CORBA_Octet) (o * o * o); -} - -CORBA_Short -Cubit_i::Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) -{ - return (CORBA_Short) (s * s * s); -} - - -CORBA_Long -Cubit_i::Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) -{ - return (CORBA_Long) (l * l * l); -} - -Cubit_Many* -Cubit_i::Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) -{ - values.o = values.o * values.o * values.o; - values.s = values.s * values.s * values.s; - values.l = values.l * values.l * values.l; - - return &values; -} - -Cubit_oneof* -Cubit_i::Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) -{ - switch (values._disc) { - case e_0th: - values.o = (CORBA_Octet) (values.o * values.o * values.o); - break; - case e_1st: - values.s = (CORBA_Short) (values.s * values.s * values.s); - break; - case e_2nd: - values.l = values.l * values.l * values.l; - break; - case e_3rd: - default: - values.cm.o = (CORBA_Octet) (values.cm.o * values.cm.o * values.cm.o); - values.cm.s = (CORBA_Short) (values.cm.s * values.cm.s * values.cm.s); - values.cm.l = values.cm.l * values.cm.l * values.cm.l; - } - return &values; -} - -void Cubit_i::Cubit_please_exit (CORBA_Environment &env) -{ - TAO_OA_Parameters* params = TAO_OA_PARAMS::instance(); - - dmsg ("I've been asked to shut down..."); - params->oa()->please_shutdown(env); - dexc (env, "please_exit, please_shutdown"); -} diff --git a/TAO/IIOP/test/cubit_i.h b/TAO/IIOP/test/cubit_i.h deleted file mode 100644 index 7ddf1947cd3..00000000000 --- a/TAO/IIOP/test/cubit_i.h +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_I_HH -#define _CUBIT_I_HH - -#include "cubitS.h" - -class Cubit_i; -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public _skel_Cubit -{ -public: - Cubit_i(const char* obj_name = 0); - ~Cubit_i(); - - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env); -}; - -#endif // _CUBIT_I_HH diff --git a/TAO/IIOP/test/method_db.i b/TAO/IIOP/test/method_db.i deleted file mode 100644 index a95573043ac..00000000000 --- a/TAO/IIOP/test/method_db.i +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -// @(#)method_db.i 05/14/97 - -// This file provides a way of initializing the method database -// Written by: Brian Mendel - -#include "cubitS.h" - -static void -is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) - { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *) nv->value()->value(); - - if (ACE_OS::strcmp ((char*)value, "IDL:Cubit:1.0") == 0 - || ACE_OS::strcmp ((char *)value, _tc_CORBA_Object->id (env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - - -struct method_db -{ - CORBA_String opname; - TAO_Skeleton skel_ptr; -}; - -static const method_db cubit_operations[] = { - { "_is_a", &is_a_skel }, - { "cube_octet", &_skel_Cubit::_cube_octet_skel }, - { "cube_short", &_skel_Cubit::_cube_short_skel }, - { "cube_long", &_skel_Cubit::_cube_long_skel }, - { "cube_struct", &_skel_Cubit::_cube_struct_skel }, - { "cube_union", &_skel_Cubit::_cube_union_skel }, - { "please_exit", &_skel_Cubit::_please_exit_skel }, - { 0, 0 } -}; - - -void initialize_method_db (TAO_Operation_Table *the_optable) -{ - for (int ndx = 0; ndx < 7; ndx++) - the_optable->bind(cubit_operations[ndx].opname, - cubit_operations[ndx].skel_ptr); - -} diff --git a/TAO/IIOP/test/results/Orbix b/TAO/IIOP/test/results/Orbix deleted file mode 100644 index c3abce78d3f..00000000000 --- a/TAO/IIOP/test/results/Orbix +++ /dev/null @@ -1,133 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.876 533 - 2 2.202 454 - 3 2.740 364 - -MT-Orbix Thread-Per-Request 1 1.886 530 - 2 3.1 322 - 3 5.0 200 - -MT-Orbix Thread-Pool (25) 1 1.875 533 - 2 3.1 322 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 2.002 499 - 2 3.306 302 - 3 5.15 194 - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.818 550 - 2 1.968 508 - 3 2.803 356 - - -MT-Orbix Thread-Per-Request 1 1.846 541 - 2 3.1 322 - 3 4.98 200 - -MT-Orbix Thread-Pool (25) 1 1.913 522 - 2 3.18 314 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 1.959 510 - 2 3.29 303 - 3 5.15 194 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 7.918 126 - 2 14.300 70 - 3 21.000 47 - - -MT-Orbix Thread-Per-Request 1 8.302 120 - 2 10.128 98 - 3 13.722 72 - -MT-Orbix Thread-Pool (25) 1 8.442 118 - 2 15.764 63 - 3 22.595 44 - -MT-Orbix Thread-Per-Session 1 8.956 111 - 2 9.581 104 - 3 16.702 59 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 6.667 149 - 2 12.165 82 - 3 18.634 54 - - -MT-Orbix Thread-Per-Request 1 6.812 146 - 2 6.937 144 - 3 7.706 128 - -MT-Orbix Thread-Pool (25) 1 6.813 146 - 2 6.954 144 - 3 7.776 128 - -MT-Orbix Thread-Per-Session 1 6.85 145 - 2 7.253 137 - 3 7.645 130 - - TNF client-side profile for MT-Orbix without filters for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_wait 6.23 4250.242 1824 2.330 106.171 1.205 0.091 -mutex_lock 0.23 159.830 56662 0.003 1.215 0.002 0.000 -mutex_unlock 0.22 146.756 56663 0.003 0.326 0.002 0.000 -cond_signal 0.09 61.030 1825 0.033 0.475 0.009 0.000 -rw_rdlock 0.01 7.179 1826 0.004 0.014 0.003 0.000 -rw_unlock 0.01 6.548 1827 0.004 0.014 0.003 0.000 -rw_wrlock 0.00 0.004 1 0.004 0.004 0.004 0.000 - - TNF server-side profile for MT-Orbix without filters for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_timedwait 1.25 923.527 797 1.159 20.219 0.324 0.028 -mutex_lock 0.21 153.839 56435 0.003 4.342 0.002 0.000 -mutex_unlock 0.20 149.208 56433 0.003 3.559 0.002 0.000 -cond_signal 0.03 21.506 809 0.027 1.826 0.003 0.002 -rw_unlock 0.02 16.058 3224 0.005 2.915 0.003 0.001 -rw_rdlock 0.02 11.924 3221 0.004 0.087 0.003 0.000 -rw_wrlock 0.00 0.010 2 0.005 0.005 0.004 0.000 - - TNF server-side profile for MT-Orbix with thread-per-request for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.55 797.890 57618 0.014 4.624 0.002 0.000 -cond_timedwait 0.52 748.560 478 1.566 3.918 0.222 0.019 -mutex_unlock 0.36 514.627 57616 0.009 3.975 0.002 0.000 -cond_signal 0.02 24.216 1151 0.021 1.161 0.002 0.001 -rw_rdlock 0.01 13.120 2301 0.006 1.180 0.003 0.001 -rw_unlock 0.01 10.575 2307 0.005 0.316 0.003 0.000 -thr_sigsetmask 0.00 1.949 30 0.065 1.064 0.013 0.035 -rw_wrlock 0.00 0.033 6 0.006 0.008 0.004 0.001 - - - diff --git a/TAO/IIOP/test/results/TAO b/TAO/IIOP/test/results/TAO deleted file mode 100644 index de4a7bf23ae..00000000000 --- a/TAO/IIOP/test/results/TAO +++ /dev/null @@ -1,92 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.172 853 - 2 1.342 745 - 3 1.902 525 - -TAO threaded version 1 1.174 851 - 2 1.219 820 - 3 1.600 625 - - -Cubit results over ATM with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.161 861 - 2 1.302 768 - 3 1.732 577 - -TAO threaded version 1 1.170 854 - 2 1.3 769 - 3 1.600 625 - - -Cubit results over ATM after optimizations with 20,000 calls ------------------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.127 887 - 2 1.238 807 - 3 1.501 666 - -TAO threaded version 1 1.057 946 - 2 1.225 816 - 3 1.471 679 - -Prime_Factor results over ATM with 20,000 calls -------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 7.407 135 - 2 13.7 73 - 3 19.7 51 - -TAO threaded version 1 7.389 135 - 2 8.080 124 - 3 10.726 93 - -IO-bound results over ATM with 20,000 calls --------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 6.404 156 - 2 11.909 83 - 3 17.324 57 - -TAO threaded version 1 6.378 156 - 2 6.449 155 - 3 6.500 153 - - - - - Sample client-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.40 146.579 20006 0.007 1.200 0.005 0.000 -rw_unlock 0.25 91.386 20009 0.005 0.058 0.004 0.000 -mutex_lock 0.06 21.087 5265 0.004 0.178 0.002 0.000 -mutex_unlock 0.04 14.372 5271 0.003 0.075 0.002 0.000 -rw_wrlock 0.00 0.045 3 0.015 0.034 0.005 0.008 - - - Sample server-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 1.12 154.491 54507 0.003 0.140 0.002 0.000 -mutex_unlock 1.06 145.638 54508 0.003 0.310 0.002 0.000 -rw_rdlock 0.27 37.265 6813 0.005 0.037 0.004 0.000 -rw_unlock 0.20 27.792 6813 0.004 0.045 0.004 0.000 - diff --git a/TAO/IIOP/test/results/Visibroker b/TAO/IIOP/test/results/Visibroker deleted file mode 100644 index 8d6bb2457c7..00000000000 --- a/TAO/IIOP/test/results/Visibroker +++ /dev/null @@ -1,79 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - - -Visibroker reactive 1 1.167 856 - 2 1.39 718 - 3 1.664 600 - -Visibroker thr-per-connection 1 1.077 928 - 2 1.228 814 - 3 1.789 558 - - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 1.195 836 - 2 1.241 805 - 3 1.56 641 - -Visibroker thr-per-connection 1 1.060 943 - 2 1.327 753 - 3 2.108 474 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 7.43 134 - 2 13.652 73 - 3 17.738 56 - -Visibroker thr-per-connection 1 7.371 135 - 2 8.561 116 - 3 11.376 87 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 6.424 155 - 2 11.895 84 - 3 17.468 57 - -Visibroker thr-per-connection 1 6.41 156 - 2 6.496 154 - 3 6.524 153 - - - - - TNF client-side profile for Visibroker for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.31 188.930 61797 0.003 1.027 0.002 0.000 -mutex_lock 1.21 175.465 61790 0.003 0.330 0.002 0.000 - - - TNF server-side profile for Visibroker for 20000 calls - - Profile - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.18 165.141 60432 0.003 0.501 0.002 0.000 -mutex_unlock 0.16 153.891 60432 0.003 0.373 0.002 0.000 - - diff --git a/TAO/IIOP/test/results/orbs.xls b/TAO/IIOP/test/results/orbs.xls deleted file mode 100644 index 149078dd383..00000000000 Binary files a/TAO/IIOP/test/results/orbs.xls and /dev/null differ diff --git a/TAO/IIOP/test/svr.cpp b/TAO/IIOP/test/svr.cpp deleted file mode 100644 index f96a537dbb4..00000000000 --- a/TAO/IIOP/test/svr.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// $Id$ - -// @(#)svr.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "cubit.idl" interface. -// -// Starts up, builds an objref, prints its string in debug mode, -// listens for messages, responds to them. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "corba/orb.h" -#include "corba/debug.h" -#include "connect.h" - -#include "cubit_i.h" - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - -// Global Variables -CORBA_String key = (CORBA_String)"key0"; -int num_of_objs = 1; - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "dk:n:"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'k': // key (str) - key = (CORBA_String) opts.optarg; - continue; - - case 'n': // idle seconds b4 exit - num_of_objs = ACE_OS::atoi(opts.optarg); - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-k {object_key}]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Standard command line parsing utilities used. -// -int -main (int argc, char *argv[]) -{ - CORBA_Environment env; - CORBA_Object_ptr obj = 0; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - char *orb_name = "internet"; - int idle = -1; - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init"); - return 1; - } - - // Initialize the Basic Object Adapter - oa_ptr = orb_ptr->BOA_init(argc, argv, "ROA"); - if (oa_ptr == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to initialize the BOA.\n"), 1); - - - // - // Parse remaining command line and verify parameters. - // - parse_args(argc, argv); - - // Create implementation object with user specified key - Cubit_i_ptr *my_cubit = new Cubit_i_ptr[num_of_objs]; - for (int ndx = 0; ndx < num_of_objs; ndx++) - { - CORBA_String obj_str = CORBA_string_alloc(ACE_OS::strlen ((char *)key)+2); - sprintf(obj_str, "%s%d", (char*)key, ndx); - my_cubit[ndx] = new Cubit_i(obj_str); - if (my_cubit[ndx] == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to create implementation object&d\n", ndx), 2); - - if (TAO_debug_level >= 1) - { - // Why are we getting the BOA_ptr from here when we've already - // got it above? - CORBA_OctetSeq obj_key; - obj_key.buffer = (CORBA_Octet *) obj_str; - obj_key.length = obj_key.maximum = ACE_OS::strlen (obj_str); - - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. Then release the object. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("Object Created at: '%ul'", obj); - dmsg1 ("listening as object '%s'", str); - - } - CORBA_string_free(obj_str); - } -// Cubit_i_ptr my_cubit = new Cubit_i(key); -// if (my_cubit1 == 0) -// ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to create implementation object\n"), 2); - -/* if (TAO_debug_level >= 1) - { - // Why are we getting the BOA_ptr from here when we've already - // got it above? - CORBA_OctetSeq obj_key; - obj_key.buffer = (CORBA_Octet *) key; - obj_key.length = obj_key.maximum = ACE_OS::strlen ((char *)key); - - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. Then release the object. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - - obj_key.buffer = (CORBA_Octet *)"key1"; - obj_key.length = obj_key.maximum = 4; - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - } -*/ - // Handle requests for this object until we're killed, or one of - // the methods asks us to exit. - // - int terminationStatus = 0; - - -#if !defined(USE_HOMEBREW_EVENT_LOOP) - ACE_Reactor::run_event_loop(); -#else - while (1) - { - int result = params->reactor()->handle_events (); - - if (result == -1) - { - terminationStatus = -1; - break; - } - } -#endif - - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - oa_ptr->clean_shutdown (env); - return 0; -} diff --git a/TAO/IIOP/test/test.mak b/TAO/IIOP/test/test.mak deleted file mode 100644 index a27147d5f32..00000000000 --- a/TAO/IIOP/test/test.mak +++ /dev/null @@ -1,463 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -!IF "$(CFG)" == "" -CFG=server - Win32 Debug -!MESSAGE No configuration specified. Defaulting to server - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "client - Win32 Release" && "$(CFG)" != "client - Win32 Debug"\ - && "$(CFG)" != "server - Win32 Release" && "$(CFG)" != "server - 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 "test.mak" CFG="server - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "server - 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 "server - Win32 Debug" -RSC=rc.exe -CPP=cl.exe - -!IF "$(CFG)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "client\Release" -# PROP BASE Intermediate_Dir "client\Release" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(OUTDIR)\client.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG"\ - /D "_CONSOLE" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib ..\lib\TAO.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)/client.pdb" /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client\Debug" -# PROP BASE Intermediate_Dir "client\Debug" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\client.exe" - -@erase "$(OUTDIR)\client.ilk" - -@erase "$(OUTDIR)\client.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib ..\lib\TAO.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)/client.pdb" /debug /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "server\Release" -# PROP BASE Intermediate_Dir "server\Release" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(OUTDIR)\server.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG"\ - /D "_CONSOLE" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib ..\lib\TAO.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)/server.pdb" /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "server\Debug" -# PROP BASE Intermediate_Dir "server\Debug" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\server.exe" - -@erase "$(OUTDIR)\server.ilk" - -@erase "$(OUTDIR)\server.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib ..\lib\TAO.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)/server.pdb" /debug /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.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 "client - Win32 Release" -# Name "client - Win32 Debug" - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\clnt.cpp -DEP_CPP_CLNT_=\ - "..\..\..\ace\config-win32.h"\ - ".\cubitC.h"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - -NODEP_CPP_CLNT_=\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitC.cpp -DEP_CPP_CUBIT=\ - ".\cubitC.h"\ - -NODEP_CPP_CUBIT=\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBIT) "$(INTDIR)" - - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\cubitS.cpp -DEP_CPP_CUBITS=\ - ".\cubitC.cpp"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - ".\method_db.i"\ - -NODEP_CPP_CUBITS=\ - ".\connect.h"\ - ".\corba\debug.h"\ - ".\corba\optable.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - ".\iiopobj.h"\ - ".\params.h"\ - - -"$(INTDIR)\cubitS.obj" : $(SOURCE) $(DEP_CPP_CUBITS) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubit_i.cpp -DEP_CPP_CUBIT_=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - -NODEP_CPP_CUBIT_=\ - ".\connect.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - ".\params.h"\ - - -"$(INTDIR)\cubit_i.obj" : $(SOURCE) $(DEP_CPP_CUBIT_) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\svr.cpp -DEP_CPP_SVR_C=\ - "..\..\..\ace\config-win32.h"\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - -NODEP_CPP_SVR_C=\ - ".\connect.h"\ - ".\corba\debug.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\svr.obj" : $(SOURCE) $(DEP_CPP_SVR_C) "$(INTDIR)" - - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/TAO/IIOP/test/test.mdp b/TAO/IIOP/test/test.mdp deleted file mode 100644 index dc1aea7d5be..00000000000 Binary files a/TAO/IIOP/test/test.mdp and /dev/null differ diff --git a/TAO/IIOP/test/test1.cpp b/TAO/IIOP/test/test1.cpp deleted file mode 100644 index 753a3784e43..00000000000 --- a/TAO/IIOP/test/test1.cpp +++ /dev/null @@ -1,392 +0,0 @@ -// $Id$ - -// @(#)test1.cpp 1.4 95/09/28 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST stubs for "test1" -// - -#include - -#include "test1.h" - - -// -// Define all the stubs ... it's a lot less error prone to do it with -// macros than by hand! -// -// NOTE: the "calldata" is exported for use by the skeletons. At some -// point skeletons will probably be fully abstracted; for now they aren't. -// -// Also, for some reason, name mangling is changed by the explicit -// declaration as "extern" -- if it's not done, linking fails. -// -#define DEFINE_TEST3(typename, truetype, truetypename) \ - static const TAO_Param_Data test1_ ## typename ## _paramdata [4] = { \ - { _tc_CORBA_ ## truetypename, PARAM_RETURN, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_IN, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_OUT, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_INOUT, 0 }, \ - }; \ - \ - extern const TAO_Call_Data test1_ ## typename ## _calldata; \ - \ - const TAO_Call_Data test1_ ## typename ## _calldata = { \ - "test_" #typename, CORBA_B_TRUE, \ - 4, &test1_ ## typename ## _paramdata [0], \ - 0, 0, \ - }; \ - \ - CORBA_ ## truetype \ - test1_test_ ## typename (test1_ptr target, \ - CORBA_ ## truetype in_a1, \ - CORBA_ ## truetype &out_a2, \ - CORBA_ ## truetype &inout_a3, \ - CORBA_Environment &env) { \ - CORBA_ ## truetype _retval; \ - STUB_Object *_obj; \ - if (target->QueryInterface (IID_STUB_Object, (void **)&_obj) \ - != NOERROR) \ - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); \ - else { \ - _obj->do_call (env, &test1_ ## typename ## _calldata, \ - &_retval, &in_a1, &out_a2, &inout_a3); \ - _obj->Release (); \ - } \ - return _retval; \ - } - -// changed extern const calldata test1_ ## typename ## _calldata; -// to const calldata test1_ ## typename ## _calldata; \ - -// changed CORBA_ ## truetype _retval = 0; to changed CORBA_ ## truetype _retval; - -#define DEFINE_TEST(typename, truetype) \ - DEFINE_TEST3(typename, truetype, truetype) - - -// -// Generate a system exception, passing an operation ID that's -// not allowed by IIOP (much less this interface) and verifying -// that the server returns some kind of system exception. -// -static const TAO_Call_Data illegal_calldata = { - "+_illegal", CORBA_B_TRUE, - 0, 0, - 0, 0 -}; - -void -test_illegal (test1_ptr target, CORBA_Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &illegal_calldata - ); - data->Release (); - } -} - - -extern const TAO_Call_Data test1_void_calldata; -const TAO_Call_Data test1_void_calldata = { - "test_void", CORBA_B_TRUE, - 0, 0, - 0, 0 -}; - -void -test1_test_void (test1_ptr target, CORBA_Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_void_calldata - ); - data->Release (); - } -} - -DEFINE_TEST (short, Short); -DEFINE_TEST (long, Long); -DEFINE_TEST (ushort, UShort); -DEFINE_TEST (ulong, ULong); - -#if defined(MIPS) -// -// NOTE: C/C++ compilers as a rule pass a "float" in the space that -// a "double" takes up. Conversions are evidently optional; portability -// forces the following "explicit temporary" hack to work on at least -// one MIPS platform, which converts the parameter to "double" and -// hence changes the binary representation. (Even if that is a compiler -// bug, it's probably required by now for binary compatibility!) -// -// A "-k ansi" compiler flag may be needed to get correct behaviour; -// passing the "in" parameters by reference apparently works too. At -// this time, none of these solutions is used by default. -// -// This stub-level hackery seems like it could be replaced inside of the -// stub interpreter, which could just manually convert "float" parameters -// (all of them) as special cases. But of course, that would slow the -// interpreter down on _every_ call, not just the ones that require it -// (such as this one). Tradeoffs! -// -static const TAO_Param_Data test1_float_paramdata [4] = { - { _tc_CORBA_Float , PARAM_RETURN , 0 }, - { _tc_CORBA_Float , PARAM_IN , 0 }, - { _tc_CORBA_Float , PARAM_OUT , 0 }, - { _tc_CORBA_Float , PARAM_INOUT , 0 } -}; - -extern const TAO_Call_Data test1_float_calldata; - -const TAO_Call_Data test1_float_calldata = { - "test_float", CORBA_B_TRUE, - 4 , &test1_float_paramdata [0], - 0 , 0 -}; - -CORBA_Float -test1_test_float ( - test1_ptr target, - CORBA_Float in_a1, - CORBA_Float &out_a2, - CORBA_Float &inout_a3, - CORBA_Environment &env -) -{ - CORBA_Float _retval; - - // These three temporaries required due to MIPS compiler bug - CORBA_Float _in_a1 = in_a1; - CORBA_Float _out_a2 = out_a2; - CORBA_Float _inout_a3 = inout_a3; - - target -> data -> do_call (env, - &test1_float_calldata, - &_retval, - &_in_a1, - &_out_a2, - &_inout_a3); - return _retval; -} - -#else -DEFINE_TEST (float, Float); -#endif // MIPS - - -DEFINE_TEST (double, Double); -DEFINE_TEST (boolean, Boolean); -DEFINE_TEST (char, Char); -DEFINE_TEST (octet, Octet); - -/* -CORBA_Any * -test1_test_any (test1_ptr target, - const CORBA_Any &in_a1, - CORBA_Any *&out_a2, - CORBA_Any &inout_a3, - CORBA_Environment &env) -{ - // XXX implement this stub! ... annoying that C++ mapping - // calls for so much special casing -} -*/ - - -DEFINE_TEST3 (TypeCode, TypeCode_ptr, TypeCode); -DEFINE_TEST3 (Principal, Principal_ptr, Principal); -DEFINE_TEST3 (Object, Object_ptr, Object); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (string, Char *, String); - -DEFINE_TEST (longlong, LongLong); -DEFINE_TEST (ulonglong, ULongLong); -DEFINE_TEST (wchar, WChar); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (wstring, WChar *, WString); - -#if !defined(NONNATIVE_LONGDOUBLE) -DEFINE_TEST (longdouble, LongDouble); -#endif - -#undef DEFINE_TEST - - -// -// Utility macros used to construct octet codes that are aligned -// on longword boundaries, and with a known byte order. This -// happens to use big endian encoding since it was convenient. -// (Longword alignment is a happy accident of the specification -// of OMG-IDL ... it could have been much worse!) -// -// It'd be much simpler to lay out such data in assembler! -// - -#if defined (WORDS_BIGENDIAN) -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((a) & 0xff) << 24) | (((b) & 0xff) << 16) \ - | (((c) & 0xff) << 8) | ((d) & 0xff)) -# define BIG_ENDIAN_LONG(x) (x) - -#else // LITTLE_ENDIAN -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((d) & 0xff) << 24) | (((c) & 0xff) << 16) \ - | (((b) & 0xff) << 8) | ((a) & 0xff)) -# define BYTE_FROM(n,integer) (((integer)>>(8*(n)))&0xff) -# define BIG_ENDIAN_LONG(integer) \ - MAKE_BIG_LONG (BYTE_FROM(3,integer), BYTE_FROM(2,integer),\ - BYTE_FROM(1,integer), BYTE_FROM(0,integer)) -#endif - - - -// -// "x1" exception typecode ... must be longword aligned -// -static CORBA_Long oc_x1 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '1'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (1), // only one struct member - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA_TypeCode tc_x1 (tk_except, sizeof oc_x1, - (unsigned char *)&oc_x1, CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_test1_x1 = &tc_x1; - - - -// -// "x2" exception typecode ... must be longword aligned -// -static CORBA_Long oc_x2 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '2'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (2), // two struct members - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_objref), - BIG_ENDIAN_LONG (29), // type ID + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('o', 'm', 'g', '.'), - MAKE_BIG_LONG ('o', 'r', 'g', '/'), - MAKE_BIG_LONG ('C', 'O', 'R', 'B'), - MAKE_BIG_LONG ('A', '/', 'O', 'b'), - MAKE_BIG_LONG ('j', 'e', 'c', 't'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA_TypeCode tc_x2 (tk_except, sizeof oc_x2, - (unsigned char *)&oc_x2, CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_test1_x2 = &tc_x2; - - -// -// parameter, exception, and call descriptions for "test_throw" -// -static const TAO_Param_Data test1_test_throw_paramdata [1] = { - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static CORBA_TypeCode_ptr test1_test_throw_excepts [2] = { - &tc_x1, &tc_x2 -}; - -extern const TAO_Call_Data test1_test_throw_calldata; - -const TAO_Call_Data test1_test_throw_calldata = { - "test_throw", CORBA_B_TRUE, - 1, &test1_test_throw_paramdata [0], - 2, &test1_test_throw_excepts [0] -}; - -// -// "test_throw" stub -// -void -test1_test_throw ( - test1_ptr target, - CORBA_Long case_num, - CORBA_Environment &env // throw (x1, x2) -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_test_throw_calldata, - &case_num); - data->Release (); - } -} - -// -// PLEASE EXIT -// - -static const TAO_Call_Data test1_please_exit_calldata = { - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -test1_please_exit ( - test1_ptr target, - CORBA_Environment &env -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_please_exit_calldata - ); - data->Release (); - } -} - diff --git a/TAO/IIOP/test/test1.h b/TAO/IIOP/test/test1.h deleted file mode 100644 index 63e409d36c3..00000000000 --- a/TAO/IIOP/test/test1.h +++ /dev/null @@ -1,126 +0,0 @@ -// $Id$ - -// @(#)test1.hh 1.2 95/09/12 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST interface for "test1" -// - -#ifndef _TEST1_HH -#define _TEST1_HH - -#include -#include - - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -typedef CORBA_UShort test1_ushort; -typedef CORBA_ULong test1_ulong; - -typedef CORBA_LongLong test1_longlong; -typedef CORBA_ULongLong test1_ulonglong; -typedef CORBA_LongDouble test1_longdouble; - -typedef CORBA_Object test1; -typedef test1 *test1_ptr; - -#define DECL_TEST(typename, truetype) \ - truetype \ - test1_test_ ## typename ( \ - test1_ptr target, \ - truetype in_a1, \ - truetype &out_a2, \ - truetype &inout_a3, \ - CORBA_Environment &env \ - ) - -void test_illegal (test1_ptr target, CORBA_Environment &env); -void test1_test_void (test1_ptr target, CORBA_Environment &env); - -DECL_TEST (short, CORBA_Short); -DECL_TEST (long, CORBA_Long); -DECL_TEST (ushort, CORBA_UShort); -DECL_TEST (ulong, CORBA_ULong); -DECL_TEST (float, CORBA_Float); -DECL_TEST (double, CORBA_Double); -DECL_TEST (boolean, CORBA_Boolean); -DECL_TEST (char, CORBA_Char); -DECL_TEST (octet, CORBA_Octet); - -CORBA_Any * -test1_test_any ( - test1_ptr target, - const CORBA_Any &in_a1, - CORBA_Any *&out_a2, - CORBA_Any &inout_a3, - CORBA_Environment &env -); - -DECL_TEST (TypeCode, CORBA_TypeCode_ptr); -DECL_TEST (Principal, CORBA_Principal_ptr); -DECL_TEST (Object, CORBA_Object_ptr); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (string, CORBA_String); - -DECL_TEST (longlong, CORBA_LongLong); -DECL_TEST (ulonglong, CORBA_ULongLong); -DECL_TEST (wchar, CORBA_WChar); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (wstring, CORBA_WString); - -DECL_TEST (longdouble, CORBA_LongDouble); - -#undef DECL_TEST - -extern CORBA_TypeCode_ptr _tc_test1_x1; - -class test1_x1 : public CORBA_UserException { - public: - CORBA_Long case_num; - - test1_x1 (CORBA_Long n) - : CORBA_UserException (_tc_test1_x1), case_num (n) - { } -}; - -extern CORBA_TypeCode_ptr _tc_test1_x2; - -class test1_x2 : public CORBA_UserException { - public: - CORBA_Object_ptr obj; - CORBA_Long case_num; - - test1_x2 (CORBA_Object_ptr obj1, - CORBA_Long n) - : CORBA_UserException (_tc_test1_x2), - obj (obj1), case_num (n) { } - - ~test1_x2 () - { CORBA_release (obj); } -}; - -void -test1_test_throw ( - test1_ptr target, - CORBA_Long case_num, - CORBA_Environment &env // throw (x1, x2) -); - -void -test1_please_exit ( - test1_ptr target, - CORBA_Environment &env -); - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _TEST1_HH - diff --git a/TAO/IIOP/test/test1.idl b/TAO/IIOP/test/test1.idl deleted file mode 100644 index d47ab676ef5..00000000000 --- a/TAO/IIOP/test/test1.idl +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -// @(#)test1.idl 1.1 95/09/11 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -// TEST basic marshaling tests for all IDL primitive types, modes -// -// This test omits constructed types (struct, union, enum, sequence, and -// array types), and only tests very simple user defined exceptions. -// -// Values returned are well defined functions of the input values: -// -// * For numeric types (octet, short, long, longlong, float, double, -// longdouble, and unsigned variants) the value is cubed. -// * For Boolean, it's the negation. -// * For Any, TypeCode, Principal, Object, char and wchar, -// string and wstring, it's the input value. -// -// The "return" and "out" parameter is the function of the "in" parameter; -// the "inout" parameter is the function of its original value. -// -// The "echo" test has all output values be the input values, with no -// changes to the bit patterns originally transmitted. While easier to -// use to identify some kinds of problem, it is not as complete a test. -// - -#define DECL_TEST(type) \ - type test_ ## type ( in type a1, out type a2, inout type a3) - -#pragma prefix "Eng.SUN.COM" // only for Sun-defined interfaces - -interface test1 { - void test_void (); - - typedef unsigned short ushort; - typedef unsigned long ulong; - - typedef long long longlong; - typedef unsigned long long ulonglong; - typedef long double longdouble; - - DECL_TEST (short); - DECL_TEST (long); - DECL_TEST (ushort); - DECL_TEST (ulong); - DECL_TEST (float); - DECL_TEST (double); - DECL_TEST (boolean); - DECL_TEST (char); - DECL_TEST (octet); - DECL_TEST (any); - DECL_TEST (TypeCode); - DECL_TEST (Principal); - DECL_TEST (Object); // CORBA::Object - DECL_TEST (string); // unbounded string - - DECL_TEST (longlong); - DECL_TEST (ulonglong); - DECL_TEST (wchar); - DECL_TEST (wstring); // unbounded wstring - DECL_TEST (longdouble); - - // - // All cases, "case_num" in the exception is the same as the 'in' param - // * negative or zero, throws x1 - // * positive even cases, throws x2 with obj = null objref - // * positive odd cases, throws x2 with obj = target objref - // - exception x1 { long case_num; }; - exception x2 { Object obj; long case_num; }; - - void test_throw (in long case_num) raises (x1, x2); - - // - // Aid for test cleanup in case server's not told to quit after - // being idle for some time period - // - oneway void please_exit (); -}; - diff --git a/TAO/IIOP/test/test1_clnt.cpp b/TAO/IIOP/test/test1_clnt.cpp deleted file mode 100644 index ea6705afa1c..00000000000 --- a/TAO/IIOP/test/test1_clnt.cpp +++ /dev/null @@ -1,638 +0,0 @@ -// $Id$ - -// @(#)test1_clnt.cpp 1.5 95/09/24 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST client driver for "test1" -// - -#ifdef USE_IOSTREAM -#include -#endif - -#include -#include -#include - -#if unix -# include - -#else // windows - -#endif // unix - -#include "test1.h" -#include - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - - -// -// All tests are specified so that the return value and "out" (second) -// parameters are easily tested functions of the "in" (first) parameter, -// and the "inout" (third) parameter is the same function the its -// initial value. Caller is expected to specify two different "in" -// values. This helps make the marshaled bits vary, and turn up a class -// of potential problems that'd be hidden if parameter order had no -// effect on the test. -// -// PERFORM_TEST calls a test for a given type, reporting in cases where -// the ORB or operation failed. The COMPARE symbol can be redefined -// to achieve different functions -- e.g. cubing numbers, identity, -// negation, etc. It should return true iff the correct result was -// returned. -// -// BAD_COMPARE_VALUES is to produce diagnostics when a test fails, -// showing the actual and expected values of returned parameters. -// This helps diagnose specific porting problems. -// -// The RELEASE symbol may be defined to free memory, eliminating client -// side memory leaks in the test. -// -#define RELEASE(X) // NOP by default -#define PERFORM_TEST(name,type,value1,value2) \ - { \ - CORBA_ ## type v1, v2, v3; \ - \ - v1 = (CORBA_ ## type)(value1); \ - v2 = 0; \ - v3 = (CORBA_ ## type)(value2); \ - \ - test_count++; \ - v1 = test1_test_ ## name (target, v1, v2, v3, env); \ - if (env.exception () != 0) { \ - print_exception (env.exception (), "perform test_" #name); \ - error_count++; \ - } else if (!COMPARE (CORBA_ ## type, v1, value1) \ - || !COMPARE (CORBA_ ## type, v2, value1) \ - || !COMPARE (CORBA_ ## type, v3, value2) ) { \ - ACE_OS::fprintf (stderr, "bad comparison, test_" #name "\n"); \ - BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - error_count++; \ - } \ - RELEASE (v1); RELEASE (v2); RELEASE (v3); \ - } - -// -// This messing about is because the ostream op << cannot always -// be used with all kinds of data ... e.g. LongDouble, TypeCode. -// -#ifdef USE_IOSTREAM -# define DO_IO(x) x -#else -# define DO_IO(x) -#endif -#define BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) \ - DO_IO( cerr << " v1=" << v1; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value1) << "\n"; \ - cerr << " v2=" << v2; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value1) << "\n"; \ - cerr << " v3=" << v3; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value2) << "\n"); -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) - - -// -// test utility -- should be able to just use is_equivalent() directly -// but this implementation uses null pointers for nil, so this must -// check for nulls first. (May be noncompliant with C++ mapping!) -// -static CORBA_Boolean -compare_objrefs ( - CORBA_Object_ptr v1, - CORBA_Object_ptr v2 -) -{ - CORBA_Boolean temp; - CORBA_Environment env; - - if (v1 == v2) - return CORBA_B_TRUE; - - if (CORBA_is_nil (v1)) - return CORBA_is_nil (v2); - - temp = v1->_is_equivalent (v2, env); - if (env.exception () != 0) { - print_exception (env.exception (), "compare objref"); - return CORBA_B_FALSE; - } - return temp; -} - - -// -// Helper routine to help sure math (especially for floating point) -// gets done correctly. -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - - -static int skip_longdouble = 0; - -// -// This just performs the tests ... -// -void -do_tests ( - test1_ptr target, - unsigned loop_count, - unsigned &test_count, - unsigned &error_count -) -{ - int count; - - for (count = 0; count < loop_count; count++) { - CORBA_Environment env; - CORBA_Environment env2; // XXX - - // - // test_void - // - test_count++; - test1_test_void (target, env); - if (env.exception () != 0) { - print_exception (env.exception (), "perform test_void"); - error_count++; - } - - // - // Numeric tests ... try some variety in computation, no real - // rationale in the choice of initial parameter values except - // not to use the same values all the time. - // -#define EXPVAL(type,original_value) ((type) cube((type)(original_value))) -#define COMPARE(type,retval,original_value) \ - ((retval) == EXPVAL(type, original_value)) - - PERFORM_TEST (octet, Octet, count + 29, count - 22); - - PERFORM_TEST (short, Short, count - 23, count + 19); - PERFORM_TEST (ushort, UShort, count + 23, count - 19); - - PERFORM_TEST (long, Long, count - 17, count + 20); - PERFORM_TEST (ulong, ULong, count + 17, count - 20); - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - PERFORM_TEST (longlong, LongLong, count - 177, count + 3); - PERFORM_TEST (ulonglong, ULongLong, count + 177, count - 3); -#endif // !NONNATIVE_LONGLONG - -#if !defined (i386) - // - // XXX not sure what's wrong with the COMPARE macro with respect to - // floating point on x86, since fprintf shows the values basically - // look correct ... but these float/double tests fail. - // - PERFORM_TEST (float, Float, count - 0.29, count + 3.14159); - PERFORM_TEST (double, Double, count * 1.77, count * 2.71); -#endif // !defined (i386) - - -#ifndef NONNATIVE_LONGDOUBLE -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - // - // don't try this between two platforms that don't provide - // arithmetic support for LongDouble values ... - // - if (!skip_longdouble) { - PERFORM_TEST (longdouble, LongDouble, - count - 2.33, count * 3.14159); - } - -# undef BAD_COMPARE_VALUES -# define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) -#endif // !NONNATIVE_LONGDOUBLE - -#undef COMPARE -#undef EXPVAL - - - // - // Boolean -- negation - // -#define EXPVAL(type,original_value) (!(type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (boolean, Boolean, - (count & 0x01) != 0, (count & 0x01) == 0); -#undef COMPARE -#undef EXPVAL - - // - // Char, WChar -- identity - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (char, Char, count + 26, count - 5); - PERFORM_TEST (wchar, WChar, count, count + 25); -#undef COMPARE -#undef EXPVAL - - // - // Object_ptr -- identity (special comparision) - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (compare_objrefs (retval, original_value) == CORBA_B_TRUE) -#undef RELEASE -#define RELEASE(obj) \ - { CORBA_release (obj); } - - PERFORM_TEST (Object, Object_ptr, target, CORBA_Object::_nil ()); -#undef COMPARE -#undef EXPVAL - - // - // TypeCode_ptr -- identity (special comparision), and verifies - // that most of the built-in typecode constants exist. - // - // XXX should try this on all standard and system exceptions! - // - // XXX this currently tests only marshaling/unmarshaling of - // "no parameter" TypeCodes ... complex ones (objref, struct, - // union, enum, sequence, array, alias, exception) are _NOT_ - // currently attempted. - // - // XXX for the simple typecodes (string, wstring), the single - // "bound" parameter isn't exercised/verified as it should be. - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original) \ - (((retval) == (original)) || \ - ((retval)->_kind == (original)->_kind)) - -#undef RELEASE -#define RELEASE(tc) \ - { CORBA_release (tc); } - -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - { - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Null, _tc_CORBA_Void); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Short, _tc_CORBA_UShort); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Long, _tc_CORBA_ULong); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongLong, _tc_CORBA_ULongLong); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Float, _tc_CORBA_Double); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Boolean, _tc_CORBA_Octet); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Any, _tc_CORBA_TypeCode); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongDouble, _tc_CORBA_Principal); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Char, _tc_CORBA_String); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_WChar, _tc_CORBA_WString); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongDouble, _tc_CORBA_Octet); - - // - // Try all of the standard exception typecodes. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_UNKNOWN, _tc_CORBA_BAD_PARAM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_NO_MEMORY, _tc_CORBA_IMP_LIMIT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_COMM_FAILURE, _tc_CORBA_INV_OBJREF); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_OBJECT_NOT_EXIST, _tc_CORBA_NO_PERMISSION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INTERNAL, _tc_CORBA_MARSHAL); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INITIALIZE, _tc_CORBA_NO_IMPLEMENT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_BAD_TYPECODE, _tc_CORBA_BAD_OPERATION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_NO_RESOURCES, _tc_CORBA_NO_RESPONSE); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_PERSIST_STORE, _tc_CORBA_BAD_INV_ORDER); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_TRANSIENT, _tc_CORBA_FREE_MEM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INV_IDENT, _tc_CORBA_INV_FLAG); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INTF_REPOS, _tc_CORBA_BAD_CONTEXT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_OBJ_ADAPTER, _tc_CORBA_DATA_CONVERSION); - - // - // All the built-in "user defined" system exceptions. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_BadKind, _tc_CORBA_Bounds); - } -#undef COMPARE -#undef RELEASE - - // - // string (unbounded)-- identity (special comparision) - // -#define COMPARE(type,retval,original_value) \ - (strcmp ((char *)(retval), (char*)(original_value)) == 0) -#undef RELEASE -#define RELEASE(obj) CORBA_string_free(obj) - static const CORBA_Char str1 [] = "small"; - static const CORBA_Char str2 [] = - "relatively long string, constructed" - " with the aid of C++ implicit string" - " catenation, which simplifies much stuff"; - PERFORM_TEST (string, String, str1, str2); -#undef COMPARE -#undef RELEASE - - - // XXX any, principal, wstring ... output _is_ input - - - // - // Three test cases involve throwing user-defined exceptions. - // - { - CORBA_Exception *xp; - - // - // Case one: with parameter <= zero, must throw - // an "x1" exception whose "case_num" is that parameter - // - test_count++; - - test1_test_throw (target, -5, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x1->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x1 *xp2 = (test1_x1 *) xp; - - if (xp2->case_num != -5) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "no exception thrown !!\n"); - } - - - // - // Case two: with positive odd parameter, must throw - // an "x2" exception whose obj is null, and whose case_num - // is that parameter - // - test_count++; - - test1_test_throw (target, 101, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 101) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - if (!CORBA_is_nil (xp2->obj)) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "non-null objref thrown\n"); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "no exception thrown !!\n"); - } - - -#if 0 -// 18-sept-95: commented this out. Work remains to be done in -// this area: (a) ServerRequest::target operation unimplemented, -// so for the servers of current interest this test is no help; -// (b) probable pointer leak in exceptions holding data. - - // - // Case three: with positive even parameter, must throw - // an "x2" exception whose obj is the target, and whose - // case_num is that parameter - // - test_count++; - - test1_test_throw (target, 42, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 42) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - CORBA_Boolean status; - - status = target->_is_equivalent (xp2->obj, env); - - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), - "test_throw/3 call to is_equivalent"); - } else if (status != CORBA_B_TRUE) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "non-equivalent objref thrown\n"); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "no exception thrown !!\n"); - } - - env.clear (); -#endif // 0 - - } - - // - // test_illegal -- generate a BAD_OPERATION system exception - // from the remote process - // - test_count++; - test_illegal (target, env); - if (env.exception () == 0 - || ACE_OS::strcmp ((char *) env.exception()->id(), - (char *) _tc_CORBA_BAD_OPERATION->id (env2)) != 0) { - ACE_OS::fprintf (stderr, "couldn't generate BAD_OPERATION exception\n"); - error_count++; - } - } -} - - -int -main (int argc, char *argv[]) -{ - CORBA_ORB_ptr orb_ptr; - CORBA_Environment env; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - unsigned loop_count = 1; - unsigned tests = 0, errors = 0; - int exit_later = 0; - - orb_ptr = CORBA_ORB_init (argc, argv, "internet", env); - if (env.exception () != 0) { - dexc (env, "ORB initialisation"); - return 1; - } - - // - // Parse and verify parameters. - // - ACE_Get_Opt get_opt (argc, argv, "dln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) { - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'l': // skip "long double" test - skip_longdouble++; - continue; - - case 'n': // loop count - loop_count = (unsigned) ACE_OS::atoi (get_opt.optarg); - continue; - - case 'O': // stringified objref - { - objref = orb_ptr->string_to_object ( - (CORBA_String)get_opt.optarg, env); - if (env.exception () != 0) { - dexc (env, "string2object"); - return 1; - } - } - continue; - - case 'x': - exit_later++; - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-l]" - " [-n loopcount]" - " [-O objref]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - if (CORBA_is_nil (objref) == CORBA_B_TRUE) { - ACE_OS::fprintf (stderr, "%s: must identify non-null target objref\n", - argv [0]); - return 1; - } - - - do_tests (objref, loop_count, tests, errors); - - char *progname = ACE_OS::strrchr (argv [0], '/'); - - if (progname != 0) - progname += 1; - else - progname = argv [0]; - - ACE_OS::fprintf (stderr, "%s: %d loops, %d tests (%d errors)\n", - progname, loop_count, tests, errors); - - if (exit_later) { - test1_please_exit (objref, env); - if (env.exception () != 0) - print_exception (env.exception (), "test1_please_exit"); - } - - CORBA_release (objref); - - return errors != 0; -} diff --git a/TAO/IIOP/test/test1_svr.cpp b/TAO/IIOP/test/test1_svr.cpp deleted file mode 100644 index 64d548a189a..00000000000 --- a/TAO/IIOP/test/test1_svr.cpp +++ /dev/null @@ -1,672 +0,0 @@ -// $Id$ - -// @(#)test1_svr.cpp 1.7 95/09/25 -// Copyright 1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "test1.idl" interface. -// -// Starts up, builds an objref, prints its string, listens for -// messages, responds to them. -// - -#include -#include -#include - -#if unix -# include // for getopt on some systems - -#else // windows - -#endif - -#include "test1.h" -#include -#include - -#include - - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -// -// Skeleton code ... just a macro for a bunch of DSI-based method code, -// in lieu of having an IDL compmiler generate static skeletons. Static -// skeletons would be more efficient; most mallocation could go away. -// -// Use by: defining OPERATION macro, call DEFINE_SKEL3 as needed, then -// undef OPERATION. -// -// NOTE: "v1_copy" below is needed to work around a bug with the -// HP9000 G++ 2.6.3 compiler, with "LongLong". -// -// XXX this could probably be a template ... or could even be merged -// directly into the Dynamic Implementation Routine below. -// -// XXX we must currently use IN_COPY_VALUE since the memory consumed -// by the parameters must be deallocated by the ORB. When we get an -// updated version of DSI which provides "send it now" semantics, -// these should preallocate the values and not use IN_COPY_VALUE. A -// net decrease in malloc overhead can be had that way. (NVList should -// also get a public constructor, and a way to provide the buffer.) -// -#define DEFINE_SKEL3(name,truetype,truetypename) \ - static void \ - _test1_test_ ## name ( \ - CORBA_ServerRequest &req, \ - CORBA_Object_ptr obj, \ - CORBA_Environment &env \ - ) \ - { \ - CORBA_NVList_ptr nvlist; \ - CORBA_ ## truetype scratch = 0; \ - CORBA_Any temp_value (_tc_CORBA_ ## truetypename, \ - &scratch, CORBA_B_FALSE); \ - \ - req.orb ()->create_list (3, nvlist); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_IN, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_OUT, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_INOUT, env); \ - \ - req.params (nvlist, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, req.params"); \ - return; \ - } \ - \ - CORBA_ ## truetype *v1, *v2, *retval; \ - \ - v1 = (CORBA_ ## truetype *) nvlist->item (0)->value ()->value (); \ - v2 = new CORBA_ ## truetype; \ - *v2 = (CORBA_ ## truetype) OPERATION (*v1); \ - retval = new CORBA_ ## truetype; \ - *retval = (CORBA_ ## truetype) OPERATION (*v1); \ - \ - CORBA_Any_ptr any_val; \ - \ - any_val = nvlist->item (1)->value (); \ - any_val->replace (any_val->type (), v2, CORBA_B_TRUE, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, val2 replace"); \ - return; \ - } \ - \ - v1 = (CORBA_ ## truetype *) nvlist->item (2)->value ()->value (); \ - CORBA_ ## truetype v1copy = *v1; \ - *v1 = (CORBA_ ## truetype) OPERATION (v1copy); \ - \ - any_val = new CORBA_Any (_tc_CORBA_ ## truetypename, \ - retval, CORBA_B_TRUE); \ - req.result (any_val, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, result"); \ - return; \ - } \ - } \ - extern TAO_Call_Data test1_ ## name ## _calldata; - - -extern const TAO_Call_Data test1_void_calldata; - -static void -_test1_test_void (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - - req.orb ()->create_list (0, nvlist); - req.params (nvlist, env); - - if (env.exception () != 0) - dexc (env, "test_throw, get params"); -} - - -// -// Dynamic Skeleton methods for numeric types ... these all just -// cube their parameters in various permutations -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - -#define OPERATION(n) cube(n) - -DEFINE_SKEL3 (octet, Octet, Octet) - -DEFINE_SKEL3 (short, Short, Short) -DEFINE_SKEL3 (ushort, UShort, UShort) - -DEFINE_SKEL3 (long, Long, Long) -DEFINE_SKEL3 (ulong, ULong, ULong) - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... -DEFINE_SKEL3 (longlong, LongLong, LongLong) -DEFINE_SKEL3 (ulonglong, ULongLong, ULongLong) -#endif // !NONNATIVE_LONGLONG - -DEFINE_SKEL3 (float, Float, Float) -DEFINE_SKEL3 (double, Double, Double) - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... -DEFINE_SKEL3 (longdouble, LongDouble, LongDouble) -#endif // !NONNATIVE_LONGDOUBLE - -#undef OPERATION - -// -// Dynamic Skeleton methods for Boolean type ... just negates its -// parameters -// -#define OPERATION(x) (!(x)) -DEFINE_SKEL3 (boolean, Boolean, Boolean) -#undef OPERATION - -// -// For character types, output is same as input, no magic needed. -// -#define OPERATION(x) (x) -DEFINE_SKEL3 (char, Char, Char) -DEFINE_SKEL3 (wchar, WChar, WChar) -#undef OPERATION - -// -// For objref, typecode, output is same as input but duplication -// is needed -// -#define OPERATION(x) ((x) ? (x)->AddRef() : 0, x) -DEFINE_SKEL3 (Object, Object_ptr, Object) -DEFINE_SKEL3 (TypeCode, TypeCode_ptr, TypeCode) -#undef OPERATION - -// -// For string, output is copy of input -// -#define OPERATION(x) (CORBA_string_copy(x)) -DEFINE_SKEL3 (string, String, String) -#undef OPERATION - -// -// For wstring, output is copy of input -// -#define OPERATION(x) (CORBA_wstring_copy(x)) -DEFINE_SKEL3 (wstring, WString, WString) -#undef OPERATION - -// -// XXX IMPLEMENT THE REST OF THE DATA TYPES -// -// any, principal -- out is in -// - - -// -// All cases, "case_num" in the exception is the same as the 'in' param -// * negative or zero, throws x1 -// * positive even cases, throws x2 with obj = null objref -// * positive odd cases, throws x2 with obj = target objref -// -// exception x1 { long case_num; }; -// exception x2 { Object obj; long case_num; }; -// -// void test_throw (in long case_num) raises (x1, x2); -// - -extern const TAO_Call_Data test1_test_throw_calldata; - -static void -_test1_test_throw (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - CORBA_Long value; - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) - { - dexc (env, "test_throw, get params"); - return; - } - - value = *(CORBA_Long *)nv->value ()->value (); - if (env.exception () != 0) - { - dexc (env, "test_throw, param value"); - return; - } - - CORBA_Any_ptr any; - - if (value <= 0) - { - test1_x1 *x; - - x = new test1_x1 (value); - any = new CORBA_Any (_tc_test1_x1, x, CORBA_B_TRUE); - - } - else if (value & 0x01) - { - test1_x2 *x; - - x = new test1_x2 (CORBA_Object::_nil (), value); - any = new CORBA_Any (_tc_test1_x2, x, CORBA_B_TRUE); - - } - else - { -#if 0 - test1_x2 *x; - - x = new test1_x2 (req.oa()->target (), value); - any = new CORBA_Any (_tc_test1_x2, x, CORBA_B_TRUE); -#else - // - // XXX right now, we don't have a target() operation on the - // BOA ... needs to be added. Verify the client side memory - // leak of pointers embedded in user exceptions is fixed, too. - // - env.exception (new CORBA_IMP_LIMIT (COMPLETED_NO)); - return; -#endif - } - - req.exception (USER_EXCEPTION, any, env); -} - - -// -// This table is used to associate operation names with the Dynamic -// Skeleton method ... someday it could return static skeletons. -// -#define DECL_SKEL(name) \ - { & test1_ ## name ## _calldata, _test1_test_ ## name } - -static const TAO_Skel_Entry test1_operations [] = { - DECL_SKEL (void), - - DECL_SKEL (octet), - DECL_SKEL (char), - - DECL_SKEL (wchar), - - DECL_SKEL (short), - DECL_SKEL (ushort), - DECL_SKEL (long), - DECL_SKEL (ulong), - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - DECL_SKEL (longlong), - DECL_SKEL (ulonglong), -#endif - - DECL_SKEL (float), - DECL_SKEL (double), - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... - DECL_SKEL (longdouble), -#endif // !NONNATIVE_LONGDOUBLE - - DECL_SKEL (boolean), - - DECL_SKEL (Object), - DECL_SKEL (TypeCode), - - DECL_SKEL (string), - DECL_SKEL (wstring), - - { & test1_test_throw_calldata, _test1_test_throw }, - - { 0, 0 } -}; - - -// -// Dispatch to method code ... -// -// Knows how to interpret "context" to get target objref, and where to -// get second level skeletons for that target. Both of those operations -// will generally be abstracted (into library and stub code) so the main -// body of this routine would be invisible to most applications. -// -// However, there are applications that need to do this stuff themselves -// (like bridging between environments, e.g. different ORBs, languages, or -// other object systems). Everything needed to work without using an IDL -// compiler is a public, supported API. -// -static void -level1_skeleton ( - CORBA_OctetSeq &key, - CORBA_ServerRequest &req, - void *context, - CORBA_Environment &env -) -{ - // - // Verify that the target object and "this" object have the - // same key. Normally, this would be used to figure out - // which object was the target, and hence which operations - // vector to dispatch the request. - // - CORBA_OctetSeq *obj_key; - - obj_key = (CORBA_OctetSeq *) context; - if (obj_key->length != key.length - || ACE_OS::memcmp (obj_key->buffer, key.buffer, - obj_key->length) != 0) - { - env.exception (new CORBA_OBJECT_NOT_EXIST (COMPLETED_NO)); -#ifdef DEBUG - if (TAO_debug_level) - dmsg_opaque ("request to nonexistent object, key = ", - key.buffer, key.length); -#endif - return; - } - - // - // Find a "level 2 skeleton" for this operation, then - // call it with the right per-object state. - // - const TAO_Skel_Entry *entry; - CORBA_String opname; - - opname = req.op_name (); - for (entry = &test1_operations [0]; entry->op_descriptor; entry++) - { - if (strcmp ((char *)opname, entry->op_descriptor->opname) == 0) - { - // We pass a bogus object because this version of the cubit example is - // so tightly coupled that it doesn't use it. Future modifications will, - // hopefully! - CORBA_Object_ptr bogus_object = 0; - entry->impl_skeleton (req, bogus_object, env); - return; - } - } - - // - // XXX True top-level skeleton code would also have to understand - // the built-in operations: - // - // * _is_a (for narrowing tests) ... can be derived by searching an - // appropriately structured graph of level2 skeletons. - // - // * _non_existent ... if the level1 skeleton consults a module - // which understands object lifespans, this should be simple. - // - // * _get_interface ... could either (a) fail; (b) return the ref - // from some IFR; or most interestingly (c) return a ref to some - // code in this process that can answer all IFR queries from the - // skeleton data structures. - // - // * _get_implementation ... return some administrative hook to - // the object implementation: - // - // No other legal operations start with a character that's not an - // ASCII alphanumeric, for what it's worth. - // - // The skeleton might want to use data in the object key to find - // the objref's type; if it's integrated with object creation, and - // an per-process implementation repository, this should be easy. - // - - // - // bypass level 2 skeletons for this one ... - // - if (strcmp ((char *) opname, "please_exit") == 0) - { - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); - return; - } - - // - // No match. Operation not implemented; say so. - // - dmsg1 ("unknown operation, %s", opname); - env.exception (new CORBA_BAD_OPERATION (COMPLETED_NO)); -} - - -// -// Create and print the objref, listen for calls on it until done. -// -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - -int -OA_listen (CORBA_ORB_ptr orb_ptr, - CORBA_BOA_ptr oa_ptr, - CORBA_String key, - int idle) -{ - // - // Create the object we'll be implementing. - // - CORBA_OctetSeq obj_key; - CORBA_Object_ptr obj; - CORBA_Environment env; - - obj_key.buffer = (CORBA_Octet *) key; - obj_key.length = obj_key.maximum = ACE_OS::strlen (key); - - obj = oa_ptr->create (obj_key, (CORBA_String) "", env); - if (env.exception () != 0) - { - print_exception (env.exception (), "BOA::create"); - return 1; - } - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - - // - // Clean up -- "key" is sufficient to dispatch all requests. - // - CORBA_release (obj); - CORBA_string_free (str); - env.clear (); - - // - // Handle requests for this object until we're killed, or one of - // the methods makes us exit. - // - // NOTE: apart from registering the top level skeleton, the rest - // of this loop is exactly what BOA::run() does. It's here to - // show there's no magic. - // -#if 0 - oa_ptr->register_dir (level1_skeleton, &obj_key, env); -#else - oa_ptr->register_dir (oa_ptr->dispatch, &obj_key, env); -#endif - if (env.exception () != 0) - { - print_exception (env.exception (), "register_dir"); - return 1; - } - - for (;;) { - if (idle == -1) - oa_ptr->get_request (CORBA_B_FALSE, 0, env); - else - { - timeval tv; - - tv.tv_sec = idle; - tv.tv_usec = 0; - oa_ptr->get_request (CORBA_B_FALSE, &tv, env); - } - - CORBA_Exception_ptr xp; - - if ((xp = env.exception ()) != 0) - { - CORBA_Environment env2; // XXX - char *id; - - id = env.exception ()->id (); - - // - // We get BAD_INV_ORDER if we call get_request() after - // shutdown was initiated. Simpler to rely on that - // than to arrange any handshaking in this simple app. - // - if (strcmp (id, _tc_CORBA_BAD_INV_ORDER->id (env2)) == 0) - { - break; - - // - // Other exceptions are errors. - // - } - else - { - print_exception (env.exception (), "BOA::get_request"); - return 1; - } - } - env.clear (); - } - - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - // XXX shutdown is not quite the same as release, unless we want mem - // leaks to cause some rude failure modes. BOA just hasn't been - // updated yet to have any handshake about this though. - // - oa_ptr->Release (); - return 0; -} - - -// -// Standard command line parsing utilities used. -// -int -main (int argc, char *argv[]) -{ - CORBA_Environment env; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - CORBA_String key = (CORBA_String) "elvis"; - char *oa_name = 0; - char *orb_name = "internet"; - int idle = -1; - - // - // Parse the command line, get options - // - ACE_Get_Opt get_opt (argc, argv, "dln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) - { - case 'd': // more debug noise - TAO_debug_level++; - continue; - - case 'i': // idle seconds b4 exit - idle = ACE_OS::atoi (get_opt.optarg); - continue; - - case 'k': // key (str) - key = (CORBA_String) get_opt.optarg; - continue; - - case 'o': // orb name - orb_name = get_opt.optarg; - continue; - - case 'p': // portnum - oa_name = get_opt.optarg; - continue; - - // XXX set debug filters ... - - // - // XXX ignore OMG-specified options ... hope nobody ever tries - // to use that "-ORB* param" and "-OA* param" syntax, it flies - // in the face of standard command parsing algorithms which - // require single-character option specifiers. - // - - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-i idle_seconds]" - " [-k object_key=elvis]" - " [-o orbname=internet]" - " [-p oa_name]" - "\n", argv [0] - ); - return 1; - } - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init"); - return 1; - } - - // - // The BOA may or may not actually be named ... - // - oa_ptr = CORBA_BOA::get_named_boa (orb_ptr, oa_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "OA init"); - return 1; - } - - return OA_listen (orb_ptr, oa_ptr, key, idle); -} - diff --git a/TAO/IIOP/test/tnf/Orbix.svr.summary b/TAO/IIOP/test/tnf/Orbix.svr.summary deleted file mode 100644 index 1c01995f7d5..00000000000 --- a/TAO/IIOP/test/tnf/Orbix.svr.summary +++ /dev/null @@ -1,32 +0,0 @@ - Profile for 10000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.04 8.505 3386 0.003 0.349 0.002 0.000 -mutex_unlock 0.04 8.205 3386 0.002 0.127 0.002 0.000 - - - Profile for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.01 8.875 3386 0.003 0.373 0.002 0.000 -mutex_unlock 0.01 8.353 3386 0.002 0.093 0.002 0.000 - - Profile for 30000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.02 8.979 3386 0.003 0.386 0.002 0.000 -mutex_unlock 0.02 8.465 3386 0.002 0.030 0.002 0.000 - - Profile for 40000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.01 8.849 3388 0.003 0.355 0.002 0.000 -mutex_unlock 0.01 7.937 3388 0.002 0.029 0.002 0.000 diff --git a/TAO/IIOP/test/tnf/clnt.summary b/TAO/IIOP/test/tnf/clnt.summary deleted file mode 100644 index bed4a22d35e..00000000000 --- a/TAO/IIOP/test/tnf/clnt.summary +++ /dev/null @@ -1,43 +0,0 @@ - Profile for 10000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.28 53.642 10006 0.005 0.192 0.004 0.000 -rw_unlock 0.28 52.672 10009 0.005 0.037 0.005 0.000 -mutex_lock 0.06 11.366 2765 0.004 0.161 0.002 0.000 -mutex_unlock 0.04 6.996 2771 0.003 0.028 0.002 0.000 -rw_wrlock 0.00 0.047 3 0.016 0.034 0.006 0.007 - - Profile for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.40 146.579 20006 0.007 1.200 0.005 0.000 -rw_unlock 0.25 91.386 20009 0.005 0.058 0.004 0.000 -mutex_lock 0.06 21.087 5265 0.004 0.178 0.002 0.000 -mutex_unlock 0.04 14.372 5271 0.003 0.075 0.002 0.000 -rw_wrlock 0.00 0.045 3 0.015 0.034 0.005 0.008 - - Profile for 30000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.41 241.807 30006 0.008 1.181 0.005 0.000 -rw_unlock 0.24 141.506 30009 0.005 0.503 0.004 0.000 -mutex_lock 0.07 38.545 7765 0.005 0.171 0.002 0.000 -mutex_unlock 0.03 19.591 7771 0.003 0.078 0.002 0.000 -rw_wrlock 0.00 0.045 3 0.015 0.033 0.005 0.007 - - Profile for 40000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.39 307.763 40006 0.008 2.031 0.005 0.000 -rw_unlock 0.23 184.537 40009 0.005 0.138 0.004 0.000 -mutex_lock 0.05 38.808 10265 0.004 0.173 0.002 0.000 -mutex_unlock 0.03 25.931 10271 0.003 0.078 0.002 0.000 -rw_wrlock 0.00 0.043 3 0.014 0.033 0.004 0.008 diff --git a/TAO/IIOP/test/tnf/svr.summary b/TAO/IIOP/test/tnf/svr.summary deleted file mode 100644 index 6e1c024aacd..00000000000 --- a/TAO/IIOP/test/tnf/svr.summary +++ /dev/null @@ -1,49 +0,0 @@ - Profile for 10000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.18 191.077 54588 0.004 1.158 0.003 0.000 -mutex_lock 1.18 190.652 54587 0.003 0.198 0.003 0.000 -rw_rdlock 0.29 46.844 6823 0.007 0.173 0.004 0.000 -rw_unlock 0.18 28.419 6823 0.004 0.064 0.004 0.000 - - Profile for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 1.12 154.491 54507 0.003 0.140 0.002 0.000 -mutex_unlock 1.06 145.638 54508 0.003 0.310 0.002 0.000 -rw_rdlock 0.27 37.265 6813 0.005 0.037 0.004 0.000 -rw_unlock 0.20 27.792 6813 0.004 0.045 0.004 0.000 - - Profile for 30000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 1.19 150.344 54654 0.003 0.621 0.002 0.000 -mutex_unlock 1.15 144.776 54655 0.003 0.071 0.002 0.000 -rw_rdlock 0.27 33.772 6832 0.005 0.078 0.004 0.000 -rw_unlock 0.19 23.613 6832 0.003 0.105 0.003 0.000 - - Profile for 40000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.48 209.259 54770 0.004 18.223 0.002 0.000 -mutex_lock 1.46 206.619 54769 0.004 10.473 0.002 0.000 -rw_rdlock 0.78 110.047 6846 0.016 38.115 0.003 0.006 -rw_unlock 0.17 23.844 6846 0.003 0.112 0.003 0.000 - - Profile for 50000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.19 150.149 54477 0.003 0.152 0.002 0.000 -mutex_lock 1.18 149.113 54477 0.003 1.376 0.002 0.000 -rw_rdlock 0.34 43.048 6809 0.006 10.113 0.003 0.001 -rw_unlock 0.19 23.796 6810 0.003 0.326 0.003 0.000 diff --git a/TAO/IIOP/tests/Cubit/Build/clnt.bld b/TAO/IIOP/tests/Cubit/Build/clnt.bld deleted file mode 100755 index 76e60ef8967..00000000000 --- a/TAO/IIOP/tests/Cubit/Build/clnt.bld +++ /dev/null @@ -1,8 +0,0 @@ -#!build -default: - program - :debuglevel=multi -../cubit.cpp - C++ -../clnt.cpp - C++ diff --git a/TAO/IIOP/tests/Cubit/Build/default.bld b/TAO/IIOP/tests/Cubit/Build/default.bld deleted file mode 100755 index cdf3e2e8210..00000000000 --- a/TAO/IIOP/tests/Cubit/Build/default.bld +++ /dev/null @@ -1,19 +0,0 @@ -#!build -default: - nobuild - :debuglevel=multi - :target=vxwppc - :sourcedirs=/home/ace/ACE_wrappers.vxworks - :sourcedirs=../../proto/include - :sourcedirs=../.. - :libraries=../../proto/lib/tao.a - :libraries=/home/ace/ACE_wrappers.vxworks/ace/libACE.a - :libraries=/appl/newgreen/vxppc603/indlib.o - :defines=DEBUG -clnt.bld - program - :debuglevel=multi -svr.bld - program - :debuglevel=multi - :defines=USE_ACE_EVENT_HANDLING diff --git a/TAO/IIOP/tests/Cubit/Build/svr.bld b/TAO/IIOP/tests/Cubit/Build/svr.bld deleted file mode 100755 index 7c8725356b2..00000000000 --- a/TAO/IIOP/tests/Cubit/Build/svr.bld +++ /dev/null @@ -1,8 +0,0 @@ -#!build -default: - program - :debuglevel=multi -../svr.cpp - C++ -../cubit.cpp - C++ diff --git a/TAO/IIOP/tests/Cubit/Orbix/Makefile b/TAO/IIOP/tests/Cubit/Orbix/Makefile deleted file mode 100644 index 96935fb78fc..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the Gateway application -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = base_server \ - client \ - tpr \ - tpool \ - tps - -#---------------------------------------------------------------------------- -# 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/TAO/IIOP/tests/Cubit/Orbix/base_server/Makefile b/TAO/IIOP/tests/Cubit/Orbix/base_server/Makefile deleted file mode 100644 index 3bf0684dfd5..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.h b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.h deleted file mode 100644 index 584efa67c8d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitC.h +++ /dev/null @@ -1,345 +0,0 @@ -// $Id$ - -#ifndef _cubitC_h -#define _cubitC_h - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -#include "corba.h" - - - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr CubitRef; - -#ifndef _Cubit_var_ -#define _Cubit_var_ -class Cubit_var -{ - public: - Cubit_var(); - Cubit_var(Cubit_ptr); - Cubit_var(const Cubit_var&); - ~Cubit_var(); - Cubit_var& operator=(Cubit_ptr); - operator Cubit_ptr() const { return _ptr; } -#if defined(_HPCC_BUG) - operator Cubit *&() { return _ptr; } -#else - operator Cubit_ptr&() { return _ptr; } -#endif - Cubit_ptr operator->() const { return _ptr;} - friend NCistream& operator>>(NCistream&, Cubit_var&); - friend NCostream& operator<<(NCostream&, const Cubit_var&); - friend istream& operator>>(istream&, Cubit_var&); - friend ostream& operator<<(ostream&, const Cubit_var&); - private: - Cubit_ptr _ptr; - void operator=(const Cubit_var&) {} -}; -#endif -class Cubit: public virtual CORBA_Object -{ - private: - static const CORBA::TypeInfo _class_info; - Cubit(const Cubit&) {} - void operator=(const Cubit&){} - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo& ) const; - static CORBA::Object *_factory(); - protected: - Cubit(const char *obj_name = NULL) :CORBA_Object(obj_name, 1) {} - Cubit(NCistream& strm) :CORBA_Object(strm) {} - virtual ~Cubit() {} - public: - static Cubit_ptr _duplicate(Cubit_ptr obj) { - if (obj ) obj->_ref(); - return obj; - } - static Cubit_ptr _nil() { return (Cubit_ptr)NULL;} - static Cubit_ptr _narrow(CORBA::Object *obj); - static Cubit_ptr _clone(Cubit_ptr obj) { - CORBA::Object_var obj_var(__clone(obj)); - -#if defined(_HPCC_BUG) - return _narrow(obj_var.operator CORBA::Object_ptr()); -#else - return _narrow(obj_var); -#endif - } - static Cubit_ptr _bind(const char *object_name = NULL, - const char *host_name = NULL, - const CORBA::BindOptions* opt = NULL); - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - - virtual CORBA::Short cube_short(CORBA::Short s); - - virtual CORBA::Long cube_long(CORBA::Long l); - - struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - }; - friend NCostream& operator<<(NCostream&, const Many& ); - friend NCistream& operator>>(NCistream&, Many& ); - - friend ostream& operator<<(ostream&, const Many& ); - inline friend istream& operator>>(istream& _strm, Many& _obj) { - NCistream _istrm(_strm); - _istrm >> _obj; - return _strm; - } - - - typedef Many *Many_ptr; - class Many_var - { - public: - Many_var() { _ptr = (Many*)NULL;} - Many_var(Many *ptr) { - _ptr = ptr; - } - Many_var(const Many_var& var) { - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - } - ~Many_var() { - if (_ptr != (Many *)NULL) delete _ptr; - } - Many_var& operator=(Many *ptr) { - if (_ptr != (Many *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - Many_var& operator=(const Many_var& var) { - if (_ptr != (Many *)NULL) delete _ptr; - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - return *this; - } - Many *operator->() { return _ptr; } - operator Many () const { return *_ptr; } - operator Many& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const Many_var& var) { - if (var._ptr == (Many *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - Many_var& var) { - if ( ! var._ptr) - var._ptr = new Many; - strm >> *var._ptr; - return strm; - } - private: - Many *_ptr; - }; - - - virtual Cubit::Many cube_struct(const Cubit::Many& values); - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th - }; - inline friend NCostream& operator<<(NCostream& _strm, discrim _enum_type) { - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend NCistream& operator>>(NCistream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - if (_temp >= 6) - throw CORBA::BAD_PARAM(); - _enum_type = discrim(_temp); - return _strm; - } - inline friend ostream& operator<<(ostream& _strm, discrim _enum_type) { - if( &_strm == &cout || &_strm == &cerr || &_strm == &clog) { - _strm << "discrim:"; - switch(_enum_type) { - case e_0th: - _strm << "e_0th" << endl; - break; - case e_1st: - _strm << "e_1st" << endl; - break; - case e_2nd: - _strm << "e_2nd" << endl; - break; - case e_3rd: - _strm << "e_3rd" << endl; - break; - case e_4th: - _strm << "e_4th" << endl; - break; - case e_5th: - _strm << "e_5th" << endl; - break; - } - } - else - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend istream& operator>>(istream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - _enum_type = discrim(_temp); - return _strm; - } - - - class oneof - { - public: - private: - discrim _disc; - CORBA::Octet __o; - CORBA::Short __s; - CORBA::Long __l; - Cubit::Many __cm; - public: - oneof() : _disc(discrim(0)) {} - ~oneof() {} - oneof(const oneof& obj); - oneof& operator=(const oneof& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void o(CORBA::Octet val) { - __o = val; - _disc = Cubit::e_0th; - } - CORBA::Octet o() const { return __o; } - - void s(CORBA::Short val) { - __s = val; - _disc = Cubit::e_1st; - } - CORBA::Short s() const { return __s; } - - void l(CORBA::Long val) { - __l = val; - _disc = Cubit::e_2nd; - } - CORBA::Long l() const { return __l; } - - void cm(const Cubit::Many& val) { - __cm = val; - _disc = Cubit::e_3rd; - } - const Cubit::Many& cm() const { return __cm; } - Cubit::Many& cm() { return __cm; } - - friend NCostream& operator<<(NCostream&, const oneof& ); - friend NCistream& operator>>(NCistream&, oneof& ); - friend ostream& operator<<(ostream&, const oneof&); - inline friend istream& operator>>(istream& strm, oneof& obj) { - NCistream istrm(strm); - strm >> obj; - return strm; - } - }; - - typedef oneof *oneof_ptr; - class oneof_var - { - public: - oneof_var() { _ptr = (oneof*)NULL;} - oneof_var(oneof *ptr) { - _ptr = ptr; - } - oneof_var(const oneof_var& var) { - _ptr = new oneof(*var._ptr); - } - ~oneof_var() { - if (_ptr != (oneof *)NULL) delete _ptr; - } - oneof_var& operator=(oneof *ptr) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - oneof_var& operator=(const oneof_var& var) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = new oneof(*var._ptr); - return *this; - } - oneof *operator->() { return _ptr; } - operator oneof () const { return *_ptr; } - operator oneof& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const oneof_var& var) { - if (var._ptr == (oneof *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - oneof_var& var) { - if ( ! var._ptr) - var._ptr = new oneof; - strm >> *var._ptr; - return strm; - } - private: - oneof *_ptr; - }; - - - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - - virtual void please_exit(); - - inline friend NCistream& operator>>(NCistream& strm, Cubit_ptr& obj) { - CORBA::Object_var _obj(obj); - _obj = CORBA::Object::_read(strm, Cubit::_desc()); - obj = Cubit::_narrow(_obj); - return strm; - } - inline friend ostream& operator<<(ostream& strm, const Cubit_ptr obj) { - strm << (CORBA::Object_ptr)obj; - return strm; - } - inline friend istream& operator>>(istream& strm, Cubit_ptr& obj) { - NCistream istrm(strm); - istrm >> obj; - return strm; - } -}; - - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.cpp b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.h b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.h deleted file mode 100644 index 3ca717e2b49..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubitS.h +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#ifndef _cubitS_h -#define _cubitS_h - -#include "cubitC.h" - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -class _sk_Cubit : public Cubit -{ - protected: - _sk_Cubit(const char *object_name = (const char *)NULL); - _sk_Cubit(const char *service_name, const CORBA::ReferenceData& data); - virtual ~_sk_Cubit() {} - public: - static const CORBA::TypeInfo _skel_info; - - // The following operations need to be implemented by the server. - virtual CORBA::Octet cube_octet(CORBA::Octet o) = 0; - virtual CORBA::Short cube_short(CORBA::Short s) = 0; - virtual CORBA::Long cube_long(CORBA::Long l) = 0; - virtual Cubit::Many cube_struct(const Cubit::Many& values) = 0; - virtual Cubit::oneof cube_union(const Cubit::oneof& values) = 0; - virtual void please_exit() = 0; - - // Skeleton Operations implemented automatically - - static void _cube_octet(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_short(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_long(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_struct(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_union(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _please_exit(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - -}; -template -class _tie_Cubit : public Cubit -{ - public: - _tie_Cubit(T& t, const char *obj_name=(char*)NULL) : - Cubit(obj_name), - _ref(t) { - _object_name(obj_name); - } - _tie_Cubit(T& t, const char *service_name, - const CORBA::ReferenceData& id) - :_ref(t) { - _service(service_name, id); - } - ~_tie_Cubit() {} - CORBA::Octet cube_octet(CORBA::Octet o) { - return _ref.cube_octet( - o); - } - CORBA::Short cube_short(CORBA::Short s) { - return _ref.cube_short( - s); - } - CORBA::Long cube_long(CORBA::Long l) { - return _ref.cube_long( - l); - } - Cubit::Many cube_struct(const Cubit::Many& values) { - return _ref.cube_struct( - values); - } - Cubit::oneof cube_union(const Cubit::oneof& values) { - return _ref.cube_union( - values); - } - void please_exit() { - _ref.please_exit(); - } - - private: - T& _ref; -}; - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.cpp b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.h b/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/server.cpp b/TAO/IIOP/tests/Cubit/Orbix/base_server/server.cpp deleted file mode 100644 index 527fa13d76e..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.cpp b/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.cpp deleted file mode 100644 index da78690cc2c..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tpr.h" - -void * -worker(void *vp) -{ - ACE_Thread_Control tc (ACE_Thread_Manager::instance ()); - CORBA::Orbix.continueThreadDispatch (*(CORBA::Request *)vp); - return NULL; -} - - -int -tpr_filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance (); - thr_mgr->spawn (ACE_THR_FUNC (worker), - (void *) &r, - THR_DETACHED); - - return -1; -} - -tpr_filter tpr_dispatcher; diff --git a/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.h b/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.h deleted file mode 100644 index b5e8be94cf1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/base_server/tpr.h +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" - -// -// Create a thread filter to dispatch incoming calls -// -class tpr_filter : public CORBA::ThreadFilter { - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/client/Makefile b/TAO/IIOP/tests/Cubit/Orbix/client/Makefile deleted file mode 100644 index 73f775bee2f..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/client/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/client/client.cpp b/TAO/IIOP/tests/Cubit/Orbix/client/client.cpp deleted file mode 100644 index f199078b601..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/client/client.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cb = Cubit::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/client/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/client/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/client/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/client/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/client/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/client/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/client/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/client/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/Makefile b/TAO/IIOP/tests/Cubit/Orbix/factory_client/Makefile deleted file mode 100644 index 63cc8a65e02..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h -.obj/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/client.cpp b/TAO/IIOP/tests/Cubit/Orbix/factory_client/client.cpp deleted file mode 100644 index 1afdecbadf4..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/client.cpp +++ /dev/null @@ -1,237 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - Cubit_Factory_var cf; - - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cf = Cubit_Factory::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - cb = cf->create_cubit ("My_Cubit"); - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.hh b/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.hh deleted file mode 100644 index 72e2fb81395..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.hh +++ /dev/null @@ -1,1111 +0,0 @@ - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitS.cpp b/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitS.cpp deleted file mode 100644 index 56cf33174a6..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/factory_client/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.hh" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/tests/Cubit/Orbix/orb.mk b/TAO/IIOP/tests/Cubit/Orbix/orb.mk deleted file mode 100644 index cf7b12d3b1b..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/orb.mk +++ /dev/null @@ -1,146 +0,0 @@ -# ------------------------------------------------------------ -# Orbix 2.2 implicit rules for SunOS/GNU Make -# ------------------------------------------------------------ -# -# If you cut'n'paste this into your /usr/include/make/default.mk -# file, beware! This is not officially supported by Iona -# Technologies, and you may want to be a bit of a Makefile hacker -# to make it integrate well with your site's setup. - -# The best thing to do would be put it in a standard place and -# anyone who wants the Orbix implicit rule set can include -# it with an "include /orbix.mk" line in their -# Makefile. A good place to put it might be /usr/include/make. - -# These rules define default C++, C++FLAGS and C++SUFFIX. -# C++ is the C++ compiler to use; C++FLAGS are command-line -# flags to the C++ compiler for use in compiling C++ source -# files into objects; C++SUFFIX is the filename suffix -# indicating C++ source. By default, it's set to "C" for AT&T C++, -# and "cc" for GNU g++. - -# Feel free to override these in your Makefiles *after* -# including this file. - -# IMPORTANT: If the -M switch is specified in IDLFLAGS, the IDL -# compiler appends to the user-specified file. The dependency for -# specified_file.o in the linking target should appear _after_ any use -# of the IDL compiler which takes the -M flag. Putting it _last_ -# is normally the best approach. - -# Note that these rule definitions use pattern matching, -# and therefore only work with SunOS make and GNU make. - -# They may not work with other vendor's versions of make. -# If they do not, you may wish to try using GNU make, which -# is free software produced by the Free Software Foundation. - -# If the version of make you wish to use does not support -# pattern matching, use the sample explicit rule set in -# the comments at the end of this file. - -# ------------------------------------------------------------ -# Essential: set these to the locations into which you -# have installed Orbix' components: - -ORBIX_BINDIR = /opt/Orbix_2.2MT/corba2/bin -ORBIX_LIBDIR = /opt/Orbix_2.2MT/corba2/lib -ORBIX_INCDIR = /opt/Orbix_2.2MT/corba2/include - -#------------------------------------------------------------- -# To compile the demos, you should change these values as -# appropriate for your particular system installation -#------------------------------------------------------------- - -X11BASE = /usr/openwin -X11INCDIR = $(X11BASE)/include -X11LIBDIR = $(X11BASE)/lib - -# C++ = CC -# C++FLAGS = -I$(ORBIX_INCDIR) -I. -mt -D_REENTRANT -# C++SUFFIX = cpp - -# ------------------------------------------------------------ -# ITCLT, IRCLT and ITSRV can be either statically or dynamically linked -# Use -Bdynamic or -Bstatic as appropriate. -# ------------------------------------------------------------ - -ITCLT = -Bstatic -lorbixmt -IRCLT = -Bstatic -lIRcltmt -ITSRV = -Bstatic -lorbixmt -ITIIOP = -Bstatic -liiopmt -ITDSI = -Bstatic -lDSImt -ITIFR = -Bstatic -lifrmt - -# ------------------------------------------------------------ -# SYSLIBS must be dynamically linked; otherwise you can expect to -# get linkage errors for symbols in the nsl library -# ------------------------------------------------------------ - -LDFLAGS += -L$(ORBIX_LIBDIR) -SYSLIBS = -Bdynamic -lnsl -lsocket - -IDL = $(ORBIX_BINDIR)/idl -IDLFLAGS = - -# ------------------------------------------------------------ -# The following section defines implicit rules for creating -# *.{C,S}.C files, rules for compiling those -# into objects, and even a rule for compiling C++ source into -# objects (in case one isn't already defined). - -# ------------------------------------------------------------ -# first, put the new suffixes at the *head* of the suffix list, -# overriding any existing .C compilation method. -.SUFFIXES: -.SUFFIXES: .$(C++SUFFIX) .idl $(SUFFIXES) - -# .SUFFIXES: .$(C++SUFFIX) .idl .hh $(SUFFIXES) -# ------------------------------------------------------------ -# *[CS].o must be compiled here, and depends -# mostly on the C++ files produced from the IDL file. - -%C.o: %C.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%S.o: %S.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%.o: %.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -%S.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%C.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%.hh: %.idl - $(IDL) $(IDLFLAGS) $< - -# ------------------------------------------------------------ -# If the version of make you wish to use does not support -# pattern matching, here's a sample of an explicit rule set. - -# We assume the IDL file is called "foobar.idl", we wish -# to compile "foobarC.o", "foobarS.o", and -# "foobar.hh", and the C++ file suffix. -# ------------------------------------------------------------ - -# foobarC.o: foobar.hh foobarC.C -# $(C++) -c ($C++FLAGS) foobarC.C -# -# foobarS.o: foobar.hh foobarS.C -# $(C++) -c ($C++FLAGS) foobarS.C -# -# foobarC.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobarS.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobar.hh: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/Makefile b/TAO/IIOP/tests/Cubit/Orbix/tpool/Makefile deleted file mode 100644 index 0e425af78b1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpool.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpool.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitS.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.h b/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/server.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpool/server.cpp deleted file mode 100644 index ac107f69ec4..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/server.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file -#include "tpool.h" - -int -main (int argc, char** argv) -{ - - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // Register our thread-pool dispatcher - int n_threads = argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_THREADS; - Thread_Pool tpool_dispatcher (n_threads); - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.cpp deleted file mode 100644 index 219503a22d7..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "tpool.h" - -Thread_Pool::Thread_Pool (int n_threads) - : ACE_Task (ACE_Thread_Manager::instance ()) -{ - if (this->activate (THR_DETACHED | THR_NEW_LWP, n_threads) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); -} - -int -Thread_Pool::svc (void) -{ - cout << "Pool thread activated" << endl; - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return -1; -} - - -int -Thread_Pool::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - // Enqueue the request - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - this->msg_queue ()->enqueue (mb); - // Done - return -1; -} - - - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.h b/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.h deleted file mode 100644 index 337a7f54e65..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpool/tpool.h +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class Thread_Pool : public ACE_Task, public CORBA::ThreadFilter -{ -public: - Thread_Pool (int n_threads); - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); - virtual int svc (void); - -}; - - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/Makefile b/TAO/IIOP/tests/Cubit/Orbix/tpr/Makefile deleted file mode 100644 index 650d6aaf259..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpr.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpr.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.h b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.h deleted file mode 100644 index 584efa67c8d..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitC.h +++ /dev/null @@ -1,345 +0,0 @@ -// $Id$ - -#ifndef _cubitC_h -#define _cubitC_h - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -#include "corba.h" - - - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr CubitRef; - -#ifndef _Cubit_var_ -#define _Cubit_var_ -class Cubit_var -{ - public: - Cubit_var(); - Cubit_var(Cubit_ptr); - Cubit_var(const Cubit_var&); - ~Cubit_var(); - Cubit_var& operator=(Cubit_ptr); - operator Cubit_ptr() const { return _ptr; } -#if defined(_HPCC_BUG) - operator Cubit *&() { return _ptr; } -#else - operator Cubit_ptr&() { return _ptr; } -#endif - Cubit_ptr operator->() const { return _ptr;} - friend NCistream& operator>>(NCistream&, Cubit_var&); - friend NCostream& operator<<(NCostream&, const Cubit_var&); - friend istream& operator>>(istream&, Cubit_var&); - friend ostream& operator<<(ostream&, const Cubit_var&); - private: - Cubit_ptr _ptr; - void operator=(const Cubit_var&) {} -}; -#endif -class Cubit: public virtual CORBA_Object -{ - private: - static const CORBA::TypeInfo _class_info; - Cubit(const Cubit&) {} - void operator=(const Cubit&){} - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo& ) const; - static CORBA::Object *_factory(); - protected: - Cubit(const char *obj_name = NULL) :CORBA_Object(obj_name, 1) {} - Cubit(NCistream& strm) :CORBA_Object(strm) {} - virtual ~Cubit() {} - public: - static Cubit_ptr _duplicate(Cubit_ptr obj) { - if (obj ) obj->_ref(); - return obj; - } - static Cubit_ptr _nil() { return (Cubit_ptr)NULL;} - static Cubit_ptr _narrow(CORBA::Object *obj); - static Cubit_ptr _clone(Cubit_ptr obj) { - CORBA::Object_var obj_var(__clone(obj)); - -#if defined(_HPCC_BUG) - return _narrow(obj_var.operator CORBA::Object_ptr()); -#else - return _narrow(obj_var); -#endif - } - static Cubit_ptr _bind(const char *object_name = NULL, - const char *host_name = NULL, - const CORBA::BindOptions* opt = NULL); - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - - virtual CORBA::Short cube_short(CORBA::Short s); - - virtual CORBA::Long cube_long(CORBA::Long l); - - struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - }; - friend NCostream& operator<<(NCostream&, const Many& ); - friend NCistream& operator>>(NCistream&, Many& ); - - friend ostream& operator<<(ostream&, const Many& ); - inline friend istream& operator>>(istream& _strm, Many& _obj) { - NCistream _istrm(_strm); - _istrm >> _obj; - return _strm; - } - - - typedef Many *Many_ptr; - class Many_var - { - public: - Many_var() { _ptr = (Many*)NULL;} - Many_var(Many *ptr) { - _ptr = ptr; - } - Many_var(const Many_var& var) { - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - } - ~Many_var() { - if (_ptr != (Many *)NULL) delete _ptr; - } - Many_var& operator=(Many *ptr) { - if (_ptr != (Many *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - Many_var& operator=(const Many_var& var) { - if (_ptr != (Many *)NULL) delete _ptr; - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - return *this; - } - Many *operator->() { return _ptr; } - operator Many () const { return *_ptr; } - operator Many& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const Many_var& var) { - if (var._ptr == (Many *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - Many_var& var) { - if ( ! var._ptr) - var._ptr = new Many; - strm >> *var._ptr; - return strm; - } - private: - Many *_ptr; - }; - - - virtual Cubit::Many cube_struct(const Cubit::Many& values); - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th - }; - inline friend NCostream& operator<<(NCostream& _strm, discrim _enum_type) { - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend NCistream& operator>>(NCistream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - if (_temp >= 6) - throw CORBA::BAD_PARAM(); - _enum_type = discrim(_temp); - return _strm; - } - inline friend ostream& operator<<(ostream& _strm, discrim _enum_type) { - if( &_strm == &cout || &_strm == &cerr || &_strm == &clog) { - _strm << "discrim:"; - switch(_enum_type) { - case e_0th: - _strm << "e_0th" << endl; - break; - case e_1st: - _strm << "e_1st" << endl; - break; - case e_2nd: - _strm << "e_2nd" << endl; - break; - case e_3rd: - _strm << "e_3rd" << endl; - break; - case e_4th: - _strm << "e_4th" << endl; - break; - case e_5th: - _strm << "e_5th" << endl; - break; - } - } - else - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend istream& operator>>(istream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - _enum_type = discrim(_temp); - return _strm; - } - - - class oneof - { - public: - private: - discrim _disc; - CORBA::Octet __o; - CORBA::Short __s; - CORBA::Long __l; - Cubit::Many __cm; - public: - oneof() : _disc(discrim(0)) {} - ~oneof() {} - oneof(const oneof& obj); - oneof& operator=(const oneof& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void o(CORBA::Octet val) { - __o = val; - _disc = Cubit::e_0th; - } - CORBA::Octet o() const { return __o; } - - void s(CORBA::Short val) { - __s = val; - _disc = Cubit::e_1st; - } - CORBA::Short s() const { return __s; } - - void l(CORBA::Long val) { - __l = val; - _disc = Cubit::e_2nd; - } - CORBA::Long l() const { return __l; } - - void cm(const Cubit::Many& val) { - __cm = val; - _disc = Cubit::e_3rd; - } - const Cubit::Many& cm() const { return __cm; } - Cubit::Many& cm() { return __cm; } - - friend NCostream& operator<<(NCostream&, const oneof& ); - friend NCistream& operator>>(NCistream&, oneof& ); - friend ostream& operator<<(ostream&, const oneof&); - inline friend istream& operator>>(istream& strm, oneof& obj) { - NCistream istrm(strm); - strm >> obj; - return strm; - } - }; - - typedef oneof *oneof_ptr; - class oneof_var - { - public: - oneof_var() { _ptr = (oneof*)NULL;} - oneof_var(oneof *ptr) { - _ptr = ptr; - } - oneof_var(const oneof_var& var) { - _ptr = new oneof(*var._ptr); - } - ~oneof_var() { - if (_ptr != (oneof *)NULL) delete _ptr; - } - oneof_var& operator=(oneof *ptr) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - oneof_var& operator=(const oneof_var& var) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = new oneof(*var._ptr); - return *this; - } - oneof *operator->() { return _ptr; } - operator oneof () const { return *_ptr; } - operator oneof& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const oneof_var& var) { - if (var._ptr == (oneof *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - oneof_var& var) { - if ( ! var._ptr) - var._ptr = new oneof; - strm >> *var._ptr; - return strm; - } - private: - oneof *_ptr; - }; - - - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - - virtual void please_exit(); - - inline friend NCistream& operator>>(NCistream& strm, Cubit_ptr& obj) { - CORBA::Object_var _obj(obj); - _obj = CORBA::Object::_read(strm, Cubit::_desc()); - obj = Cubit::_narrow(_obj); - return strm; - } - inline friend ostream& operator<<(ostream& strm, const Cubit_ptr obj) { - strm << (CORBA::Object_ptr)obj; - return strm; - } - inline friend istream& operator>>(istream& strm, Cubit_ptr& obj) { - NCistream istrm(strm); - istrm >> obj; - return strm; - } -}; - - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.h b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.h deleted file mode 100644 index 3ca717e2b49..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubitS.h +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#ifndef _cubitS_h -#define _cubitS_h - -#include "cubitC.h" - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -class _sk_Cubit : public Cubit -{ - protected: - _sk_Cubit(const char *object_name = (const char *)NULL); - _sk_Cubit(const char *service_name, const CORBA::ReferenceData& data); - virtual ~_sk_Cubit() {} - public: - static const CORBA::TypeInfo _skel_info; - - // The following operations need to be implemented by the server. - virtual CORBA::Octet cube_octet(CORBA::Octet o) = 0; - virtual CORBA::Short cube_short(CORBA::Short s) = 0; - virtual CORBA::Long cube_long(CORBA::Long l) = 0; - virtual Cubit::Many cube_struct(const Cubit::Many& values) = 0; - virtual Cubit::oneof cube_union(const Cubit::oneof& values) = 0; - virtual void please_exit() = 0; - - // Skeleton Operations implemented automatically - - static void _cube_octet(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_short(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_long(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_struct(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_union(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _please_exit(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - -}; -template -class _tie_Cubit : public Cubit -{ - public: - _tie_Cubit(T& t, const char *obj_name=(char*)NULL) : - Cubit(obj_name), - _ref(t) { - _object_name(obj_name); - } - _tie_Cubit(T& t, const char *service_name, - const CORBA::ReferenceData& id) - :_ref(t) { - _service(service_name, id); - } - ~_tie_Cubit() {} - CORBA::Octet cube_octet(CORBA::Octet o) { - return _ref.cube_octet( - o); - } - CORBA::Short cube_short(CORBA::Short s) { - return _ref.cube_short( - s); - } - CORBA::Long cube_long(CORBA::Long l) { - return _ref.cube_long( - l); - } - Cubit::Many cube_struct(const Cubit::Many& values) { - return _ref.cube_struct( - values); - } - Cubit::oneof cube_union(const Cubit::oneof& values) { - return _ref.cube_union( - values); - } - void please_exit() { - _ref.please_exit(); - } - - private: - T& _ref; -}; - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.h b/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/server.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpr/server.cpp deleted file mode 100644 index 527fa13d76e..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.cpp b/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.cpp deleted file mode 100644 index da78690cc2c..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tpr.h" - -void * -worker(void *vp) -{ - ACE_Thread_Control tc (ACE_Thread_Manager::instance ()); - CORBA::Orbix.continueThreadDispatch (*(CORBA::Request *)vp); - return NULL; -} - - -int -tpr_filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance (); - thr_mgr->spawn (ACE_THR_FUNC (worker), - (void *) &r, - THR_DETACHED); - - return -1; -} - -tpr_filter tpr_dispatcher; diff --git a/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.h b/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.h deleted file mode 100644 index b5e8be94cf1..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tpr/tpr.h +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" - -// -// Create a thread filter to dispatch incoming calls -// -class tpr_filter : public CORBA::ThreadFilter { - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/Makefile b/TAO/IIOP/tests/Cubit/Orbix/tps/Makefile deleted file mode 100644 index 69701ba3b63..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/Makefile +++ /dev/null @@ -1,349 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tps.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tps.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitS.o .shobj/cubitS.so: cubitS.cpp cubit.h cubitC.cpp -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/tps.o .shobj/tps.so: tps.cpp tps.h cubit.h cubit_impl.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.h b/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.idl b/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubitC.cpp b/TAO/IIOP/tests/Cubit/Orbix/tps/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubitS.cpp b/TAO/IIOP/tests/Cubit/Orbix/tps/cubitS.cpp deleted file mode 100644 index e4637a23680..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.cpp b/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.cpp deleted file mode 100644 index 02c30756efc..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &) throw (CORBA::SystemException) { -} - -Cubit_ptr Cubit_Factory_Impl:: create_cubit (const char * name, CORBA::Environment &) throw (CORBA::SystemException) { - cerr << "Creating Cubit for " << name << endl; - -#ifdef Cubit_USE_BOA - Cubit_Impl_Task *cubit = new Cubit_Impl_Task (); -#else - Cubit_Impl_Task *cubit = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl_Task); -#endif - Cubit::_duplicate ((Cubit *)cubit); - cubit->activate (1); - return (Cubit *) cubit; -} - -int -Cubit_Impl_Task::svc (void) -{ - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return 0; -} - -void * -Cubit_Impl_Task::_deref (void) -{ - return this; -} diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.h b/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.h deleted file mode 100644 index 0fea9857af3..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/cubit_impl.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" -#include "ace/Task.h" - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - -}; - -#ifdef Cubit_USE_BOA -class Cubit_Factory_Impl : public virtual Cubit_FactoryBOAImpl { -#else -class Cubit_Factory_Impl { -#endif - -public: - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -class Cubit_Impl_Task : public virtual Cubit_Impl, public virtual ACE_Task { -public: - // For ACE_Task - int svc (void); - // for narrowing - virtual void *_deref (); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -DEF_TIE_Cubit_Factory (Cubit_Factory_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/tps.cpp b/TAO/IIOP/tests/Cubit/Orbix/tps/tps.cpp deleted file mode 100644 index 19a86b75ffd..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/tps.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tps.h" - -int -TPS_Filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment& env) -{ - // Get target - CORBA::Object_ptr obj = r.target (); - Cubit * cb = Cubit::_narrow (obj, env); - - if (env) // Not for our object!! - return 1; // continue in the same thread - - // Enqueue the request - Cubit_Impl_Task *ct; - if (CORBA::is_nil (cb)) - return 1; - ct = (Cubit_Impl_Task *) DEREF(cb); - if (ct) { - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - ct->msg_queue ()->enqueue (mb); - } - // Done - return -1; -} - -TPS_Filter tps_filter; diff --git a/TAO/IIOP/tests/Cubit/Orbix/tps/tps.h b/TAO/IIOP/tests/Cubit/Orbix/tps/tps.h deleted file mode 100644 index 362c9ed4e91..00000000000 --- a/TAO/IIOP/tests/Cubit/Orbix/tps/tps.h +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "cubit_impl.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class TPS_Filter : public ACE_Task, public CORBA::ThreadFilter -{ -public: - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/IIOP/tests/Cubit/README b/TAO/IIOP/tests/Cubit/README deleted file mode 100644 index 5eaf42ec2e3..00000000000 --- a/TAO/IIOP/tests/Cubit/README +++ /dev/null @@ -1,7 +0,0 @@ - Cubit - -This is the example from the SunSoft's IIOP 1.4 distribution modified -to work with TAO. There is a Cubit example for Orbix and -VisiBroker. - -Benchmarking results are under results and tnf directories. diff --git a/TAO/IIOP/tests/Cubit/TAO/Makefile b/TAO/IIOP/tests/Cubit/TAO/Makefile deleted file mode 100644 index 04f34a6cc36..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/Makefile +++ /dev/null @@ -1,121 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba - -PROG_SRCS = svr.cpp clnt.cpp cubit.cpp \ - test1.cpp test1_clnt.cpp test1_svr.cpp \ - echo_clnt.cpp echo_svr.cpp - -LSRC = $(PROG_SRCS) - -CUBIT_SVR_OBJS = svr.o cubit_i.o cubitS.o -CUBIT_CLT_OBJS = clnt.o cubitC.o - -BASIC_SVR_OBJS = test1.o test1_svr.o -BASIC_CLT_OBJS = test1.o test1_clnt.o - -ECHO_SVR_OBJS = test1.o echo_svr.o -ECHO_CLT_OBJS = test1.o echo_clnt.o - -BIN = svr clnt test1_svr test1_clnt -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -# Local modifications to variables imported by includes above. -LDFLAGS += -L../../../proto/lib -CPPFLAGS += -I../../../proto/include -DUSE_ACE_EVENT_HANDLING -DDEBUG - -svr: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clnt: $(addprefix $(VDIR),$(CUBIT_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_svr: $(addprefix $(VDIR),$(BASIC_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_clnt: $(addprefix $(VDIR),$(BASIC_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -######## -# Sanity check builds by running basic functionality tests. -# -# "sleep 5" in the server startup is usually enough to get the -# objref into the file so the client can read it. -# -check: $(TESTS) - @echo "testing with 'cube' calls, stub + DII, IOR strings" - @./svr -i30 -o non-internet > obj.1 & sleep 5 - @./clnt -n250 -O `cat obj.1` -x - @echo '' - @echo "testing request forwarding with 'cube' calls, stub + DII" - @./svr -f -i30 > obj.2 & sleep 5 - @./clnt -n250 -O `cat obj.2` -x - @echo '' - @echo "testing transmission of primitive data types" - @./test1_svr -i30 > obj.3 & sleep 5 - @./test1_clnt -n50 -O `cat obj.3` -x - @echo '' -# @echo "testing echo of primitive data values" -# @./echo_svr -i30 > obj.4 & sleep 5 -# @./echo_clnt -O `cat obj.4` -x -# @echo '' - @echo "testing with 'cube' calls, MT-ized (no forwarding)" - @./svr -t -i30 -o non-internet > obj.5 & sleep 5 - @./clnt -n250 -O `cat obj.5` -x - @echo '' - -ifdef LOCALRULES -######## -# CUBIT test -svr: svr.o cubit.o - $(LINK.cc) -o svr svr.o cubit.o $(LDLIBS) $(POSTLINK) -clnt: cubit.o clnt.o - $(LINK.cc) -o clnt clnt.o cubit.o $(LDLIBS) $(POSTLINK) - -######## -# BASIC DATATYPES test -test1_clnt: test1.o test1_clnt.o - $(LINK.cc) -o test1_clnt test1_clnt.o test1.o $(LDLIBS) $(POSTLINK) -test1_svr: test1.o test1_svr.o - $(LINK.cc) -o test1_svr test1_svr.o test1.o $(LDLIBS) $(POSTLINK) - -######## -# ECHO test ... "test1" where the operation semantics are violated; -# this aids some porting work, but is a less rigorous test -echo_clnt: test1.o echo_clnt.o - $(LINK.cc) -o echo_clnt echo_clnt.o test1.o $(LDLIBS) $(POSTLINK) -echo_svr: test1.o echo_svr.o - $(LINK.cc) -o echo_svr echo_svr.o test1.o $(LDLIBS) $(POSTLINK) -endif - -clean: - -rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -install: - -@echo "Nothing to install, these are tests!" - - - - - diff --git a/TAO/IIOP/tests/Cubit/TAO/clnt.cpp b/TAO/IIOP/tests/Cubit/TAO/clnt.cpp deleted file mode 100644 index 3e78e8be2f1..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/clnt.cpp +++ /dev/null @@ -1,510 +0,0 @@ -// $Id$ - -// @(#)clnt.cpp 1.2 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: Simple "cube" client, calling hand-crafted stubs. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include -//#include - -#if unix -# include -# include - -#elif defined (VXWORKS) -# include -# include - -#else // windows - -#endif // unix - -#include "cubitC.h" - -#include - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -inline int func (unsigned i) { return i - 117; } - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - - -// -// forward declarations -// -static void cube_union_stub(unsigned, unsigned&, unsigned&, - CORBA_Object_ptr, CORBA_Environment &); - -static void cube_union_dii(unsigned &, unsigned &, - CORBA_Object_ptr, CORBA_Environment &); - -// Global variables -const char* TAO_arg_ior = 0; -unsigned loop_count = 1; -int exit_later = 0; - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "dn:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'n': // loop count - loop_count = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - { - TAO_arg_ior = ACE_OS::strdup(opts.optarg); - } - continue; - - case 'x': - exit_later++; - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-O objref]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - -int -main (int argc, char *argv[]) -{ - CORBA_ORB_ptr orb_ptr; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - CORBA_Environment env; - - orb_ptr = CORBA_ORB_init(argc, argv, "internet", env); - if (env.exception() != 0) - { - print_exception(env.exception(), "ORB initialization"); - return 1; - } - - // - // Parse command line and verify parameters. - // - parse_args(argc, argv); - - if (TAO_arg_ior == 0) - ACE_ERROR_RETURN((LM_ERROR, "%s: must specify an object reference using -O \n", argv[0]), 1); - - objref = orb_ptr->string_to_object ((CORBA_String)TAO_arg_ior, env); - - ACE_OS::free((void*)TAO_arg_ior); - TAO_arg_ior = 0; - - if (env.exception () != 0) - { - print_exception (env.exception (), "string2object"); - return 1; - } - - if (CORBA_is_nil (objref) == CORBA_B_TRUE) - ACE_ERROR_RETURN((LM_ERROR, "%s: must identify non-null target objref\n", argv [0]), 1); - - // Narrow the CORBA_Object reference to the stub object, checking - // the type along the way using _is_a - Cubit_ptr aCubit = Cubit::_narrow(objref); - if (aCubit == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to narrow object reference to a Cubit_ptr.\n"), 1); - - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - // - // Cube an octet. - // - CORBA_Octet arg_octet, ret_octet; - - call_count++; - ret_octet = aCubit->Cubit_cube_octet (arg_octet = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_octet"); - error_count++; - } - else - { - dmsg2 ("cube octet: %d --> %d\n", arg_octet, ret_octet); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) ERROR (--> %d)\n", - (CORBA_Octet) func (i), ret_octet); - error_count++; - } - } - - // - // Cube a short. - // - CORBA_Short arg_short, ret_short; - - call_count++; - ret_short = aCubit->Cubit_cube_short (arg_short = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_short"); - error_count++; - } - else - { - dmsg2 ("cube short: %d --> %d\n", arg_short, ret_short); - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) - { - ACE_OS::printf ("** cube_short(%d) ERROR (--> %d)\n", - (CORBA_Short) func (i), ret_short); - error_count++; - } - } - - // - // Cube a long. - // - CORBA_Long arg_long, ret_long; - - call_count++; - ret_long = aCubit->Cubit_cube_long (arg_long = func (i), env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_long"); - error_count++; - } - else - { - dmsg2 ("cube long: %d --> %d\n", arg_long, ret_long); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%ld) ERROR (--> %ld)\n", - (CORBA_Long) func (i), ret_long); - error_count++; - } - } - - // - // Cube a "struct" ... - // - Cubit_Many arg_struct, *ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - ret_struct = aCubit->Cubit_cube_struct (arg_struct, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "from cube_struct"); - error_count++; - } - else - { - dmsg ("cube struct ..."); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct->l - || arg_struct.s != ret_struct->s - || arg_struct.o != ret_struct->o) - { - ACE_OS::printf ("** cube_struct ERROR\n"); - error_count++; - } - delete ret_struct; - } - - } - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - - // - // Simple test for DII: call "cube_struct". (It's not timed - // since the copious mallocation of DII would bias numbers against - // typical stub-based calls.) - // - do { - // - // Create the request ... - // - CORBA_Request_ptr req; - - req = objref->_request ((const CORBA_String) "cube_struct", env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request create"); - break; - } - - // - // ... initialise the argument list and result ... - // - Cubit_Many arg, *result; - - arg.o = 3; arg.l = 5; arg.s = -7; - - CORBA_Any tmp_arg (TC_Cubit_Many, &arg, CORBA_B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA_ARG_IN, env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request arg add"); - CORBA_release (req); - break; - } - - req->result ()->value () - ->replace (TC_Cubit_Many, 0, CORBA_B_TRUE, env); - if (env.exception () != 0) { - print_exception (env.exception (), "DII request result type"); - CORBA_release (req); - break; - } - - // - // Make the invocation, verify the result - // - req->invoke (); - if (req->env ()->exception () != 0) { - print_exception (req->env ()->exception (), "DII invoke"); - CORBA_release (req); - break; - } - - result = (Cubit_Many *) req->result ()->value ()->value (); - - if (result->o != 27 || result->l != 125 || result->s != -343) - ACE_OS::fprintf (stderr, "DII cube_struct -- bad results\n"); - else - dmsg ("DII cube_struct ... success!!"); - - CORBA_release (req); - - } while (0); - - // - // Two more tests, using the "cube_union" function - // - cube_union_dii(call_count, error_count, objref, env); - if (env.exception () != 0) - error_count++; - - cube_union_stub(i, call_count, error_count, objref, env); - if (env.exception () != 0) - error_count++; - - if (exit_later) { - aCubit->Cubit_please_exit (env); - dexc (env, "server, please ACE_OS::exit"); - } - - CORBA_release (objref); - - return (error_count == 0) ? 0 : 1; -} - - -static void -cube_union_stub(unsigned i, - unsigned &call_count, - unsigned &error_count, - CORBA_Object_ptr objref, - CORBA_Environment &env) -{ - Cubit_ptr aCubit = Cubit::_narrow(objref); - // - // Cube a "union" ... - // - Cubit_oneof u, *r; - - call_count++; - - u._disc = e_2nd; - u.l = 3; - - r = aCubit->Cubit_cube_union (u, env); - if (env.exception () != 0) { - print_exception (env.exception (), "from cube_union"); - error_count++; - } else { - dmsg ("cube union ..."); - u.l = u.l * u.l * u.l ; - - if (u.l != r->l) { - ACE_OS::printf ("** cube_union ERROR\n"); - error_count++; - } - - delete r; - } - - // - // Cube another "union" which uses the default arm ... - // - call_count++; - - u._disc = e_5th; - u.cm.l = func (i); - u.cm.s = func (i); - u.cm.o = func (i); - - u.cm.l = 7; - u.cm.s = 5; - u.cm.o = 3; - - r = aCubit->Cubit_cube_union (u, env); - if (env.exception () != 0) { - print_exception (env.exception (), "from cube_union"); - error_count++; - } else { - dmsg ("cube union ..."); - u.cm.l = u.cm.l * u.cm.l * u.cm.l; - u.cm.s = u.cm.s * u.cm.s * u.cm.s; - u.cm.o = u.cm.o * u.cm.o * u.cm.o; - - if (u.cm.l != r->cm.l - || u.cm.s != r->cm.s - || u.cm.o != r->cm.o) { - ACE_OS::printf ("** cube_union ERROR\n"); - error_count++; - } - - delete r; - } -} - - -static void -cube_union_dii (unsigned &call_count, - unsigned &error_count, - CORBA_Object_ptr objref, - CORBA_Environment &env) -{ - // - // Create the request ... - // - CORBA_Request_ptr req; - - call_count++; - - req = objref->_request ((const CORBA_String) "cube_union", env); - if (env.exception () != 0) { - error_count++; - - print_exception (env.exception (), "cube_union_dii request create"); - return; - } - - // - // ... initialise the argument list and result ... - // - Cubit_oneof u, *r; - - u._disc = e_3rd; - u.cm.l = 5; - u.cm.s = -7; - u.cm.o = 3; - - CORBA_Any tmp_arg (TC_Cubit_oneof, &u, CORBA_B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA_ARG_IN, env); - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), "cube_union_dii request arg add"); - CORBA_release (req); - return; - } - - req->result ()->value ()->replace (TC_Cubit_oneof, 0, CORBA_B_TRUE, env); - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), "cube_union_dii result type"); - CORBA_release (req); - return; - } - - // - // Make the invocation, verify the result - // - req->invoke (); - if (req->env ()->exception () != 0) { - error_count++; - print_exception (req->env ()->exception (),"cube_union_dii invoke"); - CORBA_release (req); - return; - } - - r = (Cubit_oneof *) req->result ()->value ()->value (); - - if (r->cm.o != 27 || r->cm.l != 125 || r->cm.s != -343) { - error_count++; - ACE_OS::fprintf (stderr, "cube_union_dii -- bad results\n"); - } - else - dmsg ("cube_union_dii ... success!!"); - - CORBA_release (req); -} diff --git a/TAO/IIOP/tests/Cubit/TAO/cubit.cpp b/TAO/IIOP/tests/Cubit/TAO/cubit.cpp deleted file mode 100644 index 38f23fac373..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubit.cpp +++ /dev/null @@ -1,578 +0,0 @@ -// $Id$ - -// @(#)cubit.cpp 1.2 95/09/29 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// -// NOTE: these "skeletons" are really the methods, using DSI. No real -// ORB would be implemented in this particular way. Several things would -// be more typical of real (static) skeletons: -// -// * Most of the "in" (and much of the "out") parameter data would -// be preallocated on the stack, not heap allocated. (Static -// preallocation doesnt' really work in a multithreaded system, -// and moreover can waste a lot of space.) -// -// * The ORB core wouldn't be told about parameters using heap -// allocated data structures (e.g. NVList). -// -// * Skeletons would need to some kind of "marshal the response NOW" -// API so that stack-allocated "out" values wouldn't become invalid -// up until they were safely marshaled. -// -// * They'd handle exceptions rather than just generating debugging -// messages when they happen. -// -// * Method code would be called by the skeletons, not written as -// part of the "skeleton" itself! -// -// A key part of turning this code into a complete ORB would be to ensure -// that skeletons were always efficient and correct. They might not need -// to be sharable between different implementations of the same OMG-IDL -// object interface, but many ORBs choose to be structured that way. -// - -#include "cubit.h" // for stubs ... -#include // ... and skeletons - -#include // ... and debugging - - -// -// CUBE OCTET -// - -static const TAO_Param_Data Cubit_cube_octet_params [] = { - { _tc_CORBA_Octet, PARAM_RETURN, 0 }, - { _tc_CORBA_Octet, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_octet_calldata = { - "cube_octet", CORBA_B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - - -CORBA_Octet -Cubit_cube_octet ( - Cubit_ptr target, - CORBA_Octet o, - CORBA_Environment &env -) -{ - CORBA_Octet retval = 0; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - data->Release (); - } - return retval; -} - -static void -_cube_octet_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Octet); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - CORBA_Octet* value = new CORBA_Octet; - - *value = *(CORBA_Octet *)nv->value ()->value (); - // dmsg1 ("cube octet, parameter '%d'", *value); - *value = (CORBA_Octet) ((*value) * (*value) * (*value)); - // dmsg1 ("cube octet, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Octet, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - - -// -// CUBE SHORT -// - -static const TAO_Param_Data Cubit_cube_short_params [] = { - { _tc_CORBA_Short, PARAM_RETURN, 0 }, - { _tc_CORBA_Short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = { - "cube_short", CORBA_B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - - -CORBA_Short -Cubit_cube_short (Cubit_ptr target, - CORBA_Short s, - CORBA_Environment &env) -{ - CORBA_Short retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_cube_short_calldata, - &retval, &s); - data->Release (); - } - return retval; -} - -static void -_cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Short); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - CORBA_Short* value = new CORBA_Short; - - *value = *(CORBA_Short *)nv->value ()->value (); - // dmsg1 ("cube short, parameter '%d'", *value); - *value =(CORBA_Short) ((*value) * (*value) * (*value)); - // dmsg1 ("cube short, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Short, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - - -// -// CUBE LONG -// - -static const TAO_Param_Data Cubit_cube_long_params [] = { - { _tc_CORBA_Long, PARAM_RETURN, 0 }, - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = { - "cube_long", CORBA_B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - - -CORBA_Long -Cubit_cube_long (Cubit_ptr target, - CORBA_Long l, - CORBA_Environment &env) -{ - CORBA_Long retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - data->Release (); - } - return retval; -} - - -static void -_cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - CORBA_Long* value = new CORBA_Long; - - *value = *(CORBA_Long *)nv->value ()->value (); - // dmsg1 ("cube long, parameter '%d'", *value); - *value = (*value) * (*value) * (*value); - // dmsg1 ("cube long, result '%d'", *value); - - CORBA_Any* any = - new CORBA_Any (_tc_CORBA_Long, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -// -// Encapsulated parameters for struct "Cubit_Many" typecode. -// None of these parameters is complicated, so this is just -// a linear sequence of element encodings -// -// NOTE: it's important that this be longword aligned!! -// -static const CORBA_Long _oc_Cubit_Many [] = { - 1, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - tk_short, -}; - -static CORBA_TypeCode _tc_Cubit_Many (tk_struct, - sizeof _oc_Cubit_Many, (unsigned char *) &_oc_Cubit_Many, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - - -// -// CUBE STRUCT -// - -static const TAO_Param_Data Cubit_cube_struct_params [] = { - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = { - "cube_struct", CORBA_B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many * -Cubit_cube_struct (Cubit_ptr target, - Cubit_Many &values, - CORBA_Environment &env) -{ - Cubit_Many *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - - -static void -_cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_Many); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - Cubit_Many *value; - Cubit_Many *retval = new Cubit_Many; - - value = (Cubit_Many *)nv->value ()->value (); - - retval->o = (CORBA_Octet) (value->o * value->o * value->o); - retval->s = (CORBA_Short) (value->s * value->s * value->s); - retval->l = value->l * value->l * value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA_Any *any = - new CORBA_Any (TC_Cubit_Many, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -// -// CUBE UNION -// - -// -// NOTE: not all union typecodes can be encoded as an array -// of "long "values, but this one can. Ones with discriminants -// that are one or two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is -// twofold: (a) easier to read; (b) on most systems it's then -// adequately aligned for the typecode interpreter to use, so -// no additional runtime copy needs to be made. -// -static const CORBA_Long _oc_Cubit_oneof [] = { - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // - // discriminant typecode: - // - tk_enum, // tk_enum - 72, // encapsulation length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - tk_struct, // tk_struct - 60, // encap length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - tk_octet, // member type, tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - tk_long, // member type, tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - tk_short, // member type, tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -84 // offset to struct "Many" typecode -}; - -static CORBA_TypeCode _tc_Cubit_oneof (tk_union, - (sizeof _oc_Cubit_oneof), (unsigned char *) &_oc_Cubit_oneof, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = { - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = { - "cube_union", CORBA_B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof * -Cubit_cube_union (Cubit_ptr target, - Cubit_oneof &values, - CORBA_Environment &env) -{ - Cubit_oneof *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - - -static void -_cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_oneof); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - Cubit_oneof *v; - Cubit_oneof *r = new Cubit_oneof; - - v = (Cubit_oneof *)nv->value ()->value (); - r->_disc = v->_disc; - - switch (v->_disc) { - case e_0th: - r->o = (CORBA_Octet) (v->o * v->o * v->o); - break; - - case e_1st: - r->s = (CORBA_Short) (v->s * v->s * v->s); - break; - - case e_2nd: - r->l = v->l * v->l * v->l; - break; - - case e_3rd: - default: - r->cm.o = (CORBA_Octet) (v->cm.o * v->cm.o * v->cm.o); - r->cm.s = (CORBA_Short) (v->cm.s * v->cm.s * v->cm.s); - r->cm.l = v->cm.l * v->cm.l * v->cm.l; - break; - } - - CORBA_Any *any = new CORBA_Any (TC_Cubit_oneof, r, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - - -// -// PLEASE EXIT -// - -static const TAO_Call_Data Cubit_please_exit_calldata = { - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit_please_exit ( - Cubit_ptr target, - CORBA_Environment &env -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &Cubit_please_exit_calldata - ); - data->Release (); - } -} - -static void -_please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); -} - - -const CORBA_Char *Cubit__id = (CORBA_Char *) - "IDL:Eng.SUN.COM/Cubit:1.1"; - - -// -// table of all operations, used by operation dispatch to get to the -// right skeleton ... could be sorted by the IDL compiler so bsearch -// is effective, perhaps with help from opname hashes and a small cache -// (e.g. like Obj-C?). for now, just lsearch. -// -const TAO_Skel_Entry Cubit_operations [] = { - { &Cubit_cube_octet_calldata, _cube_octet_skel }, - { &Cubit_cube_short_calldata, _cube_short_skel }, - { &Cubit_cube_long_calldata, _cube_long_skel }, - { &Cubit_cube_struct_calldata, _cube_struct_skel }, - { &Cubit_cube_union_calldata, _cube_union_skel }, - { &Cubit_please_exit_calldata, _please_exit_skel }, - { 0, 0 } // last entry -}; diff --git a/TAO/IIOP/tests/Cubit/TAO/cubit.h b/TAO/IIOP/tests/Cubit/TAO/cubit.h deleted file mode 100644 index 78d6b604052..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubit.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -// @(#)cubit.hh 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Hand-crafted C language binding glue ... -// -// This doesn't use C++ since doing the obvious derivation -// (all parent interfaces are virtual public parents) makes -// object references have different "views". That is, a -// pointer to a Cubit (i.e. a Cubit_ptr) would not have -// the same binary value as a pointer to a CORBA_Object -// (i.e. a CORBA_Object_ptr, generic objref). That'd -// mean lots of narrowing/widening/RTTI infrastructure. -// - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include -#include - - -// -// C style binding -// - -typedef CORBA_Object Cubit; -typedef Cubit *Cubit_ptr, *CubitRef; - -extern CORBA_TypeCode_ptr TC_Cubit_Many; -extern CORBA_TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many { - CORBA_Octet o; - CORBA_Long l; - CORBA_Short s; -}; - -enum Cubit_discrim {e_0th = 0, e_1st = 1, e_2nd = 2, - e_3rd = 3, e_4th = 4, e_5th = 5}; - -struct Cubit_oneof { - Cubit_discrim _disc; - - union { - CORBA_Octet o; - CORBA_Short s; - CORBA_Long l; - Cubit_Many cm; - }; -}; - -CORBA_Octet -Cubit_cube_octet ( - Cubit_ptr target, - CORBA_Octet o, - CORBA_Environment &env -); - -CORBA_Short -Cubit_cube_short ( - Cubit_ptr target, - CORBA_Short s, - CORBA_Environment &env -); - -CORBA_Long -Cubit_cube_long ( - Cubit_ptr target, - CORBA_Long l, - CORBA_Environment &env -); - -Cubit_Many * -Cubit_cube_struct ( - Cubit_ptr target, - Cubit_Many &values, - CORBA_Environment &env -); - -Cubit_oneof * -Cubit_cube_union ( - Cubit_ptr target, - Cubit_oneof &values, - CORBA_Environment &env -); - -void -Cubit_please_exit ( - Cubit_ptr target, - CORBA_Environment &env -); - -extern const CORBA_Char *Cubit__id; // type ID - -extern const TAO_Skel_Entry Cubit_operations []; - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH diff --git a/TAO/IIOP/tests/Cubit/TAO/cubit.idl b/TAO/IIOP/tests/Cubit/TAO/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/TAO/cubitC.cpp b/TAO/IIOP/tests/Cubit/TAO/cubitC.cpp deleted file mode 100644 index 8bcb0b4f4d9..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubitC.cpp +++ /dev/null @@ -1,383 +0,0 @@ -// $Id$ - -// @(#)cubitC.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "cubitC.h" // for stubs ... - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj) -{ - if (obj) - obj->AddRef(); - - return obj; -} - -Cubit_ptr Cubit::_narrow(CORBA_Object_ptr obj) -{ - CORBA_Environment env; - if (obj->_is_a("IDL:Cubit:1.0", env)) - { - STUB_Object *istub; - if (obj->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - return Cubit::_nil(); - } - Cubit_ptr new_obj = new Cubit(istub); - return Cubit::_duplicate(new_obj); - } - return Cubit::_nil(); -} - -Cubit_ptr Cubit::_nil() -{ - return (Cubit_ptr)NULL; -} - -// -// CUBE OCTET -// - -static const TAO_Param_Data Cubit_cube_octet_params [] = -{ - { _tc_CORBA_Octet, PARAM_RETURN, 0 }, - { _tc_CORBA_Octet, PARAM_IN, 0 } -}; - - -static const TAO_Call_Data Cubit_cube_octet_calldata = -{ - "cube_octet", CORBA_B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - - -CORBA_Octet -Cubit::Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) -{ - CORBA_Octet retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - istub->Release (); - - return retval; -} - - -// -// CUBE SHORT -// - -static const TAO_Param_Data Cubit_cube_short_params [] = -{ - { _tc_CORBA_Short, PARAM_RETURN, 0 }, - { _tc_CORBA_Short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = -{ - "cube_short", CORBA_B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - - -CORBA_Short -Cubit::Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) -{ - CORBA_Short retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call(env, &Cubit_cube_short_calldata, - &retval, &s); - - istub->Release (); - - return retval; -} - -// -// CUBE LONG -// - -static const TAO_Param_Data Cubit_cube_long_params [] = -{ - { _tc_CORBA_Long, PARAM_RETURN, 0 }, - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = -{ - "cube_long", CORBA_B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - - -CORBA_Long -Cubit::Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) -{ - CORBA_Long retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - istub->Release (); - - return retval; -} - - -// -// Encapsulated parameters for struct "Cubit_Many" typecode. -// None of these parameters is complicated, so this is just -// a linear sequence of element encodings -// -// NOTE: it's important that this be longword aligned!! -// -static const CORBA_Long _oc_Cubit_Many [] = -{ - 1, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - tk_short, -}; - -static CORBA_TypeCode _tc_Cubit_Many (tk_struct, - sizeof _oc_Cubit_Many, (unsigned char *) &_oc_Cubit_Many, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - - -// -// CUBE STRUCT -// - -static const TAO_Param_Data Cubit_cube_struct_params [] = -{ - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = -{ - "cube_struct", CORBA_B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many* -Cubit::Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) -{ - Cubit_Many *retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - - -// -// CUBE UNION -// - -// -// NOTE: not all union typecodes can be encoded as an array -// of "long "values, but this one can. Ones with discriminants -// that are one or two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is -// twofold: (a) easier to read; (b) on most systems it's then -// adequately aligned for the typecode interpreter to use, so -// no additional runtime copy needs to be made. -// -static const CORBA_Long _oc_Cubit_oneof [] = -{ - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // - // discriminant typecode: - // - tk_enum, // tk_enum - 72, // encapsulation length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - tk_struct, // tk_struct - 60, // encap length - - 1, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - tk_octet, // member type, tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - tk_long, // member type, tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - tk_short, // member type, tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -84 // offset to struct "Many" typecode -}; - -static CORBA_TypeCode _tc_Cubit_oneof (tk_union, - (sizeof _oc_Cubit_oneof), (unsigned char *) &_oc_Cubit_oneof, - CORBA_B_FALSE); -CORBA_TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = -{ - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = -{ - "cube_union", CORBA_B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof* -Cubit::Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) -{ - Cubit_oneof *retval; - - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return 0; - } - - istub->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - - - -// -// PLEASE EXIT -// - -static const TAO_Call_Data Cubit_please_exit_calldata = -{ - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit::Cubit_please_exit (CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR) - { - env.exception(new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } - - istub->do_call (env, &Cubit_please_exit_calldata); - istub->Release (); -} diff --git a/TAO/IIOP/tests/Cubit/TAO/cubitC.h b/TAO/IIOP/tests/Cubit/TAO/cubitC.h deleted file mode 100644 index 98610b55116..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubitC.h +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -// @(#)cubitC.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include "corba/orb.h" -#include "corba/stub.h" - -#include - -extern CORBA_TypeCode_ptr TC_Cubit_Many; -extern CORBA_TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many -{ - CORBA_Octet o; - CORBA_Long l; - CORBA_Short s; -}; - -enum Cubit_discrim - { e_0th = 0, e_1st = 1, e_2nd = 2, - e_3rd = 3, e_4th = 4, e_5th = 5 }; - -struct Cubit_oneof -{ - Cubit_discrim _disc; - - union - { - CORBA_Octet o; - CORBA_Short s; - CORBA_Long l; - Cubit_Many cm; - }; -}; - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr Cubit_ref; - -class Cubit : public virtual CORBA_Object -{ -public: - - static Cubit_ptr _duplicate(Cubit_ptr obj); - static Cubit_ptr _narrow(CORBA_Object_ptr obj); - static Cubit_ptr _nil(); - - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env); - -protected: - Cubit() { } - Cubit(STUB_Object *objref) - : CORBA_Object(objref) { } - virtual ~Cubit() { } - - -}; - -extern const CORBA_Char *Cubit__id; // type ID - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH diff --git a/TAO/IIOP/tests/Cubit/TAO/cubitS.cpp b/TAO/IIOP/tests/Cubit/TAO/cubitS.cpp deleted file mode 100644 index bf77e70abd6..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubitS.cpp +++ /dev/null @@ -1,234 +0,0 @@ -// $Id$ - -// @(#)cubitS.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// - -#include "cubitS.h" -#include "cubitC.cpp" - -#include "connect.h" -#include "params.h" - -#include "corba/debug.h" // ... and debugging -#include "corba/optable.h" // TAO Dynamic Operation Table -#include "method_db.i" -#include "iiopobj.h" - -#if defined(CUBIT_USE_DYNAMIC_HASH) -TAO_Dynamic_Hash_OpTable tao_cubit_optable(7); // Dynamic Operation Table -#else -TAO_Linear_OpTable tao_cubit_optable(7); -#endif - -_skel_Cubit::_skel_Cubit(const char* obj_name) -{ - const char* mn = "_skel_Cubit::_skel_Cubit()"; - - // Initialize Method Database - initialize_method_db (&tao_cubit_optable); - - char *type_id = "IDL:Cubit:1.0"; - // CORBA_String type_id = "IDL:Cubit:1.0"; - IIOP_Object *data; - - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); - if (oa == 0) - { - // We just have to assume that oa will be good, or we have to - // throw an exception. For now we "assume", but we'll - ACE_ERROR((LM_ERROR, "(%P|%t) %s Unable to locate a valid object adapter\n", mn)); - return; - } - - this->optable_ = &tao_cubit_optable; - data = new IIOP_Object(type_id); - - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name()); - data->profile.port = oa->get_addr().get_port_number(); - data->profile.object_key.length = ACE_OS::strlen(obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - - ACE_OS::memcpy (data->profile.object_key.buffer, - obj_name, - data->profile.object_key.length+1); - - this->set_parent(data); - this->sub_ = this; - - if (oa->bind(data->profile.object_key, this) == -1) - { - ACE_ERROR((LM_ERROR, "(%P|%t) %s Unable to bind object to key '%s': %p\n", mn, data->profile.object_key.buffer)); - return; - } -} - -void -_skel_Cubit::_cube_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Octet); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - // Call Implementation - CORBA_Octet *value = new CORBA_Octet; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - - *value = the_cubit->Cubit_cube_octet(*(CORBA_Octet *)nv->value()->value(), env); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Octet, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - -void -_skel_Cubit::_cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Short); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - // Call Implementation - CORBA_Short *value = new CORBA_Short; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - *value = the_cubit->Cubit_cube_short(*(CORBA_Short *)nv->value ()->value (), env); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Short, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - -void -_skel_Cubit::_cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - // Call Implementation - CORBA_Long *value = new CORBA_Long; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - *value = the_cubit->Cubit_cube_long(*(CORBA_Long *)nv->value ()->value (), env); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Long, value, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -void -_skel_Cubit::_cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_Many); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - // Call Implementation - Cubit_Many *value; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - value = the_cubit->Cubit_cube_struct(*(Cubit_Many*)nv->value()->value(), env); - - Cubit_Many *retval = new Cubit_Many; - retval->o = (CORBA_Octet)value->o; - retval->s = (CORBA_Short)value->s; - retval->l = value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA_Any *any = new CORBA_Any (TC_Cubit_Many, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (TC_Cubit_oneof); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - // Call Implementation - Cubit_oneof *v; - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - v = the_cubit->Cubit_cube_union(*(Cubit_oneof *)nv->value ()->value (), env); - - Cubit_oneof *r = new Cubit_oneof; - r->_disc = v->_disc; - r->o = (CORBA_Octet) (v->o); - r->s = (CORBA_Short) (v->s); - r->l = v->l; - r->cm.o = (CORBA_Octet) (v->cm.o); - r->cm.s = (CORBA_Short) (v->cm.s); - r->cm.l = v->cm.l; - - CORBA_Any *any = new CORBA_Any (TC_Cubit_oneof, r, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - Cubit *the_cubit = (Cubit*)obj->get_subclass(); - the_cubit->Cubit_please_exit(env); -} diff --git a/TAO/IIOP/tests/Cubit/TAO/cubitS.h b/TAO/IIOP/tests/Cubit/TAO/cubitS.h deleted file mode 100644 index a4b4b853901..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubitS.h +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ - -// @(#)cubitS.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _SKEL_CUBIT_HH -#define _SKEL_CUBIT_HH - -#include "cubitC.h" - -class _skel_Cubit; -typedef _skel_Cubit *_skel_Cubit_ptr; -typedef _skel_Cubit_ptr _skel_Cubit_ref; - -class _skel_Cubit : public Cubit -{ -public: - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) = 0; - static - void _cube_octet_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) = 0; - - static - void _cube_short_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) = 0; - - static - void _cube_long_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) = 0; - - static - void _cube_struct_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) = 0; - - static - void _cube_union_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env) = 0; - - static - void _please_exit_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -protected: - _skel_Cubit(const char* obj_name = 0); - virtual ~_skel_Cubit() { } - -}; - -#endif // _SKEL_CUBIT_HH diff --git a/TAO/IIOP/tests/Cubit/TAO/cubit_i.cpp b/TAO/IIOP/tests/Cubit/TAO/cubit_i.cpp deleted file mode 100644 index ec3d3717768..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubit_i.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "cubit_i.h" - -#include // ... and skeletons -#include // ... and debugging - -#include "connect.h" -#include "params.h" - -Cubit_i::Cubit_i(const char* obj_name) -: _skel_Cubit(obj_name) -{ -} - -Cubit_i::~Cubit_i() -{ -} - -CORBA_Octet -Cubit_i::Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env) -{ - - return (CORBA_Octet) (o * o * o); -} - -CORBA_Short -Cubit_i::Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env) -{ - return (CORBA_Short) (s * s * s); -} - - -CORBA_Long -Cubit_i::Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env) -{ - return (CORBA_Long) (l * l * l); -} - -Cubit_Many* -Cubit_i::Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env) -{ - values.o = values.o * values.o * values.o; - values.s = values.s * values.s * values.s; - values.l = values.l * values.l * values.l; - - return &values; -} - -Cubit_oneof* -Cubit_i::Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env) -{ - switch (values._disc) { - case e_0th: - values.o = (CORBA_Octet) (values.o * values.o * values.o); - break; - case e_1st: - values.s = (CORBA_Short) (values.s * values.s * values.s); - break; - case e_2nd: - values.l = values.l * values.l * values.l; - break; - case e_3rd: - default: - values.cm.o = (CORBA_Octet) (values.cm.o * values.cm.o * values.cm.o); - values.cm.s = (CORBA_Short) (values.cm.s * values.cm.s * values.cm.s); - values.cm.l = values.cm.l * values.cm.l * values.cm.l; - } - return &values; -} - -void Cubit_i::Cubit_please_exit (CORBA_Environment &env) -{ - TAO_OA_Parameters* params = TAO_OA_PARAMS::instance(); - - dmsg ("I've been asked to shut down..."); - params->oa()->please_shutdown(env); - dexc (env, "please_exit, please_shutdown"); -} diff --git a/TAO/IIOP/tests/Cubit/TAO/cubit_i.h b/TAO/IIOP/tests/Cubit/TAO/cubit_i.h deleted file mode 100644 index 7ddf1947cd3..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/cubit_i.h +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_I_HH -#define _CUBIT_I_HH - -#include "cubitS.h" - -class Cubit_i; -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public _skel_Cubit -{ -public: - Cubit_i(const char* obj_name = 0); - ~Cubit_i(); - - virtual - CORBA_Octet Cubit_cube_octet (CORBA_Octet o, - CORBA_Environment &env); - - virtual - CORBA_Short Cubit_cube_short (CORBA_Short s, - CORBA_Environment &env); - - virtual - CORBA_Long Cubit_cube_long (CORBA_Long l, - CORBA_Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA_Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA_Environment &env); - - virtual - void Cubit_please_exit (CORBA_Environment &env); -}; - -#endif // _CUBIT_I_HH diff --git a/TAO/IIOP/tests/Cubit/TAO/method_db.i b/TAO/IIOP/tests/Cubit/TAO/method_db.i deleted file mode 100644 index a95573043ac..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/method_db.i +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -// @(#)method_db.i 05/14/97 - -// This file provides a way of initializing the method database -// Written by: Brian Mendel - -#include "cubitS.h" - -static void -is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) - { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *) nv->value()->value(); - - if (ACE_OS::strcmp ((char*)value, "IDL:Cubit:1.0") == 0 - || ACE_OS::strcmp ((char *)value, _tc_CORBA_Object->id (env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - - -struct method_db -{ - CORBA_String opname; - TAO_Skeleton skel_ptr; -}; - -static const method_db cubit_operations[] = { - { "_is_a", &is_a_skel }, - { "cube_octet", &_skel_Cubit::_cube_octet_skel }, - { "cube_short", &_skel_Cubit::_cube_short_skel }, - { "cube_long", &_skel_Cubit::_cube_long_skel }, - { "cube_struct", &_skel_Cubit::_cube_struct_skel }, - { "cube_union", &_skel_Cubit::_cube_union_skel }, - { "please_exit", &_skel_Cubit::_please_exit_skel }, - { 0, 0 } -}; - - -void initialize_method_db (TAO_Operation_Table *the_optable) -{ - for (int ndx = 0; ndx < 7; ndx++) - the_optable->bind(cubit_operations[ndx].opname, - cubit_operations[ndx].skel_ptr); - -} diff --git a/TAO/IIOP/tests/Cubit/TAO/svr.cpp b/TAO/IIOP/tests/Cubit/TAO/svr.cpp deleted file mode 100644 index f96a537dbb4..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/svr.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// $Id$ - -// @(#)svr.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "cubit.idl" interface. -// -// Starts up, builds an objref, prints its string in debug mode, -// listens for messages, responds to them. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "corba/orb.h" -#include "corba/debug.h" -#include "connect.h" - -#include "cubit_i.h" - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - -// Global Variables -CORBA_String key = (CORBA_String)"key0"; -int num_of_objs = 1; - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "dk:n:"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'k': // key (str) - key = (CORBA_String) opts.optarg; - continue; - - case 'n': // idle seconds b4 exit - num_of_objs = ACE_OS::atoi(opts.optarg); - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-k {object_key}]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Standard command line parsing utilities used. -// -int -main (int argc, char *argv[]) -{ - CORBA_Environment env; - CORBA_Object_ptr obj = 0; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - char *orb_name = "internet"; - int idle = -1; - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init"); - return 1; - } - - // Initialize the Basic Object Adapter - oa_ptr = orb_ptr->BOA_init(argc, argv, "ROA"); - if (oa_ptr == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to initialize the BOA.\n"), 1); - - - // - // Parse remaining command line and verify parameters. - // - parse_args(argc, argv); - - // Create implementation object with user specified key - Cubit_i_ptr *my_cubit = new Cubit_i_ptr[num_of_objs]; - for (int ndx = 0; ndx < num_of_objs; ndx++) - { - CORBA_String obj_str = CORBA_string_alloc(ACE_OS::strlen ((char *)key)+2); - sprintf(obj_str, "%s%d", (char*)key, ndx); - my_cubit[ndx] = new Cubit_i(obj_str); - if (my_cubit[ndx] == 0) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to create implementation object&d\n", ndx), 2); - - if (TAO_debug_level >= 1) - { - // Why are we getting the BOA_ptr from here when we've already - // got it above? - CORBA_OctetSeq obj_key; - obj_key.buffer = (CORBA_Octet *) obj_str; - obj_key.length = obj_key.maximum = ACE_OS::strlen (obj_str); - - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. Then release the object. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("Object Created at: '%ul'", obj); - dmsg1 ("listening as object '%s'", str); - - } - CORBA_string_free(obj_str); - } -// Cubit_i_ptr my_cubit = new Cubit_i(key); -// if (my_cubit1 == 0) -// ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to create implementation object\n"), 2); - -/* if (TAO_debug_level >= 1) - { - // Why are we getting the BOA_ptr from here when we've already - // got it above? - CORBA_OctetSeq obj_key; - obj_key.buffer = (CORBA_Octet *) key; - obj_key.length = obj_key.maximum = ACE_OS::strlen ((char *)key); - - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. Then release the object. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - - obj_key.buffer = (CORBA_Octet *)"key1"; - obj_key.length = obj_key.maximum = 4; - if (oa_ptr->find(obj_key, obj) == -1) - ACE_ERROR_RETURN((LM_ERROR, "(%P|%t) Unable to locate object with key '%s', %p\n", key), 3); - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - } -*/ - // Handle requests for this object until we're killed, or one of - // the methods asks us to exit. - // - int terminationStatus = 0; - - -#if !defined(USE_HOMEBREW_EVENT_LOOP) - ACE_Reactor::run_event_loop(); -#else - while (1) - { - int result = params->reactor()->handle_events (); - - if (result == -1) - { - terminationStatus = -1; - break; - } - } -#endif - - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - oa_ptr->clean_shutdown (env); - return 0; -} diff --git a/TAO/IIOP/tests/Cubit/TAO/test.mak b/TAO/IIOP/tests/Cubit/TAO/test.mak deleted file mode 100644 index 58b77c28283..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test.mak +++ /dev/null @@ -1,463 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -!IF "$(CFG)" == "" -CFG=server - Win32 Debug -!MESSAGE No configuration specified. Defaulting to server - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "client - Win32 Release" && "$(CFG)" != "client - Win32 Debug"\ - && "$(CFG)" != "server - Win32 Release" && "$(CFG)" != "server - 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 "test.mak" CFG="server - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "server - 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 "server - Win32 Debug" -RSC=rc.exe -CPP=cl.exe - -!IF "$(CFG)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "client\Release" -# PROP BASE Intermediate_Dir "client\Release" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(OUTDIR)\client.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG"\ - /D "_CONSOLE" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib ..\lib\TAO.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)/client.pdb" /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client\Debug" -# PROP BASE Intermediate_Dir "client\Debug" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\client.exe" - -@erase "$(OUTDIR)\client.ilk" - -@erase "$(OUTDIR)\client.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib ..\lib\TAO.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)/client.pdb" /debug /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "server\Release" -# PROP BASE Intermediate_Dir "server\Release" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(OUTDIR)\server.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /I "..\proto\include" /D "WIN32" /D "NDEBUG"\ - /D "_CONSOLE" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib ..\lib\TAO.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)/server.pdb" /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "server\Debug" -# PROP BASE Intermediate_Dir "server\Debug" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\server.exe" - -@erase "$(OUTDIR)\server.ilk" - -@erase "$(OUTDIR)\server.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib ..\lib\TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib ..\lib\TAO.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)/server.pdb" /debug /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.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 "client - Win32 Release" -# Name "client - Win32 Debug" - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\clnt.cpp -DEP_CPP_CLNT_=\ - "..\..\..\..\..\ace\config-win32.h"\ - ".\cubitC.h"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - -NODEP_CPP_CLNT_=\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitC.cpp -DEP_CPP_CUBIT=\ - ".\cubitC.h"\ - -NODEP_CPP_CUBIT=\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBIT) "$(INTDIR)" - - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\cubitS.cpp -DEP_CPP_CUBITS=\ - ".\cubitC.cpp"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - ".\method_db.i"\ - -NODEP_CPP_CUBITS=\ - ".\connect.h"\ - ".\corba\debug.h"\ - ".\corba\optable.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - ".\iiopobj.h"\ - ".\params.h"\ - - -"$(INTDIR)\cubitS.obj" : $(SOURCE) $(DEP_CPP_CUBITS) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubit_i.cpp -DEP_CPP_CUBIT_=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - -NODEP_CPP_CUBIT_=\ - ".\connect.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - ".\params.h"\ - - -"$(INTDIR)\cubit_i.obj" : $(SOURCE) $(DEP_CPP_CUBIT_) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\svr.cpp -DEP_CPP_SVR_C=\ - "..\..\..\..\..\ace\config-win32.h"\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - -NODEP_CPP_SVR_C=\ - ".\connect.h"\ - ".\corba\debug.h"\ - ".\corba\orb.h"\ - ".\corba\stub.h"\ - - -"$(INTDIR)\svr.obj" : $(SOURCE) $(DEP_CPP_SVR_C) "$(INTDIR)" - - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/TAO/IIOP/tests/Cubit/TAO/test.mdp b/TAO/IIOP/tests/Cubit/TAO/test.mdp deleted file mode 100644 index eccc5e94b69..00000000000 Binary files a/TAO/IIOP/tests/Cubit/TAO/test.mdp and /dev/null differ diff --git a/TAO/IIOP/tests/Cubit/TAO/test1.cpp b/TAO/IIOP/tests/Cubit/TAO/test1.cpp deleted file mode 100644 index 753a3784e43..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test1.cpp +++ /dev/null @@ -1,392 +0,0 @@ -// $Id$ - -// @(#)test1.cpp 1.4 95/09/28 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST stubs for "test1" -// - -#include - -#include "test1.h" - - -// -// Define all the stubs ... it's a lot less error prone to do it with -// macros than by hand! -// -// NOTE: the "calldata" is exported for use by the skeletons. At some -// point skeletons will probably be fully abstracted; for now they aren't. -// -// Also, for some reason, name mangling is changed by the explicit -// declaration as "extern" -- if it's not done, linking fails. -// -#define DEFINE_TEST3(typename, truetype, truetypename) \ - static const TAO_Param_Data test1_ ## typename ## _paramdata [4] = { \ - { _tc_CORBA_ ## truetypename, PARAM_RETURN, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_IN, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_OUT, 0 }, \ - { _tc_CORBA_ ## truetypename, PARAM_INOUT, 0 }, \ - }; \ - \ - extern const TAO_Call_Data test1_ ## typename ## _calldata; \ - \ - const TAO_Call_Data test1_ ## typename ## _calldata = { \ - "test_" #typename, CORBA_B_TRUE, \ - 4, &test1_ ## typename ## _paramdata [0], \ - 0, 0, \ - }; \ - \ - CORBA_ ## truetype \ - test1_test_ ## typename (test1_ptr target, \ - CORBA_ ## truetype in_a1, \ - CORBA_ ## truetype &out_a2, \ - CORBA_ ## truetype &inout_a3, \ - CORBA_Environment &env) { \ - CORBA_ ## truetype _retval; \ - STUB_Object *_obj; \ - if (target->QueryInterface (IID_STUB_Object, (void **)&_obj) \ - != NOERROR) \ - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); \ - else { \ - _obj->do_call (env, &test1_ ## typename ## _calldata, \ - &_retval, &in_a1, &out_a2, &inout_a3); \ - _obj->Release (); \ - } \ - return _retval; \ - } - -// changed extern const calldata test1_ ## typename ## _calldata; -// to const calldata test1_ ## typename ## _calldata; \ - -// changed CORBA_ ## truetype _retval = 0; to changed CORBA_ ## truetype _retval; - -#define DEFINE_TEST(typename, truetype) \ - DEFINE_TEST3(typename, truetype, truetype) - - -// -// Generate a system exception, passing an operation ID that's -// not allowed by IIOP (much less this interface) and verifying -// that the server returns some kind of system exception. -// -static const TAO_Call_Data illegal_calldata = { - "+_illegal", CORBA_B_TRUE, - 0, 0, - 0, 0 -}; - -void -test_illegal (test1_ptr target, CORBA_Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &illegal_calldata - ); - data->Release (); - } -} - - -extern const TAO_Call_Data test1_void_calldata; -const TAO_Call_Data test1_void_calldata = { - "test_void", CORBA_B_TRUE, - 0, 0, - 0, 0 -}; - -void -test1_test_void (test1_ptr target, CORBA_Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_void_calldata - ); - data->Release (); - } -} - -DEFINE_TEST (short, Short); -DEFINE_TEST (long, Long); -DEFINE_TEST (ushort, UShort); -DEFINE_TEST (ulong, ULong); - -#if defined(MIPS) -// -// NOTE: C/C++ compilers as a rule pass a "float" in the space that -// a "double" takes up. Conversions are evidently optional; portability -// forces the following "explicit temporary" hack to work on at least -// one MIPS platform, which converts the parameter to "double" and -// hence changes the binary representation. (Even if that is a compiler -// bug, it's probably required by now for binary compatibility!) -// -// A "-k ansi" compiler flag may be needed to get correct behaviour; -// passing the "in" parameters by reference apparently works too. At -// this time, none of these solutions is used by default. -// -// This stub-level hackery seems like it could be replaced inside of the -// stub interpreter, which could just manually convert "float" parameters -// (all of them) as special cases. But of course, that would slow the -// interpreter down on _every_ call, not just the ones that require it -// (such as this one). Tradeoffs! -// -static const TAO_Param_Data test1_float_paramdata [4] = { - { _tc_CORBA_Float , PARAM_RETURN , 0 }, - { _tc_CORBA_Float , PARAM_IN , 0 }, - { _tc_CORBA_Float , PARAM_OUT , 0 }, - { _tc_CORBA_Float , PARAM_INOUT , 0 } -}; - -extern const TAO_Call_Data test1_float_calldata; - -const TAO_Call_Data test1_float_calldata = { - "test_float", CORBA_B_TRUE, - 4 , &test1_float_paramdata [0], - 0 , 0 -}; - -CORBA_Float -test1_test_float ( - test1_ptr target, - CORBA_Float in_a1, - CORBA_Float &out_a2, - CORBA_Float &inout_a3, - CORBA_Environment &env -) -{ - CORBA_Float _retval; - - // These three temporaries required due to MIPS compiler bug - CORBA_Float _in_a1 = in_a1; - CORBA_Float _out_a2 = out_a2; - CORBA_Float _inout_a3 = inout_a3; - - target -> data -> do_call (env, - &test1_float_calldata, - &_retval, - &_in_a1, - &_out_a2, - &_inout_a3); - return _retval; -} - -#else -DEFINE_TEST (float, Float); -#endif // MIPS - - -DEFINE_TEST (double, Double); -DEFINE_TEST (boolean, Boolean); -DEFINE_TEST (char, Char); -DEFINE_TEST (octet, Octet); - -/* -CORBA_Any * -test1_test_any (test1_ptr target, - const CORBA_Any &in_a1, - CORBA_Any *&out_a2, - CORBA_Any &inout_a3, - CORBA_Environment &env) -{ - // XXX implement this stub! ... annoying that C++ mapping - // calls for so much special casing -} -*/ - - -DEFINE_TEST3 (TypeCode, TypeCode_ptr, TypeCode); -DEFINE_TEST3 (Principal, Principal_ptr, Principal); -DEFINE_TEST3 (Object, Object_ptr, Object); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (string, Char *, String); - -DEFINE_TEST (longlong, LongLong); -DEFINE_TEST (ulonglong, ULongLong); -DEFINE_TEST (wchar, WChar); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (wstring, WChar *, WString); - -#if !defined(NONNATIVE_LONGDOUBLE) -DEFINE_TEST (longdouble, LongDouble); -#endif - -#undef DEFINE_TEST - - -// -// Utility macros used to construct octet codes that are aligned -// on longword boundaries, and with a known byte order. This -// happens to use big endian encoding since it was convenient. -// (Longword alignment is a happy accident of the specification -// of OMG-IDL ... it could have been much worse!) -// -// It'd be much simpler to lay out such data in assembler! -// - -#if defined (WORDS_BIGENDIAN) -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((a) & 0xff) << 24) | (((b) & 0xff) << 16) \ - | (((c) & 0xff) << 8) | ((d) & 0xff)) -# define BIG_ENDIAN_LONG(x) (x) - -#else // LITTLE_ENDIAN -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((d) & 0xff) << 24) | (((c) & 0xff) << 16) \ - | (((b) & 0xff) << 8) | ((a) & 0xff)) -# define BYTE_FROM(n,integer) (((integer)>>(8*(n)))&0xff) -# define BIG_ENDIAN_LONG(integer) \ - MAKE_BIG_LONG (BYTE_FROM(3,integer), BYTE_FROM(2,integer),\ - BYTE_FROM(1,integer), BYTE_FROM(0,integer)) -#endif - - - -// -// "x1" exception typecode ... must be longword aligned -// -static CORBA_Long oc_x1 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '1'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (1), // only one struct member - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA_TypeCode tc_x1 (tk_except, sizeof oc_x1, - (unsigned char *)&oc_x1, CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_test1_x1 = &tc_x1; - - - -// -// "x2" exception typecode ... must be longword aligned -// -static CORBA_Long oc_x2 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '2'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (2), // two struct members - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_objref), - BIG_ENDIAN_LONG (29), // type ID + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('o', 'm', 'g', '.'), - MAKE_BIG_LONG ('o', 'r', 'g', '/'), - MAKE_BIG_LONG ('C', 'O', 'R', 'B'), - MAKE_BIG_LONG ('A', '/', 'O', 'b'), - MAKE_BIG_LONG ('j', 'e', 'c', 't'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA_TypeCode tc_x2 (tk_except, sizeof oc_x2, - (unsigned char *)&oc_x2, CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_test1_x2 = &tc_x2; - - -// -// parameter, exception, and call descriptions for "test_throw" -// -static const TAO_Param_Data test1_test_throw_paramdata [1] = { - { _tc_CORBA_Long, PARAM_IN, 0 } -}; - -static CORBA_TypeCode_ptr test1_test_throw_excepts [2] = { - &tc_x1, &tc_x2 -}; - -extern const TAO_Call_Data test1_test_throw_calldata; - -const TAO_Call_Data test1_test_throw_calldata = { - "test_throw", CORBA_B_TRUE, - 1, &test1_test_throw_paramdata [0], - 2, &test1_test_throw_excepts [0] -}; - -// -// "test_throw" stub -// -void -test1_test_throw ( - test1_ptr target, - CORBA_Long case_num, - CORBA_Environment &env // throw (x1, x2) -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_test_throw_calldata, - &case_num); - data->Release (); - } -} - -// -// PLEASE EXIT -// - -static const TAO_Call_Data test1_please_exit_calldata = { - "please_exit", CORBA_B_FALSE, - 0, 0, - 0, 0 -}; - -void -test1_please_exit ( - test1_ptr target, - CORBA_Environment &env -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA_INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_please_exit_calldata - ); - data->Release (); - } -} - diff --git a/TAO/IIOP/tests/Cubit/TAO/test1.h b/TAO/IIOP/tests/Cubit/TAO/test1.h deleted file mode 100644 index 63e409d36c3..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test1.h +++ /dev/null @@ -1,126 +0,0 @@ -// $Id$ - -// @(#)test1.hh 1.2 95/09/12 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST interface for "test1" -// - -#ifndef _TEST1_HH -#define _TEST1_HH - -#include -#include - - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -typedef CORBA_UShort test1_ushort; -typedef CORBA_ULong test1_ulong; - -typedef CORBA_LongLong test1_longlong; -typedef CORBA_ULongLong test1_ulonglong; -typedef CORBA_LongDouble test1_longdouble; - -typedef CORBA_Object test1; -typedef test1 *test1_ptr; - -#define DECL_TEST(typename, truetype) \ - truetype \ - test1_test_ ## typename ( \ - test1_ptr target, \ - truetype in_a1, \ - truetype &out_a2, \ - truetype &inout_a3, \ - CORBA_Environment &env \ - ) - -void test_illegal (test1_ptr target, CORBA_Environment &env); -void test1_test_void (test1_ptr target, CORBA_Environment &env); - -DECL_TEST (short, CORBA_Short); -DECL_TEST (long, CORBA_Long); -DECL_TEST (ushort, CORBA_UShort); -DECL_TEST (ulong, CORBA_ULong); -DECL_TEST (float, CORBA_Float); -DECL_TEST (double, CORBA_Double); -DECL_TEST (boolean, CORBA_Boolean); -DECL_TEST (char, CORBA_Char); -DECL_TEST (octet, CORBA_Octet); - -CORBA_Any * -test1_test_any ( - test1_ptr target, - const CORBA_Any &in_a1, - CORBA_Any *&out_a2, - CORBA_Any &inout_a3, - CORBA_Environment &env -); - -DECL_TEST (TypeCode, CORBA_TypeCode_ptr); -DECL_TEST (Principal, CORBA_Principal_ptr); -DECL_TEST (Object, CORBA_Object_ptr); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (string, CORBA_String); - -DECL_TEST (longlong, CORBA_LongLong); -DECL_TEST (ulonglong, CORBA_ULongLong); -DECL_TEST (wchar, CORBA_WChar); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (wstring, CORBA_WString); - -DECL_TEST (longdouble, CORBA_LongDouble); - -#undef DECL_TEST - -extern CORBA_TypeCode_ptr _tc_test1_x1; - -class test1_x1 : public CORBA_UserException { - public: - CORBA_Long case_num; - - test1_x1 (CORBA_Long n) - : CORBA_UserException (_tc_test1_x1), case_num (n) - { } -}; - -extern CORBA_TypeCode_ptr _tc_test1_x2; - -class test1_x2 : public CORBA_UserException { - public: - CORBA_Object_ptr obj; - CORBA_Long case_num; - - test1_x2 (CORBA_Object_ptr obj1, - CORBA_Long n) - : CORBA_UserException (_tc_test1_x2), - obj (obj1), case_num (n) { } - - ~test1_x2 () - { CORBA_release (obj); } -}; - -void -test1_test_throw ( - test1_ptr target, - CORBA_Long case_num, - CORBA_Environment &env // throw (x1, x2) -); - -void -test1_please_exit ( - test1_ptr target, - CORBA_Environment &env -); - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _TEST1_HH - diff --git a/TAO/IIOP/tests/Cubit/TAO/test1.idl b/TAO/IIOP/tests/Cubit/TAO/test1.idl deleted file mode 100644 index d47ab676ef5..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test1.idl +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -// @(#)test1.idl 1.1 95/09/11 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -// TEST basic marshaling tests for all IDL primitive types, modes -// -// This test omits constructed types (struct, union, enum, sequence, and -// array types), and only tests very simple user defined exceptions. -// -// Values returned are well defined functions of the input values: -// -// * For numeric types (octet, short, long, longlong, float, double, -// longdouble, and unsigned variants) the value is cubed. -// * For Boolean, it's the negation. -// * For Any, TypeCode, Principal, Object, char and wchar, -// string and wstring, it's the input value. -// -// The "return" and "out" parameter is the function of the "in" parameter; -// the "inout" parameter is the function of its original value. -// -// The "echo" test has all output values be the input values, with no -// changes to the bit patterns originally transmitted. While easier to -// use to identify some kinds of problem, it is not as complete a test. -// - -#define DECL_TEST(type) \ - type test_ ## type ( in type a1, out type a2, inout type a3) - -#pragma prefix "Eng.SUN.COM" // only for Sun-defined interfaces - -interface test1 { - void test_void (); - - typedef unsigned short ushort; - typedef unsigned long ulong; - - typedef long long longlong; - typedef unsigned long long ulonglong; - typedef long double longdouble; - - DECL_TEST (short); - DECL_TEST (long); - DECL_TEST (ushort); - DECL_TEST (ulong); - DECL_TEST (float); - DECL_TEST (double); - DECL_TEST (boolean); - DECL_TEST (char); - DECL_TEST (octet); - DECL_TEST (any); - DECL_TEST (TypeCode); - DECL_TEST (Principal); - DECL_TEST (Object); // CORBA::Object - DECL_TEST (string); // unbounded string - - DECL_TEST (longlong); - DECL_TEST (ulonglong); - DECL_TEST (wchar); - DECL_TEST (wstring); // unbounded wstring - DECL_TEST (longdouble); - - // - // All cases, "case_num" in the exception is the same as the 'in' param - // * negative or zero, throws x1 - // * positive even cases, throws x2 with obj = null objref - // * positive odd cases, throws x2 with obj = target objref - // - exception x1 { long case_num; }; - exception x2 { Object obj; long case_num; }; - - void test_throw (in long case_num) raises (x1, x2); - - // - // Aid for test cleanup in case server's not told to quit after - // being idle for some time period - // - oneway void please_exit (); -}; - diff --git a/TAO/IIOP/tests/Cubit/TAO/test1_clnt.cpp b/TAO/IIOP/tests/Cubit/TAO/test1_clnt.cpp deleted file mode 100644 index 85853f13c8f..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test1_clnt.cpp +++ /dev/null @@ -1,680 +0,0 @@ -// $Id$ - -// @(#)test1_clnt.cpp 1.5 95/09/24 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST client driver for "test1" -// - -#ifdef USE_IOSTREAM -#include -#endif - -#include -#include -#include - -#if unix -# include - -#else // windows - -#endif // unix - -#include "test1.h" -#include - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - -// All tests are specified so that the return value and "out" (second) -// parameters are easily tested functions of the "in" (first) -// parameter, and the "inout" (third) parameter is the same function -// the its initial value. Caller is expected to specify two different -// "in" values. This helps make the marshaled bits vary, and turn up -// a class of potential problems that'd be hidden if parameter order -// had no effect on the test. -// -// PERFORM_TEST calls a test for a given type, reporting in cases -// where the ORB or operation failed. The COMPARE symbol can be -// redefined to achieve different functions -- e.g. cubing numbers, -// identity, negation, etc. It should return true iff the correct -// result was returned. -// -// BAD_COMPARE_VALUES is to produce diagnostics when a test fails, -// showing the actual and expected values of returned parameters. -// This helps diagnose specific porting problems. -// -// The RELEASE symbol may be defined to free memory, eliminating -// client side memory leaks in the test. -// -#define RELEASE(X) // NOP by default -#define PERFORM_TEST(name,type,value1,value2) \ - { \ - CORBA_ ## type v1, v2, v3; \ - \ - v1 = (CORBA_ ## type)(value1); \ - v2 = 0; \ - v3 = (CORBA_ ## type)(value2); \ - \ - test_count++; \ - v1 = test1_test_ ## name (target, v1, v2, v3, env); \ - if (env.exception () != 0) { \ - print_exception (env.exception (), "perform test_" #name); \ - error_count++; \ - } else if (!COMPARE (CORBA_ ## type, v1, value1) \ - || !COMPARE (CORBA_ ## type, v2, value1) \ - || !COMPARE (CORBA_ ## type, v3, value2) ) { \ - ACE_OS::fprintf (stderr, "bad comparison, test_" #name "\n"); \ - BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - error_count++; \ - } \ - RELEASE (v1); RELEASE (v2); RELEASE (v3); \ - } - -// -// This messing about is because the ostream op << cannot always -// be used with all kinds of data ... e.g. LongDouble, TypeCode. -// -#ifdef USE_IOSTREAM -# define DO_IO(x) x -#else -# define DO_IO(x) -#endif -#define BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) \ - DO_IO( cerr << " v1=" << v1; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value1) << "\n"; \ - cerr << " v2=" << v2; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value1) << "\n"; \ - cerr << " v3=" << v3; \ - cerr << " expecting " << EXPVAL(CORBA_ ## type, value2) << "\n"); -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) - -// test utility -- should be able to just use is_equivalent() directly -// but this implementation uses null pointers for nil, so this must -// check for nulls first. (May be noncompliant with C++ mapping!) - -static CORBA_Boolean -compare_objrefs (CORBA_Object_ptr v1, - CORBA_Object_ptr v2) -{ - CORBA_Boolean temp; - CORBA_Environment env; - - if (v1 == v2) - return CORBA_B_TRUE; - - if (CORBA_is_nil (v1)) - return CORBA_is_nil (v2); - - temp = v1->_is_equivalent (v2, env); - - if (env.exception () != 0) - { - print_exception (env.exception (), "compare objref"); - return CORBA_B_FALSE; - } - return temp; -} - - -// -// Helper routine to help sure math (especially for floating point) -// gets done correctly. -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - -static int skip_longdouble = 0; - -// This just performs the tests ... - -void -do_tests (test1_ptr target, - unsigned loop_count, - unsigned &test_count, - unsigned &error_count) -{ - int count; - - for (count = 0; count < loop_count; count++) - { - CORBA_Environment env; - CORBA_Environment env2; // XXX - - // - // test_void - // - test_count++; - test1_test_void (target, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "perform test_void"); - error_count++; - } - - // - // Numeric tests ... try some variety in computation, no real - // rationale in the choice of initial parameter values except - // not to use the same values all the time. - // -#define EXPVAL(type,original_value) ((type) cube((type)(original_value))) -#define COMPARE(type,retval,original_value) \ - ((retval) == EXPVAL(type, original_value)) - - PERFORM_TEST (octet, Octet, count + 29, count - 22); - - PERFORM_TEST (short, Short, count - 23, count + 19); - PERFORM_TEST (ushort, UShort, count + 23, count - 19); - - PERFORM_TEST (long, Long, count - 17, count + 20); - PERFORM_TEST (ulong, ULong, count + 17, count - 20); - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - PERFORM_TEST (longlong, LongLong, count - 177, count + 3); - PERFORM_TEST (ulonglong, ULongLong, count + 177, count - 3); -#endif // !NONNATIVE_LONGLONG - -#if !defined (i386) - // - // XXX not sure what's wrong with the COMPARE macro with respect to - // floating point on x86, since fprintf shows the values basically - // look correct ... but these float/double tests fail. - // - PERFORM_TEST (float, Float, count - 0.29, count + 3.14159); - PERFORM_TEST (double, Double, count * 1.77, count * 2.71); -#endif // !defined (i386) - - -#ifndef NONNATIVE_LONGDOUBLE -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - // - // don't try this between two platforms that don't provide - // arithmetic support for LongDouble values ... - // - if (!skip_longdouble) - PERFORM_TEST (longdouble, LongDouble, - count - 2.33, count * 3.14159); - -# undef BAD_COMPARE_VALUES -# define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) -#endif // !NONNATIVE_LONGDOUBLE - -#undef COMPARE -#undef EXPVAL - - - // - // Boolean -- negation - // -#define EXPVAL(type,original_value) (!(type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (boolean, Boolean, - (count & 0x01) != 0, (count & 0x01) == 0); -#undef COMPARE -#undef EXPVAL - - // - // Char, WChar -- identity - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (char, Char, count + 26, count - 5); - PERFORM_TEST (wchar, WChar, count, count + 25); -#undef COMPARE -#undef EXPVAL - - // - // Object_ptr -- identity (special comparision) - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (compare_objrefs (retval, original_value) == CORBA_B_TRUE) -#undef RELEASE -#define RELEASE(obj) \ - { CORBA_release (obj); } - - PERFORM_TEST (Object, Object_ptr, target, CORBA_Object::_nil ()); -#undef COMPARE -#undef EXPVAL - - // - // TypeCode_ptr -- identity (special comparision), and verifies - // that most of the built-in typecode constants exist. - // - // XXX should try this on all standard and system exceptions! - // - // XXX this currently tests only marshaling/unmarshaling of - // "no parameter" TypeCodes ... complex ones (objref, struct, - // union, enum, sequence, array, alias, exception) are _NOT_ - // currently attempted. - // - // XXX for the simple typecodes (string, wstring), the single - // "bound" parameter isn't exercised/verified as it should be. - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original) \ - (((retval) == (original)) || \ - ((retval)->_kind == (original)->_kind)) - -#undef RELEASE -#define RELEASE(tc) \ - { CORBA_release (tc); } - -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - { - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Null, _tc_CORBA_Void); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Short, _tc_CORBA_UShort); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Long, _tc_CORBA_ULong); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongLong, _tc_CORBA_ULongLong); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Float, _tc_CORBA_Double); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Boolean, _tc_CORBA_Octet); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Any, _tc_CORBA_TypeCode); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongDouble, _tc_CORBA_Principal); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_Char, _tc_CORBA_String); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_WChar, _tc_CORBA_WString); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_LongDouble, _tc_CORBA_Octet); - - // - // Try all of the standard exception typecodes. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_UNKNOWN, _tc_CORBA_BAD_PARAM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_NO_MEMORY, _tc_CORBA_IMP_LIMIT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_COMM_FAILURE, _tc_CORBA_INV_OBJREF); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_OBJECT_NOT_EXIST, _tc_CORBA_NO_PERMISSION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INTERNAL, _tc_CORBA_MARSHAL); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INITIALIZE, _tc_CORBA_NO_IMPLEMENT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_BAD_TYPECODE, _tc_CORBA_BAD_OPERATION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_NO_RESOURCES, _tc_CORBA_NO_RESPONSE); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_PERSIST_STORE, _tc_CORBA_BAD_INV_ORDER); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_TRANSIENT, _tc_CORBA_FREE_MEM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INV_IDENT, _tc_CORBA_INV_FLAG); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_INTF_REPOS, _tc_CORBA_BAD_CONTEXT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_OBJ_ADAPTER, _tc_CORBA_DATA_CONVERSION); - - // - // All the built-in "user defined" system exceptions. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - _tc_CORBA_BadKind, _tc_CORBA_Bounds); - } -#undef COMPARE -#undef RELEASE - - // - // string (unbounded)-- identity (special comparision) - // -#define COMPARE(type,retval,original_value) \ - (strcmp ((char *)(retval), (char*)(original_value)) == 0) -#undef RELEASE -#define RELEASE(obj) CORBA_string_free(obj) - static const CORBA_Char str1 [] = "small"; - static const CORBA_Char str2 [] = - "relatively long string, constructed" - " with the aid of C++ implicit string" - " catenation, which simplifies much stuff"; - PERFORM_TEST (string, String, str1, str2); -#undef COMPARE -#undef RELEASE - - - // XXX any, principal, wstring ... output _is_ input - - - // - // Three test cases involve throwing user-defined exceptions. - // - { - CORBA_Exception *xp; - - // - // Case one: with parameter <= zero, must throw - // an "x1" exception whose "case_num" is that parameter - // - test_count++; - - test1_test_throw (target, -5, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x1->id (env2)) != 0) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } - else - { - test1_x1 *xp2 = (test1_x1 *) xp; - - if (xp2->case_num != -5) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - // else, right exception was thrown - } - } - else - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "no exception thrown !!\n"); - } - - - // - // Case two: with positive odd parameter, must throw - // an "x2" exception whose obj is null, and whose case_num - // is that parameter - // - test_count++; - - test1_test_throw (target, 101, env); - if (env.exception () != 0) - { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } - else - { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 101) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - if (!CORBA_is_nil (xp2->obj)) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "non-null objref thrown\n"); - } - - // else, right exception was thrown - } - } - else - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "no exception thrown !!\n"); - } - - -#if 0 - // 18-sept-95: commented this out. Work remains to be done in - // this area: (a) ServerRequest::target operation unimplemented, - // so for the servers of current interest this test is no help; - // (b) probable pointer leak in exceptions holding data. - - // - // Case three: with positive even parameter, must throw - // an "x2" exception whose obj is the target, and whose - // case_num is that parameter - // - test_count++; - - test1_test_throw (target, 42, env); - if (env.exception () != 0) - { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } - else - { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 42) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - CORBA_Boolean status; - - status = target->_is_equivalent (xp2->obj, env); - - if (env.exception () != 0) - { - error_count++; - print_exception (env.exception (), - "test_throw/3 call to is_equivalent"); - } - else if (status != CORBA_B_TRUE) - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "non-equivalent objref thrown\n"); - } - - // else, right exception was thrown - } - } - else - { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "no exception thrown !!\n"); - } - - env.clear (); -#endif // 0 - - } - - // - // test_illegal -- generate a BAD_OPERATION system exception - // from the remote process - // - test_count++; - test_illegal (target, env); - if (env.exception () == 0 - || ACE_OS::strcmp ((char *) env.exception()->id(), - (char *) _tc_CORBA_BAD_OPERATION->id (env2)) != 0) - { - ACE_OS::fprintf (stderr, "couldn't generate BAD_OPERATION exception\n"); - error_count++; - } - } -} - -int -main (int argc, char *argv[]) -{ - CORBA_ORB_ptr orb_ptr; - CORBA_Environment env; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - unsigned loop_count = 1; - unsigned tests = 0, errors = 0; - int exit_later = 0; - - orb_ptr = CORBA_ORB_init (argc, argv, "internet", env); - - if (env.exception () != 0) - { - dexc (env, "ORB initialisation"); - return 1; - } - - // - // Parse and verify parameters. - // - ACE_Get_Opt get_opt (argc, argv, "dln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'l': // skip "long double" test - skip_longdouble++; - continue; - - case 'n': // loop count - loop_count = (unsigned) ACE_OS::atoi (get_opt.optarg); - continue; - - case 'O': // stringified objref - { - objref = orb_ptr->string_to_object ( - (CORBA_String)get_opt.optarg, env); - if (env.exception () != 0) - { - dexc (env, "string2object"); - return 1; - } - } - continue; - - case 'x': - exit_later++; - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-l]" - " [-n loopcount]" - " [-O objref]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - if (CORBA_is_nil (objref) == CORBA_B_TRUE) { - ACE_OS::fprintf (stderr, "%s: must identify non-null target objref\n", - argv [0]); - return 1; - } - - - do_tests (objref, loop_count, tests, errors); - - char *progname = ACE_OS::strrchr (argv [0], '/'); - - if (progname != 0) - progname += 1; - else - progname = argv [0]; - - ACE_OS::fprintf (stderr, "%s: %d loops, %d tests (%d errors)\n", - progname, loop_count, tests, errors); - - if (exit_later) - { - test1_please_exit (objref, env); - if (env.exception () != 0) - print_exception (env.exception (), "test1_please_exit"); - } - - CORBA_release (objref); - - return errors != 0; -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template CORBA_Octet cube(CORBA_Octet); -template CORBA_Short cube(CORBA_Short); -template CORBA_UShort cube(CORBA_UShort); -template CORBA_Long cube(CORBA_Long); -template CORBA_ULong cube(CORBA_ULong); -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... -template CORBA_LongLong cube(CORBA_LongLong); -template CORBA_ULongLong cube(CORBA_ULongLong); -#endif // !NONNATIVE_LONGLONG -template CORBA_Float cube(CORBA_Float); -template CORBA_Double cube(CORBA_Double); -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... -template CORBA_LongDouble cube(CORBA_LongDouble); -#endif // !NONNATIVE_LONGDOUBLE -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/TAO/IIOP/tests/Cubit/TAO/test1_svr.cpp b/TAO/IIOP/tests/Cubit/TAO/test1_svr.cpp deleted file mode 100644 index 8ea34d15fc1..00000000000 --- a/TAO/IIOP/tests/Cubit/TAO/test1_svr.cpp +++ /dev/null @@ -1,693 +0,0 @@ -// $Id$ - -// @(#)test1_svr.cpp 1.7 95/09/25 -// Copyright 1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "test1.idl" interface. -// -// Starts up, builds an objref, prints its string, listens for -// messages, responds to them. -// - -#include -#include -#include - -#if unix -# include // for getopt on some systems - -#else // windows - -#endif - -#include "test1.h" -#include -#include - -#include - - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -// -// Skeleton code ... just a macro for a bunch of DSI-based method -// code, in lieu of having an IDL compmiler generate static skeletons. -// Static skeletons would be more efficient; most mallocation could go -// away. -// -// Use by: defining OPERATION macro, call DEFINE_SKEL3 as needed, then -// undef OPERATION. -// -// NOTE: "v1_copy" below is needed to work around a bug with the -// HP9000 G++ 2.6.3 compiler, with "LongLong". -// -// XXX this could probably be a template ... or could even be merged -// directly into the Dynamic Implementation Routine below. -// -// XXX we must currently use IN_COPY_VALUE since the memory consumed -// by the parameters must be deallocated by the ORB. When we get an -// updated version of DSI which provides "send it now" semantics, -// these should preallocate the values and not use IN_COPY_VALUE. A -// net decrease in malloc overhead can be had that way. (NVList -// should also get a public constructor, and a way to provide the -// buffer.) -// -#define DEFINE_SKEL3(name,truetype,truetypename) \ - static void \ - _test1_test_ ## name ( \ - CORBA_ServerRequest &req, \ - CORBA_Object_ptr obj, \ - CORBA_Environment &env \ - ) \ - { \ - CORBA_NVList_ptr nvlist; \ - CORBA_ ## truetype scratch = 0; \ - CORBA_Any temp_value (_tc_CORBA_ ## truetypename, \ - &scratch, CORBA_B_FALSE); \ - \ - req.orb ()->create_list (3, nvlist); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_IN, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_OUT, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA_IN_COPY_VALUE|CORBA_ARG_INOUT, env); \ - \ - req.params (nvlist, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, req.params"); \ - return; \ - } \ - \ - CORBA_ ## truetype *v1, *v2, *retval; \ - \ - v1 = (CORBA_ ## truetype *) nvlist->item (0)->value ()->value (); \ - v2 = new CORBA_ ## truetype; \ - *v2 = (CORBA_ ## truetype) OPERATION (*v1); \ - retval = new CORBA_ ## truetype; \ - *retval = (CORBA_ ## truetype) OPERATION (*v1); \ - \ - CORBA_Any_ptr any_val; \ - \ - any_val = nvlist->item (1)->value (); \ - any_val->replace (any_val->type (), v2, CORBA_B_TRUE, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, val2 replace"); \ - return; \ - } \ - \ - v1 = (CORBA_ ## truetype *) nvlist->item (2)->value ()->value (); \ - CORBA_ ## truetype v1copy = *v1; \ - *v1 = (CORBA_ ## truetype) OPERATION (v1copy); \ - \ - any_val = new CORBA_Any (_tc_CORBA_ ## truetypename, \ - retval, CORBA_B_TRUE); \ - req.result (any_val, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, result"); \ - return; \ - } \ - } \ - extern TAO_Call_Data test1_ ## name ## _calldata; - - -extern const TAO_Call_Data test1_void_calldata; - -static void -_test1_test_void (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - - req.orb ()->create_list (0, nvlist); - req.params (nvlist, env); - - if (env.exception () != 0) - dexc (env, "test_throw, get params"); -} - - -// -// Dynamic Skeleton methods for numeric types ... these all just -// cube their parameters in various permutations -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - -#define OPERATION(n) cube(n) - -DEFINE_SKEL3 (octet, Octet, Octet) - -DEFINE_SKEL3 (short, Short, Short) -DEFINE_SKEL3 (ushort, UShort, UShort) - -DEFINE_SKEL3 (long, Long, Long) -DEFINE_SKEL3 (ulong, ULong, ULong) - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... -DEFINE_SKEL3 (longlong, LongLong, LongLong) -DEFINE_SKEL3 (ulonglong, ULongLong, ULongLong) -#endif // !NONNATIVE_LONGLONG - -DEFINE_SKEL3 (float, Float, Float) -DEFINE_SKEL3 (double, Double, Double) - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... -DEFINE_SKEL3 (longdouble, LongDouble, LongDouble) -#endif // !NONNATIVE_LONGDOUBLE - -#undef OPERATION - -// -// Dynamic Skeleton methods for Boolean type ... just negates its -// parameters -// -#define OPERATION(x) (!(x)) -DEFINE_SKEL3 (boolean, Boolean, Boolean) -#undef OPERATION - -// -// For character types, output is same as input, no magic needed. -// -#define OPERATION(x) (x) -DEFINE_SKEL3 (char, Char, Char) -DEFINE_SKEL3 (wchar, WChar, WChar) -#undef OPERATION - -// -// For objref, typecode, output is same as input but duplication -// is needed -// -#define OPERATION(x) ((x) ? (x)->AddRef() : 0, x) -DEFINE_SKEL3 (Object, Object_ptr, Object) -DEFINE_SKEL3 (TypeCode, TypeCode_ptr, TypeCode) -#undef OPERATION - -// -// For string, output is copy of input -// -#define OPERATION(x) (CORBA_string_copy(x)) -DEFINE_SKEL3 (string, String, String) -#undef OPERATION - -// -// For wstring, output is copy of input -// -#define OPERATION(x) (CORBA_wstring_copy(x)) -DEFINE_SKEL3 (wstring, WString, WString) -#undef OPERATION - -// -// XXX IMPLEMENT THE REST OF THE DATA TYPES -// -// any, principal -- out is in -// - - -// -// All cases, "case_num" in the exception is the same as the 'in' param -// * negative or zero, throws x1 -// * positive even cases, throws x2 with obj = null objref -// * positive odd cases, throws x2 with obj = target objref -// -// exception x1 { long case_num; }; -// exception x2 { Object obj; long case_num; }; -// -// void test_throw (in long case_num) raises (x1, x2); -// - -extern const TAO_Call_Data test1_test_throw_calldata; - -static void -_test1_test_throw (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_Long); - CORBA_Long value; - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) - { - dexc (env, "test_throw, get params"); - return; - } - - value = *(CORBA_Long *)nv->value ()->value (); - if (env.exception () != 0) - { - dexc (env, "test_throw, param value"); - return; - } - - CORBA_Any_ptr any; - - if (value <= 0) - { - test1_x1 *x; - - x = new test1_x1 (value); - any = new CORBA_Any (_tc_test1_x1, x, CORBA_B_TRUE); - - } - else if (value & 0x01) - { - test1_x2 *x; - - x = new test1_x2 (CORBA_Object::_nil (), value); - any = new CORBA_Any (_tc_test1_x2, x, CORBA_B_TRUE); - - } - else - { -#if 0 - test1_x2 *x; - - x = new test1_x2 (req.oa()->target (), value); - any = new CORBA_Any (_tc_test1_x2, x, CORBA_B_TRUE); -#else - // - // XXX right now, we don't have a target() operation on the - // BOA ... needs to be added. Verify the client side memory - // leak of pointers embedded in user exceptions is fixed, too. - // - env.exception (new CORBA_IMP_LIMIT (COMPLETED_NO)); - return; -#endif - } - - req.exception (USER_EXCEPTION, any, env); -} - - -// -// This table is used to associate operation names with the Dynamic -// Skeleton method ... someday it could return static skeletons. -// -#define DECL_SKEL(name) \ - { & test1_ ## name ## _calldata, _test1_test_ ## name } - -static const TAO_Skel_Entry test1_operations [] = { - DECL_SKEL (void), - - DECL_SKEL (octet), - DECL_SKEL (char), - - DECL_SKEL (wchar), - - DECL_SKEL (short), - DECL_SKEL (ushort), - DECL_SKEL (long), - DECL_SKEL (ulong), - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - DECL_SKEL (longlong), - DECL_SKEL (ulonglong), -#endif - - DECL_SKEL (float), - DECL_SKEL (double), - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... - DECL_SKEL (longdouble), -#endif // !NONNATIVE_LONGDOUBLE - - DECL_SKEL (boolean), - - DECL_SKEL (Object), - DECL_SKEL (TypeCode), - - DECL_SKEL (string), - DECL_SKEL (wstring), - - { & test1_test_throw_calldata, _test1_test_throw }, - - { 0, 0 } -}; - - -// -// Dispatch to method code ... -// -// Knows how to interpret "context" to get target objref, and where to -// get second level skeletons for that target. Both of those operations -// will generally be abstracted (into library and stub code) so the main -// body of this routine would be invisible to most applications. -// -// However, there are applications that need to do this stuff themselves -// (like bridging between environments, e.g. different ORBs, languages, or -// other object systems). Everything needed to work without using an IDL -// compiler is a public, supported API. -// -static void -level1_skeleton (CORBA_OctetSeq &key, - CORBA_ServerRequest &req, - void *context, - CORBA_Environment &env) -{ - // - // Verify that the target object and "this" object have the - // same key. Normally, this would be used to figure out - // which object was the target, and hence which operations - // vector to dispatch the request. - // - CORBA_OctetSeq *obj_key; - - obj_key = (CORBA_OctetSeq *) context; - if (obj_key->length != key.length - || ACE_OS::memcmp (obj_key->buffer, key.buffer, - obj_key->length) != 0) - { - env.exception (new CORBA_OBJECT_NOT_EXIST (COMPLETED_NO)); -#ifdef DEBUG - if (TAO_debug_level) - dmsg_opaque ("request to nonexistent object, key = ", - key.buffer, key.length); -#endif - return; - } - - // - // Find a "level 2 skeleton" for this operation, then - // call it with the right per-object state. - // - const TAO_Skel_Entry *entry; - CORBA_String opname; - - opname = req.op_name (); - for (entry = &test1_operations [0]; entry->op_descriptor; entry++) - { - if (strcmp ((char *)opname, entry->op_descriptor->opname) == 0) - { - // We pass a bogus object because this version of the cubit example is - // so tightly coupled that it doesn't use it. Future modifications will, - // hopefully! - CORBA_Object_ptr bogus_object = 0; - entry->impl_skeleton (req, bogus_object, env); - return; - } - } - - // - // XXX True top-level skeleton code would also have to understand - // the built-in operations: - // - // * _is_a (for narrowing tests) ... can be derived by searching an - // appropriately structured graph of level2 skeletons. - // - // * _non_existent ... if the level1 skeleton consults a module - // which understands object lifespans, this should be simple. - // - // * _get_interface ... could either (a) fail; (b) return the ref - // from some IFR; or most interestingly (c) return a ref to some - // code in this process that can answer all IFR queries from the - // skeleton data structures. - // - // * _get_implementation ... return some administrative hook to - // the object implementation: - // - // No other legal operations start with a character that's not an - // ASCII alphanumeric, for what it's worth. - // - // The skeleton might want to use data in the object key to find - // the objref's type; if it's integrated with object creation, and - // an per-process implementation repository, this should be easy. - // - - // - // bypass level 2 skeletons for this one ... - // - if (strcmp ((char *) opname, "please_exit") == 0) - { - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); - return; - } - - // - // No match. Operation not implemented; say so. - // - dmsg1 ("unknown operation, %s", opname); - env.exception (new CORBA_BAD_OPERATION (COMPLETED_NO)); -} - - -// -// Create and print the objref, listen for calls on it until done. -// -extern void -print_exception (const CORBA_Exception *, const char *, FILE *f=stdout); - -int -OA_listen (CORBA_ORB_ptr orb_ptr, - CORBA_BOA_ptr oa_ptr, - CORBA_String key, - int idle) -{ - // - // Create the object we'll be implementing. - // - CORBA_OctetSeq obj_key; - CORBA_Object_ptr obj; - CORBA_Environment env; - - obj_key.buffer = (CORBA_Octet *) key; - obj_key.length = obj_key.maximum = ACE_OS::strlen (key); - - obj = oa_ptr->create (obj_key, (CORBA_String) "", env); - if (env.exception () != 0) - { - print_exception (env.exception (), "BOA::create"); - return 1; - } - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. - // - CORBA_String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - - // - // Clean up -- "key" is sufficient to dispatch all requests. - // - CORBA_release (obj); - CORBA_string_free (str); - env.clear (); - - // - // Handle requests for this object until we're killed, or one of - // the methods makes us exit. - // - // NOTE: apart from registering the top level skeleton, the rest - // of this loop is exactly what BOA::run() does. It's here to - // show there's no magic. - // -#if 0 - oa_ptr->register_dir (level1_skeleton, &obj_key, env); -#else - oa_ptr->register_dir (oa_ptr->dispatch, &obj_key, env); -#endif - if (env.exception () != 0) - { - print_exception (env.exception (), "register_dir"); - return 1; - } - - for (;;) { - if (idle == -1) - oa_ptr->get_request (CORBA_B_FALSE, 0, env); - else - { - timeval tv; - - tv.tv_sec = idle; - tv.tv_usec = 0; - oa_ptr->get_request (CORBA_B_FALSE, &tv, env); - } - - CORBA_Exception_ptr xp; - - if ((xp = env.exception ()) != 0) - { - CORBA_Environment env2; // XXX - char *id; - - id = env.exception ()->id (); - - // - // We get BAD_INV_ORDER if we call get_request() after - // shutdown was initiated. Simpler to rely on that - // than to arrange any handshaking in this simple app. - // - if (strcmp (id, _tc_CORBA_BAD_INV_ORDER->id (env2)) == 0) - { - break; - - // - // Other exceptions are errors. - // - } - else - { - print_exception (env.exception (), "BOA::get_request"); - return 1; - } - } - env.clear (); - } - - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - // XXX shutdown is not quite the same as release, unless we want mem - // leaks to cause some rude failure modes. BOA just hasn't been - // updated yet to have any handshake about this though. - // - oa_ptr->Release (); - return 0; -} - - -// -// Standard command line parsing utilities used. -// -int -main (int argc, char *argv[]) -{ - CORBA_Environment env; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - CORBA_String key = (CORBA_String) "elvis"; - char *oa_name = 0; - char *orb_name = "internet"; - int idle = -1; - - // - // Parse the command line, get options - // - ACE_Get_Opt get_opt (argc, argv, "di:ln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) - { - case 'd': // more debug noise - TAO_debug_level++; - continue; - - case 'i': // idle seconds b4 exit - idle = ACE_OS::atoi (get_opt.optarg); - continue; - - case 'k': // key (str) - key = (CORBA_String) get_opt.optarg; - continue; - - case 'o': // orb name - orb_name = get_opt.optarg; - continue; - - case 'p': // portnum - oa_name = get_opt.optarg; - continue; - - // XXX set debug filters ... - - // - // XXX ignore OMG-specified options ... hope nobody ever tries - // to use that "-ORB* param" and "-OA* param" syntax, it flies - // in the face of standard command parsing algorithms which - // require single-character option specifiers. - // - - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-i idle_seconds]" - " [-k object_key=elvis]" - " [-o orbname=internet]" - " [-p oa_name]" - "\n", argv [0] - ); - return 1; - } - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init"); - return 1; - } - - // - // The BOA may or may not actually be named ... - // - oa_ptr = CORBA_BOA::get_named_boa (orb_ptr, oa_name, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "OA init"); - return 1; - } - - return OA_listen (orb_ptr, oa_ptr, key, idle); -} - -#if defined (ACE_TEMPLATES_REQUIRE_SPECIALIZATION) -template CORBA_Octet cube(CORBA_Octet); -template CORBA_Short cube(CORBA_Short); -template CORBA_UShort cube(CORBA_UShort); -template CORBA_Long cube(CORBA_Long); -template CORBA_ULong cube(CORBA_ULong); -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... -template CORBA_LongLong cube(CORBA_LongLong); -template CORBA_ULongLong cube(CORBA_ULongLong); -#endif // !NONNATIVE_LONGLONG -template CORBA_Float cube(CORBA_Float); -template CORBA_Double cube(CORBA_Double); -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... -template CORBA_LongDouble cube(CORBA_LongDouble); -#endif // !NONNATIVE_LONGDOUBLE -#endif /* ACE_TEMPLATES_REQUIRE_SPECIALIZATION */ diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Makefile b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Makefile deleted file mode 100644 index 9fdad280ffc..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = server - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -server: cubitS.o cubitC.o server.o Profile_Timer.o cubit_impl.o - $(CC) -o server cubitS.o cubitC.o cubit_impl.o server.o Profile_Timer.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.h b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit.idl b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp deleted file mode 100644 index c4313a1fccb..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit () - {} diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.h b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.h deleted file mode 100644 index f1f5e3fa3ea..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/cubit_impl.h +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubitS.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual _sk_Cubit { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - -#ifdef Cubit_USE_BOA - Cubit_Impl (const char *obj_name = NULL) : - _sk_Cubit(obj_name) - {} -#else - Cubit_Impl (const char *obj_name = NULL) - {} -#endif /* Cubit_USE_BOA */ - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - virtual CORBA::Short cube_short(CORBA::Short s); - virtual CORBA::Long cube_long(CORBA::Long l); - virtual Cubit::Many cube_struct(const Cubit::Many& values); - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - virtual void please_exit(); -}; - -#endif diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/server.cpp b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/server.cpp deleted file mode 100644 index 99c65c6718e..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/server.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#include "cubit_impl.h" // server header file - -int -main (int argc, char** argv) -{ - - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); - CORBA::BOA_var boa = orb->BOA_init(argc, argv); - -#ifdef Cubit_USE_BOA - Cubit_Impl cb("Cubit"); - cout << "Using BOA approach" << endl; -#else - Cubit_Impl tied("Cubit"); - _tie_Cubit cb(tied, "Cubit"); - - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - try { - - boa->obj_is_ready(&cb); - - boa->impl_is_ready(); - - } catch (const CORBA::Exception &excep) { - cerr << "Server error: " << excep << endl; - return -1; - } catch (...) { - cerr << "Unknown exception" << endl; - return -1; - } - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/stdmk b/TAO/IIOP/tests/Cubit/VisiBroker/base_server/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/base_server/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/Makefile b/TAO/IIOP/tests/Cubit/VisiBroker/client/Makefile deleted file mode 100644 index d9c26fe56f0..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = client - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -client: cubitC.o Profile_Timer.o client.o - $(CC) -o client cubitC.o Profile_Timer.o client.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.cpp b/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.h b/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/client.cpp b/TAO/IIOP/tests/Cubit/VisiBroker/client/client.cpp deleted file mode 100644 index d9eb91526d7..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/client.cpp +++ /dev/null @@ -1,232 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include -#include -#include -#include -#include -#include "cubitC.h" -#include "Profile_Timer.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - if (argc != 3) { - cerr << "Format: client " << endl; - return -1; - } - - strcpy(SERVER_HOST, argv[1]); - - LOOP_COUNT = atoi(argv[2]); - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - try { - cb = Cubit::_bind ("Cubit", SERVER_HOST); - - } catch (const CORBA::Exception & sysEx) { - cerr << "Binding failed: " << endl; - cerr << sysEx; - } catch (...) { - cerr << "Unexpected exception" << endl; - } - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - Profile_Timer pt; - - pt.start(); - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - try { - ret_octet = cb->cube_octet (arg_octet); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - try { - ret_short = cb->cube_short (arg_short); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - try { - ret_long = cb->cube_long (arg_long); - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - try { - ret_struct = cb->cube_struct (arg_struct); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - pt.stop(); - - Elapsed_Time et; - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/cubit.idl b/TAO/IIOP/tests/Cubit/VisiBroker/client/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/IIOP/tests/Cubit/VisiBroker/client/stdmk b/TAO/IIOP/tests/Cubit/VisiBroker/client/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/IIOP/tests/Cubit/VisiBroker/client/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/IIOP/tests/Cubit/results/Orbix b/TAO/IIOP/tests/Cubit/results/Orbix deleted file mode 100644 index c3abce78d3f..00000000000 --- a/TAO/IIOP/tests/Cubit/results/Orbix +++ /dev/null @@ -1,133 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.876 533 - 2 2.202 454 - 3 2.740 364 - -MT-Orbix Thread-Per-Request 1 1.886 530 - 2 3.1 322 - 3 5.0 200 - -MT-Orbix Thread-Pool (25) 1 1.875 533 - 2 3.1 322 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 2.002 499 - 2 3.306 302 - 3 5.15 194 - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.818 550 - 2 1.968 508 - 3 2.803 356 - - -MT-Orbix Thread-Per-Request 1 1.846 541 - 2 3.1 322 - 3 4.98 200 - -MT-Orbix Thread-Pool (25) 1 1.913 522 - 2 3.18 314 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 1.959 510 - 2 3.29 303 - 3 5.15 194 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 7.918 126 - 2 14.300 70 - 3 21.000 47 - - -MT-Orbix Thread-Per-Request 1 8.302 120 - 2 10.128 98 - 3 13.722 72 - -MT-Orbix Thread-Pool (25) 1 8.442 118 - 2 15.764 63 - 3 22.595 44 - -MT-Orbix Thread-Per-Session 1 8.956 111 - 2 9.581 104 - 3 16.702 59 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 6.667 149 - 2 12.165 82 - 3 18.634 54 - - -MT-Orbix Thread-Per-Request 1 6.812 146 - 2 6.937 144 - 3 7.706 128 - -MT-Orbix Thread-Pool (25) 1 6.813 146 - 2 6.954 144 - 3 7.776 128 - -MT-Orbix Thread-Per-Session 1 6.85 145 - 2 7.253 137 - 3 7.645 130 - - TNF client-side profile for MT-Orbix without filters for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_wait 6.23 4250.242 1824 2.330 106.171 1.205 0.091 -mutex_lock 0.23 159.830 56662 0.003 1.215 0.002 0.000 -mutex_unlock 0.22 146.756 56663 0.003 0.326 0.002 0.000 -cond_signal 0.09 61.030 1825 0.033 0.475 0.009 0.000 -rw_rdlock 0.01 7.179 1826 0.004 0.014 0.003 0.000 -rw_unlock 0.01 6.548 1827 0.004 0.014 0.003 0.000 -rw_wrlock 0.00 0.004 1 0.004 0.004 0.004 0.000 - - TNF server-side profile for MT-Orbix without filters for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_timedwait 1.25 923.527 797 1.159 20.219 0.324 0.028 -mutex_lock 0.21 153.839 56435 0.003 4.342 0.002 0.000 -mutex_unlock 0.20 149.208 56433 0.003 3.559 0.002 0.000 -cond_signal 0.03 21.506 809 0.027 1.826 0.003 0.002 -rw_unlock 0.02 16.058 3224 0.005 2.915 0.003 0.001 -rw_rdlock 0.02 11.924 3221 0.004 0.087 0.003 0.000 -rw_wrlock 0.00 0.010 2 0.005 0.005 0.004 0.000 - - TNF server-side profile for MT-Orbix with thread-per-request for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.55 797.890 57618 0.014 4.624 0.002 0.000 -cond_timedwait 0.52 748.560 478 1.566 3.918 0.222 0.019 -mutex_unlock 0.36 514.627 57616 0.009 3.975 0.002 0.000 -cond_signal 0.02 24.216 1151 0.021 1.161 0.002 0.001 -rw_rdlock 0.01 13.120 2301 0.006 1.180 0.003 0.001 -rw_unlock 0.01 10.575 2307 0.005 0.316 0.003 0.000 -thr_sigsetmask 0.00 1.949 30 0.065 1.064 0.013 0.035 -rw_wrlock 0.00 0.033 6 0.006 0.008 0.004 0.001 - - - diff --git a/TAO/IIOP/tests/Cubit/results/TAO b/TAO/IIOP/tests/Cubit/results/TAO deleted file mode 100644 index de4a7bf23ae..00000000000 --- a/TAO/IIOP/tests/Cubit/results/TAO +++ /dev/null @@ -1,92 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.172 853 - 2 1.342 745 - 3 1.902 525 - -TAO threaded version 1 1.174 851 - 2 1.219 820 - 3 1.600 625 - - -Cubit results over ATM with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.161 861 - 2 1.302 768 - 3 1.732 577 - -TAO threaded version 1 1.170 854 - 2 1.3 769 - 3 1.600 625 - - -Cubit results over ATM after optimizations with 20,000 calls ------------------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.127 887 - 2 1.238 807 - 3 1.501 666 - -TAO threaded version 1 1.057 946 - 2 1.225 816 - 3 1.471 679 - -Prime_Factor results over ATM with 20,000 calls -------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 7.407 135 - 2 13.7 73 - 3 19.7 51 - -TAO threaded version 1 7.389 135 - 2 8.080 124 - 3 10.726 93 - -IO-bound results over ATM with 20,000 calls --------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 6.404 156 - 2 11.909 83 - 3 17.324 57 - -TAO threaded version 1 6.378 156 - 2 6.449 155 - 3 6.500 153 - - - - - Sample client-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.40 146.579 20006 0.007 1.200 0.005 0.000 -rw_unlock 0.25 91.386 20009 0.005 0.058 0.004 0.000 -mutex_lock 0.06 21.087 5265 0.004 0.178 0.002 0.000 -mutex_unlock 0.04 14.372 5271 0.003 0.075 0.002 0.000 -rw_wrlock 0.00 0.045 3 0.015 0.034 0.005 0.008 - - - Sample server-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 1.12 154.491 54507 0.003 0.140 0.002 0.000 -mutex_unlock 1.06 145.638 54508 0.003 0.310 0.002 0.000 -rw_rdlock 0.27 37.265 6813 0.005 0.037 0.004 0.000 -rw_unlock 0.20 27.792 6813 0.004 0.045 0.004 0.000 - diff --git a/TAO/IIOP/tests/Cubit/results/Visibroker b/TAO/IIOP/tests/Cubit/results/Visibroker deleted file mode 100644 index 8d6bb2457c7..00000000000 --- a/TAO/IIOP/tests/Cubit/results/Visibroker +++ /dev/null @@ -1,79 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - - -Visibroker reactive 1 1.167 856 - 2 1.39 718 - 3 1.664 600 - -Visibroker thr-per-connection 1 1.077 928 - 2 1.228 814 - 3 1.789 558 - - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 1.195 836 - 2 1.241 805 - 3 1.56 641 - -Visibroker thr-per-connection 1 1.060 943 - 2 1.327 753 - 3 2.108 474 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 7.43 134 - 2 13.652 73 - 3 17.738 56 - -Visibroker thr-per-connection 1 7.371 135 - 2 8.561 116 - 3 11.376 87 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 6.424 155 - 2 11.895 84 - 3 17.468 57 - -Visibroker thr-per-connection 1 6.41 156 - 2 6.496 154 - 3 6.524 153 - - - - - TNF client-side profile for Visibroker for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.31 188.930 61797 0.003 1.027 0.002 0.000 -mutex_lock 1.21 175.465 61790 0.003 0.330 0.002 0.000 - - - TNF server-side profile for Visibroker for 20000 calls - - Profile - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.18 165.141 60432 0.003 0.501 0.002 0.000 -mutex_unlock 0.16 153.891 60432 0.003 0.373 0.002 0.000 - - diff --git a/TAO/IIOP/tests/Cubit/results/orbs.xls b/TAO/IIOP/tests/Cubit/results/orbs.xls deleted file mode 100644 index 149078dd383..00000000000 Binary files a/TAO/IIOP/tests/Cubit/results/orbs.xls and /dev/null differ diff --git a/TAO/IIOP/tests/Thruput_test/Makefile b/TAO/IIOP/tests/Thruput_test/Makefile deleted file mode 100644 index f6b0e338f8b..00000000000 --- a/TAO/IIOP/tests/Thruput_test/Makefile +++ /dev/null @@ -1,53 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the TAO_TTCP benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba - -PROG_SRCS = client.cpp ttcpC.cpp ttcpS.cpp ttcp_i.cpp server.cpp utils.cpp - -LSRC = $(PROG_SRCS) - -TTCP_CLIENT_OBJS = client.o ttcpC.o utils.o - -TTCP_SERVER_OBJS = server.o ttcpC.o ttcpS.o ttcp_i.o utils.o - -BIN = client server - -BUILD = $(BIN) - -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 - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -LDFLAGS += -L../../proto/lib -CPPFLAGS += -I../../proto/include -DUSE_ACE_EVENT_HANDLING -DDEBUG #-DONEWAY - -server: $(addprefix $(VDIR),$(TTCP_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(TTCP_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - - - diff --git a/TAO/IIOP/tests/Thruput_test/README b/TAO/IIOP/tests/Thruput_test/README deleted file mode 100644 index 628ef0c50a4..00000000000 --- a/TAO/IIOP/tests/Thruput_test/README +++ /dev/null @@ -1,50 +0,0 @@ - TAO_TTCP Benchmark README file - -This directory contains a modified version of the TTCP benchmark that -uses the TAO ORB. TAO_TTCP is used to measure the throughput of TAO -for sending different data types. This code tests sequences of short, -long, octet, char, double, and richly-typed data such as a struct. -This benchmark uses an interpretive form of marshaling the data by -using the dynamic invocation interfaces provided by the TAO ORB. - -Organization ------------- - -client.cpp Client main program -server.cpp Server main program -ttcpC.cpp Client side stubs -ttcpS.cpp Server side skeletons -ttcpC.h Header file for stubs -ttcpS.h Header file for the skeletons -ttcp_i.cpp Implementaion of the interface -ttcp_i.h Header for the implementation -utils.cpp Utilities to calculate throughput -ttcp_decls.h Common declarations - -Results -------- -Throughput results are stored under the results directory. If testing -for REMOTE transfers, use the ./results/REMOTE directory. - -Running the tests ------------------ -Three scripts are provided - -(1) run_server : runs the server. Be sure to change the host name -(2) run_client : runs tests for various data types -(3) run_test : called by run_client - -Compiling ---------- - -Type make - -To provide for 2way tests (no data is sent in the reverse -direction. Sender blocks for a minimal ACK), comment out the -DONEWAY -flag from the CPPFLAGS - -TO-DO ------ - - --Aniruddha Gokhale \ No newline at end of file diff --git a/TAO/IIOP/tests/Thruput_test/client.cpp b/TAO/IIOP/tests/Thruput_test/client.cpp deleted file mode 100644 index cdf3004892d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/client.cpp +++ /dev/null @@ -1,338 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" -#include "debug.h" - -#include -#include - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -char Usage[] = "\ -Usage: client [-options] [ORBeline options] host \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --A align the start of buffers to this modulus (default 16384)\n\ --o start buffers at this offset from the modulus (default 0)\n\ --v verbose: print more statistics\n\ --d set SO_DEBUG socket option\n\ --b ## set socket buffer size (if supported)\n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --n ## number of source bufs written to network (default 2048)\n\ --x Use new lines after each entry in output file\n\ --h ## Remote host to send data to\n\ --D don't buffer TCP writes (sets TCP_NODELAY socket option)\n\ --L ## Output file name for the data type used\n\ --S \n\ --q Send Sequence: Enumeration for various data types:\n\ -s = short, l = long, d = double, c = char\n\ -o = octet, S = struct, C = composite\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans =1; /* 0=receive, !0=transmit mode */ -int sinkmode = 1; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc -* resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, -* m = megabits, M = megabytes, -* g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -static const char ior_prefix [] = "IOR:"; -static const char iiop_prefix [] = "iiop:"; - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - unsigned short done = 0; - int c; - - CORBA_ORB_ptr orb_ptr; - CORBA_Environment env; - CORBA_Object_ptr objref = CORBA_Object::_nil(); - ttcp_sequence_ptr ttcp_seq; - unsigned loop_count = 1; - int exit_later = 0; - CORBA_String str; - fstream iorfile; - - if (argc < 2) - goto usage; - - TAO_debug_level = 0; - while (!done && ((c = getopt (argc, argv, "d:vDb:h:f:l:n:A:o:L:xS:q:")) != -1)) - { - switch (c) - { - case 'h': - host = optarg; - break; - case 'x': - new_line = 1; - break; - case 'L': - title = optarg; - break; - case 'd': - TAO_debug_level = atoi(optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'D': -#ifdef TCP_NODELAY - nodelay = 1; -#else - fprintf (stderr, - "ttcp: -D option ignored: TCP_NODELAY socket option not supported\n"); -#endif - break; - case 'n': - nbuf = atoi (optarg); - break; - case 'l': - buflen = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'A': - bufalign = atoi (optarg); - break; - case 'o': - bufoffset = atoi (optarg); - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'S': /* total source data to send. */ - /* modify nbuf accordingly */ - srcDataSize = atoi(optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - case '?': - done = 1; - break; - default: - goto usage; - } - } - - // - // Transmitter - // - orb_ptr = CORBA_ORB_init(argc, argv, "internet", env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB initialization", stdout); - return 1; - } - - str = CORBA_string_alloc(500); - - // read the IOR from the file ior.txt - iorfile.open("ior.txt", ios::in); - iorfile >> ((char *)str); - iorfile.close(); - - cout << "Read IOR string as: " << ((char *)str) << endl; - - objref = orb_ptr->string_to_object(str, env); - if (env.exception() != 0){ - print_exception(env.exception(), "string2object", stdout); - return 1; - } - CORBA_string_free(str); - - - if (!CORBA_is_nil(objref)){ - ttcp_seq = ttcp_sequence::_narrow(objref); - - if (!CORBA_is_nil(ttcp_seq)){ - - /* modify nbuf according to Total data size */ - nbuf = srcDataSize/buflen; - fprintf(stderr, "data size = %d, buflen = %d, nbuf = %d\n",srcDataSize, buflen, nbuf); - - // - // Prepare the Message to be sent - // - - errno = 0; - if ((buf = (char *) malloc (buflen + bufalign)) == (char *) NULL) - err ("malloc"); - if (bufalign != 0) - buf += (bufalign - ((int) buf % bufalign) + bufoffset) % bufalign; - - - cout << "Sizeof PerfStruct = " << sizeof(PerfStruct) << endl; - // fill the appropriate buffers - FillPattern (buf, buflen, dt); - // - // Start the timers on the client and server sides - // - - prep_timer (); - ttcp_seq->start_timer (env); - if (env.exception () != 0) { - print_exception (env.exception (), "start_timer operation", stdout); - return 1; - } -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_clear_data(); - quantify_start_recording_data(); -#endif - while (nbuf--) - { - switch(dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq(*sseq, env); - nbytes += sseq->length()*sizeof(CORBA_Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq(*lseq, env); - nbytes += lseq->length()*sizeof(CORBA_Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq(*oseq, env); - nbytes += oseq->length()*sizeof(CORBA_Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq(*dseq, env); - nbytes += dseq->length()*sizeof(CORBA_Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq(*cseq, env); - nbytes += cseq->length()*sizeof(CORBA_Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq(*Sseq, env); - nbytes += Sseq->length()*sizeof(PerfStruct); - break; - } - numCalls++; - if (env.exception () != 0) { - print_exception (env.exception (), "send operation", stdout); - return 1; - } - } -#if defined(USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - ttcp_seq->stop_timer(env); - if (env.exception () != 0) { - print_exception (env.exception (), "stop_timer operation", stdout); - return 1; - } - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - - } - } - - CORBA_release(ttcp_seq); - return(0); -usage: - fprintf (stderr, Usage); - return 1; -} - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/run b/TAO/IIOP/tests/Thruput_test/run deleted file mode 100755 index b746a09536d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run +++ /dev/null @@ -1 +0,0 @@ -client -S 67108864 -f m -D -l $1 -L temp -q $2 -b 65536 -d $3 diff --git a/TAO/IIOP/tests/Thruput_test/run_client b/TAO/IIOP/tests/Thruput_test/run_client deleted file mode 100755 index 41f9fd5bc51..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_client +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/csh -f -# All ATM tests: 64k socket Queue Size -# -# shorts -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 s -sleep 5 -# longs -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 l -sleep 5 -# octets -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 o -sleep 5 -# doubles -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 d -sleep 5 -# chars -#run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 c -#sleep 5 -# structures -run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 S -sleep 5 -# Composite Structs -#run_test 67108864 128 mambo-atm.wustl.edu ./results/REMOTE/$1/sun-iiop.atm.64 C -#sleep 5 -# diff --git a/TAO/IIOP/tests/Thruput_test/run_server b/TAO/IIOP/tests/Thruput_test/run_server deleted file mode 100755 index 9ce44a510b1..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_server +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/csh -# -# Usage: server -# -u : use IOR -# -f m : output results in Mbps -# -b ** not implemented ** -# -OAhost ************* must provide this for this version -# -OAthread : use threaded version as opposed to reactive -# -server -u -f m -b 65536 -OAhost mambo-cip #-OAthread diff --git a/TAO/IIOP/tests/Thruput_test/run_test b/TAO/IIOP/tests/Thruput_test/run_test deleted file mode 100755 index e36938f42b6..00000000000 --- a/TAO/IIOP/tests/Thruput_test/run_test +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/csh -f -if ($#argv < 3) then - echo "Usage: sclt " - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[2] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 -client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -S" $1 "-D -f m -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - label: - set flag=1 - sleep 5 - foreach i (2) - echo "Iteration#" $i ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L " $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - end - echo "---------------------------" - @ msize = ($msize * 2) - sleep 5 -end - -echo " " -echo "Done at:" -date diff --git a/TAO/IIOP/tests/Thruput_test/server.cpp b/TAO/IIOP/tests/Thruput_test/server.cpp deleted file mode 100644 index b2a10d91510..00000000000 --- a/TAO/IIOP/tests/Thruput_test/server.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" - -#include -#include - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -char Usage[] = "\ -Usage: server [options] \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --A align the start of buffers to this modulus (default 16384)\n\ --O start buffers at this offset from the modulus (default 0)\n\ --v verbose: print more statistics\n\ --d set SO_DEBUG socket option\n\ --b ## set socket buffer size (if supported)\n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --L ## Output file name for the data type used\n\ -Options specific to -r:\n\ --B for -s, only output full blocks as specified by -l (for TAR)\n\ --T \"touch\": access each byte as it's read\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans; /* 0=receive, !0=transmit mode */ -int sinkmode = 0; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -unsigned short isDone = 0; -ttcp_sequence_i *my_ttcp; - -// -// forwarding support -// -static CORBA_Object_ptr fwd_ref; - -int -main (int argc, char *const *argv) -{ - - unsigned long addr_tmp; - int c; - unsigned short done = 0; - CORBA_Environment env; - CORBA_ORB_ptr orb_ptr; - CORBA_BOA_ptr oa_ptr; - CORBA_Boolean do_fork = CORBA_B_FALSE; - CORBA_Boolean do_threads = CORBA_B_FALSE; - CORBA_String key = (CORBA_String) "key0"; - char *oa_name = "ROA"; - char *orb_name = "internet"; - int idle = -1; - int use_ior = 0; - fstream iorfile; - CORBA_String str; - - - if (argc < 2) - goto usage; - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init", stdout); - return 1; - } - - oa_ptr = orb_ptr->BOA_init(argc, argv, oa_name); - if (env.exception () != 0) { - print_exception (env.exception (), "OA init", stdout); - return 1; - } - - TAO_debug_level = 0; - // Now process the options other than Orbix specific options - while (!done && ((c = getopt (argc, argv, "ui:d:vb:f:l:L:")) != -1)) - { - switch (c) - { - case 'u': - use_ior = 1; - orb_name = ""; - break; - case 'L': - title = optarg; - break; - case 'd': - TAO_debug_level = atoi(optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'l': - buflen = atoi (optarg); - break; - case 'i': - idle = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'O': - case '?': - done = 1; - break; - default: - goto usage; - } - } - - // - // Receiver - // - - iorfile.open("ior.txt", ios::out); - my_ttcp = new ttcp_sequence_i("TTCP_IIOP_test"); - str = orb_ptr->object_to_string(my_ttcp, env); - if (env.exception() != 0) - { - print_exception (env.exception(), "object_to_string", stdout); - return 1; - } - iorfile << ((char *)str) << endl; - -#if defined (USE_QUANTIFY) - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - ACE_Reactor::run_event_loop(); - -#if 0 - while (1) - { - int result = params->reactor()->handle_events (); - - if (result == -1) - { - terminationStatus = -1; - break; - } - } -#endif - return 0; -usage: - fprintf (stderr, Usage); - return(1); -} - - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp.idl b/TAO/IIOP/tests/Thruput_test/ttcp.idl deleted file mode 100644 index ff13a4b664b..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp.idl +++ /dev/null @@ -1,34 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct PerfStruct{ - short s; - char c; - long l; - octet o; - double d; - octet pad[8]; // to make it 32 bytes -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence DoubleSeq; - typedef sequence CharSeq; - typedef sequence OctetSeq; - typedef sequence StructSeq; - - - // Routines to send sequences of various data types - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/IIOP/tests/Thruput_test/ttcpC.cpp b/TAO/IIOP/tests/Thruput_test/ttcpC.cpp deleted file mode 100644 index 6f96d387c25..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpC.cpp +++ /dev/null @@ -1,1007 +0,0 @@ -// $Id$ - -#include -#include "ttcpC.h" - -// constructor -ttcp_sequence::ttcp_sequence(STUB_Object *refdata) - : CORBA_Object(refdata) -{ -} - -// static duplicate method -ttcp_sequence_ptr ttcp_sequence::_duplicate(ttcp_sequence_ptr obj) -{ - void *dupl; - - if (obj) - { - obj->AddRef(); - } - return obj; -} - -// static _narrow method -ttcp_sequence_ptr ttcp_sequence::_narrow(CORBA_Object_ptr obj) -{ - CORBA_Environment env; - if (obj->_is_a("IDL:ttcp_sequence:1.0", env)){ - STUB_Object *istub; - if (obj->QueryInterface(IID_STUB_Object, (void **)&istub) != NOERROR){ - return ttcp_sequence::_nil(); - } - ttcp_sequence_ptr new_obj = new ttcp_sequence(istub); - return ttcp_sequence::_duplicate(new_obj); - } - return ttcp_sequence::_nil(); -} - -ttcp_sequence_ptr ttcp_sequence::_nil() -{ - return (ttcp_sequence_ptr)NULL; -} - -ttcp_sequence::ShortSeq::ShortSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::ShortSeq::ShortSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Short[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::ShortSeq::ShortSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Short *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::ShortSeq::~ShortSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::ShortSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Short *temp = new CORBA_Short[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Short))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Short)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::ShortSeq::length() const -{ - return this->_length; -} - -CORBA_Short& ttcp_sequence::ShortSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Short& ttcp_sequence::ShortSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// LongSeq -ttcp_sequence::LongSeq::LongSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::LongSeq::LongSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Long[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::LongSeq::LongSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Long *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::LongSeq::~LongSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::LongSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Long *temp = new CORBA_Long[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Long))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Long)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::LongSeq::length() const -{ - return this->_length; -} - -CORBA_Long& ttcp_sequence::LongSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Long& ttcp_sequence::LongSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// DoubleSeq -ttcp_sequence::DoubleSeq::DoubleSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::DoubleSeq::DoubleSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Double[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::DoubleSeq::DoubleSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Double *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::DoubleSeq::~DoubleSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::DoubleSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Double *temp = new CORBA_Double[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Double))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Double)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::DoubleSeq::length() const -{ - return this->_length; -} - -CORBA_Double& ttcp_sequence::DoubleSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Double& ttcp_sequence::DoubleSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -// Char seq -ttcp_sequence::CharSeq::CharSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::CharSeq::CharSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Char[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::CharSeq::CharSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Char *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::CharSeq::~CharSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::CharSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Char *temp = new CORBA_Char[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Char))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Char)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::CharSeq::length() const -{ - return this->_length; -} - -CORBA_Char& ttcp_sequence::CharSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Char& ttcp_sequence::CharSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -//Octet Seq -ttcp_sequence::OctetSeq::OctetSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::OctetSeq::OctetSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new CORBA_Octet[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::OctetSeq::OctetSeq(CORBA_ULong max, CORBA_ULong length, - CORBA_Octet *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::OctetSeq::~OctetSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::OctetSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - CORBA_Octet *temp = new CORBA_Octet[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(CORBA_Octet))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(CORBA_Octet)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::OctetSeq::length() const -{ - return this->_length; -} - -CORBA_Octet& ttcp_sequence::OctetSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const CORBA_Octet& ttcp_sequence::OctetSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - - -//struct seq -ttcp_sequence::StructSeq::StructSeq() - : _maximum(0), - _length(0), - _buffer(0), - _release(CORBA_B_FALSE) -{ -} - -ttcp_sequence::StructSeq::StructSeq(CORBA_ULong max) - : _maximum(max), - _length(0), - _release(CORBA_B_FALSE) -{ - if (this->_maximum > 0){ - this->_buffer = new PerfStruct[this->_maximum]; - } else { - this->_buffer = 0; - } -} - -ttcp_sequence::StructSeq::StructSeq(CORBA_ULong max, CORBA_ULong length, - PerfStruct *value, CORBA_Boolean release) - : _maximum(max), - _length(length), - _buffer(value), - _release(release) -{ -} - -ttcp_sequence::StructSeq::~StructSeq() -{ - this->_maximum = this->_length = 0; - if (this->_release != CORBA_B_FALSE) - delete this->_buffer; -} - -void ttcp_sequence::StructSeq::length(CORBA_ULong newlen) -{ - if (newlen > this->_maximum) { - PerfStruct *temp = new PerfStruct[newlen]; - ::memcpy(temp, this->_buffer, (size_t(this->_length) * sizeof(PerfStruct))); - if (this->_release) - delete this->_buffer; - else - this->_release = 1; - - this->_maximum = newlen; - this->_buffer = temp; - } - if (newlen > this->_length) - memset(&this->_buffer[this->_length], 0, size_t(newlen - this->_length) * - sizeof(PerfStruct)); - this->_length = newlen; -} - -CORBA_ULong ttcp_sequence::StructSeq::length() const -{ - return this->_length; -} - -PerfStruct& ttcp_sequence::StructSeq::operator[](CORBA_ULong index) -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - -const PerfStruct& ttcp_sequence::StructSeq::operator[](CORBA_ULong index) const -{ - if (index >= this->_length) - exit(1); - return this->_buffer[index]; -} - - -/***************** TypeCodes **************/ - -// encapsulated parameters for struct PerfStruct typecode -static const CORBA_Long _oc_PerfStruct [] = { - // strings are encoded as length followed by the string. A length of 1 stands - // for the NULL character - MY_BYTE_SEX, // byte order - 1, 0, // empty string, repoID - 1, 0, // empty string, struct name - 6, // 6 struct elements - - // short - 1, 0, // empty string - tk_short, - - // char - 1, 0, - tk_char, - - // long - 1, 0, - tk_long, - - // octet - 1, 0, - tk_octet, - - // double - 1, 0, - tk_double, - - // padding - 1, 0, - tk_array, - 12, // encapsulation length - MY_BYTE_SEX, - tk_octet, - 8 -}; - - -static CORBA_TypeCode _tc__tc_PerfStruct(tk_struct, - sizeof _oc_PerfStruct, - (unsigned char *) &_oc_PerfStruct, - CORBA_B_FALSE); -CORBA_TypeCode_ptr _tc_PerfStruct = &_tc__tc_PerfStruct; - -// Typecodes for all the sequences - -// StructSeq -static const CORBA_Long _oc_ttcp_sequence_StructSeq [] = { - MY_BYTE_SEX, // byte order - tk_struct, // sequence of struct - 112, // encapsulaton length - MY_BYTE_SEX, // byte order - 1, 0, // empty string, repoID - 1, 0, // empty string, struct name - 6, // 6 struct elements - - // short - 1, 0, // empty string - tk_short, - - // char - 1, 0, - tk_char, - - // long - 1, 0, - tk_long, - - // octet - 1, 0, - tk_octet, - - // double - 1, 0, - tk_double, - - // padding - 1, 0, - tk_array, // array - 12, //encapsulation length - MY_BYTE_SEX, - tk_octet, - 8, - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_StructSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_StructSeq, - (unsigned char *) - &_oc_ttcp_sequence_StructSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_StructSeq = &_tc__tc_ttcp_sequence_StructSeq; - -// ShortSeq -static const CORBA_Long _oc_ttcp_sequence_ShortSeq [] = { - MY_BYTE_SEX, // byte order - tk_short, // sequence of short - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_ShortSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_ShortSeq, - (unsigned char *) - &_oc_ttcp_sequence_ShortSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_ShortSeq = &_tc__tc_ttcp_sequence_ShortSeq; - -// LongSeq -static const CORBA_Long _oc_ttcp_sequence_LongSeq [] = { - MY_BYTE_SEX, // byte order - tk_long, // sequence of long - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_LongSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_LongSeq, - (unsigned char *) - &_oc_ttcp_sequence_LongSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_LongSeq = &_tc__tc_ttcp_sequence_LongSeq; - -// DoubleSeq -static const CORBA_Long _oc_ttcp_sequence_DoubleSeq [] = { - MY_BYTE_SEX, // byte order - tk_double, // sequence of doubles - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_DoubleSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_DoubleSeq, - (unsigned char *) - &_oc_ttcp_sequence_DoubleSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_DoubleSeq = &_tc__tc_ttcp_sequence_DoubleSeq; - -// CharSeq -static const CORBA_Long _oc_ttcp_sequence_CharSeq [] = { - MY_BYTE_SEX, // byte order - tk_char, // sequence of chars - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_CharSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_CharSeq, - (unsigned char *) - &_oc_ttcp_sequence_CharSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_CharSeq = &_tc__tc_ttcp_sequence_CharSeq; - -//OctetSeq -static const CORBA_Long _oc_ttcp_sequence_OctetSeq [] = { - MY_BYTE_SEX, // byte order - tk_octet, // sequence of octets - 0, // a length of 0 => unbounded sequence -}; -static CORBA_TypeCode _tc__tc_ttcp_sequence_OctetSeq(tk_sequence, - sizeof - _oc_ttcp_sequence_OctetSeq, - (unsigned char *) - &_oc_ttcp_sequence_OctetSeq, - CORBA_B_FALSE); -CORBA_TypeCode_ptr ttcp_sequence::_tc_OctetSeq = &_tc__tc_ttcp_sequence_OctetSeq; - - - -/***************** All the methods ********************/ - -//sendShortSeq -static const TAO_Param_Data ttcp_sequence_sendShortSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_ShortSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendShortSeq_TAO_Call_Data = { - "sendShortSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendShortSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendShortSeq(const ttcp_sequence::ShortSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendShortSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendShortSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendLongSeq -static const TAO_Param_Data ttcp_sequence_sendLongSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_LongSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendLongSeq_TAO_Call_Data = { - "sendLongSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendLongSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendLongSeq(const ttcp_sequence::LongSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendLongSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendLongSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendDoubleSeq -static const TAO_Param_Data ttcp_sequence_sendDoubleSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_DoubleSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendDoubleSeq_TAO_Call_Data = { - "sendDoubleSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendDoubleSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendDoubleSeq(const ttcp_sequence::DoubleSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendDoubleSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendDoubleSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendCharSeq -static const TAO_Param_Data ttcp_sequence_sendCharSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_CharSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendCharSeq_TAO_Call_Data = { - "sendCharSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendCharSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendCharSeq(const ttcp_sequence::CharSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendCharSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendCharSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendOctetSeq -static const TAO_Param_Data ttcp_sequence_sendOctetSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_OctetSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendOctetSeq_TAO_Call_Data = { - "sendOctetSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendOctetSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendOctetSeq(const ttcp_sequence::OctetSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendOctetSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendOctetSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -//sendStructSeq -static const TAO_Param_Data ttcp_sequence_sendStructSeq_params [] = { -#ifndef ONEWAY - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - }, -#endif - { ttcp_sequence::_tc_StructSeq, - PARAM_IN, - 0 - } -}; - -static const TAO_Call_Data ttcp_sequence_sendStructSeq_TAO_Call_Data = { - "sendStructSeq", // opname -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 2, // param count -#else - CORBA_B_FALSE, // oneway - 1, -#endif - &ttcp_sequence_sendStructSeq_params [0], - 0, 0 -}; - -// stub -void ttcp_sequence::sendStructSeq(const ttcp_sequence::StructSeq &ttcp_seq, - CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_sendStructSeq_TAO_Call_Data, 0, &ttcp_seq); -#else - istub->do_call(env, &ttcp_sequence_sendStructSeq_TAO_Call_Data, &ttcp_seq); -#endif -} - -// start timer -#ifndef ONEWAY -static const TAO_Param_Data ttcp_sequence_start_timer_params [] = { - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - } -}; -#endif - -static const TAO_Call_Data ttcp_sequence_start_timer_TAO_Call_Data = { - "start_timer", -#ifndef ONEWAY - CORBA_B_TRUE, // twoway - 1, - &ttcp_sequence_start_timer_params [0], -#else - CORBA_B_FALSE, // oneway - 0, - 0, -#endif - 0, 0 -}; - -//stub -void ttcp_sequence::start_timer(CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_start_timer_TAO_Call_Data); -#else - istub->do_call(env, &ttcp_sequence_start_timer_TAO_Call_Data); -#endif -} - -// stop timer -#ifndef ONEWAY -static const TAO_Param_Data ttcp_sequence_stop_timer_params [] = { - { _tc_CORBA_Void, - PARAM_RETURN, - 0 - } -}; -#endif - -static const TAO_Call_Data ttcp_sequence_stop_timer_TAO_Call_Data = { - "stop_timer", -#ifndef ONEWAY - CORBA_B_TRUE, - 1, - &ttcp_sequence_stop_timer_params[0], -#else - CORBA_B_FALSE, // oneway - 0, - 0, -#endif - 0, 0 -}; - -//stub -void ttcp_sequence::stop_timer(CORBA_Environment &env) -{ - STUB_Object *istub; - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR){ - env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO)); - return; - } -#ifndef ONEWAY - // twoway - istub->do_call(env, &ttcp_sequence_stop_timer_TAO_Call_Data); -#else - istub->do_call(env, &ttcp_sequence_stop_timer_TAO_Call_Data); -#endif -} diff --git a/TAO/IIOP/tests/Thruput_test/ttcpC.h b/TAO/IIOP/tests/Thruput_test/ttcpC.h deleted file mode 100644 index faeee26c94d..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpC.h +++ /dev/null @@ -1,229 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef TTCP_SEQUENCE_C_H -#define TTCP_SEQUENCE_C_H - -#include -#include - -#include "corba/orb.h" -#include "corba/stub.h" -#include "debug.h" - -// mapping for PerfStruct -struct PerfStruct{ - CORBA_Short s; - CORBA_Char c; - CORBA_Long l; - CORBA_Octet o; - CORBA_Double d; - CORBA_Octet pad[8]; - - - typedef CORBA_Octet pad_slice; - typedef pad_slice *pad_slice_ptr; - - static inline pad_slice *pad_alloc() { - return new CORBA_Octet[8]; - } - - static inline void pad_free(pad_slice *data) { - if (data) delete[] data; - } - -}; -extern CORBA_TypeCode_ptr _tc_PerfStruct; - -class ttcp_sequence; -typedef ttcp_sequence *ttcp_sequence_ptr; -typedef ttcp_sequence_ptr ttcp_sequenceRef; - -class ttcp_sequence: public virtual CORBA_Object -{ -public: - static ttcp_sequence_ptr _duplicate(ttcp_sequence_ptr obj); - static ttcp_sequence_ptr _narrow(CORBA_Object_ptr obj); - static ttcp_sequence_ptr _nil(); - - - class ShortSeq - { - public: - ShortSeq(); - ShortSeq(CORBA_ULong max); - ShortSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Short *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // ShortSeq(const ShortSeq&); - ~ShortSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Short &operator[](CORBA_ULong index); - const CORBA_Short &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Short *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_ShortSeq; - - class LongSeq - { - public: - LongSeq(); - LongSeq(CORBA_ULong max); - LongSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Long *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // LongSeq(const LongSeq&); - ~LongSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Long &operator[](CORBA_ULong index); - const CORBA_Long &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Long *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_LongSeq; - - class DoubleSeq - { - public: - DoubleSeq(); - DoubleSeq(CORBA_ULong max); - DoubleSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Double *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // DoubleSeq(const DoubleSeq&); - ~DoubleSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Double &operator[](CORBA_ULong index); - const CORBA_Double &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Double *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_DoubleSeq; - - class CharSeq - { - public: - CharSeq(); - CharSeq(CORBA_ULong max); - CharSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Char *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // CharSeq(const CharSeq&); - ~CharSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Char &operator[](CORBA_ULong index); - const CORBA_Char &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Char *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_CharSeq; - - class OctetSeq - { - public: - OctetSeq(); - OctetSeq(CORBA_ULong max); - OctetSeq(CORBA_ULong max, - CORBA_ULong length, - CORBA_Octet *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // OctetSeq(const OctetSeq&); - ~OctetSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - CORBA_Octet &operator[](CORBA_ULong index); - const CORBA_Octet &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - CORBA_Octet *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_OctetSeq; - - class StructSeq - { - public: - StructSeq(); - StructSeq(CORBA_ULong max); - StructSeq(CORBA_ULong max, - CORBA_ULong length, - PerfStruct *value, - CORBA_Boolean release = CORBA_B_FALSE - ); - // StructSeq(const StructSeq&); - ~StructSeq(); - CORBA_ULong maximum() const; - void length(CORBA_ULong); - CORBA_ULong length() const; - PerfStruct &operator[](CORBA_ULong index); - const PerfStruct &operator[](CORBA_ULong index) const; - private: - CORBA_ULong _maximum; - CORBA_ULong _length; - PerfStruct *_buffer; - CORBA_Boolean _release; - }; - static CORBA_TypeCode_ptr _tc_StructSeq; - - - // now the methods - virtual void sendShortSeq(const ShortSeq& ttcp_seq, CORBA_Environment &); - virtual void sendLongSeq(const LongSeq& ttcp_seq, CORBA_Environment &); - virtual void sendDoubleSeq(const DoubleSeq& ttcp_seq, CORBA_Environment &); - virtual void sendOctetSeq(const OctetSeq& ttcp_seq, CORBA_Environment &); - virtual void sendCharSeq(const CharSeq& ttcp_seq, CORBA_Environment &); - virtual void sendStructSeq(const StructSeq& ttcp_seq, CORBA_Environment &); - - virtual void start_timer(CORBA_Environment &); - virtual void stop_timer(CORBA_Environment &); - -protected: - ttcp_sequence() {} - ttcp_sequence(STUB_Object *refdata); - virtual ~ttcp_sequence() {} - -private: - ttcp_sequence(const ttcp_sequence &) {} - void operator=(const ttcp_sequence &) {} -}; - -#endif - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcpS.cpp b/TAO/IIOP/tests/Thruput_test/ttcpS.cpp deleted file mode 100644 index 33fb95c8bcd..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpS.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// $Id$ - -#include -#include "ttcpS.h" -#include "corba/orb.h" -#include "params.h" -#include "iiopobj.h" -#include "corba/optable.h" // for registering our methods -#include "corba/corbacom.h" - -TAO_Dynamic_Hash_OpTable tao_ttcp_sequence_optable(9); // 8 + 1 operations on our - // interface -// operation database -struct method_db -{ - CORBA_String opname; - TAO_Skeleton skel_ptr; -}; - -static const method_db ttcp_sequence_operations[] = { - {"_is_a", &_skel_ttcp_sequence::_ttcp_sequence_is_a_skel}, - { "sendShortSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendShortSeq_skel}, - { "sendLongSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendLongSeq_skel}, - { "sendDoubleSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendDoubleSeq_skel}, - { "sendOctetSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendOctetSeq_skel}, - { "sendCharSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendCharSeq_skel}, - { "sendStructSeq", &_skel_ttcp_sequence::_ttcp_sequence_sendStructSeq_skel}, - { "start_timer", &_skel_ttcp_sequence::_ttcp_sequence_start_timer_skel}, - { "stop_timer", &_skel_ttcp_sequence::_ttcp_sequence_stop_timer_skel}, - { 0, 0 } -}; - -// constructor -_skel_ttcp_sequence::_skel_ttcp_sequence(const char *obj_name) -{ - CORBA_String_var type_id = "IDL:ttcp_sequence:1.0"; // repository ID - IIOP_Object *data; // IIOP object - CORBA_BOA_ptr oa = TAO_OA_PARAMS::instance()->oa(); // underlying BOA - this->optable_ = &tao_ttcp_sequence_optable; // operation database - CORBA_Long i; - - // insert operation names into the operation table - for (i=0; i < 9; i++) - { - this->optable_->bind(ttcp_sequence_operations[i].opname, - ttcp_sequence_operations[i].skel_ptr); - } - - // setup an IIOP object - data = new IIOP_Object(type_id); - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - data->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name()); - data->profile.port = oa->get_addr().get_port_number(); - data->profile.object_key.length = ACE_OS::strlen(obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = new CORBA_Octet [(size_t)data->profile.object_key.length+1]; - ACE_OS::memcpy(data->profile.object_key.buffer, obj_name, - data->profile.object_key.length); // set the object key - this->set_parent(data); // store the IIOP obj reference with ourselves - this->sub_ = this; // set the most derived class to be ourselves - if (oa) oa->bind(data->profile.object_key, this);// register ourselves -} - -// skeleton sendShortSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendShortSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_ShortSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::ShortSeq *value = (ttcp_sequence::ShortSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendShortSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendLongSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendLongSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_LongSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::LongSeq *value = (ttcp_sequence::LongSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendLongSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendDoubleSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendDoubleSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_DoubleSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::DoubleSeq *value = (ttcp_sequence::DoubleSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendDoubleSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendOctetSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendOctetSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_OctetSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::OctetSeq *value = (ttcp_sequence::OctetSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendOctetSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendCharSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendCharSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_CharSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::CharSeq *value = (ttcp_sequence::CharSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendCharSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton sendStructSeq -void _skel_ttcp_sequence::_ttcp_sequence_sendStructSeq_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value(ttcp_sequence::_tc_StructSeq); - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - ttcp_sequence::StructSeq *value = (ttcp_sequence::StructSeq *)nv->value()->value(); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->sendStructSeq(*value, env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton start_timer -void _skel_ttcp_sequence::_ttcp_sequence_start_timer_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->start_timer(env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -// skeleton stop_timer -void _skel_ttcp_sequence::_ttcp_sequence_stop_timer_skel(CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env) -{ - CORBA_NVList_ptr nvlist; - ttcp_sequence_ptr impl; - - // now create a request and populate it with the typecodes - req.orb()->create_list (0, nvlist); - - // retrieve params - call the interpreter to interpret the parameters for us. - req.params(nvlist, env); - - // now invoke the implementation - impl = (ttcp_sequence_ptr)(obj->get_subclass()); - // now the magic of dynamic binding - impl->stop_timer(env); - - // result - NO result - CORBA_Any *any = new CORBA_Any(_tc_CORBA_Void, 0, CORBA_B_TRUE); - req.result(any, env); -} - -void _skel_ttcp_sequence::_ttcp_sequence_is_a_skel ( - CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env - ) -{ - CORBA_NVList_ptr nvlist; - CORBA_NamedValue_ptr nv; - CORBA_Any temp_value (_tc_CORBA_String); - char *type_id = "IDL:ttcp_sequence:1.0"; - - req.orb()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA_ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA_Boolean *retval; - CORBA_String value = *(CORBA_String *)nv->value ()->value (); - - cout << "object id = " << ((char *)value) << endl; - if (strcmp ((char *)value, (char *)type_id) == 0 - || strcmp ((char *)value, _tc_CORBA_Object->id(env)) == 0) - retval = new CORBA_Boolean (CORBA_B_TRUE); - else - retval = new CORBA_Boolean (CORBA_B_FALSE); - - CORBA_Any *any = - new CORBA_Any (_tc_CORBA_Boolean, retval, CORBA_B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - diff --git a/TAO/IIOP/tests/Thruput_test/ttcpS.h b/TAO/IIOP/tests/Thruput_test/ttcpS.h deleted file mode 100644 index 14ff95379e3..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcpS.h +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of TAO -***************************************************************************/ - -#ifndef TTCP_SEQUENCE_S_H -#define TTCP_SEQUENCE_S_H - -#include -#include - -#include "ttcpC.h" - - -class _skel_ttcp_sequence; -typedef _skel_ttcp_sequence *_skel_ttcp_sequence_ptr; -typedef _skel_ttcp_sequence *_skel_ttcp_sequence_ref; - -class _skel_ttcp_sequence: public ttcp_sequence -{ -public: - // pure virtual functions implemented by the implementation class - virtual void sendShortSeq(const ShortSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendLongSeq(const LongSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendDoubleSeq(const DoubleSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendOctetSeq(const OctetSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendCharSeq(const CharSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void sendStructSeq(const StructSeq& ttcp_seq, CORBA_Environment &) = 0; - virtual void start_timer(CORBA_Environment &) = 0; - virtual void stop_timer(CORBA_Environment &) = 0; - - // skeletons that do the upcall - static void _ttcp_sequence_is_a_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendShortSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendLongSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendDoubleSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendOctetSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendCharSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_sendStructSeq_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_start_timer_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); - static void _ttcp_sequence_stop_timer_skel (CORBA_ServerRequest &req, - CORBA_Object_ptr obj, - CORBA_Environment &env); -protected: - _skel_ttcp_sequence(const char *obj_name = 0); - virtual ~_skel_ttcp_sequence() {} -}; - -#endif - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_decl.h b/TAO/IIOP/tests/Thruput_test/ttcp_decl.h deleted file mode 100644 index 769e4bd2915..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_decl.h +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ttcpC.h" - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* struct itimerval */ -#include -#include -#include -#include -#include - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include -#endif - - -#if defined(SYSV) -#define bcopy(b1,b2,n) memcpy(b2,b1,n) -#define bzero(b1,n) memset(b1,0,n) -#include -#include -#endif - -#if defined(SUNOS54) -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 -#else -#include -#endif - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) -#define SEND_COMPOSITE ((unsigned long)(7)) - -/************** -// Prototypes -***************/ -void err (char *s); -void mes (char *s); -char *outfmt (double b); -//static void getrusage (int ignored, register struct rusage *ru); -static void gettimeofday (struct timeval *tp, struct timezone *zp); -void prep_timer (void); -double read_timer (char *str, int len); -static void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp); -static void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -static void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -static void psecs (long l, register char *cp); -void delay (int us); -int mread (int fd, register char *bufp, unsigned n); -int Nread (int fd, void *buf, int count); -int Nwrite (int fd, void *buf, int count); -void FillPattern(register char *cp, register int bufLen, unsigned long dt); -void PrintStats(); -int SetSocketBufferSize(int size, unsigned short isTrans); -int SetNoDelay(); -void ProcessArguments(int argc, char **argv, unsigned short isTrans); - -/* Global variables defined here as extern */ -extern int fromlen; -extern int domain; /* Default is to use Internet domain sockets. */ -extern char *domainname; /* Rendezvous address for UNIX domain sockets. */ -extern int fd; /* fd of network socket */ - -extern int buflen; /* length of buffer */ -extern char *buf; /* ptr to dynamic buffer */ -extern int nbuf; /* number of buffers to send in sinkmode */ - -extern int bufoffset; /* align buffer to this */ -extern int bufalign; /* modulo this */ - -extern int udp; /* 0 = tcp, !0 = udp */ -extern int options; /* socket options */ -extern int one; /* for 4.3 BSD style setsockopt() */ -extern short port; /* TCP port number */ -extern char *host; /* ptr to name of host */ -extern int trans; /* 0=receive, !0=transmit mode */ -extern int sinkmode; /* 0=normal I/O, !0=sink/source mode */ -extern int verbose; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -extern int nodelay; /* set TCP_NODELAY socket option */ -extern int b_flag; /* use mread() */ -extern int sockbufsize; /* socket buffer size to use */ -extern int new_line; /* This is a special flag */ -extern int write_to_file; /* indecates writing to file (default)*/ -extern char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern int touchdata; /* access data after reading */ - -extern struct hostent *addr; -extern int errno; -extern int optind; -extern char *optarg; -extern char *title; - -extern char stats[128]; -extern unsigned long srcDataSize; /* Total amount of source data */ -extern unsigned long nbytes; /* bytes on net */ -extern unsigned long numCalls; /* # of I/O system calls */ -extern double cput, realt; /* user, real time (seconds) */ -extern unsigned long dt; - -extern unsigned short isDone; - -/* declare struct variables for various message types */ -extern ttcp_sequence::ShortSeq *sseq; -extern ttcp_sequence::LongSeq *lseq; -extern ttcp_sequence::OctetSeq *oseq; -extern ttcp_sequence::DoubleSeq *dseq; -extern ttcp_sequence::CharSeq *cseq; -extern ttcp_sequence::StructSeq *Sseq; - -#endif diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp b/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp deleted file mode 100644 index d98fcd1b4b3..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_i.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" -#include - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i(const char *obj_name) - :_skel_ttcp_sequence(obj_name) -{ - this->nbytes_ = 0; - numCalls = 0; -} - - -void -ttcp_sequence_i::start_timer (CORBA_Environment &IT_env) -{ - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (CORBA_Environment &IT_env) -{ - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - ACE_Reactor::end_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -} - -void -ttcp_sequence_i::sendShortSeq(const ttcp_sequence::ShortSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Short); -} - -void -ttcp_sequence_i::sendLongSeq(const ttcp_sequence::LongSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq(const ttcp_sequence::OctetSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq(const ttcp_sequence::DoubleSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Double) ; -} - -void -ttcp_sequence_i::sendCharSeq(const ttcp_sequence::CharSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA_Char) ; -} - -void -ttcp_sequence_i::sendStructSeq(const ttcp_sequence::StructSeq& ttcp_seq, CORBA_Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(PerfStruct) ; -#ifdef DEBUG - // cout << "Bytes received so far = " << this->nbytes_ << endl; -#endif -} - - - - - - - - - diff --git a/TAO/IIOP/tests/Thruput_test/ttcp_i.h b/TAO/IIOP/tests/Thruput_test/ttcp_i.h deleted file mode 100644 index 71d2266e334..00000000000 --- a/TAO/IIOP/tests/Thruput_test/ttcp_i.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ttcp_i.h -// -// This header file provides facility to use it either as a BOA approach or as -// a TIE approach. -// -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcp_decl.h" -#include "ttcpS.h" - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) - - -class ttcp_sequence_i: public _skel_ttcp_sequence -{ -public: - ttcp_sequence_i(const char *obj_name = 0); - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA_Environment &IT_env); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA_Environment &IT_env); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (CORBA_Environment &IT_env); - virtual void stop_timer (CORBA_Environment &IT_env); - -private: - unsigned long nbytes_; -}; - -#endif // defined (TTCP_I_H) - diff --git a/TAO/IIOP/tests/Thruput_test/utils.cpp b/TAO/IIOP/tests/Thruput_test/utils.cpp deleted file mode 100644 index f1e30507799..00000000000 --- a/TAO/IIOP/tests/Thruput_test/utils.cpp +++ /dev/null @@ -1,561 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" - -int SetSocketBufferSize(int size, unsigned short isTrans) -{ - // go thru open file descriptors and check if its is a socket and - // if so, set its socket size to "size" - struct rlimit rlm; - memset(&rlm, 0, sizeof(struct rlimit)); - (void) getrlimit(RLIMIT_NOFILE, &rlm); - cout << "Total file descriptors = " << rlm.rlim_max << endl; - for (int i=3; i < rlm.rlim_max; i++){ - if (isTrans) - (void) setsockopt(i, SOL_SOCKET, SO_SNDBUF, - (char *) &size, sizeof(size)); - else - (void) setsockopt(i, SOL_SOCKET, SO_RCVBUF, - (char *) &size, sizeof(size)); - } - return 1; -} - -void -err (char *s) -{ - fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - perror (s); - fprintf (stderr, "errno=%d\n", errno); - exit (1); -} - -void -mes (char *s) -{ - fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -char * -outfmt (double b) -{ - static char obuf[50]; - switch (fmt) - { - case 'G': - sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -#if defined(SYSV) -/*ARGSUSED */ -static void -getrusage (int ignored, register struct rusage *ru) -{ - struct tms buf; - - times (&buf); - - /* Assumption: HZ <= 2147 (LONG_MAX/1000000) */ - ru->ru_stime.tv_sec = buf.tms_stime / HZ; - ru->ru_stime.tv_usec = ((buf.tms_stime % HZ) * 1000000) / HZ; - ru->ru_utime.tv_sec = buf.tms_utime / HZ; - ru->ru_utime.tv_usec = ((buf.tms_utime % HZ) * 1000000) / HZ; -} - -/*ARGSUSED */ -static void -gettimeofday (struct timeval *tp, struct timezone *zp) -{ - tp->tv_sec = time (0); - tp->tv_usec = 0; -} -#endif /* SYSV */ -/* - * P R E P _ T I M E R - */ -void -prep_timer () -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -double -read_timer (char *str, int len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -static void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -static void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -static void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -static void -psecs (long l, register char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - sprintf (cp, "%d%d", i / 10, i % 10); -} - -/* - * N R E A D - */ -int -Nread (int fd, void *buf, int count) -{ - struct sockaddr_in from; - int len = sizeof (from); - register int cnt; - if (udp) - { - cnt = recvfrom (fd, (char *) buf, count, 0, (struct sockaddr *) &from, &len); - numCalls++; - } - else - { - if (b_flag) - cnt = mread (fd, (char *) buf, count); /* fill buf */ - else - { - cnt = read (fd, buf, count); - numCalls++; - } - if (touchdata && cnt > 0) - { - register int c = cnt, sum; - register char *b = (char *) buf; - while (c--) - sum += *b++; - } - } - return (cnt); -} - - -/* - * N W R I T E - */ -int -Nwrite (int fd, void *buf, int count) -{ - return 0; -} - -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -/* - * M R E A D - * - * This function performs the function of a read(II) but will - * call read(II) multiple times in order to get the requested - * number of characters. This can be necessary because - * network connections don't deliver data with the same - * grouping as it is written with. Written by Robert S. Miles, BRL. - */ -int -mread (int fd, register char *bufp, unsigned n) -{ - register unsigned count = 0; - register int nread; - - do - { - nread = read (fd, bufp, n - count); - numCalls++; - if (nread < 0) - { - perror ("ttcp_mread"); - return (-1); - } - if (nread == 0) - return ((int) count); - count += (unsigned) nread; - bufp += nread; - } - while (count < n); - - return ((int) count); -} - -void -FillPattern (register char *cp, register int bufLen, unsigned long dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register long *SeqPtr = (long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA_Char *SeqPtr = (CORBA_Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register PerfStruct *SeqPtr = (PerfStruct *)cp; - register char c = 0; - num = bufLen/sizeof(PerfStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_OCTET: - default: - { - register CORBA_Octet *SeqPtr = (CORBA_Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA_Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} -void PrintStats() -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - -//#if defined (LM_RESULTS) - if (trans && (title != 0)) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - if (new_line) - fprintf (outFile, "\n -l %ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } -//#endif - - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} diff --git a/TAO/TAOACE.dsw b/TAO/TAOACE.dsw deleted file mode 100644 index 979417360d2..00000000000 --- a/TAO/TAOACE.dsw +++ /dev/null @@ -1,80 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "ACE dynamic library"=..\ace\ace_dll.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "TAO"=.\tao\TAO.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name ACE dynamic library - End Project Dependency -}}} - -############################################################################### - -Project: "orbsvcs"=.\orbsvcs\orbsvcs\orbsvcs.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name TAO - End Project Dependency - Begin Project Dependency - Project_Dep_Name ACE dynamic library - End Project Dependency - Begin Project Dependency - Project_Dep_Name tao_idl - End Project Dependency -}}} - -############################################################################### - -Project: "tao_idl"=.\TAO_IDL\tao_idl.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/TAO_IDL/be/be_union.cpp b/TAO/TAO_IDL/be/be_union.cpp deleted file mode 100644 index 8f42dc2f4bc..00000000000 --- a/TAO/TAO_IDL/be/be_union.cpp +++ /dev/null @@ -1,799 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union.cpp -// -// = DESCRIPTION -// Extension of class AST_Union that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -/* - * BE_Union - */ - -be_union::be_union (void) -{ -} - -be_union::be_union (AST_ConcreteType *dt, UTL_ScopedName *n, UTL_StrList *p) - : AST_Union (dt, n, p), - AST_Structure (AST_Decl::NT_union, n, p), - AST_Decl (AST_Decl::NT_union, n, p), - UTL_Scope (AST_Decl::NT_union), - member_count_ (-1), - default_index_ (-2) -{ -} - -// compute total number of members -int -be_union::compute_member_count (void) -{ - UTL_ScopeActiveIterator *si; // iterator - AST_Decl *d; // temp node - - this->member_count_ = 0; - - // if there are elements in this scope - if (this->nmembers () > 0) - { - // instantiate a scope iterator. - si = new UTL_ScopeActiveIterator (this, UTL_Scope::IK_decls); - - while (!(si->is_done ())) - { - // get the next AST decl node - d = si->item (); - this->member_count_++; - si->next (); - } // end of while - delete si; // free the iterator object - } - return 0; -} - -// compute total number of members -int -be_union::compute_default_index (void) -{ - UTL_ScopeActiveIterator *si; // iterator - AST_Decl *d; // temp node - be_union_branch *bub; // union branch node - int i = 0; // counter - - this->default_index_ = -1; // if not used at all, this is the value it will - // take - - // if there are elements in this scope - if (this->nmembers () > 0) - { - // instantiate a scope iterator. - si = new UTL_ScopeActiveIterator (this, UTL_Scope::IK_decls); - - while (!(si->is_done ())) - { - // get the next AST decl node - d = si->item (); - if (!d->imported ()) - { - bub = be_union_branch::narrow_from_decl (d); - if (bub->label ()->label_kind () == AST_UnionLabel::UL_default) - this->default_index_ = i; // zero based indexing - i++; - } - si->next (); - } // end of while - delete si; // free the iterator object - } - return 0; -} - -// return the member count -int -be_union::member_count (void) -{ - if (this->member_count_ == -1) - this->compute_member_count (); - - return this->member_count_; -} - -// return the default_index -int -be_union::default_index (void) -{ - if (this->default_index_ == -2) - this->compute_default_index (); - - return this->default_index_; -} - -// generate typecode. -// Typecode for union comprises the enumerated value followed by the -// encapsulation of the parameters - -// generate the _var definition for ourself -int -be_union::gen_var_defn (void) -{ - TAO_OutStream *ch; // output stream - TAO_NL nl; // end line - char namebuf [NAMEBUFSIZE]; // names - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (namebuf, "%s_var", this->local_name ()->get_string ()); - - // retrieve a singleton instance of the code generator - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - - ch = cg->client_header (); - - // generate the var definition (always in the client header). - // Depending upon the data type, there are some differences which we account - // for over here. - - ch->indent (); // start with whatever was our current indent level - *ch << "class " << idl_global->export_macro () - << " " << namebuf << nl; - *ch << "{" << nl; - *ch << "public:\n"; - ch->incr_indent (); - // default constr - *ch << namebuf << " (void); // default constructor" << nl; - // constr - *ch << namebuf << " (" << local_name () << " *);" << nl; - // copy constructor - *ch << namebuf << " (const " << namebuf << - " &); // copy constructor" << nl; - // destructor - *ch << "~" << namebuf << " (void); // destructor" << nl; - *ch << nl; - // assignment operator from a pointer - *ch << namebuf << " &operator= (" << local_name () << " *);" << nl; - // assignment from _var - *ch << namebuf << " &operator= (const " << namebuf << " &);" << nl; - - // arrow operator - *ch << local_name () << " *operator-> (void);" << nl; - *ch << "const " << local_name () << " *operator-> (void) const;" << nl; - *ch << nl; - - // other extra types (cast operators, [] operator, and others) - *ch << "operator const " << local_name () << " &() const;" << nl; - *ch << "operator " << local_name () << " &();" << nl; - *ch << "operator " << local_name () << " &() const;" << nl; - *ch << "// in, inout, out, _retn " << nl; - // the return types of in, out, inout, and _retn are based on the parameter - // passing rules and the base type - if (this->size_type () == be_decl::FIXED) - { - *ch << "const " << local_name () << " &in (void) const;" << nl; - *ch << local_name () << " &inout (void);" << nl; - *ch << local_name () << " &out (void);" << nl; - *ch << local_name () << " _retn (void);" << nl; - } - else - { - *ch << "const " << local_name () << " &in (void) const;" << nl; - *ch << local_name () << " &inout (void);" << nl; - *ch << local_name () << " *&out (void);" << nl; - *ch << local_name () << " *_retn (void);" << nl; - } - - // generate an additional member function that returns the underlying pointer - *ch << local_name () << " *ptr(void) const;\n"; - - *ch << "\n"; - ch->decr_indent (); - - // generate the private section - *ch << "private:\n"; - ch->incr_indent (); - *ch << local_name () << " *ptr_;\n"; - ch->decr_indent (); - *ch << "};\n\n"; - - return 0; -} - -// implementation of the _var class. All of these get generated in the inline -// file -int -be_union::gen_var_impl (void) -{ - TAO_OutStream *ci; // output stream - TAO_NL nl; // end line - char fname [NAMEBUFSIZE]; // to hold the full and - char lname [NAMEBUFSIZE]; // local _var names - - ACE_OS::memset (fname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (fname, "%s_var", this->fullname ()); - - ACE_OS::memset (lname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (lname, "%s_var", local_name ()->get_string ()); - - // retrieve a singleton instance of the code generator - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - - ci = cg->client_inline (); - - ci->indent (); // start with whatever was our current indent level - - *ci << "// *************************************************************" - << nl; - *ci << "// Inline operations for class " << fname << nl; - *ci << "// *************************************************************\n\n"; - - // default constr - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << - " (void) // default constructor" << nl; - *ci << " " << ": ptr_ (0)" << nl; - *ci << "{}\n\n"; - - // constr from a pointer - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << name () << " *p)" << nl; - *ci << " : ptr_ (p)" << nl; - *ci << "{}\n\n"; - - // copy constructor - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (const " << fname << - " &p) // copy constructor" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "if (p.ptr_)" << nl; - *ci << " this->ptr_ = new " << this->name () << "(*p.ptr_);" << nl; - *ci << "else" << nl; - *ci << " this->ptr_ = 0;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // destructor - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::~" << lname << " (void) // destructor" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "delete this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // assignment operator from a pointer - ci->indent (); - *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (" << name () << - " *p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "delete this->ptr_;" << nl; - *ci << "this->ptr_ = p;" << nl; - *ci << "return *this;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // assignment operator from _var - ci->indent (); - *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (const " << fname << - " &p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "if (this != &p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "delete this->ptr_;" << nl; - *ci << "this->ptr_ = new " << this->name () << " (*p.ptr_);\n"; - ci->decr_indent (); - *ci << "}" << nl; - *ci << "return *this;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // two arrow operators - ci->indent (); - *ci << "ACE_INLINE const " << this->name () << " *" << nl; - *ci << fname << "::operator-> (void) const" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << this->name () << " *" << nl; - *ci << fname << "::operator-> (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // other extra methods - 3 cast operator () - ci->indent (); - *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator const " << name () << - " &() const // cast" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator " << name () << " &() // cast " << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator " << name () << " &() const// cast " << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // in, inout, out, and _retn - ci->indent (); - *ci << "ACE_INLINE const " << name () << " &" << nl; - *ci << fname << "::in (void) const" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << name () << " &" << nl; - *ci << fname << "::inout (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // the out is handled differently based on our size type - ci->indent (); - if (this->size_type () == be_decl::VARIABLE) - { - *ci << "// mapping for variable size " << nl; - *ci << "ACE_INLINE " << name () << " *&" << nl; - *ci << fname << "::out (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "delete this->ptr_;" << nl; - *ci << "this->ptr_ = 0;" << nl; - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << name () << " *" << nl; - *ci << fname << "::_retn (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << this->name () << " *tmp = this->ptr_;" << nl; - *ci << "this->ptr_ = 0;" << nl; - *ci << "return tmp;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - } - else - { - *ci << "// mapping for fixed size " << nl; - *ci << "ACE_INLINE " << name () << " &" << nl; - *ci << fname << "::out (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - ci->indent (); - *ci << "ACE_INLINE " << name () << nl; - *ci << fname << "::_retn (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return *this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // the additional ptr () member function - ci->indent (); - *ci << "ACE_INLINE " << name () << " *" << nl; - *ci << fname << "::ptr (void) const" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - } - - return 0; -} - -// generate the _out definition -int -be_union::gen_out_defn (void) -{ - TAO_OutStream *ch; // output stream - TAO_NL nl; // end line - char namebuf [NAMEBUFSIZE]; // to hold the _out name - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (namebuf, "%s_out", local_name ()->get_string ()); - - // retrieve a singleton instance of the code generator - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - - ch = cg->client_header (); - - // generate the out definition (always in the client header) - ch->indent (); // start with whatever was our current indent level - - *ch << "class " << idl_global->export_macro () - << " " << namebuf << nl; - *ch << "{" << nl; - *ch << "public:\n"; - ch->incr_indent (); - - // No default constructor - - // constructor from a pointer - *ch << namebuf << " (" << local_name () << " *&);" << nl; - // constructor from a _var & - *ch << namebuf << " (" << local_name () << "_var &);" << nl; - // constructor from a _out & - *ch << namebuf << " (" << namebuf << " &);" << nl; - // assignment operator from a _out & - *ch << namebuf << " &operator= (" << namebuf << " &);" << nl; - // assignment operator from a pointer &, cast operator, ptr fn, operator - // -> and any other extra operators - // assignment - *ch << namebuf << " &operator= (" << local_name () << " *);" << nl; - // operator () - *ch << "operator " << local_name () << " *&();" << nl; - // ptr fn - *ch << local_name () << " *&ptr (void);" << nl; - // operator -> - *ch << local_name () << " *operator-> (void);" << nl; - - *ch << "\n"; - ch->decr_indent (); - *ch << "private:\n"; - ch->incr_indent (); - *ch << local_name () << " *&ptr_;" << nl; - *ch << "// assignment from T_var not allowed" << nl; - *ch << "void operator= (const " << local_name () << "_var &);\n"; - - ch->decr_indent (); - *ch << "};\n\n"; - return 0; -} - -int -be_union::gen_out_impl (void) -{ - TAO_OutStream *ci; // output stream - TAO_NL nl; // end line - char fname [NAMEBUFSIZE]; // to hold the full and - char lname [NAMEBUFSIZE]; // local _out names - - ACE_OS::memset (fname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (fname, "%s_out", this->fullname ()); - - ACE_OS::memset (lname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (lname, "%s_out", local_name ()->get_string ()); - - // retrieve a singleton instance of the code generator - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - - ci = cg->client_inline (); - - // generate the var implementation in the inline file - - ci->indent (); // start with whatever was our current indent level - - *ci << "// *************************************************************" - << nl; - *ci << "// Inline operations for class " << fname << nl; - *ci << "// *************************************************************\n\n"; - - // constr from a pointer - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << name () << " *&p)" << nl; - *ci << " : ptr_ (p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "this->ptr_ = 0;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // constructor from _var & - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << this->name () << - "_var &p) // constructor from _var" << nl; - *ci << " : ptr_ (p.out ())" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "delete this->ptr_;" << nl; - *ci << "this->ptr_ = 0;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // copy constructor - ci->indent (); - *ci << "ACE_INLINE" << nl; - *ci << fname << "::" << lname << " (" << fname << - " &p) // copy constructor" << nl; - *ci << " : ptr_ (p.ptr_)" << nl; - *ci << "{}\n\n"; - - // assignment operator from _out & - ci->indent (); - *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (" << fname << - " &p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "this->ptr_ = p.ptr_;" << nl; - *ci << "return *this;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // assignment from _var is not allowed by a private declaration - - // assignment operator from pointer - ci->indent (); - *ci << "ACE_INLINE " << fname << " &" << nl; - *ci << fname << "::operator= (" << this->name () << - " *p)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "this->ptr_ = p;" << nl; - *ci << "return *this;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // other extra methods - cast operator () - ci->indent (); - *ci << "ACE_INLINE " << nl; - *ci << fname << "::operator " << this->name () << - " *&() // cast" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // ptr function - ci->indent (); - *ci << "ACE_INLINE " << this->name () << " *&" << nl; - *ci << fname << "::ptr (void) // ptr" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - // operator -> - ci->indent (); - *ci << "ACE_INLINE " << this->name () << " *" << nl; - *ci << fname << "::operator-> (void)" << nl; - *ci << "{\n"; - ci->incr_indent (); - *ci << "return this->ptr_;\n"; - ci->decr_indent (); - *ci << "}\n\n"; - - - return 0; -} - -int -be_union::gen_typecode (void) -{ - TAO_OutStream *cs; // output stream - TAO_NL nl; // end line - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - - cs = cg->client_stubs (); - cs->indent (); // start from whatever indentation level we were at - - *cs << "CORBA::tk_union, // typecode kind" << nl; - *cs << this->tc_encap_len () << ", // encapsulation length\n"; - // now emit the encapsulation - return this->gen_encapsulation (); -} - -// generate encapsulation. -// An encapsulation for ourselves will be necessary when we are part of some -// other IDL type and a typecode for that other type is being generated. This -// will comprise our typecode kind. IDL types with parameters will additionally -// have the encapsulation length and the entire typecode description - -int -be_union::gen_encapsulation (void) -{ - TAO_OutStream *cs; // output stream - TAO_NL nl; // end line - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - long i, arrlen; - long *arr; // an array holding string names converted to array of longs - be_type *discrim; - - cs = cg->client_stubs (); - cs->indent (); // start from whatever indentation level we were at - - *cs << "TAO_ENCAP_BYTE_ORDER, // byte order" << nl; - // generate repoID - *cs << (ACE_OS::strlen (this->repoID ())+1) << ", "; - (void)this->tc_name2long (this->repoID (), arr, arrlen); - for (i=0; i < arrlen; i++) - { - cs->print ("ACE_NTOHL (0x%x), ", arr[i]); - } - *cs << " // repository ID = " << this->repoID () << nl; - // generate name - *cs << (ACE_OS::strlen (this->local_name ()->get_string ())+1) << ", "; - (void)this->tc_name2long(this->local_name ()->get_string (), arr, arrlen); - for (i=0; i < arrlen; i++) - { - cs->print ("ACE_NTOHL (0x%x), ", arr[i]); - } - *cs << " // name = " << this->local_name () << ",\n"; - - // generate typecode for discriminant - discrim = be_type::narrow_from_decl (this->disc_type ()); - if (discrim->gen_typecode () == -1) - { - ACE_ERROR ((LM_ERROR, "be_union: cannot generate typecode for discriminant\n")); - return -1; - } - - // generate the default used flag - cs->indent (); - *cs << this->default_index () << ", // default used index" << nl; - // generate the member count - *cs << this->member_count () << ", // member count\n"; - cs->incr_indent (0); - // hand over to the scope to generate the typecode for elements - if (be_scope::gen_encapsulation () == -1) - { - ACE_ERROR ((LM_ERROR, "be_union: cannot generate code for members\n")); - return -1; - } - cs->decr_indent (0); - return 0; -} - -// compute typecode size -long -be_union::tc_size (void) -{ - // 4 bytes for enumeration, 4 bytes for storing encap length val, followed by the - // actual encapsulation length - return 4 + 4 + this->tc_encap_len (); -} - -long -be_union::tc_encap_len (void) -{ - if (this->encap_len_ == -1) // not computed yet - { - long slen; - be_type *discrim; - - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (slen); - - this->encap_len_ = 4; // holds the byte order flag - - this->encap_len_ += this->repoID_encap_len (); // for repoID - - // do the same thing for the local name - this->encap_len_ += this->name_encap_len (); // for name - - // add encapsulation size of discriminant typecode - discrim = be_type::narrow_from_decl (this->disc_type ()); - this->encap_len_ += discrim->tc_size (); - - this->encap_len_ += 4; // to hold the "default used" flag - this->encap_len_ += 4; // to hold the member count - - // compute encap length for members - this->encap_len_ += be_scope::tc_encap_len (); - } - return this->encap_len_; -} - -// compute the size type of the node in question -int -be_union::compute_size_type (void) -{ - UTL_ScopeActiveIterator *si; - AST_Decl *d; - be_decl *bd; - - if (this->nmembers () > 0) - { - // if there are elements in this scope - - si = new UTL_ScopeActiveIterator (this, UTL_Scope::IK_decls); - // instantiate a scope iterator. - - while (!(si->is_done ())) - { - // get the next AST decl node - d = si->item (); - bd = be_decl::narrow_from_decl (d); - if (bd != 0) - { - // our sizetype depends on the sizetype of our members. Although - // previous value of sizetype may get overwritten, we are - // guaranteed by the "size_type" call that once the value reached - // be_decl::VARIABLE, nothing else can overwrite it. - this->size_type (bd->size_type ()); - } - else - { - ACE_DEBUG ((LM_DEBUG, - "WARNING (%N:%l) be_structure::compute_size_type - " - "narrow_from_decl returned 0\n")); - } - si->next (); - } // end of while - delete si; // free the iterator object - } - return 0; -} - -int be_union::write_as_return (TAO_OutStream *stream, - be_type *type) -{ - *stream << type->name (); - if (this->size_type () == be_decl::VARIABLE) - { - *stream << " *"; - } - return 0; -} - -int -be_union::accept (be_visitor *visitor) -{ - return visitor->visit_union (this); -} - -// Narrowing -IMPL_NARROW_METHODS3 (be_union, AST_Union, be_scope, be_type) -IMPL_NARROW_FROM_DECL (be_union) -IMPL_NARROW_FROM_SCOPE (be_union) diff --git a/TAO/TAO_IDL/be/be_union_branch.cpp b/TAO/TAO_IDL/be/be_union_branch.cpp deleted file mode 100644 index 97cd2f13f17..00000000000 --- a/TAO/TAO_IDL/be/be_union_branch.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union_branch.cpp -// -// = DESCRIPTION -// Extension of class AST_UnionBranch that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -/* - * BE_UnionBranch - */ -be_union_branch::be_union_branch (void) -{ -} - -be_union_branch::be_union_branch (AST_UnionLabel *lab, AST_Type *ft, - UTL_ScopedName *n, UTL_StrList *p) - : AST_UnionBranch (lab, ft, n, p), - AST_Field (AST_Decl::NT_union_branch, ft, n, p), - AST_Decl (AST_Decl::NT_union_branch, n, p) -{ -} - -int -be_union_branch::gen_encapsulation (void) -{ - TAO_OutStream *cs; // output stream - TAO_NL nl; // end line - TAO_CodeGen *cg = TAO_CODEGEN::instance (); - be_type *bt; // our type node - long i, arrlen; - long *arr; // an array holding string names converted to array of longs - - cs = cg->client_stubs (); - cs->indent (); // start from whatever indentation level we were at - - // emit the case label value - *cs << this->label ()->label_val (); - *cs << ", // union case label (evaluated)" << nl; - // emit name - *cs << (ACE_OS::strlen (this->local_name ()->get_string ())+1) << ", "; - (void)this->tc_name2long(this->local_name ()->get_string (), arr, arrlen); - for (i=0; i < arrlen; i++) - { - cs->print ("ACE_NTOHL (0x%x), ", arr[i]); - } - *cs << " // name = " << this->local_name () << "\n"; - - // hand over code generation to our type node - bt = be_type::narrow_from_decl (this->field_type ()); - if (!bt) - return -1; - return bt->gen_typecode (); -} - -long -be_union_branch::tc_encap_len (void) -{ - if (this->encap_len_ == -1) - { - be_type *bt; - - this->encap_len_ = 4; // case label; - this->encap_len_ += this->name_encap_len (); // for name - bt = be_type::narrow_from_decl (this->field_type ()); - if (!bt) - { - ACE_ERROR ((LM_ERROR, "be_union_branch: bad field type\n")); - return -1; - } - this->encap_len_ += bt->tc_size (); // note that we add the typecode size - // of the type - } - return this->encap_len_; -} - -// compute the size type of the node in question -int -be_union_branch::compute_size_type (void) -{ - be_type *type = be_type::narrow_from_decl (this->field_type ()); - if (!type) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_field::compute_size_type - " - "bad field type\n"), -1); - } - - // our size type is the same as our type - this->size_type (type->size_type ()); // as a side effect will also update - // the size type of parent - return 0; -} - -int -be_union_branch::accept (be_visitor *visitor) -{ - return visitor->visit_union_branch (this); -} - -// Narrowing -IMPL_NARROW_METHODS2 (be_union_branch, AST_UnionBranch, be_decl) -IMPL_NARROW_FROM_DECL (be_union_branch) diff --git a/TAO/TAO_IDL/be/be_union_label.cpp b/TAO/TAO_IDL/be/be_union_label.cpp deleted file mode 100644 index 64d1f74893e..00000000000 --- a/TAO/TAO_IDL/be/be_union_label.cpp +++ /dev/null @@ -1,25 +0,0 @@ -// -// $Id$ -// -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -/* - * BE_UnionLabel - */ -be_union_label::be_union_label() -{ -} -be_union_label::be_union_label(AST_UnionLabel::UnionLabel ul, - AST_Expression *v) - : AST_UnionLabel(ul, v) -{ -} - -int -be_union_label::accept (be_visitor *visitor) -{ - return visitor->visit_union_label (this); -} - diff --git a/TAO/TAO_IDL/be/be_visitor.cpp b/TAO/TAO_IDL/be/be_visitor.cpp deleted file mode 100644 index 38e10c4eb16..00000000000 --- a/TAO/TAO_IDL/be/be_visitor.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor.h -// -// = DESCRIPTION -// Abstract class for back end visitors. -// -// = NOTES -// This is not a pure abstract class -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor.h" - -be_visitor::be_visitor (void) -{ -} - -be_visitor::~be_visitor (void) -{ -} - -// all the visit methods. Concrete visitors will selectively override each one -int be_visitor::visit_decl (be_decl *) -{ - return 0; -} - -int be_visitor::visit_scope (be_scope *node) -{ - return 0; -} - -int be_visitor::visit_type (be_type *) -{ - return 0; -} - -int be_visitor::visit_predefined_type (be_predefined_type *) -{ - return 0; -} - -int be_visitor::visit_module (be_module *) -{ - return 0; -} - -int be_visitor::visit_interface (be_interface *) -{ - return 0; -} - -int be_visitor::visit_interface_fwd (be_interface_fwd *) -{ - return 0; -} - -int be_visitor::visit_structure (be_structure *) -{ - return 0; -} - -int be_visitor::visit_exception (be_exception *) -{ - return 0; -} - -int be_visitor::visit_expression (be_expression *) -{ - return 0; -} - -int be_visitor::visit_enum (be_enum *) -{ - return 0; -} - -int be_visitor::visit_operation (be_operation *) -{ - return 0; -} - -int be_visitor::visit_field (be_field *) -{ - return 0; -} - -int be_visitor::visit_argument (be_argument *) -{ - return 0; -} - -int be_visitor::visit_attribute (be_attribute *) -{ - return 0; -} - -int be_visitor::visit_union (be_union *) -{ - return 0; -} - -int be_visitor::visit_union_branch (be_union_branch *) -{ - return 0; -} - -int be_visitor::visit_union_label (be_union_label *) -{ - return 0; -} - -int be_visitor::visit_constant (be_constant *) -{ - return 0; -} - -int be_visitor::visit_enum_val (be_enum_val *) -{ - return 0; -} - -int be_visitor::visit_array (be_array *) -{ - return 0; -} - -int be_visitor::visit_sequence (be_sequence *) -{ - return 0; -} - -int be_visitor::visit_string (be_string *) -{ - return 0; -} - -int be_visitor::visit_typedef (be_typedef *) -{ - return 0; -} - -int be_visitor::visit_root (be_root *) -{ - return 0; -} - -int be_visitor::visit_native (be_native *) -{ - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument.cpp b/TAO/TAO_IDL/be/be_visitor_argument.cpp deleted file mode 100644 index 81d9ddb3b7d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_args.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Argument -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// include all the individual files -#include "be_visitor_argument/arglist.cpp" -#include "be_visitor_argument/argument.cpp" -#include "be_visitor_argument/docall_cs.cpp" -#include "be_visitor_argument/marshal_ss.cpp" -#include "be_visitor_argument/post_docall_cs.cpp" -#include "be_visitor_argument/post_marshal_ss.cpp" -#include "be_visitor_argument/post_upcall_ss.cpp" -#include "be_visitor_argument/pre_docall_cs.cpp" -#include "be_visitor_argument/pre_upcall_ss.cpp" -#include "be_visitor_argument/upcall_ss.cpp" -#include "be_visitor_argument/vardecl_ss.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp deleted file mode 100644 index 6e4b7d94f2c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp +++ /dev/null @@ -1,311 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// arglist.cpp -// -// = DESCRIPTION -// Visitor that generates the parameters in an Operation signature -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************ -// be_visitor_args_arglist for parameter list in method declarations and -// definitions -// ************************************************************ - -be_visitor_args_arglist::be_visitor_args_arglist (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_arglist::~be_visitor_args_arglist (void) -{ -} - -int be_visitor_args_arglist::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_arglist::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - os->indent (); // start with current indentation level - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_arglist::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - *os << " " << node->local_name () << ",\n"; - return 0; -} - -int be_visitor_args_arglist::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const " << this->type_name (node); - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node); - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node); - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node, "_ptr"); - break; - case AST_Argument::dir_INOUT: // inout - *os << this->type_name (node, "_ptr") << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node, "_ptr"); - break; - case AST_Argument::dir_INOUT: // inout - *os << this->type_name (node, "_ptr") << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_native (be_native *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node); - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node) << " &"; - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const " << this->type_name (node) << " &"; - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node, "_ptr"); - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node, "_ptr") << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << this->type_name (node); - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_arglist::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const " << this->type_name (node) << " &"; - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const char *"; - break; - case AST_Argument::dir_INOUT: - *os << "char *&"; - break; - case AST_Argument::dir_OUT: - *os << "CORBA::String_out"; - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const " << this->type_name (node) << " &"; - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - *os << "const " << this->type_name (node) << " &"; - break; - case AST_Argument::dir_INOUT: - *os << this->type_name (node) << " &"; - break; - case AST_Argument::dir_OUT: - *os << this->type_name (node, "_out"); - break; - } - return 0; -} - -int be_visitor_args_arglist::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_arglist::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp b/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp deleted file mode 100644 index 319f739469a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/argument.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// argument.cpp -// -// = DESCRIPTION -// generic visitor for Argument node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -be_visitor_args::be_visitor_args (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_args::~be_visitor_args (void) -{ -} - -int be_visitor_args::visit_argument (be_argument *node) -{ - return -1; -} - -// helper that returns the type name either as a nested type name (for header -// files) or as a fully scoped name. In addition, we make sure that if the type -// is an alias, we use that name -const char * -be_visitor_args::type_name (be_type *node, const char *suffix) -{ - static char namebuf [NAMEBUFSIZE]; - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - - be_type *bt; // type to use - - // use the typedefed name if that is the one used in the IDL defn - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // generate the NESTED_CLASS macro i.e., a relative path name to satisfy the - // MSVC++ compiler - switch (this->ctx_->stream ()->stream_type ()) - { - case TAO_OutStream::TAO_CLI_HDR: - ACE_OS::sprintf (namebuf, "%s", bt->nested_type_name - (this->ctx_->scope (), suffix)); - break; - default: // fullname for all other cases - ACE_OS::sprintf (namebuf, "%s", bt->fullname ()); - if (suffix) - ACE_OS::strcat (namebuf, suffix); - } - - return namebuf; -} - -// helper that returns the direction type of the argument -AST_Argument::Direction -be_visitor_args::direction (void) -{ - // grab the argument node. We know that our context has stored the right - // argument node - be_argument *arg = this->ctx_->be_node_as_argument (); - - ACE_ASSERT (arg != 0); - return arg->direction (); -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/docall_cs.cpp deleted file mode 100644 index ef5d0b8b70c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/docall_cs.cpp +++ /dev/null @@ -1,305 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// docall_cs.cpp -// -// = DESCRIPTION -// Visitor generating the code that passes arguments to the do_static_call -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// **************************************************************************** -// visitor for argument passing to do_static_call. The do_static_call method takes a variable -// number of parameters. The total number of parameters is determined by the -// "calldata" parameter that must be passed before the variable list -// starts. Each argument to the do_static_call is considered to be of type "void *". -// Hence we pass the address of each argument. The case for _out is a bit -// tricky where we must first retrieve the pointer, allocate memory and pass it -// to do_static_call. This is done in the "pre_do_static_call" processing. -// **************************************************************************** - -be_visitor_args_docall_cs::be_visitor_args_docall_cs (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_docall_cs::~be_visitor_args_docall_cs (void) -{ -} - -int be_visitor_args_docall_cs::visit_argument (be_argument *node) -{ - this->ctx_->node (node); // save the argument node - - // retrieve the type of the argument - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_docall_cs::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_docall_cs::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_docall_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << arg->local_name (); - break; - case AST_Argument::dir_OUT: - // pass reference to the pointer to slice - *os << "_tao_base_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - // pass the address. Storage is already allocated - *os << "&" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << "&_tao_base_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << "&_tao_base_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get argument node - - os->indent (); - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - *os << "_tao_base_" << arg->local_name (); - break; - } // end switch direction - } // end of if any - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., - // CORBA::Object, - // CORBA::TypeCode - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - *os << "&_tao_base_" << arg->local_name (); - break; - } // end switch direction - } // end else if pseudo - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << "&" << arg->local_name (); - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_docall_cs::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - *os << "_tao_base_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - *os << "&_tao_base_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - { - // check if the size type is VARIABLE - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_base_" << arg->local_name (); - else - *os << "&" << arg->local_name (); - } - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - { - // check if the size type is VARIABLE - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_base_" << arg->local_name (); - else - *os << "&" << arg->local_name (); - } - break; - } - return 0; -} - -int be_visitor_args_docall_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_docall_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp deleted file mode 100644 index 3aa07cd6329..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp +++ /dev/null @@ -1,295 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// marshal_ss.cpp -// -// = DESCRIPTION -// Visitor that generates code that passes the argument variable to the -// marshal operations. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// Visitor to generate code for passing argument to the marshal/demarshal -// routines -// ************************************************************************ - -be_visitor_args_marshal_ss::be_visitor_args_marshal_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_marshal_ss::~be_visitor_args_marshal_ss (void) -{ -} - -int be_visitor_args_marshal_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_marshal_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_marshal_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_marshal_ss::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "_tao_var_" << arg->local_name () << ".ptr ()"; - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << "&_tao_base_ptr_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << "&_tao_base_ptr_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "_tao_ptr_" << arg->local_name (); - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << "&_tao_ptr_" << arg->local_name (); - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_marshal_ss::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "_tao_ptr_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "&_tao_ptr_" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_ptr_" << arg->local_name (); - else - *os << "&" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "&" << arg->local_name (); - break; - case AST_Argument::dir_OUT: - os->indent (); - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_ptr_" << arg->local_name (); - else - *os << "&" << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_marshal_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_marshal_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_docall_cs.cpp deleted file mode 100644 index 554cfafa9b6..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/post_docall_cs.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_docall_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for post-processing of arguments following a -// do_static_call -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************* -// visitor for argument to do any pre docall processing. Not all types need -// this. Only those that have an _out type need this. In addition, interfaces -// need it because we ned to convert from the interface type to the base Object -// type and vice versa. -// ************************************************************************* - -be_visitor_args_post_docall_cs::be_visitor_args_post_docall_cs -(be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_post_docall_cs::~be_visitor_args_post_docall_cs (void) -{ -} - -int -be_visitor_args_post_docall_cs::visit_argument (be_argument *node) -{ - this->ctx_->node (node); // save the argument node - - // retrieve the type of the argument - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_docall_cs::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_docall_cs::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int -be_visitor_args_post_docall_cs::visit_interface (be_interface *node) -{ - // we must narrow the out object reference to the appropriate type - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - { - os->indent (); - // assign the narrowed obj reference - *os << arg->local_name () << " = " << node->name () - << "::_narrow (_tao_base_" << arg->local_name () - << ", _tao_environment);" << be_nl; - *os << "CORBA::release (_tao_base_" << arg->local_name () - << ");\n"; - } - break; - } - return 0; -} - -int -be_visitor_args_post_docall_cs::visit_interface_fwd (be_interface_fwd *node) -{ - // we must narrow the out object reference to the appropriate type - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - { - os->indent (); - // assign the narrowed obj reference - *os << arg->local_name () << " = " << node->name () - << "::_narrow (_tao_base_" << arg->local_name () - << ", _tao_environment);" << be_nl; - *os << "CORBA::release (_tao_base_" << arg->local_name () - << ");\n"; - } - break; - } - return 0; -} - -int -be_visitor_args_post_docall_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_docall_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp deleted file mode 100644 index 939baacd4b2..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_marshal_ss.cpp -// -// = DESCRIPTION -// Visitor generating code that does post-processing of arguments following -// any marshaling. This involves any cleanup. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// visitor for doing any post-processing after the marshaling is done -// ************************************************************************ - -be_visitor_args_post_marshal_ss::be_visitor_args_post_marshal_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_post_marshal_ss::~be_visitor_args_post_marshal_ss (void) -{ -} - -int be_visitor_args_post_marshal_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_marshal_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_marshal_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: // inout - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: // inout - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_marshal_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_marshal_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp deleted file mode 100644 index 4c520ca6c60..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/post_upcall_ss.cpp +++ /dev/null @@ -1,270 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_upcall_ss.cpp -// -// = DESCRIPTION -// Visitor generating code to do post-processing of arguments following an -// upcall. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// visitor for doing any post-processing after the upcall is made -// ************************************************************************ - -be_visitor_args_post_upcall_ss::be_visitor_args_post_upcall_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_post_upcall_ss::~be_visitor_args_post_upcall_ss (void) -{ -} - -int be_visitor_args_post_upcall_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_upcall_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_upcall_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: // inout - os->indent (); - *os << "_tao_base_ptr_" << arg->local_name () - << " = " << arg->local_name () << ".in ();\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "_tao_base_ptr_" << arg->local_name () << " = _tao_var_" - << arg->local_name () << ".in ();\n"; - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: // inout - os->indent (); - *os << "_tao_base_ptr_" << arg->local_name () << " = " - << arg->local_name () << ".in ();\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "_tao_base_ptr_" << arg->local_name () << " = _tao_var_" - << arg->local_name () << ".in ();\n"; - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_post_upcall_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_post_upcall_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/pre_docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/pre_docall_cs.cpp deleted file mode 100644 index 098bd5ae403..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/pre_docall_cs.cpp +++ /dev/null @@ -1,389 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// pre_docall_cs.cpp -// -// = DESCRIPTION -// Visitor that generates code (if any) for pre-processing prior to call to -// do_static_call in the client stub -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************* -// visitor for argument to do any pre docall processing. Not all types need -// this. Only those that have an _out type need this. In addition, interfaces -// need it because we ned to convert from the interface type to the base Object -// type and vice versa. -// ************************************************************************* - -be_visitor_args_pre_docall_cs::be_visitor_args_pre_docall_cs -(be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_pre_docall_cs::~be_visitor_args_pre_docall_cs (void) -{ -} - -int -be_visitor_args_pre_docall_cs::void_return_type (void) -{ - // is the operation return type void? - be_argument *arg = this->ctx_->be_node_as_argument (); - ACE_ASSERT (arg != 0); - be_operation *op = be_operation::narrow_from_scope (arg->defined_in ()); - ACE_ASSERT (arg != 0); - - be_type *bt = be_type::narrow_from_decl (op->return_type ()); - if (bt->node_type () == AST_Decl::NT_pre_defined - && (be_predefined_type::narrow_from_decl (bt)->pt () - == AST_PredefinedType::PT_void)) - return 1; - else - return 0; -} - -int be_visitor_args_pre_docall_cs::visit_argument (be_argument *node) -{ - this->ctx_->node (node); // save the argument node - - // retrieve the type of the argument - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_docall_cs::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_docall_cs::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_slice *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();" << be_nl; - if (!this->void_return_type ()) - { - *os << "ACE_ALLOCATOR_RETURN (_tao_base_" << arg->local_name () - << ", " << bt->name () << "_alloc (), _tao_retval);\n"; - } - else - { - *os << "ACE_ALLOCATOR (_tao_base_" << arg->local_name () - << ", " << bt->name () << "_alloc ());\n"; - } - break; - default: - break; - } - return 0; - -} - -int -be_visitor_args_pre_docall_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "CORBA::Object_ptr _tao_base_" << arg->local_name () - << " = " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "CORBA::Object_ptr _tao_base_" << arg->local_name () << ";\n"; - break; - default: - break; - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "CORBA::Object_ptr _tao_base_" << arg->local_name () - << " = " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "CORBA::Object_ptr _tao_base_" << arg->local_name () << ";\n"; - break; - default: - break; - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // pre do_static_call processing is valid only for pseudo objects and for Any - switch (node->pt ()) - { - case AST_PredefinedType::PT_pseudo: - { - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_ptr &_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();\n"; - break; - default: - break; - } - } - break; - case AST_PredefinedType::PT_any: - { - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << " *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();" << be_nl; - if (!this->void_return_type ()) - { - *os << "ACE_NEW_RETURN (_tao_base_" << arg->local_name () - << ", CORBA::Any, _tao_retval);\n"; - } - else - { - *os << "ACE_NEW (_tao_base_" << arg->local_name () - << ", CORBA::Any);\n"; - } - break; - default: - break; - } - } - break; - default: - break; - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - // caller must have allocated the pointer - os->indent (); - *os << bt->name () << " *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();" << be_nl; - if (!this->void_return_type ()) - { - *os << "ACE_NEW_RETURN (_tao_base_" << arg->local_name () - << ", " << bt->name () << ", _tao_retval);\n"; - } - else - { - *os << "ACE_NEW (_tao_base_" << arg->local_name () - << ", " << bt->name () << ");\n"; - } - break; - default: - break; - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - // caller should have allocated the pointer - os->indent (); - *os << "char *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();\n"; - break; - default: - break; - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (node->size_type () == be_type::VARIABLE) - { - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - // caller must have allocated the pointer - os->indent (); - *os << bt->name () << " *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();" << be_nl; - if (!this->void_return_type ()) - { - *os << "ACE_NEW_RETURN (_tao_base_" << arg->local_name () - << ", " << bt->name () << ", _tao_retval);\n"; - } - else - { - *os << "ACE_NEW (_tao_base_" << arg->local_name () - << ", " << bt->name () << ");\n"; - } - break; - default: - break; - } - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (node->size_type () == be_type::VARIABLE) - { - switch (this->direction ()) - { - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << " *&_tao_base_" << arg->local_name () - << " = " << arg->local_name () << ".ptr ();" << be_nl; - if (!this->void_return_type ()) - { - *os << "ACE_NEW_RETURN (_tao_base_" << arg->local_name () - << ", " << bt->name () << ", _tao_retval);\n"; - } - else - { - *os << "ACE_NEW (_tao_base_" << arg->local_name () - << ", " << bt->name () << ");\n"; - } - break; - default: - break; - } - } - return 0; -} - -int -be_visitor_args_pre_docall_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_docall_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/pre_upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/pre_upcall_ss.cpp deleted file mode 100644 index ddd0e822105..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/pre_upcall_ss.cpp +++ /dev/null @@ -1,266 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// pre_upcall_ss.cpp -// -// = DESCRIPTION -// Visitor that generates any pre-processing of arguments prior to making -// the upcall (in the skeleton). -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// visitor for passing arguments to the upcall -// ************************************************************************ - -be_visitor_args_pre_upcall_ss::be_visitor_args_pre_upcall_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_pre_upcall_ss::~be_visitor_args_pre_upcall_ss (void) -{ -} - -int be_visitor_args_pre_upcall_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_upcall_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_upcall_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: // inout - os->indent (); - *os << arg->local_name () << " = " << node->name () - << "::_narrow (_tao_base_var_" << arg->local_name () - << ".in (), _tao_environment);\n"; - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: // inout - os->indent (); - *os << arg->local_name () << " = " << node->name () - << "::_narrow (_tao_base_var_" << arg->local_name () - << ".in (), _tao_environment);\n"; - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - break; - case AST_Argument::dir_INOUT: - break; - case AST_Argument::dir_OUT: - break; - } - return 0; -} - -int be_visitor_args_pre_upcall_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_pre_upcall_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp deleted file mode 100644 index 43f27735449..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp +++ /dev/null @@ -1,306 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// upcall_ss.cpp -// -// = DESCRIPTION -// Visitor that generates code that passes argument variables to the -// upcall. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// visitor for passing arguments to the upcall -// ************************************************************************ - -be_visitor_args_upcall_ss::be_visitor_args_upcall_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_upcall_ss::~be_visitor_args_upcall_ss (void) -{ -} - -int be_visitor_args_upcall_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_upcall_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_upcall_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_upcall_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".in ()"; - break; - case AST_Argument::dir_INOUT: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".inout ()"; - break; - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".in ()"; - break; - case AST_Argument::dir_INOUT: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".inout ()"; - break; - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".in ()"; - break; - case AST_Argument::dir_INOUT: - if (this->ctx_->state () - == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS) - *os << arg->local_name (); - else - *os << arg->local_name () << ".inout ()"; - break; - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_upcall_ss::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get the stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - os->indent (); - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - *os << arg->local_name (); - break; - } - return 0; -} - -int be_visitor_args_upcall_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_upcall_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp deleted file mode 100644 index caa464a531f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp +++ /dev/null @@ -1,422 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// vardecl_ss.cpp -// -// = DESCRIPTION -// Visitor that generates the variable declaration in the skeleton -// corresponding to the Argument node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "be.h" -#include "be_visitor_argument.h" - -// ************************************************************************ -// Visitor to generate code for argument variable declaration -// ************************************************************************ - -be_visitor_args_vardecl_ss::be_visitor_args_vardecl_ss (be_visitor_context *ctx) - : be_visitor_args (ctx) -{ -} - -be_visitor_args_vardecl_ss::~be_visitor_args_vardecl_ss (void) -{ -} - -int be_visitor_args_vardecl_ss::visit_argument (be_argument *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_vardecl_ss::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_vardecl_ss::" - "visit_argument - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_args_vardecl_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - if (node->size_type () == be_type::VARIABLE) - { - *os << bt->name () << "_var _tao_hivar_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << " *&_tao_ptr_" << arg->local_name () - << " = _tao_var_" << arg->local_name () << ".out ();" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - } - else - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << "_var " << arg->local_name () << ";" << be_nl; - *os << "CORBA::Object_var _tao_base_var_" << arg->local_name () - << ";" << be_nl; - *os << "CORBA::Object_ptr &_tao_base_ptr_" << arg->local_name () - << " = _tao_base_var_" << arg->local_name () << ".out ();\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << "CORBA::Object_ptr _tao_base_ptr_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_var_" << arg->local_name () << ".out ());\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << "_var " << arg->local_name () << ";" << be_nl; - *os << "CORBA::Object_var _tao_base_var_" << arg->local_name () - << ";" << be_nl; - *os << "CORBA::Object_ptr &_tao_base_ptr_" << arg->local_name () - << " = _tao_base_var_" << arg->local_name () << ".out ();\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << "CORBA::Object_ptr _tao_base_ptr_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_var_" << arg->local_name () << ".out ());\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << "_ptr &_tao_ptr_" << arg->local_name () - << " = _tao_var_" << arg->local_name () << ".out ();" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - break; - } // end switch direction - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << "_var " << arg->local_name () - << ";" << be_nl; - *os << bt->name () << "_ptr &_tao_ptr_" << arg->local_name () - << " = " << arg->local_name () << ".out ();\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << "_ptr _tao_ptr_" << arg->local_name () - << ";" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_var_" << arg->local_name () << ".out ());" << be_nl; - break; - } // end switch direction - } // end else if - else // simple predefined types - { - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - } // end switch direction - } // end of else - - return 0; -} - -int be_visitor_args_vardecl_ss::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << " *&_tao_ptr_" << arg->local_name () - << " = _tao_var_" << arg->local_name () << ".out ();" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << "char *" << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - *os << "CORBA::String_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << "char *&_tao_ptr_" << arg->local_name () << " = _tao_var_" - << arg->local_name () << ".out ();" << be_nl; - *os << "CORBA::String_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - // check if it is variable sized - if (node->size_type () == be_type::VARIABLE) - { - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << " *&_tao_ptr_" << arg->local_name () - << " = _tao_var_" << arg->local_name () << ".out ();" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - } - else - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument - // node - // if the current type is an alias, use that - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (this->direction ()) - { - case AST_Argument::dir_IN: - case AST_Argument::dir_INOUT: - os->indent (); - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - case AST_Argument::dir_OUT: - os->indent (); - // check if it is variable sized - if (node->size_type () == be_type::VARIABLE) - { - *os << bt->name () << "_var _tao_var_" - << arg->local_name () << ";" << be_nl; - *os << bt->name () << " *&_tao_ptr_" << arg->local_name () - << " = _tao_var_" << arg->local_name () << ".out ();" << be_nl; - *os << bt->name () << "_out " << arg->local_name () - << " (_tao_ptr_" << arg->local_name () << ");\n"; - } - else - *os << bt->name () << " " << arg->local_name () << ";\n"; - break; - } - return 0; -} - -int be_visitor_args_vardecl_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_args_vardecl_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array.cpp b/TAO/TAO_IDL/be/be_visitor_array.cpp deleted file mode 100644 index ef8594af845..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_array.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Array -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// include all the individual files -#include "be_visitor_array/any_op_ch.cpp" -#include "be_visitor_array/any_op_cs.cpp" -#include "be_visitor_array/array.cpp" -#include "be_visitor_array/array_ch.cpp" -#include "be_visitor_array/array_ci.cpp" -#include "be_visitor_array/array_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_array/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/any_op_ch.cpp deleted file mode 100644 index 412fe6de16e..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/any_op_ch.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor for code generation of Arrays for the Any operators in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// *************************************************************************** -// Array visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_array_any_op_ch::be_visitor_array_any_op_ch -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_array_any_op_ch::~be_visitor_array_any_op_ch (void) -{ -} - -int -be_visitor_array_any_op_ch::visit_array (be_array *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << "_forany &);" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << "_forany &);\n"; - - node->cli_hdr_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp deleted file mode 100644 index 2a9c2fb903b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/any_op_cs.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor for code generation of Arrays for the Any operators in the client -// stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// *************************************************************************** -// Array visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_array_any_op_cs::be_visitor_array_any_op_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_array_any_op_cs::~be_visitor_array_any_op_cs (void) -{ -} - -int -be_visitor_array_any_op_cs::visit_array (be_array *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, const " - << node->name () << "_forany &_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (_tao_elem.nocopy ()) // no copy" << be_idt_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem.ptr (), 1, _tao_env); // consume it" << be_uidt_nl - << "else // copy" << be_idt_nl - << "_tao_any.replace (" << node->tc_name () << ", " << node->name () - << "_dup (_tao_elem.ptr ()), 1, _tao_env);" << be_uidt_nl - << be_uidt_nl << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << "_forany &_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "if (_tao_any.any_owns_data ())" << be_nl - << "{" << be_idt_nl - << node->name () << "_slice *&_tao_elem_ptr = _tao_elem.out ();" << be_nl - << "_tao_elem_ptr = " << node->name () << "_alloc ();" << be_nl - << "if (!_tao_elem_ptr) return 0;" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_elem_ptr, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_elem_ptr, 1, _tao_env);" - << be_nl - << " return 1;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // decode failed - << "{" << be_idt_nl - << node->name () << "_free (_tao_elem_ptr);" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else Any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << "_slice *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}\n\n"; - - node->cli_stub_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array/array.cpp b/TAO/TAO_IDL/be/be_visitor_array/array.cpp deleted file mode 100644 index c8827264b95..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/array.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array.cpp -// -// = DESCRIPTION -// Generic visitor for code generation for Arrays -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// ************************************************************************ -// generic visitor for array declaration -// ************************************************************************ - -be_visitor_array::be_visitor_array (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_array::~be_visitor_array (void) -{ -} - -int be_visitor_array::visit_array (be_array *node) -{ - // must be overloaded by derived visitors - return -1; -} - -int -be_visitor_array::visit_enum (be_enum *node) -{ - return this->visit_node (node); -} - -int -be_visitor_array::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_var"); - else - *os << bt->name () << "_var"; - return 0; -} - -int -be_visitor_array::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_var"); - else - *os << bt->name () << "_var"; - return 0; -} - -int -be_visitor_array::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - if (node->pt () == AST_PredefinedType::PT_pseudo) - *os << node->name () << "_var"; - else - *os << node->name (); - return 0; -} - -int -be_visitor_array::visit_sequence (be_sequence *node) -{ - return this->visit_node (node); -} - -int -be_visitor_array::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); - *os << "CORBA::String_var"; - return 0; -} - -int -be_visitor_array::visit_structure (be_structure *node) -{ - return this->visit_node (node); -} - -int -be_visitor_array::visit_union (be_union *node) -{ - return this->visit_node (node); -} - -int -be_visitor_array::visit_typedef (be_typedef *node) -{ - return this->visit_node (node); -} - -// helper -int -be_visitor_array::visit_node (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp deleted file mode 100644 index 5e5ab9154c4..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/array_ch.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_ch.cpp -// -// = DESCRIPTION -// Visitor for Array code generation in client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// ************************************************************************ -// visitor for array declaration in client header -// ************************************************************************ - -be_visitor_array_ch::be_visitor_array_ch (be_visitor_context *ctx) - : be_visitor_array (ctx) -{ -} - -be_visitor_array_ch::~be_visitor_array_ch (void) -{ -} - -int be_visitor_array_ch::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_type *bt; // base type - be_decl *scope = this->ctx_->scope (); // scope in which it is used - - // nothing to do if we are imported or code is already generated - if (node->imported () || (node->cli_hdr_gen ())) - return 0; - - this->ctx_->node (node); // save the array node - - // retrieve the type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_array - " - "Bad base type\n"), - -1); - } - - // generate the ifdefined macro - os->gen_ifdef_macro (node->flatname ()); - - os->indent (); - if (this->ctx_->tdef ()) - { - // this is a typedef to an array node - *os << "typedef "; - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_array - " - "base type decl failed\n"), - -1); - } - *os << " " << node->local_name (); - if (node->gen_dimensions (os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_array - " - "gen dimensions failed\n"), - -1); - } - *os << ";" << be_nl; - *os << "typedef "; - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_array - " - "base type decl failed\n"), - -1); - } - *os << " " << node->local_name () << "_slice"; - if (node->gen_dimensions (os, 1) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_array - " - "gen slice dimensions failed\n"), - -1); - } - *os << ";" << be_nl; - } - else - { - // anonymous array case - TO-DO - } - // typedef the _var, _out, and _forany types - if (node->gen_var_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_argument - " - "var_defn failed\n"), - -1); - } - if (node->gen_out_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_argument - " - "out_defn failed\n"), - -1); - } - if (node->gen_forany_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ch::" - "visit_argument - " - "forany_defn failed\n"), - -1); - } - // the _alloc, _dup, copy, and free methods. If the node is nested, the - // methods become static - *os << "static " << node->nested_type_name (scope, "_slice") << " *" - << node->nested_type_name (scope, "_alloc") << " (void);" << be_nl; - *os << "static " << node->nested_type_name (scope, "_slice") << " *" - << node->nested_type_name (scope, "_dup") << " (const " - << node->nested_type_name (scope, "_slice") << " *_tao_slice);" << be_nl; - *os << "static void " << node->nested_type_name (scope, "_copy") << " (" - << node->nested_type_name (scope, "_slice") << " *_tao_to, const " - << node->nested_type_name (scope, "_slice") << " *_tao_from);" << be_nl; - *os << "static void " << node->nested_type_name (scope, "_free") << " (" - << node->nested_type_name (scope, "_slice") << " *_tao_slice);" << be_nl; - - // is this a typedefined array? if so, then let the typedef deal with - // generation of the typecode - if (!this->ctx_->tdef ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_array_ch::" - "visit_array - " - "TypeCode declaration failed\n" - ), -1); - } - delete visitor; - } - - // generate the endif macro - os->gen_endif (); - - node->cli_hdr_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp deleted file mode 100644 index 36bd3264cd4..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/array_ci.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Arrays in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// ************************************************************************ -// visitor for array declaration in client inline -// ************************************************************************ - -be_visitor_array_ci::be_visitor_array_ci (be_visitor_context *ctx) - : be_visitor_array (ctx) -{ -} - -be_visitor_array_ci::~be_visitor_array_ci (void) -{ -} - -int be_visitor_array_ci::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_type *bt; // base type - be_decl *scope = this->ctx_->scope (); // scope in which it is used - - // nothing to do if we are imported or code is already generated - if (node->imported () || (node->cli_inline_gen ())) - return 0; - - this->ctx_->node (node); // save the array node - - // retrieve the type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "Bad base type\n"), - -1); - } - - // alloc method - os->indent (); // start from current indentation - *os << "ACE_INLINE " << node->name () << "_slice *" << be_nl; - *os << node->name () << "_alloc (void)" << be_nl; - *os << "{" << be_idt_nl; - *os << "return new "; - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "base type decl failed\n"), - -1); - } - - if (node->gen_dimensions (os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_array::" - "gen_client_inline - " - "dimensions codegen failed\n"), - -1); - } - - *os << ";" << be_uidt_nl; - *os << "}\n\n"; - - // free method - os->indent (); - *os << "ACE_INLINE void" << be_nl - << node->name () << "_free (" << node->name () - << "_slice *_tao_slice)" << be_nl; - *os << "{" << be_idt_nl; - *os << "delete [] _tao_slice;" << be_uidt_nl; - *os << "}\n\n"; - - // generate code for the _var, _out, and _forany types - if (node->gen_var_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "var_defn failed\n"), - -1); - } - if (node->gen_out_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "out_defn failed\n"), - -1); - } - if (node->gen_forany_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "forany_defn failed\n"), - -1); - } - - // is this a typedefined array? if so, then let the typedef deal with - // generation of the typecode - if (!this->ctx_->tdef ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_array_cs::" - "visit_array - " - "TypeCode definition failed\n" - ), -1); - } - delete visitor; - } - - node->cli_inline_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp deleted file mode 100644 index 34bb4eabeeb..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_array/array_cs.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_cs.cpp -// -// = DESCRIPTION -// Visitor for code generation of Arrays in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_array.h" - -// ************************************************************************ -// visitor for array declaration in client stubs -// ************************************************************************ - -be_visitor_array_cs::be_visitor_array_cs (be_visitor_context *ctx) - : be_visitor_array (ctx) -{ -} - -be_visitor_array_cs::~be_visitor_array_cs (void) -{ -} - -int be_visitor_array_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_type *bt; // base type - be_decl *scope = this->ctx_->scope (); // scope in which it is used - unsigned long i; - - // nothing to do if we are imported or code is already generated - if (node->imported () || (node->cli_stub_gen ())) - return 0; - - this->ctx_->node (node); // save the array node - - // retrieve the type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_ci::" - "visit_array - " - "Bad base type\n"), - -1); - } - - // dup method - os->indent (); - *os << node->name () << "_slice *" << be_nl - << node->name () << "_dup (const " << node->name () - << "_slice *_tao_src_array)" << be_nl; - *os << "{" << be_idt_nl; - *os << node->name () << "_slice *_tao_dup_array = " << node->name () - << "_alloc ();" << be_nl; - *os << "if (!_tao_dup_array) return (" << node->name () - << "_slice *)0;" << be_nl; - *os << node->name () << "_copy (_tao_dup_array, _tao_src_array);" << be_nl; - *os << "return _tao_dup_array;" << be_uidt_nl; - *os << "}\n\n"; - - // copy method - *os << "void " << be_nl; - *os << node->name () << "_copy (" << node->name () << "_slice * _tao_to, " - << "const " << node->name () << "_slice *_tao_from)" << be_nl; - *os << "{" << be_idt_nl; - *os << "// copy each individual elements" << be_nl; - - // generate nested loops for as many dimensions as there are - for (i = 0; i < node->n_dims (); i++) - { - // retrieve the ith dimension value - AST_Expression *expr = node->dims ()[i]; - // dimension value - if ((expr == NULL) || ((expr != NULL) && (expr->ev () == NULL))) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_array_cs::" - "visit_array - " - "bad array dimension\n"), - -1); - } - if (expr->ev ()->et == AST_Expression::EV_ulong) - { - // generate a loop for each dimension - *os << "for (CORBA::ULong i" << i << " = 0; i" << i << " < " - << expr->ev ()->u.ulval << "; i" << i << "++)" << be_idt_nl; - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_array_cs::" - "visit_array - " - "bad array dimension value\n"), - -1); - } - } - - // now generate code such that every element of the array gets assigned - // inside the innermost level of the nested loops generated above - be_array *primitive_type = 0; - if (bt->node_type () == AST_Decl::NT_typedef) - { - // base type of the array node is a typedef. We need to make sure that - // this typedef is not to another array type. If it is, then we cannot - // assign an array to another. We will have to invoke the underlying - // array type's copy method for every array dimension. - be_typedef *tdef = be_typedef::narrow_from_decl (bt); - // check if the base type of the typedef node is an Array node - primitive_type = be_array::narrow_from_decl (tdef->base_type ()); - } - if (primitive_type) - { - // the base type is not a typedef to a possibly another array type. In - // such a case, assign each element. - - *os << "// call the underlying _copy" << be_nl; - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_array_cs::" - "visit_array - " - "base type decl failed\n"), - -1); - } - - *os << "_copy (_tao_to"; - for (i = 0; i < node->n_dims (); i++) - { - *os << "[i" << i << "]"; - } - *os << ", "; - *os << "_tao_from"; // generate the rvalue - for (i = 0; i < node->n_dims (); i++) - { - *os << "[i" << i << "]"; - } - *os << ");"; - } - else - { - // the base type is not a typedef to a possibly another array type. In - // such a case, assign each element. - - *os << "_tao_to"; // generate the lvalue - for (i = 0; i < node->n_dims (); i++) - { - *os << "[i" << i << "]"; - } - *os << " = "; - *os << "_tao_from"; // generate the rvalue - for (i = 0; i < node->n_dims (); i++) - { - *os << "[i" << i << "]"; - } - *os << ";"; - } - for (i = 0; i < node->n_dims (); i++) - { - // decrement indentation as many times as the number of dimensions - *os << be_uidt; - } - *os << be_uidt_nl << "}\n\n"; - - node->cli_stub_gen (1); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_attribute.cpp b/TAO/TAO_IDL/be/be_visitor_attribute.cpp deleted file mode 100644 index de67d91bb47..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_attribute.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_attribute.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Attribute -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_attribute.h" - -// include all the individual files -#include "be_visitor_attribute/attribute.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp b/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp deleted file mode 100644 index 5a68ce7027c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_attribute/attribute.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// attribute.cpp -// -// = DESCRIPTION -// Visitor for generation of code for Attribute -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_attribute.h" - -// Attribute gets mapped to one or possibly two operations based on whether -// it is readonly or not. The two operations "get" and "set" the value of the -// attribute. -// -// code generation for attributes is achieved by mapping an attribute node to -// a corresponding operation node. The reason is that we do not want to -// duplicate the code. However, an attribute node and an operation node have -// different interfaces. Hence we need some form of an adapter that can take us -// from an attribute node to an operation node. The following paragraph -// describes how this is accomplished. -// -// For a "get" operation on the attribute, we create an operation node with the -// same name as the attribute and a return type which is the same as the type -// of the attribute. This operation has no arguments. -// -// For a "set" operation on the attribute (if it is not readonly), we create an -// operation node with a "void" return type and an "in" parameter of the same -// type as the attribute. - -// In both cases the context will hold sufficient information to indicate that -// the operation node is really an attribute node. - -// ************************************************************************* -// primary visitor for "attribute". The context state decides the next state -// ************************************************************************* - -be_visitor_attribute::be_visitor_attribute (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_attribute::~be_visitor_attribute (void) -{ -} - -int -be_visitor_attribute::visit_attribute (be_attribute *node) -{ - TAO_OutStream *os; // output stream - // be_type *bt; // type node - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node - this->ctx_->attribute (node); // save this attribute node - - be_operation *op; - - // first the "get" operation - op = new be_operation (node->field_type (), AST_Operation::OP_noflags, - node->name (), 0); - op->set_name (node->name ()); - be_visitor_context ctx (*this->ctx_); - - // this switch statement eliminates the need for different classes that have - // exactly the same code except different states. - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ATTRIBUTE_CH: - ctx.state (TAO_CodeGen::TAO_OPERATION_CH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_CS: - ctx.state (TAO_CodeGen::TAO_OPERATION_CS); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SS); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_TIE_SI: - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SI); - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || !op || (op->accept (visitor) == -1)) - { - delete visitor; - delete op; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_attribute::" - "visit_attribute - " - "codegen for get_attribute failed\n"), - -1); - } - delete op; - delete visitor; - if (node->readonly ()) - return 0; // nothing else to do - - // the set method. - // the return type is "void" - be_predefined_type *rt = new be_predefined_type (AST_PredefinedType::PT_void, - new UTL_ScopedName - (new Identifier - ("void", 1, 0, I_FALSE), 0), - 0); - // argument type is the same as the attribute type - be_argument *arg = new be_argument (AST_Argument::dir_IN, - node->field_type (), - node->name (), - 0); - arg->set_name (node->name ()); - // create the operation - op = new be_operation (rt, AST_Operation::OP_noflags, - node->name (), 0); - op->set_name (node->name ()); - op->add_argument_to_scope (arg); - - ctx = *this->ctx_; - // this switch statement eliminates the need for different classes that have - // exactly the same code except different states. - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ATTRIBUTE_CH: - ctx.state (TAO_CodeGen::TAO_OPERATION_CH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_CS: - ctx.state (TAO_CodeGen::TAO_OPERATION_CS); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SH); - break; - case TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SS); - break; - } - - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || !op || (op->accept (visitor) == -1)) - { - delete visitor; - delete op; - delete arg; - delete rt; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_attribute::" - "visit_attribute - " - "codegen for set_attribute failed\n"), - -1); - } - delete op; - delete visitor; - delete rt; - delete arg; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_constant.cpp b/TAO/TAO_IDL/be/be_visitor_constant.cpp deleted file mode 100644 index 2ebf9283907..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_constant.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_constant.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Constant -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_constant.h" - -// include all the individual files -#include "be_visitor_constant/constant_ch.cpp" -#include "be_visitor_constant/constant_cs.cpp" - diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp deleted file mode 100644 index 73e7af87f9d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// constant_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for the Constant node in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_constant.h" - -// ******************************************************************** -// Visitor implementation for the Constant type -// This one for the client header file -// ******************************************************************** - -be_visitor_constant_ch::be_visitor_constant_ch (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_constant_ch::~be_visitor_constant_ch (void) -{ -} - -// visit the Constant_Ch node and its scope -int -be_visitor_constant_ch::visit_constant (be_constant *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (!node->cli_hdr_gen () && !node->imported ()) - { - // if we are defined in the outermost scope, then the value is assigned - // to us here itself, else it will be in the *.cpp file - - os->indent (); // start from whatever indentation level we were at - // is our enclosing scope a module? We need this check because for - // platforms that support namespaces, the typecode must be declared - // extern - if (node->is_nested () && - (node->defined_in ()->scope_node_type () == AST_Decl::NT_module)) - *os << "TAO_NAMESPACE_STORAGE_CLASS "; - else - *os << "static "; - *os << "const " << node->exprtype_to_string () - << " " << node->local_name (); - if (!node->is_nested ()) - { - // We were defined at the outermost scope. So we put the value in the - // header itself - *os << " = " << node->constant_value (); - } - *os << ";\n\n"; - node->cli_hdr_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp deleted file mode 100644 index add132a9357..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// constant_cs.cpp -// -// = DESCRIPTION -// Visitor for code generation of Constant code in the client stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_constant.h" - -// ******************************************************************** -// Visitor implementation for the Constant type -// This one for the client stubs file -// ******************************************************************** - -be_visitor_constant_cs::be_visitor_constant_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_constant_cs::~be_visitor_constant_cs (void) -{ -} - -// visit the Constant_cs node and its scope -int -be_visitor_constant_cs::visit_constant (be_constant *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (!node->cli_stub_gen () && !node->imported ()) - { - if (node->is_nested ()) - { - if (node->defined_in ()->scope_node_type () == AST_Decl::NT_module) - { - *os << "TAO_NAMESPACE_TYPE (const " - << node->exprtype_to_string () << ")" << be_nl; - be_module *module = be_module::narrow_from_scope (node->defined_in ()); - if (!module || (this->gen_nested_namespace_begin (module) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_constant_cs::visit_constant - " - "Error parsing nested name\n"), - -1); - } - *os << "TAO_NAMESPACE_DEFINE (const " - << node->exprtype_to_string () << ", " - << node->local_name () << ", " - << node->constant_value () << ")" << be_nl; - if (this->gen_nested_namespace_end (module) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_constant_cs::visit_constant - " - "Error parsing nested name\n"), - -1); - } - } - else - { - // for those constants not defined in the outer most scope, they get - // assigned to their values in the impl file - os->indent (); // start from whatever indentation level we were at - *os << "const " << node->exprtype_to_string () << " " - << node->name () << " = " << node->constant_value () - << ";\n\n"; - } - } - node->cli_stub_gen (I_TRUE); - } - return 0; -} - -// the following needs to be done to deal with the most bizarre behavior of -// MSVC++ compiler -int -be_visitor_constant_cs::gen_nested_namespace_begin (be_module *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - UTL_IdListActiveIterator *i; - - i = new UTL_IdListActiveIterator (node->name ()); - while (!(i->is_done ())) - { - if (ACE_OS::strcmp (i->item ()->get_string (), "") != 0) - { - // leave the outermost root scope - *os << "TAO_NAMESPACE_BEGIN (" << i->item ()->get_string () - << ")" << be_nl; - } - i->next (); - } - delete i; - return 0; -} - -// the following needs to be done to deal with the most bizarre behavior of -// MSVC++ compiler -int -be_visitor_constant_cs::gen_nested_namespace_end (be_module *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - UTL_IdListActiveIterator *i; - - i = new UTL_IdListActiveIterator (node->name ()); - while (!(i->is_done ())) - { - if (ACE_OS::strcmp (i->item ()->get_string (), "") != 0) - { - // leave the outermost root scope - *os << "TAO_NAMESPACE_END" << be_nl; - } - i->next (); - } - delete i; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_context.cpp b/TAO/TAO_IDL/be/be_visitor_context.cpp deleted file mode 100644 index a430e5cb54e..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_context.cpp +++ /dev/null @@ -1,478 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_context.cpp -// -// = DESCRIPTION -// Maintains the context information for visitors -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -// constructor -be_visitor_context::be_visitor_context (void) - : state_ (TAO_CodeGen::TAO_UNKNOWN), - os_ (0), - scope_ (0), - node_ (0), - alias_ (0), - tdef_ (0), - attr_ (0), - exception_ (0), - comma_ (0) -{ -} - -be_visitor_context::be_visitor_context (const be_visitor_context &ctx) - : state_ (ctx.state_), - os_ (ctx.os_), - scope_ (ctx.scope_), - node_ (ctx.node_), - alias_ (ctx.alias_), - tdef_ (ctx.tdef_), - attr_ (ctx.attr_), - exception_ (ctx.exception_), - comma_ (ctx.comma_) -{ -} - -be_visitor_context & -be_visitor_context::operator= (const be_visitor_context &ctx) -{ - this->state_ = ctx.state_; - this->os_ = ctx.os_; - this->scope_ = ctx.scope_; - this->node_ = ctx.node_; - this->alias_ = ctx.alias_; - this->tdef_ = ctx.tdef_; - this->attr_ = ctx.attr_; - this->exception_ = ctx.exception_; - this->comma_ = ctx.comma_; - - return *this; -} - -be_visitor_context::~be_visitor_context (void) -{ - // we do not own anything -} - -//= helpers - -void -be_visitor_context::reset (void) -{ - this->state_ = TAO_CodeGen::TAO_INITIAL; - this->os_ = 0; - this->scope_ = 0; - this->node_ = 0; - this->alias_ = 0; - this->tdef_ = 0; - this->attr_ = 0; - this->exception_ = 0; - this->comma_ = 0; - -} - -void -be_visitor_context::stream (TAO_OutStream *os) -{ - this->os_ = os; -} - -TAO_OutStream * -be_visitor_context::stream (void) -{ - return this->os_; -} - -void -be_visitor_context::scope (be_decl *s) -{ - this->scope_ = s; -} - -be_decl * -be_visitor_context::scope (void) -{ - return this->scope_; -} - -void -be_visitor_context::node (be_decl *n) -{ - this->node_ = n; -} - -be_decl * -be_visitor_context::node (void) -{ - return this->node_; -} - -void -be_visitor_context::state (TAO_CodeGen::CG_STATE st) -{ - this->state_ = st; -} - -TAO_CodeGen::CG_STATE -be_visitor_context::state (void) -{ - return this->state_; -} - -void -be_visitor_context::tdef (be_typedef *node) -{ - this->tdef_ = node; -} - -be_typedef * -be_visitor_context::tdef (void) -{ - return this->tdef_; -} - -void -be_visitor_context::alias (be_typedef *node) -{ - this->alias_ = node; -} - -be_typedef * -be_visitor_context::alias (void) -{ - return this->alias_; -} - -void -be_visitor_context::attribute (be_attribute *node) -{ - this->attr_ = node; -} - -be_attribute * -be_visitor_context::attribute (void) -{ - return this->attr_; -} - -void -be_visitor_context::exception (idl_bool ib) -{ - this->exception_ = ib; -} - -idl_bool -be_visitor_context::exception (void) -{ - return this->exception_; -} - -void -be_visitor_context::comma (idl_bool ib) -{ - this->comma_ = ib; -} - -idl_bool -be_visitor_context::comma (void) -{ - return this->comma_; -} - -// return the node as argument if possible -be_argument * -be_visitor_context::be_node_as_argument (void) -{ - if (this->node_) - return be_argument::narrow_from_decl (this->node_); - else - return (be_argument *)0; -} - -// return the node as array if possible -be_array * -be_visitor_context::be_node_as_array (void) -{ - if (this->node_) - return be_array::narrow_from_decl (this->node_); - else - return (be_array *)0; -} - -// return the node as attribute if possible -be_attribute * -be_visitor_context::be_node_as_attribute (void) -{ - if (this->node_) - return be_attribute::narrow_from_decl (this->node_); - else - return (be_attribute *)0; -} - -// return the node as constant if possible -be_constant * -be_visitor_context::be_node_as_constant (void) -{ - if (this->node_) - return be_constant::narrow_from_decl (this->node_); - else - return (be_constant *)0; -} - -// return the node as enum if possible -be_enum * -be_visitor_context::be_node_as_enum (void) -{ - if (this->node_) - return be_enum::narrow_from_decl (this->node_); - else - return (be_enum *)0; -} - -// return the node as enum_val if possible -be_enum_val * -be_visitor_context::be_node_as_enum_val (void) -{ - if (this->node_) - return be_enum_val::narrow_from_decl (this->node_); - else - return (be_enum_val *)0; -} - -// return the node as exception if possible -be_exception * -be_visitor_context::be_node_as_exception (void) -{ - if (this->node_) - return be_exception::narrow_from_decl (this->node_); - else - return (be_exception *)0; -} - -// return the node as field if possible -be_field * -be_visitor_context::be_node_as_field (void) -{ - if (this->node_) - return be_field::narrow_from_decl (this->node_); - else - return (be_field *)0; -} - -// return the node as interface if possible -be_interface * -be_visitor_context::be_node_as_interface (void) -{ - if (this->node_) - return be_interface::narrow_from_decl (this->node_); - else - return (be_interface *)0; -} - -// return the node as interface_fwd if possible -be_interface_fwd * -be_visitor_context::be_node_as_interface_fwd (void) -{ - if (this->node_) - return be_interface_fwd::narrow_from_decl (this->node_); - else - return (be_interface_fwd *)0; -} - -// return the node as module if possible -be_module * -be_visitor_context::be_node_as_module (void) -{ - if (this->node_) - return be_module::narrow_from_decl (this->node_); - else - return (be_module *)0; -} - -// return the node as operation if possible -be_operation * -be_visitor_context::be_node_as_operation (void) -{ - if (this->node_) - return be_operation::narrow_from_decl (this->node_); - else - return (be_operation *)0; -} - -// return the node as predefined_type if possible -be_predefined_type * -be_visitor_context::be_node_as_predefined_type (void) -{ - if (this->node_) - return be_predefined_type::narrow_from_decl (this->node_); - else - return (be_predefined_type *)0; -} - -// return the node as root if possible -be_root * -be_visitor_context::be_node_as_root (void) -{ - if (this->node_) - return be_root::narrow_from_decl (this->node_); - else - return (be_root *)0; -} - -// return the node as sequence if possible -be_sequence * -be_visitor_context::be_node_as_sequence (void) -{ - if (this->node_) - return be_sequence::narrow_from_decl (this->node_); - else - return (be_sequence *)0; -} - -// return the node as string if possible -be_string * -be_visitor_context::be_node_as_string (void) -{ - if (this->node_) - return be_string::narrow_from_decl (this->node_); - else - return (be_string *)0; -} - -// return the node as structure if possible -be_structure * -be_visitor_context::be_node_as_structure (void) -{ - if (this->node_) - return be_structure::narrow_from_decl (this->node_); - else - return (be_structure *)0; -} - -// return the node as typedef if possible -be_typedef * -be_visitor_context::be_node_as_typedef (void) -{ - if (this->node_) - return be_typedef::narrow_from_decl (this->node_); - else - return (be_typedef *)0; -} - -// return the node as union if possible -be_union * -be_visitor_context::be_node_as_union (void) -{ - if (this->node_) - return be_union::narrow_from_decl (this->node_); - else - return (be_union *)0; -} - -// return the node as union_branch if possible -be_union_branch * -be_visitor_context::be_node_as_union_branch (void) -{ - if (this->node_) - return be_union_branch::narrow_from_decl (this->node_); - else - return (be_union_branch *)0; -} - -// for scope - -// return the scope as enum if possible -be_enum * -be_visitor_context::be_scope_as_enum (void) -{ - if (this->scope_) - return be_enum::narrow_from_decl (this->scope_); - else - return (be_enum *)0; -} - -// return the scope as exception if possible -be_exception * -be_visitor_context::be_scope_as_exception (void) -{ - if (this->scope_) - return be_exception::narrow_from_decl (this->scope_); - else - return (be_exception *)0; -} - -// return the scope as interface if possible -be_interface * -be_visitor_context::be_scope_as_interface (void) -{ - if (this->scope_) - return be_interface::narrow_from_decl (this->scope_); - else - return (be_interface *)0; -} - -// return the scope as module if possible -be_module * -be_visitor_context::be_scope_as_module (void) -{ - if (this->scope_) - return be_module::narrow_from_decl (this->scope_); - else - return (be_module *)0; -} - -// return the scope as operation if possible -be_operation * -be_visitor_context::be_scope_as_operation (void) -{ - if (this->scope_) - return be_operation::narrow_from_decl (this->scope_); - else - return (be_operation *)0; -} - -// return the scope as root if possible -be_root * -be_visitor_context::be_scope_as_root (void) -{ - if (this->scope_) - return be_root::narrow_from_decl (this->scope_); - else - return (be_root *)0; -} - -// return the scope as structure if possible -be_structure * -be_visitor_context::be_scope_as_structure (void) -{ - if (this->scope_) - return be_structure::narrow_from_decl (this->scope_); - else - return (be_structure *)0; -} - -// return the scope as union if possible -be_union * -be_visitor_context::be_scope_as_union (void) -{ - if (this->scope_) - return be_union::narrow_from_decl (this->scope_); - else - return (be_union *)0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_decl.cpp b/TAO/TAO_IDL/be/be_visitor_decl.cpp deleted file mode 100644 index 86b6a179068..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_decl.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_decl.cpp -// -// = DESCRIPTION -// Visitor for the base be_decl node. This serves to maintain the current -// state (context) of code generation for the derived visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_decl.h" - -// Root visitor for client header -be_visitor_decl::be_visitor_decl (be_visitor_context *ctx) - : ctx_ (ctx) -{ -} - -be_visitor_decl::~be_visitor_decl (void) -{ - delete this->ctx_; -} diff --git a/TAO/TAO_IDL/be/be_visitor_enum.cpp b/TAO/TAO_IDL/be/be_visitor_enum.cpp deleted file mode 100644 index 3a0ff49e7e9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_enum.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_enum.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Enum -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_enum.h" - -// include all the individual files -#include "be_visitor_enum/any_op_ch.cpp" -#include "be_visitor_enum/any_op_cs.cpp" -#include "be_visitor_enum/enum_ch.cpp" -#include "be_visitor_enum/enum_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_enum/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_enum/any_op_ch.cpp deleted file mode 100644 index 766e743dbf3..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_enum/any_op_ch.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Enums for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_enum.h" - - -// *************************************************************************** -// Enum visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_enum_any_op_ch::be_visitor_enum_any_op_ch -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_enum_any_op_ch::~be_visitor_enum_any_op_ch (void) -{ -} - -int -be_visitor_enum_any_op_ch::visit_enum (be_enum *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operators - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << ");" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " &);\n"; - - node->cli_hdr_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp deleted file mode 100644 index e24522eef1a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_enum/any_op_cs.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Enum for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_enum.h" - -// *************************************************************************** -// Enum visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_enum_any_op_cs::be_visitor_enum_any_op_cs -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_enum_any_op_cs::~be_visitor_enum_any_op_cs (void) -{ -} - -int -be_visitor_enum_any_op_cs::visit_enum (be_enum *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " _tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", new " - << node->name () << "(_tao_elem), 1, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " &_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", &_tao_elem, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << " return 1;" << be_nl - << "else" << be_nl - << " return 0;" << be_uidt_nl - << "}\n\n"; - - node->cli_stub_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp b/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp deleted file mode 100644 index c902d4e7847..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_enum/enum_ch.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// enum_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Enums in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_enum.h" - - -// ******************************************************************** -// Visitor implementation for the Enum type -// This one for the client header file -// ******************************************************************** - -be_visitor_enum_ch::be_visitor_enum_ch (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_enum_ch::~be_visitor_enum_ch (void) -{ -} - -// visit the Enum_Ch node and its scope -int -be_visitor_enum_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - this->ctx_->comma (1); // comma to be generated by the scope visitor - - if (!node->cli_hdr_gen () && !node->imported ()) - { - os->indent (); // start from whatever indentation level we were at - *os << "enum " << node->local_name () << be_nl; - *os << "{\n"; - os->incr_indent (); - if (this->visit_scope (node) == 1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_enum_ch::" - "visit_enum - " - "scope generation failed\n" - ), -1); - } - - os->decr_indent (); - *os << "};" << be_nl; - // As per the ORBOS spec, we need the following typedef - *os << "typedef " << node->local_name () << " &" << node->local_name () - << "_out;\n"; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_enum_ch::" - "visit_enum - " - "TypeCode declaration failed\n" - ), -1); - } - - node->cli_hdr_gen (I_TRUE); - } - return 0; -} - -int -be_visitor_enum_ch::post_process (void) -{ - TAO_OutStream *os = this->ctx_->stream (); - - *os << "," << be_nl; - return 0; -} - -int -be_visitor_enum_ch::visit_enum_val (be_enum_val *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - os->indent (); - *os << node->local_name (); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp b/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp deleted file mode 100644 index ad0d23b1755..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_enum/enum_cs.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// enum_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Enums in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_enum.h" - -// ******************************************************************** -// Visitor implementation for the Enum type -// This one for the client stubs file -// ******************************************************************** - -be_visitor_enum_cs::be_visitor_enum_cs (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_enum_cs::~be_visitor_enum_cs (void) -{ -} - -// visit the Enum_cs node and its scope -int -be_visitor_enum_cs::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (!node->cli_stub_gen () && !node->imported ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_enum_cs::" - "visit_enum - " - "TypeCode definition failed\n" - ), -1); - } - - node->cli_stub_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception.cpp b/TAO/TAO_IDL/be/be_visitor_exception.cpp deleted file mode 100644 index a71cda41037..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_exception.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Exception -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - -// include all the individual files -#include "be_visitor_exception/any_op_ch.cpp" -#include "be_visitor_exception/any_op_cs.cpp" -#include "be_visitor_exception/ctor_assign.cpp" -#include "be_visitor_exception/exception.cpp" -#include "be_visitor_exception/exception_ch.cpp" -#include "be_visitor_exception/exception_ci.cpp" -#include "be_visitor_exception/exception_cs.cpp" -#include "be_visitor_exception/exception_ctor.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp deleted file mode 100644 index 0c2ce3f484f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_ch.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for the Any operators for Exceptions -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// *************************************************************************** -// Exception visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_exception_any_op_ch::be_visitor_exception_any_op_ch -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_exception_any_op_ch::~be_visitor_exception_any_op_ch (void) -{ -} - -int -be_visitor_exception_any_op_ch::visit_exception (be_exception *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << " &); // copying version" << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << "*); // noncopying version" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " *&);\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::visit_exception - " - "codegen for scope failed\n"), -1); - } - - node->cli_hdr_any_op_gen (1); - return 0; -} - -int -be_visitor_exception_any_op_ch::visit_field (be_field *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_any_op_ch::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_any_op_ch::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp deleted file mode 100644 index 652f7c991d7..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for the Any operators for Exceptions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// *************************************************************************** -// Exception visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_exception_any_op_cs::be_visitor_exception_any_op_cs -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_exception_any_op_cs::~be_visitor_exception_any_op_cs (void) -{ -} - -int -be_visitor_exception_any_op_cs::visit_exception (be_exception *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, const " - << node->name () << " &_tao_elem) // copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", new " - << node->name () << "(_tao_elem), 1, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " *_tao_elem) // non copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem, 1, _tao_env); // consume it" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " *&_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "if (_tao_any.any_owns_data ())" << be_nl - << "{" << be_idt_nl - << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" - << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_elem, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_elem, 1, _tao_env);" - << be_nl - << " return 1;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // decode failed - << "{" << be_idt_nl - << "delete _tao_elem;" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}\n\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::visit_exception - " - "codegen for scope failed\n"), -1); - } - - node->cli_stub_any_op_gen (1); - return 0; -} - -int -be_visitor_exception_any_op_cs::visit_field (be_field *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_any_op_cs::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_any_op_cs::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp b/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp deleted file mode 100644 index 664e15fbea1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp +++ /dev/null @@ -1,308 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// ctor_assign.cpp -// -// = DESCRIPTION -// Visitor generating code for the special CTOR and assignment operator for -// Exceptions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// ************************************************************************ -// used for the body of the assignment operator and the copy constructor -// ************************************************************************ - -be_visitor_exception_ctor_assign::be_visitor_exception_ctor_assign (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_exception_ctor_assign::~be_visitor_exception_ctor_assign (void) -{ -} - -int be_visitor_exception_ctor_assign::visit_exception (be_exception *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor_assign::" - "visit_exception - " - "codegen for scope failed\n"), - -1); - } - - return 0; -} - -int be_visitor_exception_ctor_assign::visit_field (be_field *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor_assign::" - "visit_field - " - "Bad field type\n"), - -1); - } - - // Different types have different mappings when used as in/out or - // inout parameters. Let this visitor deal with the type - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor_assign::" - "visit_field - " - "cannot accept visitor\n"), - -1); - } - - return 0; -} - -int be_visitor_exception_ctor_assign::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" << bd->local_name () - << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." << bd->local_name () - << ";\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" << bd->local_name () - << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." << bd->local_name () - << ";\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = " << node->name () - << "::_duplicate (_tao_" << bd->local_name () << ");\n"; - } - else - { - *os << "this->" << bd->local_name () << " = " << node->name () - << "::_duplicate (_tao_excp." << bd->local_name () << ".in ());\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = " << node->name () - << "::_duplicate (_tao_" << bd->local_name () << ");\n"; - } - else - { - *os << "this->" << bd->local_name () << " = " << node->name () - << "::_duplicate (_tao_excp." << bd->local_name () << ".in ());\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" - << bd->local_name () << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." - << bd->local_name () << ";\n"; - } - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = " - << node->name () << "::_duplicate (_tao_" - << bd->local_name () << ");\n"; - } - else - { - *os << "this->" << bd->local_name () << " = " - << node->name () << "::_duplicate (_tao_excp." - << bd->local_name () << ".in ());\n"; - } - } // end else if - else // simple predefined types - { - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" - << bd->local_name () << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." - << bd->local_name () << ";\n"; - } - } // end of else - - return 0; -} - -int be_visitor_exception_ctor_assign::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" << bd->local_name () - << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." << bd->local_name () - << ";\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = CORBA::string_dup (_tao_" - << bd->local_name () << ");\n"; - } - else - { - *os << "this->" << bd->local_name () - << " = CORBA::string_dup (_tao_excp." << bd->local_name () - << ".in ());\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_structure (be_structure *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" << bd->local_name () - << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." << bd->local_name () - << ";\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_union (be_union *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - be_decl *bd = this->ctx_->node (); - - os->indent (); - if (this->ctx_->exception ()) // special ctor - { - *os << "this->" << bd->local_name () << " = _tao_" << bd->local_name () - << ";\n"; - } - else - { - *os << "this->" << bd->local_name () << " = _tao_excp." << bd->local_name () - << ";\n"; - } - return 0; -} - -int be_visitor_exception_ctor_assign::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor_assign::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp deleted file mode 100644 index f0a0b46d072..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// .cpp -// -// = DESCRIPTION -// Generic visitor generating code for Exceptions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// generic struct visitor -be_visitor_exception::be_visitor_exception (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_exception::~be_visitor_exception (void) -{ -} - -// visit the Exception node and its scope -int -be_visitor_exception::visit_exception (be_exception *node) -{ - return -1; // must be overriden -} - -int -be_visitor_exception::visit_field (be_field *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_EXCEPTION_CH: - ctx.state (TAO_CodeGen::TAO_FIELD_CH); - break; - case TAO_CodeGen::TAO_EXCEPTION_CI: - ctx.state (TAO_CodeGen::TAO_FIELD_CI); - break; - case TAO_CodeGen::TAO_EXCEPTION_CS: - ctx.state (TAO_CodeGen::TAO_FIELD_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_field - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_field - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_field - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp deleted file mode 100644 index 97548360d12..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Exception in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// ****************************************************** -// for client header -// ****************************************************** - -be_visitor_exception_ch::be_visitor_exception_ch (be_visitor_context *ctx) - : be_visitor_exception (ctx) -{ -} - -be_visitor_exception_ch::~be_visitor_exception_ch (void) -{ -} - -// visit the Exception node and its scope -int be_visitor_exception_ch::visit_exception (be_exception *node) -{ - TAO_OutStream *os; // output stream - - if (!node->cli_hdr_gen () && !node->imported ()) // not already generated and - // not imported - { - os = this->ctx_->stream (); - - os->gen_ifdef_macro (node->flatname (), "_ptr"); - - os->indent (); - *os << "class " << node->local_name () << ";" << be_nl; - // generate the _ptr declaration - *os << "typedef " << node->local_name () << " *" - << node->local_name () << "_ptr;" << be_nl; - os->gen_endif (); - - os->gen_ifdef_macro (node->flatname ()); - - os->indent (); - *os << "class " << idl_global->export_macro () - << " " << node->local_name () - << " : public CORBA::UserException" << be_nl; - *os << "{" << be_nl - << "public:\n"; - os->incr_indent (); - // constructors and destructor - *os << node->local_name () << " (void); // default ctor" << be_nl; - *os << node->local_name () << " (const " << node->local_name () - << " &); // copy ctor" << be_nl; - *os << "~" << node->local_name () << " (void); // dtor" << be_nl; - - // generate constructor that takes each member as a parameter. We need a - // new state. Such a constructor exists if we have members - if (node->member_count () > 0) - { - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_exception - " - "codegen for ctor failed\n"), -1); - } - delete visitor; - } - - os->indent (); - // assignment operator - *os << node->local_name () << " &operator= (const " - << node->local_name () << " &);" << be_nl; - // the static _narrow method - *os << "static " << node->local_name () - << " *_narrow (CORBA::Exception *);\n"; - - // generate code for field members - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_ch::" - "visit_exception - " - "codegen for scope failed\n"), -1); - } - - // generate the static *_alloc method - os->indent (); - // this is TAO extension - *os << "// the alloc method. This is TAO extension" << be_nl; - *os << "static CORBA::Exception *_alloc (void);" << be_uidt_nl; - *os << "}; // exception " << node->name () << be_nl; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_ch::" - "visit_exception - " - "TypeCode declaration failed\n" - ), -1); - } - - - os->gen_endif (); - - node->cli_hdr_gen (1); - - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp deleted file mode 100644 index 19366da8a13..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Exception in the inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// ****************************************************** -// for client inline -// ****************************************************** - -be_visitor_exception_ci::be_visitor_exception_ci (be_visitor_context *ctx) - : be_visitor_exception (ctx) -{ -} - -be_visitor_exception_ci::~be_visitor_exception_ci (void) -{ -} - -// visit the Exception node and its scope -int be_visitor_exception_ci::visit_exception (be_exception *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - - if (!node->cli_inline_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - os->indent (); - *os << "// *************************************************************" - << be_nl; - *os << "// Inline operations for exception " << node->name () << be_nl; - *os << "// *************************************************************\n\n"; - - // generate inline code required of any anonymous types of members - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_exception -" - "code for inline failed\n"), -1); - } - - node->cli_inline_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp deleted file mode 100644 index febb0f9329b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp +++ /dev/null @@ -1,204 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Exception in the stubs file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// *************************************************************************** -// for client stubs -// *************************************************************************** -be_visitor_exception_cs::be_visitor_exception_cs (be_visitor_context *ctx) - : be_visitor_exception (ctx) -{ -} - -be_visitor_exception_cs::~be_visitor_exception_cs (void) -{ -} - -// visit the Exception_Cs node and its scope -int be_visitor_exception_cs::visit_exception (be_exception *node) -{ - TAO_OutStream *os; // output stream - - if (!node->cli_stub_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - - // default constructor - os->indent (); - *os << "// default constructor" << be_nl; - *os << node->name () << "::" << node->local_name () << " (void)" << be_nl; - *os << " : CORBA_UserException (" - << node->tc_name () << ")\n"; - *os << "{" << be_nl; - *os << "}\n\n"; - - // destructor - os->indent (); - *os << "// destructor - all members are of self managing types" << be_nl; - *os << node->name () << "::~" << node->local_name () << " (void)" << be_nl; - *os << "{" << be_nl; - *os << "}\n\n"; - - // copy constructor - os->indent (); - *os << "// copy constructor" << be_nl; - *os << node->name () << "::" << node->local_name () << " (const " << - node->name () << " &_tao_excp)" << be_nl; - *os << " :CORBA_UserException (" << - "_tao_excp._type ())" << be_nl; - *os << "{\n"; - os->incr_indent (); - // assign each individual member - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_cs::" - "visit_exception -" - "codegen for scope failed\n"), -1); - } - delete visitor; - os->decr_indent (); - *os << "}\n\n"; - - // assignment operator - os->indent (); - *os << "// assignment operator" << be_nl; - *os << node->name () << "&" << be_nl; - *os << node->name () << "::operator= (const " << - node->name () << " &_tao_excp)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "this->ACE_CORBA_1 (UserException)::operator= " << - "(_tao_excp._type ());\n"; - // assign each individual member - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_cs::" - "visit_exception -" - "codegen for scope failed\n"), -1); - } - delete visitor; - os->indent (); - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // constructor taking all members. It exists only if there are any - // members - if (node->member_count () > 0) - { - // generate the signature - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_CS); - visitor = tao_cg->make_visitor (&ctx); - - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception::" - "visit_exception - " - "codegen for ctor failed\n"), -1); - } - delete visitor; - - *os << " : CORBA_UserException " - << " (CORBA::TypeCode::_duplicate (" << node->tc_name () - << "))" << be_nl; - *os << "{\n"; - os->incr_indent (); - // assign each individual member. We need yet another state - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CTOR_ASSIGN_CS); - ctx.exception (1); // indicate that the special ctor is being - // generated - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_cs::" - "visit_exception -" - "codegen for scope failed\n"), -1); - } - delete visitor; - os->decr_indent (); - *os << "}\n\n"; - } - - // narrow method - os->indent (); - *os << "// narrow" << be_nl; - *os << node->name () << "_ptr " << be_nl; - *os << node->name () << "::_narrow (CORBA::Exception *exc)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "if (!ACE_OS::strcmp (\"" << node->repoID () << - "\", exc->_id ())) // same type" << be_nl; - *os << " return ACE_dynamic_cast (" << node->name () << "_ptr, exc);" << - be_nl; - *os << "else" << be_nl; - *os << " return 0;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // generate the _alloc method - os->indent (); - *os << "// TAO extension - the _alloc method" << be_nl; - *os << "CORBA::Exception *" << node->name () - << "::_alloc (void)" << be_nl; - *os << "{" << be_idt_nl; - *os << "return new " << node->name () << ";" << be_uidt_nl; - *os << "}\n\n"; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_exception_cs::" - "visit_exception - " - "TypeCode definition failed\n" - ), -1); - } - - node->cli_stub_gen (I_TRUE); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp deleted file mode 100644 index 6d026158f80..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp +++ /dev/null @@ -1,300 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ctor.cpp -// -// = DESCRIPTION -// Visitor generating code for the special constructor for Exceptions -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_exception.h" - - -// ************************************************************************ -// code to generate the special ctor -// ************************************************************************ - -be_visitor_exception_ctor::be_visitor_exception_ctor -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_exception_ctor::~be_visitor_exception_ctor (void) -{ -} - -int -be_visitor_exception_ctor::post_process (void) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - *os << ",\n"; - return 0; -} - -int be_visitor_exception_ctor::visit_exception (be_exception *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - this->ctx_->node (node); // save the argument node - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << node->local_name (); - else - *os << node->name () << "::" << node->local_name (); - *os << "(" << be_idt << "\n"; - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor_assign::" - "visit_exception - " - "codegen for scope failed\n"), - -1); - } - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << be_uidt << ");\n\n"; - else - *os << be_uidt << ")\n\n"; - - return 0; -} - -int be_visitor_exception_ctor::visit_field (be_field *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // retrieve the type - be_type *bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor::" - "visit_exception - " - "Bad field type\n"), - -1); - } - - os->indent (); - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor::" - "visit_field - " - "cannot accept visitor\n"), - -1); - } - - *os << " _tao_" << node->local_name (); - return 0; -} - -int be_visitor_exception_ctor::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - return 0; -} - -int be_visitor_exception_ctor::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - return 0; -} - -int be_visitor_exception_ctor::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << "_ptr "; - return 0; -} - -int be_visitor_exception_ctor::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << "_ptr "; - return 0; -} - -int be_visitor_exception_ctor::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // check if the type is an any - if (node->pt () == AST_PredefinedType::PT_any) - { - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << " &"; - return 0; - } // end of if - else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object - { - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << "_ptr "; - } // end else if - else // simple predefined types - { - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - } // end of else - - return 0; -} - -int be_visitor_exception_ctor::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << " &"; - return 0; -} - -int be_visitor_exception_ctor::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - *os << "const char *"; - return 0; -} - -int be_visitor_exception_ctor::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << " &"; - return 0; -} - -int be_visitor_exception_ctor::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // get output stream - - // set the right type; - be_type *bt; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH) - *os << "const " << bt->nested_type_name (this->ctx_->scope ()); - else - *os << "const " << bt->name (); - *os << " &"; - return 0; -} - -int be_visitor_exception_ctor::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_exception_ctor::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_field.cpp b/TAO/TAO_IDL/be/be_visitor_field.cpp deleted file mode 100644 index 4728ac23d5a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_field.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_field.cpp -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_field.h" - -// include all the individual files -#include "be_visitor_field/field_ch.cpp" -#include "be_visitor_field/field_ci.cpp" -#include "be_visitor_field/field_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp deleted file mode 100644 index 402da5bfe6c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp +++ /dev/null @@ -1,396 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Field node in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_field.h" - - -// ********************************************** -// visitor for field in the client header file -// ********************************************** - -// constructor -be_visitor_field_ch::be_visitor_field_ch (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_field_ch::~be_visitor_field_ch (void) -{ -} - -// visit the field node -int -be_visitor_field_ch::visit_field (be_field *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // field's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - // now output the field name - *os << " " << node->local_name () << ";\n"; - return 0; -} - -// =visit operations on all possible data types that a field can be - -// visit array type -int -be_visitor_field_ch::visit_array (be_array *node) -{ - // TO-DO - return 0; -} - -// visit enum type -int -be_visitor_field_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - if (!this->ctx_->alias () // not a typedef - && node->is_child (this->ctx_->scope ())) - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // now use this enum as a "type" for the subsequent declarator - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope ()); - - return 0; -} - -// visit interface type -int -be_visitor_field_ch::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope (), "_var"); - return 0; -} - -// visit interface forward type -int -be_visitor_field_ch::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope (), "_var"); - return 0; -} - -// visit predefined type -int -be_visitor_field_ch::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - os->indent (); // start from current indentation level - if (node->pt () == AST_PredefinedType::PT_pseudo) // is a psuedo obj - *os << bt->nested_type_name (this->ctx_->scope (), "_var"); - else - *os << bt->nested_type_name (this->ctx_->scope ()); - return 0; -} - -// visit sequence type -int -be_visitor_field_ch::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - if (!this->ctx_->alias () // not a typedef - && node->is_child (this->ctx_->scope ())) - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the sequence declaration - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_sequence - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_sequence - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope ()); - return 0; -} - -// visit string type -int -be_visitor_field_ch::visit_string (be_string *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - os->indent (); // start from current indentation level - // set the right type; - if (this->ctx_->alias ()) - { - *os << this->ctx_->alias ()->nested_type_name (this->ctx_->scope ()) - << "_var"; - } - else - *os << "CORBA::String_var"; - return 0; -} - -// visit structure type -int -be_visitor_field_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - - if (!this->ctx_->alias () // not a typedef - && node->is_child (this->ctx_->scope ())) - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the struct declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_struct - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_struct - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope ()); - return 0; -} - -// visit typedefed type -int -be_visitor_field_ch::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // save the node for use in code generation and - // indicate that the field of the field node - // is a typedefed quantity - - // make a decision based on the primitive base type - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_spec_ch::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - this->ctx_->alias (0); - return 0; -} - -// visit union type -int -be_visitor_field_ch::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; - - os = this->ctx_->stream (); - // set the right type; - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // if not a typedef and we are defined in the use scope, we must be defined - if (!this->ctx_->alias () // not a typedef - && node->is_child (this->ctx_->scope ())) - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ch::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - os->indent (); // start from current indentation level - *os << bt->nested_type_name (this->ctx_->scope ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp deleted file mode 100644 index b926d660594..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_field/field_ci.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Field in the client inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_field.h" - - -// ********************************************** -// visitor for field in the client inline file. -// -// Generate inline code for types that are defined -// inside the structure -// ********************************************** - -// constructor -be_visitor_field_ci::be_visitor_field_ci (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_field_ci::~be_visitor_field_ci (void) -{ -} - -// visit the field node -int -be_visitor_field_ci::visit_field (be_field *node) -{ - TAO_OutStream *os; - be_type *bt; // field's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} - -// =visit operations on all possible data types that a field can be - -// visit array -int -be_visitor_field_ci::visit_array (be_array *node) -{ - return 0; -} - -// visit sequence -int -be_visitor_field_ci::visit_sequence (be_sequence *node) -{ - return 0; -} - -// visit structure type -int -be_visitor_field_ci::visit_structure (be_structure *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // generate the inline code for structs - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_struct - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_struct - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} - -// visit typedef type -int -be_visitor_field_ci::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - - this->ctx_->alias (0); - return 0; -} - -// visit union type -int -be_visitor_field_ci::visit_union (be_union *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // generate the inline code for union - ctx.state (TAO_CodeGen::TAO_UNION_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_struct - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_ci::" - "visit_struct - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp deleted file mode 100644 index 9c2a196e05f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_field/field_cs.cpp +++ /dev/null @@ -1,253 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Field in the client stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_field.h" - - -// ********************************************** -// visitor for field in the client stubs file -// ********************************************** - -// constructor -be_visitor_field_cs::be_visitor_field_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_field_cs::~be_visitor_field_cs (void) -{ -} - -// visit the field node -int -be_visitor_field_cs::visit_field (be_field *node) -{ - TAO_OutStream *os; // output stream - - be_type *bt; // field's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} - -// visit array -int -be_visitor_field_cs::visit_array (be_array *node) -{ - return 0; -} - -// visit enum type -int -be_visitor_field_cs::visit_enum (be_enum *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // generate the typcode for enums - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} - -int -be_visitor_field_cs::visit_sequence (be_sequence *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the inline code for structs - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_sequence - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_sequence - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} - -// visit structure type -int -be_visitor_field_cs::visit_structure (be_structure *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the inline code for structs - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_struct - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_struct - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} - -// visit typedef type -int -be_visitor_field_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - - this->ctx_->alias (0); - return 0; -} - -// visit union type -int -be_visitor_field_cs::visit_union (be_union *node) -{ - if (node->node_type () != AST_Decl::NT_typedef // not a typedef - && node->is_child (this->ctx_->scope ())) // node is defined inside the - // structure - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the inline code for union - ctx.state (TAO_CodeGen::TAO_UNION_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_union - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_field_cs::" - "visit_union - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp deleted file mode 100644 index a067928f0ec..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Interface -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - -// include all the individual files -#include "be_visitor_interface/any_op_ch.cpp" -#include "be_visitor_interface/any_op_cs.cpp" -#include "be_visitor_interface/collocated_sh.cpp" -#include "be_visitor_interface/collocated_ss.cpp" -#include "be_visitor_interface/interface.cpp" -#include "be_visitor_interface/interface_ch.cpp" -#include "be_visitor_interface/interface_ci.cpp" -#include "be_visitor_interface/interface_cs.cpp" -#include "be_visitor_interface/interface_sh.cpp" -#include "be_visitor_interface/interface_si.cpp" -#include "be_visitor_interface/interface_ss.cpp" -#include "be_visitor_interface/tie_sh.cpp" -#include "be_visitor_interface/tie_si.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp deleted file mode 100644 index 1c699cec8a5..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_ch.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for an Interface in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// *************************************************************************** -// Interface visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_interface_any_op_ch::be_visitor_interface_any_op_ch -(be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_any_op_ch::~be_visitor_interface_any_op_ch (void) -{ -} - -int -be_visitor_interface_any_op_ch::visit_interface (be_interface *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "// Any operators for interface " << node->name () << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << " &); // copying version" << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << "*); // noncopying version" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " *&);\n"; - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::visit_interface - " - "codegen for scope failed\n"), -1); - } - - node->cli_hdr_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp deleted file mode 100644 index 0fd468600e8..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/any_op_cs.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for Interface in the stubs -// file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// *************************************************************************** -// Interface visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_interface_any_op_cs::be_visitor_interface_any_op_cs -(be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_any_op_cs::~be_visitor_interface_any_op_cs (void) -{ -} - -int -be_visitor_interface_any_op_cs::visit_interface (be_interface *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << "_ptr _tao_elem) // copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "CORBA::Object_ptr *_tao_obj_ptr;" << be_nl - << "ACE_NEW (_tao_obj_ptr, CORBA::Object_ptr);" << be_nl - << "*_tao_obj_ptr = " << node->name () - << "::_duplicate (_tao_elem);" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_obj_ptr, 1, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << "_ptr *_tao_elem) // non copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem, 1, _tao_env); // consume it" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << "_ptr &_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_elem = " << node->name () << "::_nil ();" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "CORBA::Object_ptr *_tao_obj_ptr;" << be_nl - << "ACE_NEW_RETURN (_tao_obj_ptr, CORBA::Object_ptr, 0);" << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_obj_ptr, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "_tao_elem = " << node->name () - << "::_narrow (*_tao_obj_ptr, _tao_env);" << be_nl - << "if (_tao_env.exception ()) return 0; // narrow failed" << be_nl - << "CORBA::release (*_tao_obj_ptr);" << be_nl - << "*_tao_obj_ptr = _tao_elem;" << be_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_obj_ptr, 1, _tao_env);" - << be_nl - << "if (_tao_env.exception ()) return 0; // narrow failed" << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_nl - << "return 0; // failure" << be_uidt_nl - << "}\n\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::visit_interface - " - "codegen for scope failed\n"), -1); - } - - node->cli_stub_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp deleted file mode 100644 index dbc6721bbe8..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/collocated_sh.cpp +++ /dev/null @@ -1,136 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for collocated classes for the Interface node -// inside the server header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// collocated class in header -// ************************************************************ - -be_visitor_interface_collocated_sh::be_visitor_interface_collocated_sh -(be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_collocated_sh::~be_visitor_interface_collocated_sh (void) -{ -} - -int be_visitor_interface_collocated_sh::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - os->gen_ifdef_macro (node->flatname (), "_collocated"); - - // output the class defn - os->indent (); - *os << "class " << idl_global->export_macro () - << " " << node->local_coll_name (); - os->incr_indent (); - *os << " : public virtual " << node->name (); - - // generate base classes if any - if (node->n_inherits () > 0) - { - for (int i = 0; i < node->n_inherits (); ++i) - { - *os << "," << be_nl; - be_interface* parent = - be_interface::narrow_from_decl (node->inherits()[i]); - *os << " public virtual " - << parent->relative_coll_name (node->full_coll_name ()); - } - } - *os << "\n"; - os->decr_indent (); - *os << "{" << be_nl; - *os << "public:\n"; - os->incr_indent (); - - *os << node->local_coll_name () << " (\n"; - - os->incr_indent (0); - os->incr_indent (); - - // XXXASG - can we make this a method to return the right name ?? - if (!node->is_nested ()) - { - // The skeleton name is the outermost, we need to printout the - // POA_ prefix that goes with it. - *os << "POA_"; - } - - *os << node->local_name () << "_ptr " - << " servant," << be_nl; - - *os << "STUB_Object *stub\n"; - os->decr_indent (); - *os << ");\n"; - os->decr_indent (0); - - os->indent (); - if (!node->is_nested ()) - { - // The skeleton name is the outermost, we need to printout the - // POA_ prefix that goes with it. - *os << "POA_"; - } - *os << node->local_name () - << "_ptr _get_servant (void) const;" << be_nl; - - *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl - << "const char *logical_type_id," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl - << ");\n" << be_uidt; - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_collocated_sh::" - "visit_interface - " - "codegen for scope failed\n"), - -1); - } - - os->decr_indent (); - - *os << be_nl << "private:\n"; - os->incr_indent (); - if (!node->is_nested ()) - { - // The skeleton name is the outermost, we need to printout the - // POA_ prefix that goes with it. - *os << "POA_"; - } - *os << node->local_name () << "_ptr servant_;\n"; - os->decr_indent (); - *os << "};\n\n"; - - os->gen_endif (); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp deleted file mode 100644 index bf2745c03dd..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/collocated_ss.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for collocated classes for an Interface in the -// server skeleton file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// be_visitor_interface_collacted_ss -// ************************************************************ - -be_visitor_interface_collocated_ss::be_visitor_interface_collocated_ss -(be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_collocated_ss::~be_visitor_interface_collocated_ss (void) -{ -} - -int be_visitor_interface_collocated_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os = tao_cg->server_skeletons (); - - this->ctx_->node (node); - - *os << node->full_coll_name () << "::" - << node->local_coll_name () << " (\n"; - - os->incr_indent (0); - os->incr_indent (); - *os << node->full_skel_name () << "_ptr " - << " servant," << be_nl; - - *os << "STUB_Object *stub\n"; - os->decr_indent (); - *os << ")\n"; - os->decr_indent (0); - - os->incr_indent (); - - if (node->is_nested ()) - { - be_decl* scope = - be_scope::narrow_from_scope (node->defined_in ())->decl (); - - *os << ": ACE_NESTED_CLASS (" - << scope->name () << "," - << node->local_name () - << ") ()," << be_nl; - } - else - { - *os << ": " << node->name () - << " ()," << be_nl; - } - - // @@ We should call the constructor for all base classes, since we - // are using multiple inheritance. - - if (node->traverse_inheritance_graph (be_interface::collocated_ctor_helper, os) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_collocated_ss::" - "visit_interface - " - "codegen for base class ctor init failed\n"), - -1); - } - - *os << " CORBA_Object (stub, servant, CORBA::B_TRUE)," << be_nl - << " servant_ (servant)"; - - *os << "\n"; - os->decr_indent (); - *os << "{\n"; - *os << "}\n\n"; - - os->indent (); - *os << node->full_skel_name () << "_ptr " - << node->full_coll_name () << "::" - << "_get_servant (void) const\n" - << "{\n"; - os->incr_indent (); - *os << "return this->servant_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "CORBA::Boolean " << node->full_coll_name () - << "::_is_a (" << be_idt << be_idt_nl - << "const char* logical_type_id," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "return this->servant_->_is_a (" << be_idt << be_idt_nl - << "logical_type_id," << be_nl - << "_tao_environment" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}\n\n"; - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_collocated_ss::" - "visit_scope - " - "codegen for scope failed\n"), - -1); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp deleted file mode 100644 index a8d0f2cac6e..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface.cpp +++ /dev/null @@ -1,632 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces. This is a generic visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - -// ****************************************************** -// Generic Interface visitor -// ****************************************************** - -be_visitor_interface::be_visitor_interface (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_interface::~be_visitor_interface (void) -{ -} - -// this method must be overridden by the derived interface visitors -int -be_visitor_interface::visit_interface (be_interface *node) -{ - return -1; -} - -// =all common visit methods for interface visitor - -// visit an attribute -int -be_visitor_interface::visit_attribute (be_attribute *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_COLLOCATED_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_TIE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - ctx.state (TAO_CodeGen::TAO_ATTRIBUTE_TIE_SI); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_attribute - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_attribute - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_attribute - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit a constant -int -be_visitor_interface::visit_constant (be_constant *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_constant - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_constant - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_constant - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -//visit an enum -int -be_visitor_interface::visit_enum (be_enum *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_enum - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_enum - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_enum - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an exception -int -be_visitor_interface::visit_exception (be_exception *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CI: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_exception - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_exception - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_exception - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an operation -int -be_visitor_interface::visit_operation (be_operation *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_OPERATION_CH); - // return node->gen_client_header (); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_OPERATION_CS); - // return node->gen_client_stubs (); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_SH); - // return node->gen_server_header (); - break; - case TAO_CodeGen::TAO_INTERFACE_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_SS); - // return node->gen_server_skeletons (); - break; - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_SS); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SH); - break; - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - ctx.state (TAO_CodeGen::TAO_OPERATION_TIE_SI); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - case TAO_CodeGen::TAO_INTERFACE_CI: - case TAO_CodeGen::TAO_INTERFACE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_operation - " - "Bad context state\n" - ), -1); - } - break; - } - - // grab the appropriate visitor - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_operation - " - "NUL visitor\n" - ), -1); - } - - // visit the node using this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_operation - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an structure -int -be_visitor_interface::visit_structure (be_structure *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CI: - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_structure - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_structure - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_structure - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit a union -int -be_visitor_interface::visit_union (be_union *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_UNION_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CI: - ctx.state (TAO_CodeGen::TAO_UNION_CI); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_UNION_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_union - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_union - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_union - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit a typedef -int -be_visitor_interface::visit_typedef (be_typedef *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_INTERFACE_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_CI: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); - break; - case TAO_CodeGen::TAO_INTERFACE_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_INTERFACE_SH: - case TAO_CodeGen::TAO_INTERFACE_SI: - case TAO_CodeGen::TAO_INTERFACE_SS: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH: - case TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS: - case TAO_CodeGen::TAO_INTERFACE_TIE_SH: - case TAO_CodeGen::TAO_INTERFACE_TIE_SI: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_typedef - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_typedef - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp deleted file mode 100644 index c45fb65d730..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ****************************************************** -// Interface visitor for client header -// ****************************************************** - -be_visitor_interface_ch::be_visitor_interface_ch (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_ch::~be_visitor_interface_ch (void) -{ -} - -int -be_visitor_interface_ch::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - long i; // loop index - - if (!node->cli_hdr_gen () && !node->imported ()) // not already generated and - // not imported - { - - os = this->ctx_->stream (); - - // == STEP 1: generate the class name and class names we inherit == - - // generate the ifdefined macro for the _ptr type - os->gen_ifdef_macro (node->flatname (), "_ptr"); - - // the following two are required to be under the ifdef macro to avoid - // multiple declarations - - os->indent (); // start with whatever indentation level we are at - // forward declaration - *os << "class " << node->local_name () << ";" << be_nl; - // generate the _ptr declaration - *os << "typedef " << node->local_name () << " *" << node->local_name () - << "_ptr;" << be_nl; - - os->gen_endif (); - - // generate the ifdefined macro for the var type - os->gen_ifdef_macro (node->flatname (), "_var"); - - // generate the _var declaration - if (node->gen_var_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ch::" - "visit_interface - " - "codegen for _var failed\n"), -1); - } - os->gen_endif (); - - // generate the ifdef macro for the _out class - os->gen_ifdef_macro (node->flatname (), "_out"); - - // generate the _out declaration - ORBOS/97-05-15 pg 16-20 spec - if (node->gen_out_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ch::" - "visit_interface - " - "codegen for _out failed\n"), -1); - } - // generate the endif macro - os->gen_endif (); - - // now the interface definition itself - os->gen_ifdef_macro (node->flatname ()); - - // now generate the class definition - os->indent (); - *os << "class " << idl_global->export_macro () - << " " << node->local_name (); - - if (node->n_inherits () > 0) // node interface inherits from other - // interfaces - { - *os << ": "; - for (i = 0; i < node->n_inherits (); i++) - { - be_interface *inherited = - be_interface::narrow_from_decl (node->inherits ()[i]); - be_decl *scope = 0; - if (inherited->is_nested ()) - { - // inherited node is used in the scope of "node" node - scope = be_scope::narrow_from_scope (node->defined_in ()) - ->decl (); - } - - *os << "public virtual "; - *os << inherited->nested_type_name (scope); // dump the scoped name - if (i < node->n_inherits () - 1) // node is the case of multiple - // inheritance, so put a comma - { - *os << ", "; - } - } // end of for loop - *os << be_nl; - } - else - { - // we do not inherit from anybody, hence we do so from the base - // CORBA::Object class - // Generate code that uses the macro. This is required to deal with - // the MSVC++ insanity - *os << " : public virtual ACE_CORBA_1 (Object)" << be_nl; - } - - // generate the body - - *os << "{" << be_nl - << "public:" << be_idt_nl - // generate the static _duplicate, _narrow, and _nil operations - << "// the static operations" << be_nl - << "static " << node->local_name () << "_ptr " << "_duplicate (" - << node->local_name () << "_ptr obj);" << be_nl - << "static " << node->local_name () << "_ptr " << "_narrow (" - << "CORBA::Object_ptr obj, CORBA::Environment &env);" << be_nl - << "static " << node->local_name () << "_ptr " << "_nil (void);\n\n"; - - // generate code for the interface definition by traversing thru the - // elements of its scope. We depend on the front-end to have made sure - // that only legal syntactic elements appear in our scope. - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ch::" - "visit_interface - " - "codegen for scope failed\n"), -1); - } - // the _is_a method - os->indent (); - *os << "virtual CORBA::Boolean _is_a (" - << "const CORBA::Char *type_id, " << be_idt << be_idt_nl - << "CORBA::Environment &env" << be_uidt_nl - << ");" << be_uidt_nl - << "virtual const char* " - << "_interface_repository_id (void) const;" << be_uidt_nl; - - // generate the "protected" constructor so that users cannot instantiate - // us - *os << "protected:" << be_idt_nl - << node->local_name () << " (void); // default constructor" << be_nl - << node->local_name () - << " (STUB_Object *objref, " << be_idt << be_idt_nl - << "TAO_ServantBase *_tao_servant = 0, " << be_nl - << "CORBA::Boolean _tao_collocated = 0" << be_uidt_nl - << ");" << be_uidt_nl - << "virtual ~" << node->local_name () << " (void);" << be_uidt_nl; - - // private copy constructor and assignment operator. These are not - // allowed, hence they are private. - *os << "private:\n"; - os->incr_indent (); - *os << node->local_name () << " (const " << node->local_name () << " &);" - << be_nl - << "void operator= (const " << node->local_name () << " &);\n"; - - os->decr_indent (); - *os << "};\n\n"; - os->gen_endif (); - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ch::" - "visit_interface - " - "TypeCode declaration failed\n" - ), -1); - } - - - node->cli_hdr_gen (I_TRUE); - } // if !cli_hdr_gen - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp deleted file mode 100644 index b3fd272704d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ci.cpp +++ /dev/null @@ -1,102 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the client inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************** -// Interface visitor for client inline -// ************************************************** -be_visitor_interface_ci::be_visitor_interface_ci (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_ci::~be_visitor_interface_ci (void) -{ -} - -int -be_visitor_interface_ci::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - - if (node->cli_inline_gen () || node->imported ()) - return 0; - - os = this->ctx_->stream (); - - os->indent (); // start from the current indentation level - - // generate the constructors and destructor - *os << "ACE_INLINE" << be_nl; - *os << node->name () << "::" << node->local_name () << - " (void) // default constructor" << be_nl; - *os << "{}" << be_nl << be_nl; - - *os << "ACE_INLINE" << be_nl; - *os << node->name () << "::" << node->local_name () << - " (STUB_Object *objref, TAO_ServantBase *_tao_servant, " - << "CORBA::Boolean _tao_collocated) // constructor" << be_nl; - *os << " : CORBA_Object (objref, _tao_servant, _tao_collocated)" << be_nl; - *os << "{}" << be_nl << be_nl; - - *os << "ACE_INLINE" << be_nl; - *os << node->name () << "::~" << node->local_name () << - " (void) // destructor" << be_nl; - *os << "{}\n\n"; - - // generate the ifdefined macro for the _var type - os->gen_ifdef_macro (node->flatname (), "_var"); - if (node->gen_var_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ci::" - "visit_interface - " - "codegen for _var failed\n"), -1); - } - os->gen_endif (); - - // generate the ifdefined macro for the _out type - os->gen_ifdef_macro (node->flatname (), "_out"); - if (node->gen_out_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ci::" - "visit_interface - " - "codegen for _out failed\n"), -1); - } - os->gen_endif (); - - // generate inline methods for elements of our scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_ci::" - "visit_interface - " - "codegen for scope failed\n"), -1); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp deleted file mode 100644 index 32e09f04cea..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the client stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// Interface visitor for client stubs -// ************************************************************ - -be_visitor_interface_cs::be_visitor_interface_cs (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_cs::~be_visitor_interface_cs (void) -{ -} - -int -be_visitor_interface_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - - if (node->cli_stub_gen () || node->imported ()) - return 0; - - os = this->ctx_->stream (); - - os->indent (); // start with whatever indentation level we are at - - // first generate the code for the static methods - - // The _duplicate method - *os << node->name () << "_ptr " << node->name () << "::_duplicate (" - << node->name () << "_ptr obj)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "if (!CORBA::is_nil (obj))\n"; - os->incr_indent (); - *os << "obj->AddRef ();\n"; - os->decr_indent (); - *os << be_nl; - *os << "return obj;\n"; - os->decr_indent (); - *os << "} // end of _duplicate" << be_nl << be_nl; - - // The _narrow method - *os << node->name () << "_ptr " << node->name () - << "::_narrow (" << be_idt << be_idt_nl - << "CORBA::Object_ptr obj," << be_nl - << "CORBA::Environment &env" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "if (CORBA::is_nil (obj))" << be_idt_nl - << "return " << node->name () << "::_nil ();" << be_uidt_nl - << "if (!obj->_is_a (\"" << node->repoID () << "\", env))" - << be_idt_nl - << "return " << node->name () << "::_nil ();" << be_uidt_nl; - - *os << "if (!obj->_is_collocated ()" << be_idt << be_idt << be_idt_nl - << " || !obj->_servant()" << be_nl - << " || obj->_servant()->_downcast (\"" - << node->repoID () << "\") == 0" << be_uidt_nl - << ")" << be_uidt << be_uidt_nl - << "{" << be_idt_nl; - *os << node->name () << "_ptr new_obj = new " - << node->name () << "(obj->_get_parent ());" << be_nl - << "return new_obj;" << be_uidt_nl - << "} // end of if" << be_nl; - - *os << "STUB_Object *stub = obj->_servant ()->_create_stub (env);" << be_nl - << "if (env.exception () != 0)" << be_idt_nl - << "return " << node->name () << "::_nil ();" << be_uidt_nl - << "void* servant = obj->_servant ()->_downcast (\"" - << node->repoID () << "\");" << be_nl - << "return new "; - - // This may be necessary to work around a GCC compiler bug! - const char *skel_name = node->full_skel_name (); - const char *coll_name = node->full_coll_name (); - assert (coll_name != 0); - - *os << coll_name << "(" << be_idt << be_idt_nl - << "ACE_reinterpret_cast(" << skel_name - << "_ptr, servant)," << be_nl - << "stub" << be_uidt_nl - << ");" << be_uidt << be_uidt_nl - << "}" << be_nl << be_nl; - - // _nil method - *os << node->name () << "_ptr " << node->name () << "::_nil (void)" << - be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return (" << node->name () << "_ptr)NULL;\n"; - os->decr_indent (); - *os << "} // end of _nil" << be_nl << be_nl; - - // generate code for the elements of the interface - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_cs::" - "visit_interface - " - "codegen for scope failed\n"), -1); - } - - // generate the is_a method - os->indent (); - *os << "CORBA::Boolean " << node->name () << "::_is_a (" << - "const CORBA::Char *value, CORBA::Environment &env)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "if (\n"; - os->incr_indent (0); - if (node->traverse_inheritance_graph (be_interface::is_a_helper, os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_cs::" - "visit_interface - " - "_is_a method codegen failed\n"), -1); - } - - os->indent (); - *os << "(!ACE_OS::strcmp ((char *)value, CORBA::_tc_Object->id (env))))\n"; - *os << " return 1; // success using local knowledge\n"; - os->decr_indent (); - *os << "else" << be_nl; - *os << " return this->CORBA_Object::_is_a (value, env); // remote call\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "const char* " << node->name () - << "::_interface_repository_id (void) const" - << be_nl - << "{" << be_idt_nl - << "return \"" << node->repoID () << "\";" << be_uidt_nl - << "}\n\n"; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_cs::" - "visit_interface - " - "TypeCode definition failed\n" - ), -1); - } - - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp deleted file mode 100644 index e0fbd194310..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_sh.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// Interface visitor for server header -// ************************************************************ - -be_visitor_interface_sh::be_visitor_interface_sh (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_sh::~be_visitor_interface_sh (void) -{ -} - -int -be_visitor_interface_sh::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - long i; // loop index - static char namebuf [NAMEBUFSIZE]; // holds the class name - - if (node->srv_hdr_gen () || node->imported ()) - return 0; - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - - os = this->ctx_->stream (); - - // generate the skeleton class name - - os->indent (); // start with whatever indentation level we are at - - // we shall have a POA_ prefix only if we are at the topmost level - if (!node->is_nested ()) - { - // we are outermost - ACE_OS::sprintf (namebuf, "POA_%s", node->local_name ()->get_string ()); - } - else - { - ACE_OS::sprintf (namebuf, "%s", node->local_name ()->get_string ()); - } - - *os << "class " << namebuf << ";" << be_nl; - - // generate the _ptr declaration - *os << "typedef " << namebuf << " *" << namebuf - << "_ptr;" << be_nl; - - // now generate the class definition - *os << "class " << idl_global->export_macro () - << " " << namebuf << " : "; - if (node->n_inherits () > 0) - { - // this interface inherits from other interfaces - be_interface *intf; // inherited interface - - *os << "public virtual "; - intf = be_interface::narrow_from_decl (node->inherits ()[0]); - *os << intf->relative_skel_name (node->full_skel_name ()); - for (i = 1; i < node->n_inherits (); i++) - { - *os << ", public virtual "; - intf = be_interface::narrow_from_decl (node->inherits ()[i]); - *os << intf->relative_skel_name (node->full_skel_name ()); - } // end of for loop - } - else - { - // We don't inherit from another user defined object, hence our - // base class is the ServantBase class. - *os << " public virtual PortableServer::ServantBase"; - } - *os << be_nl - << "{" << be_nl - << "protected:" << be_idt_nl - << namebuf << " (void);" << be_uidt_nl - << "public:" << be_idt_nl - << "virtual ~" << namebuf << " (void);" << be_nl; - - *os << "virtual CORBA::Boolean _is_a (" << be_idt << be_idt_nl - << "const char* logical_type_id," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt - << ");\n" << be_uidt; - - os->indent (); - *os << "virtual void* _downcast (" << be_idt << be_idt_nl - << "const char* logical_type_id" << be_uidt_nl - << ");\n" << be_uidt; - - // generate code for elements in the scope (e.g., operations) - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_sh::" - "visit_interface - " - "codegen for scope failed\n"), - -1); - } - // add a skeleton for our _is_a method - os->indent (); - *os << "static void _is_a_skel (CORBA::ServerRequest &req, " << - "void *obj, void *context, CORBA::Environment &_tao_enviroment);\n\n"; - - // generate skeletons for operations of our base classes. These skeletons - // just cast the pointer to the appropriate type before invoking the call - if (node->traverse_inheritance_graph (be_interface::gen_skel_helper, os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_sh::" - "visit_interface - " - "inheritance graph traversal failed\n"), - -1); - } - - // add the dispatch method - os->indent (); - *os << "virtual void _dispatch (CORBA::ServerRequest &_tao_req, " - << "void *_tao_context, CORBA::Environment &_tao_env);\n\n"; - - // Print out the _this() method. - os->indent (); - *os << node->name () << " *_this (CORBA::Environment &_tao_environment);\n"; - // the _interface_repository_id method - os->indent (); - *os << "virtual const char* _interface_repository_id" - << " (void) const;\n"; - - os->decr_indent (); - - *os << "};\n\n"; - - // generate the collocated class - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_sh::" - "visit_interface - " - "codegen for collocated class failed\n"), - -1); - } - - // generate the TIE class - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_INTERFACE_TIE_SH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_sh::" - "visit_interface - " - "codegen for TIE class failed\n"), - -1); - } - - *os << "\n"; - ctx.stream (tao_cg->server_template_header ()); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp deleted file mode 100644 index 64fe692d2ba..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_si.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_si.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the server inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************************ -// Interface visitor for server inline -// ************************************************************************ - -be_visitor_interface_si::be_visitor_interface_si (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_si::~be_visitor_interface_si (void) -{ -} - -int -be_visitor_interface_si::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - - if (node->srv_inline_gen () || node->imported ()) - return 0; - - os = this->ctx_->stream (); - - os->indent (); // start with whatever indentation level we are at - - // Generate skeletons for operations of our base classes. These skeletons - // just cast the pointer to the appropriate type before invoking the - // call. Hence we generate these in the inline file - if (node->traverse_inheritance_graph (be_interface::gen_skel_helper, os) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_si::" - "visit_interface - " - "codegen for base class skeletons failed\n"), -1); - } - - // generate the TIE class - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_TIE_SI); - ctx.stream (tao_cg->server_template_inline ()); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_sh::" - "visit_interface - " - "codegen for TIE class failed\n"), - -1); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp deleted file mode 100644 index 021de9daeed..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp +++ /dev/null @@ -1,285 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for Interfaces in the server skeletons file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// Interface visitor for server skeletons -// ************************************************************ - -be_visitor_interface_ss::be_visitor_interface_ss (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_ss::~be_visitor_interface_ss (void) -{ -} - -int -be_visitor_interface_ss::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - - if (node->srv_skel_gen () || node->imported ()) - return 0; - - os = this->ctx_->stream (); - - // generate the skeleton class name - - os->indent (); // start with whatever indentation level we are at - - if (node->gen_operation_table () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "codegen for operation table failed\n"), - -1); - } - - // constructor - *os << "// skeleton constructor" << be_nl; - // find if we are at the top scope or inside some module - if (!node->is_nested ()) - { - // we are outermost. So the POA_ prefix is prepended to our name - *os << node->full_skel_name () << "::POA_" << node->local_name () << - " (void)" << be_nl; - } - else - { - // the POA_ prefix is prepended to our outermost module name - *os << node->full_skel_name () << "::" << node->local_name () << - " (void)" << be_nl; - } - - *os << "{" << be_idt_nl - << "this->optable_ = &tao_" << node->flatname () - << "_optable;" << be_uidt_nl - << "}\n\n"; - - // destructor - os->indent (); - *os << "// skeleton destructor" << be_nl; - - if (!node->is_nested ()) - { - // we are outermost. So the POA_ prefix is prepended to our name - *os << node->full_skel_name () << "::~POA_" << node->local_name () << - " (void)" << be_nl; - } - else - { - // the POA_ prefix is prepended to our outermost module name - *os << node->full_skel_name () << "::~" << node->local_name () << - " (void)" << be_nl; - } - *os << "{\n"; - *os << "}\n"; - - - // generate code for elements in the scope (e.g., operations) - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "codegen for scope failed\n"), - -1); - } - - // generate code for the _is_a skeleton - os->indent (); - *os << "void " << node->full_skel_name () - << "::_is_a_skel (" << be_idt << be_idt_nl - << "CORBA::ServerRequest &_tao_server_request, " << be_nl - << "void * _tao_object_reference," << be_nl - << "void * /*context*/," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl - << ")" << be_uidt_nl; - *os << "{\n"; - os->incr_indent (); - *os << "static const TAO_Param_Data_Skel " << node->flatname () - << "_is_a_paramdata [] = " << be_nl; - *os << "{" << be_idt_nl; - *os << "{CORBA::_tc_boolean, 0, 0}," << be_nl; - *os << "{CORBA::_tc_string, CORBA::ARG_IN, 0}" << be_uidt_nl; - *os << "};" << be_nl; - *os << "static const TAO_Call_Data_Skel " << node->flatname () - << "_is_a_calldata = " << be_nl; - *os << "{\"_is_a\", 1, 2, " << node->flatname () << "_is_a_paramdata};" - << be_nl; - *os << "CORBA::Environment _tao_skel_environment;" << be_nl; - *os << node->full_skel_name () << "_ptr _tao_impl = (" - << node->full_skel_name () << "_ptr) _tao_object_reference;" - << be_nl; - *os << "CORBA::Boolean _tao_retval;" << be_nl; - *os << "char *_tao_value = 0;" << be_nl; - *os << "_tao_server_request.demarshal (" << be_idt_nl - << "_tao_environment, " << be_nl - << "&" << node->flatname () << "_is_a_calldata, " << be_nl - << "&_tao_retval, " << be_nl - << "&_tao_value" << be_uidt_nl - << ");" << be_nl; - *os << "if (_tao_environment.exception () != 0) return;" << be_nl; - *os << "_tao_retval = _tao_impl->_is_a (_tao_value, " - << "_tao_skel_environment);" << be_nl; - *os << "_tao_server_request.marshal (" << be_idt_nl - << "_tao_environment, " << be_nl - << "_tao_skel_environment," << be_nl - << "&" << node->flatname () << "_is_a_calldata, " << be_nl - << "&_tao_retval, " << be_nl - << "&_tao_value" << be_uidt_nl - << ");" << be_nl; - *os << "CORBA::string_free (_tao_value);" << be_uidt_nl; - *os << "}\n\n"; - - - os->indent (); - *os << "CORBA::Boolean " << node->full_skel_name () - << "::_is_a (" << be_idt << be_idt_nl - << "const char* value," << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl - << "if (\n" << be_idt; - if (node->traverse_inheritance_graph (be_interface::is_a_helper, os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "traversal of inhertance graph failed\n"), - -1); - } - - os->indent (); - *os << "(!ACE_OS::strcmp ((char *)value, " - << "CORBA::_tc_Object->id (_tao_environment))))" - << be_idt_nl << "return CORBA::B_TRUE;" << be_uidt_nl - << "else" << be_idt_nl - << "return CORBA::B_FALSE;" << be_uidt << be_uidt << be_uidt_nl - << "}\n\n"; - - os->indent (); - *os << "void* " << node->full_skel_name () - << "::_downcast (" << be_idt << be_idt_nl - << "const char* logical_type_id" << be_uidt_nl - << ")" << be_uidt_nl - << "{" << be_idt_nl; - - if (node->traverse_inheritance_graph (be_interface::downcast_helper, os) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "traversal of inhertance graph failed\n"), - -1); - } - - *os << "if (ACE_OS::strcmp (logical_type_id, " - << "\"IDL:omg.org/CORBA/Object:1.0\") == 0)" << be_idt_nl - << "return ACE_static_cast(PortableServer::Servant, this);" - << be_uidt_nl; - - *os << "return 0;" << be_uidt_nl - << "}\n\n"; - - - // now the dispatch method - os->indent (); - *os << "void " << node->full_skel_name () << - "::_dispatch (CORBA::ServerRequest &req, " << - "void *context, CORBA::Environment &env)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "TAO_Skeleton skel; // pointer to skeleton for operation" << be_nl; - *os << "const char *opname = req.operation (); // retrieve operation name" - << be_nl; - *os << "// find the skeleton corresponding to this opname" << be_nl; - *os << "if (this->_find (opname, skel) == -1)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "env.exception (new CORBA_BAD_OPERATION (CORBA::COMPLETED_NO));" - << be_nl; - *os << "ACE_ERROR ((LM_ERROR, \"Bad operation <%s>\\n\", opname));\n"; - os->decr_indent (); - *os << "}\n"; - *os << "else" << be_nl; - *os << " skel (req, this, context, env);\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "const char* " << node->full_skel_name () - << "::_interface_repository_id (void) const" - << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return \"" << node->repoID () << "\";\n"; - os->decr_indent (); - *os << "}\n\n"; - - // generate the collocated class impl - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_INTERFACE_COLLOCATED_SS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "Bad visitor for collocated class\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_ss::" - "visit_interface - " - "codegen for collocated class failed\n"), - -1); - } - delete visitor; - - *os << "\n"; - - // the _this () operation - *os << node->name () << "*" << be_nl - << node->full_skel_name () - << "::_this (CORBA_Environment &_env)" << be_nl - << "{" << be_idt_nl - << "STUB_Object *stub = this->_create_stub (_env);" << be_nl - << "if (_env.exception () != 0)" << be_idt_nl - << "return 0;" << be_uidt_nl - << "return new " << node->full_coll_name () - << " (this, stub);" << be_uidt << be_nl; - - *os << "}\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp deleted file mode 100644 index 021309aee09..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_sh.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for TIE class for an Interface in the header -// file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************ -// Interface visitor for server header -// ************************************************************ - -be_visitor_interface_tie_sh::be_visitor_interface_tie_sh (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_tie_sh::~be_visitor_interface_tie_sh (void) -{ -} - -int -be_visitor_interface_tie_sh::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - static char namebuf [NAMEBUFSIZE]; // holds the class name - static char tiename [NAMEBUFSIZE]; // holds the tie name - - if (node->srv_hdr_gen () || node->imported ()) - return 0; - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - ACE_OS::memset (tiename, '\0', NAMEBUFSIZE); - - os = this->ctx_->stream (); - - // generate the skeleton class name which will be used to determine the TIE - // class name - - // we shall have a POA_ prefix only if we are at the topmost level - if (!node->is_nested ()) - { - // we are outermost - ACE_OS::sprintf (namebuf, "POA_%s", node->local_name ()->get_string ()); - ACE_OS::sprintf (tiename, "POA_%s_tie", - node->local_name ()->get_string ()); - } - else - { - ACE_OS::sprintf (namebuf, "%s", node->local_name ()->get_string ()); - ACE_OS::sprintf (tiename, "%s_tie", - node->local_name ()->get_string ()); - } - - // now generate the class definition - os->indent (); // start with whatever indentation level we are at - - // Since templates nested inside of classes are broken on most C++ compilers, - // we generate code for this inside a conditional macro. The code is - // activated only if "namespaces" are supported on the platform - if (node->is_nested ()) - { - *os << "\n#if defined (ACE_HAS_USING_KEYWORD)" << be_nl; - } - - *os << "// TIE class: Refer to CORBA v2.2, Section 20.34.4" << be_nl; - *os << "template " << be_nl; - *os << "class " << idl_global->export_macro () - << " " << tiename << " : public " << namebuf << be_nl; - *os << "{" << be_nl - << "public:" << be_idt_nl - << tiename << " (T &t);" << be_nl - << "// the T& ctor" << be_nl - << tiename << " (T &t, PortableServer::POA_ptr poa);" << be_nl - << "// ctor taking a POA" << be_nl - << tiename << " (T *tp, CORBA::Boolean release=1);" << be_nl - << "// ctor taking pointer and an ownership flag" << be_nl - << tiename << " (T *tp, PortableServer::POA_ptr poa, " - << "CORBA::Boolean release=1);" << be_nl - << "// ctor with T*, ownership flag and a POA" << be_nl - << "~" << tiename << " (void);" << be_nl - << "// dtor" << be_nl << be_nl - << "// TIE specific functions" << be_nl - << "T *_tied_object (void);" << be_nl - << "// return the underlying object" << be_nl - << "void _tied_object (T &obj);" << be_nl - << "// set the underlying object" << be_nl - << "void _tied_object (T *obj, CORBA::Boolean release=1);" << be_nl - << "// set the underlying object and the ownership flag" << be_nl - << "CORBA::Boolean _is_owner (void);" << be_nl - << "// do we own it" << be_nl - << "void _is_owner (CORBA::Boolean b);" << be_nl - << "// set the ownership" << be_nl << be_nl - << "// overridden ServantBase operations" << be_nl - << "PortableServer::POA_ptr _default_POA (CORBA::Environment &env);\n"; - - // generate code for the operations in the scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_tie_sh::" - "visit_interface - " - "codegen for scope failed\n"), - -1); - } - - *os << be_uidt << "private:" << be_idt_nl - << "T *ptr_;" << be_nl - << "PortableServer::POA_var poa_;" << be_nl - << "CORBA::Boolean rel_;" << be_nl << be_nl - << "// copy and assignment are not allowed" << be_nl - << tiename << " (const " << tiename << " &);" << be_nl - << "void operator= (const " << tiename << " &);" << be_uidt_nl - << "};\n\n"; - - if (node->is_nested ()) - { - *os << "#endif /* ACE_HAS_USING_KEYWORD */\n"; - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp b/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp deleted file mode 100644 index 15d17f4aba9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface/tie_si.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_si.cpp -// -// = DESCRIPTION -// Visitor generating code for TIE classes for the Interface node in the -// inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface.h" - - -// ************************************************************************ -// Interface visitor for server inline -// ************************************************************************ - -be_visitor_interface_tie_si::be_visitor_interface_tie_si (be_visitor_context *ctx) - : be_visitor_interface (ctx) -{ -} - -be_visitor_interface_tie_si::~be_visitor_interface_tie_si (void) -{ -} - -int -be_visitor_interface_tie_si::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - static char fulltiename [NAMEBUFSIZE]; // holds the class name - static char localtiename [NAMEBUFSIZE]; // holds the tie name - - if (node->srv_inline_gen () || node->imported ()) - return 0; - - ACE_OS::memset (fulltiename, '\0', NAMEBUFSIZE); - ACE_OS::memset (localtiename, '\0', NAMEBUFSIZE); - - os = this->ctx_->stream (); - - // generate the skeleton class name which will be used to determine the TIE - // class name - - // we are outermost - ACE_OS::sprintf (fulltiename, "%s_tie", node->full_skel_name ()); - if (!node->is_nested ()) - { - ACE_OS::sprintf (localtiename, "POA_%s_tie", - node->local_name ()->get_string ()); - } - else - { - ACE_OS::sprintf (localtiename, "%s_tie", - node->local_name ()->get_string ()); - } - - if (node->is_nested ()) - { - *os << "\n#if defined (ACE_HAS_USING_KEYWORD)\n"; - } - - os->indent (); // start with whatever indentation level we are at - - *os << "template ACE_INLINE" << be_nl - << fulltiename << "::" << localtiename << " (T &t)" << be_nl - << "\t: ptr_ (&t)," << be_nl - << "\t poa_ (PortableServer::POA::_nil ())," << be_nl - << "\t rel_ (0)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template ACE_INLINE" << be_nl - << fulltiename << "::" << localtiename - << " (T &t, PortableServer::POA_ptr poa)" << be_nl - << "\t: ptr_ (&t)," << be_nl - << "\t poa_ (PortableServer::POA::_duplicate (poa))," << be_nl - << "\t rel_ (0)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template ACE_INLINE" << be_nl - << fulltiename << "::" << localtiename - << " (T *tp, CORBA::Boolean release)" << be_nl - << "\t: ptr_ (tp)," << be_nl - << "\t poa_ (PortableServer::POA::_nil ())," << be_nl - << "\t rel_ (release)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template ACE_INLINE" << be_nl - << fulltiename << "::" << localtiename - << " (T *tp, PortableServer::POA_ptr poa, CORBA::Boolean release)" - << be_nl - << "\t: ptr_ (tp)," << be_nl - << "\t poa_ (PortableServer::POA::_duplicate (poa))," << be_nl - << "\t rel_ (release)" << be_nl - << "{}" << be_nl << be_nl; - - *os << "template ACE_INLINE" << be_nl - << fulltiename << "::~" << localtiename << " (void)" << be_nl - << "{" << be_idt_nl - << "CORBA::release (this->poa_);" << be_nl - << "if (this->rel_) delete this->ptr_;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE T *" << be_nl - << fulltiename << "::_tied_object (void)" << be_nl - << "{" << be_idt_nl - << "return this->ptr_;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE void" << be_nl - << fulltiename << "::_tied_object (T &obj)" << be_nl - << "{" << be_idt_nl - << "if (this->rel_) delete this->ptr_;" << be_nl - << "this->ptr_ = &obj;" << be_nl - << "this->rel_ = 0;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE void" << be_nl - << fulltiename << "::_tied_object (T *obj, " - << "CORBA::Boolean release)" << be_nl - << "{" << be_idt_nl - << "if (this->rel_) delete this->ptr_;" << be_nl - << "this->ptr_ = obj;" << be_nl - << "this->rel_ = release;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE CORBA::Boolean" << be_nl - << fulltiename << "::_is_owner (void)" << be_nl - << "{" << be_idt_nl - << "return this->rel_;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE void" << be_nl - << fulltiename << "::_is_owner (CORBA::Boolean b)" << be_nl - << "{" << be_idt_nl - << "this->rel_ = b;" << be_uidt_nl - << "}" << be_nl << be_nl; - - *os << "template ACE_INLINE " - << "PortableServer::POA_ptr" << be_nl - << fulltiename << "::_default_POA (CORBA::Environment &env)" << be_nl - << "{" << be_idt_nl - << "if (!CORBA::is_nil (this->poa_.in ()))" << be_idt_nl - << "return PortableServer::POA::_duplicate (this->poa_.in ());" - << be_uidt_nl - << "else" << be_nl - << "{" << be_idt_nl - << "TAO_POA *poa = TAO_ORB_Core_instance ()->root_poa ();" << be_nl - << "PortableServer::POA_var result = poa->_this (env);" << be_nl - << "if (env.exception () != 0)" << be_idt_nl - << "return PortableServer::POA::_nil ();" << be_uidt_nl - << "else" << be_idt_nl - << "return result._retn ();" << be_uidt << be_uidt_nl - << "}" << be_uidt - << "}\n\n"; - - // generate code for the operations in the scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_interface_tie_si::" - "visit_interface - " - "codegen for scope failed\n"), - -1); - } - - if (node->is_nested ()) - { - *os << "#endif /* ACE_HAS_USING_KEYWORD */\n"; - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp deleted file mode 100644 index 555cef07429..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface_fwd.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface_fwd.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Interface_Fwd -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface_fwd.h" - -// include all the individual files -#include "be_visitor_interface_fwd/interface_fwd_ch.cpp" -#include "be_visitor_interface_fwd/interface_fwd_ci.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp deleted file mode 100644 index 0f3447f9b49..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ch.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_fwd_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Interface_Fwd node in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface_fwd.h" - - -// ******************************************************************** -// Visitor implementation for the Interface_Fwd type -// This one for the client header file -// ******************************************************************** - -be_visitor_interface_fwd_ch::be_visitor_interface_fwd_ch (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_interface_fwd_ch::~be_visitor_interface_fwd_ch (void) -{ -} - -// visit the Interface_Fwd_Ch node and its scope -int -be_visitor_interface_fwd_ch::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (!node->cli_hdr_gen () && !node->imported ()) - { - os->indent (); // start from the current - - // all we do in this is generate a forward declaration of the class - *os << "class " << node->local_name () << ";" << be_nl; - - // generate the ifdefined macro for the _ptr type - os->gen_ifdef_macro (node->flatname (), "_ptr"); - - // generate the _ptr declaration - *os << "typedef " << node->local_name () << " *" << node->local_name () - << "_ptr;\n"; - - os->gen_endif (); - - // enclose under an ifdef macro - os->gen_ifdef_macro (node->flatname (), "_var"); - - // generate the _var declaration - if (node->gen_var_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_fwd_ch::" - "visit_interface_fwd - " - "codegen for _var failed\n"), -1); - } - // gen an endif - os->gen_endif (); - - // enclose under an ifdef macro - os->gen_ifdef_macro (node->flatname (), "_out"); - - // generate the _out declaration - ORBOS/97-05-15 pg 16-20 spec - if (node->gen_out_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_fwd_ch::" - "visit_interface_fwd - " - "codegen for _out failed\n"), -1); - } - // generate the endif macro - os->gen_endif (); - node->cli_hdr_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp b/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp deleted file mode 100644 index a98a3c077b4..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_interface_fwd/interface_fwd_ci.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_fwd_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Interface_Fwd node in the client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_interface_fwd.h" - -// ******************************************************************** -// Visitor implementation for the Interface_Fwd type -// This one for the client inline file -// ******************************************************************** - -be_visitor_interface_fwd_ci::be_visitor_interface_fwd_ci (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_interface_fwd_ci::~be_visitor_interface_fwd_ci (void) -{ -} - -// visit the Interface_Fwd_ci node and its scope -int -be_visitor_interface_fwd_ci::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (!node->cli_inline_gen () && !node->imported ()) - { - - // generate the ifdefined macro for the _var type - os->gen_ifdef_macro (node->flatname (), "_var"); - - if (node->gen_var_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_fwd_ci::" - "visit_interface_fwd - " - "codegen for _var failed\n"), -1); - } - - os->gen_endif (); - - // generate the ifdefined macro for the _out type - os->gen_ifdef_macro (node->flatname (), "_out"); - - if (node->gen_out_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_fwd_ci::" - "visit_interface_fwd - " - "codegen for _out failed\n"), -1); - } - os->gen_endif (); - - node->cli_stub_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_module.cpp b/TAO/TAO_IDL/be/be_visitor_module.cpp deleted file mode 100644 index 01a7ea2a4fa..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_module.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_module.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Module -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_module.h" - -// include all the individual files -#include "be_visitor_module/any_op.cpp" -#include "be_visitor_module/module.cpp" -#include "be_visitor_module/module_ch.cpp" -#include "be_visitor_module/module_sh.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_module/any_op.cpp b/TAO/TAO_IDL/be/be_visitor_module/any_op.cpp deleted file mode 100644 index 19fb82922d0..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_module/any_op.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for elements in the scope of -// the Module. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_module.h" - - -// *************************************************************************** -// Module visitor for generating Any operator declarations in the client header -// and stub -// *************************************************************************** - -be_visitor_module_any_op::be_visitor_module_any_op (be_visitor_context *ctx) - : be_visitor_module (ctx) -{ -} - -be_visitor_module_any_op::~be_visitor_module_any_op (void) -{ -} - -int -be_visitor_module_any_op::visit_module (be_module *node) -{ - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::visit_module - " - "codegen for scope failed\n"), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_module/module.cpp b/TAO/TAO_IDL/be/be_visitor_module/module.cpp deleted file mode 100644 index b746ee940c1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_module/module.cpp +++ /dev/null @@ -1,590 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module.cpp -// -// = DESCRIPTION -// Generic visitor generating code for Module -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_module.h" - - -// ****************************************************** -// Generic Module visitor -// ****************************************************** - -be_visitor_module::be_visitor_module (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_module::~be_visitor_module (void) -{ -} - -// visit the Module node and its scope -int be_visitor_module::visit_module (be_module *node) -{ - // all we have to do is to visit the scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::visit_module - " - "codegen for scope failed\n"), -1); - } - return 0; -} - -// =all common visit methods for module visitor - -// visit a constant -int -be_visitor_module::visit_constant (be_constant *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_constant - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_constant - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_constant - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -//visit an enum -int -be_visitor_module::visit_enum (be_enum *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_MODULE_CI: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_enum - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_enum - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_enum - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an exception -int -be_visitor_module::visit_exception (be_exception *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_exception - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_exception - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_exception - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an interface -int -be_visitor_module::visit_interface (be_interface *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CI); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CS); - break; - case TAO_CodeGen::TAO_MODULE_SH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SH); - break; - case TAO_CodeGen::TAO_MODULE_SI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SI); - break; - case TAO_CodeGen::TAO_MODULE_SS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an interface_fwd -int -be_visitor_module::visit_interface_fwd (be_interface_fwd *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CI); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - case TAO_CodeGen::TAO_MODULE_CS: - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface_fwd - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface_fwd - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_interface_fwd - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an structure -int -be_visitor_module::visit_structure (be_structure *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_structure - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an union -int -be_visitor_module::visit_union (be_union *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_UNION_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_UNION_CI); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_UNION_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_union - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_union - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_union - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit a typedef -int -be_visitor_module::visit_typedef (be_typedef *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_MODULE_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); - break; - case TAO_CodeGen::TAO_MODULE_CI: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); - break; - case TAO_CodeGen::TAO_MODULE_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_MODULE_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_MODULE_SH: - case TAO_CodeGen::TAO_MODULE_SI: - case TAO_CodeGen::TAO_MODULE_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_typedef - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_typedef - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp b/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp deleted file mode 100644 index 23d9590d06f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_module/module_ch.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Module in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_module.h" - - -// ****************************************************** -// Module visitor for client header -// ****************************************************** - -be_visitor_module_ch::be_visitor_module_ch (be_visitor_context *ctx) - : be_visitor_module (ctx) -{ -} - -be_visitor_module_ch::~be_visitor_module_ch (void) -{ -} - -int -be_visitor_module_ch::visit_module (be_module *node) -{ - TAO_OutStream *os; // output stream - - if (!node->cli_hdr_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - - // XXXASG - Modules really map to namespace. We need to see if our target - // compiler supports namespaces or not. This visitor generates a class for a - // module. We can have the factory generate another module visitor that can - // generate namespaces - - os->indent (); // start from whatever indentation level we were at - // now generate the class definition - *os << "TAO_NAMESPACE " // << idl_global->export_macro () - << " " << node->local_name () << be_nl - << "{\n"; - os->incr_indent (0); - - // generate code for the module definition by traversing thru the - // elements of its scope. We depend on the front-end to have made sure - // that only legal syntactic elements appear in our scope. - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module_ch::" - "visit_module - " - "codegen for scope failed\n"), -1); - } - - *os << be_uidt_nl - << "}; // module " << node->name () << "\n\n"; - - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp b/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp deleted file mode 100644 index 0f658b199d1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_module/module_sh.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for Module in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_module.h" - - -// ************************************************************ -// Module visitor for server header -// ************************************************************ - -be_visitor_module_sh::be_visitor_module_sh (be_visitor_context *ctx) - : be_visitor_module (ctx) -{ -} - -be_visitor_module_sh::~be_visitor_module_sh (void) -{ -} - -int -be_visitor_module_sh::visit_module (be_module *node) -{ - TAO_OutStream *os; // output stream - - if (!node->srv_hdr_gen () && !node->imported ()) // not generated and not imported - { - os = this->ctx_->stream (); - - // generate the skeleton class name - - os->indent (); // start with whatever indentation level we are at - - // now generate the class definition. The prefix POA_ is prepended to our - // name only if we are the outermost module - *os << "TAO_NAMESPACE "; // << idl_global->export_macro () - - if (!node->is_nested ()) - // we are outermost module - *os << " POA_" << node->local_name () << be_nl; - else - // we are inside another module - *os << " " << node->local_name () << be_nl; - - *os << "{" << be_nl - << be_idt; - - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_module_sh::" - "visit_module - " - "codegen for scope failed\n"), -1); - } - - os->decr_indent (); - *os << "};\n\n"; - } - return 0; - -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation.cpp deleted file mode 100644 index c8c1c664aee..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_operation.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Operation -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - -// include all the individual files -#include "be_visitor_operation/arglist.cpp" -#include "be_visitor_operation/argument.cpp" -#include "be_visitor_operation/collocated_sh.cpp" -#include "be_visitor_operation/collocated_ss.cpp" -#include "be_visitor_operation/exceptlist_cs.cpp" -#include "be_visitor_operation/operation_ch.cpp" -#include "be_visitor_operation/operation_cs.cpp" -#include "be_visitor_operation/operation_sh.cpp" -#include "be_visitor_operation/operation_ss.cpp" -#include "be_visitor_operation/rettype.cpp" -#include "be_visitor_operation/rettype_assign_ss.cpp" -#include "be_visitor_operation/rettype_docall_cs.cpp" -#include "be_visitor_operation/rettype_marshal_ss.cpp" -#include "be_visitor_operation/rettype_post_docall_cs.cpp" -#include "be_visitor_operation/rettype_post_upcall_ss.cpp" -#include "be_visitor_operation/rettype_pre_docall_cs.cpp" -#include "be_visitor_operation/rettype_return_cs.cpp" -#include "be_visitor_operation/rettype_vardecl_cs.cpp" -#include "be_visitor_operation/rettype_vardecl_ss.cpp" -#include "be_visitor_operation/tie_sh.cpp" -#include "be_visitor_operation/tie_si.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp deleted file mode 100644 index e7c4c339dae..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/arglist.cpp +++ /dev/null @@ -1,167 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// arglist.cpp -// -// = DESCRIPTION -// Visitor generating code for the parameter list of the Operation signature. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// operation visitor to generate the argument list. -// We have separated code generation for this from the 4 main -// visitors to avoid code duplication and tight coupling -// ************************************************************ - -be_visitor_operation_arglist::be_visitor_operation_arglist (be_visitor_context - *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_arglist::~be_visitor_operation_arglist (void) -{ -} - -int -be_visitor_operation_arglist::visit_operation (be_operation *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - os->incr_indent (0); // these are for pretty printing - os->incr_indent (0); - *os << " (\n"; - - // all we do is hand over code generation to our scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_arglist::" - "visit_operation - " - "codegen for scope failed\n"), - -1); - } - - // last argument - is always CORBA::Environment - os->indent (); - *os << "CORBA::Environment &_tao_environment\n"; - os->decr_indent (); - *os << " )"; - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_OPERATION_ARGLIST_CH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH: - *os << ";\n"; - break; - case TAO_CodeGen::TAO_OPERATION_ARGLIST_SH: - // each method is pure virtual in the server header - *os << " = 0;\n"; - break; - default: - *os << "\n"; - } - - os->decr_indent (0); - return 0; -} - -int -be_visitor_operation_arglist::visit_argument (be_argument *node) -{ - // get the visitor that will dump the argument's mapping in the operation - // signature. - be_visitor_context ctx (*this->ctx_); - - // first grab the interface definition inside which this operation is - // defined. We need this since argument types may very well be declared - // inside the scope of the interface node. In such cases, we would like to - // generate the appropriate relative scoped names. - be_operation *op = this->ctx_->be_scope_as_operation (); - if (!op) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad operation\n"), - -1); - } - - // We need the interface node in which this operation was defined. However, - // if this operation node was an attribute node in disguise, we get this - // information from the context - be_interface *intf; - intf = this->ctx_->attribute () - ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ()) - : be_interface::narrow_from_scope (op->defined_in ()); - - if (!intf) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad interface\n"), - -1); - } - ctx.scope (intf); // set new scope - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_OPERATION_ARGLIST_CH: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_CH); - break; - case TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_SH: - case TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_ARGLIST_OTHERS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad context\n"), - -1); - } - } - - // grab a visitor - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad visitor\n"), - -1); - } - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - - "visit_argument - " - "codegen for arglist failed\n"), - -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp b/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp deleted file mode 100644 index 5f502360cb1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/argument.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// argument.cpp -// -// = DESCRIPTION -// Visitor that calls the visitor for arguments. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// generic operation visitor to handle the pre/post do_static_call/upcall stuff with -// arguments -// ************************************************************ - -be_visitor_operation_argument::be_visitor_operation_argument (be_visitor_context - *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_argument::~be_visitor_operation_argument (void) -{ -} - -int -be_visitor_operation_argument::post_process (void) -{ - TAO_OutStream *os = this->ctx_->stream (); - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_OPERATION_ARG_DOCALL_CS: - case TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS: - case TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS: - case TAO_CodeGen::TAO_OPERATION_ARG_DEMARSHAL_SS: - case TAO_CodeGen::TAO_OPERATION_ARG_MARSHAL_SS: - *os << ",\n"; - break; - default: - break; - } - return 0; -} - -int -be_visitor_operation_argument::visit_operation (be_operation *node) -{ - // all we do is hand over code generation to our scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_argument::" - "visit_operation - " - "codegen for scope failed\n"), - -1); - } - - return 0; -} - -int -be_visitor_operation_argument::visit_argument (be_argument *node) -{ - // get the visitor that will dump the argument's mapping in the operation - // signature. - be_visitor_context ctx (*this->ctx_); - - // first grab the interface definition inside which this operation is - // defined. We need this since argument types may very well be declared - // inside the scope of the interface node. In such cases, we would like to - // generate the appropriate relative scoped names. - be_operation *op = this->ctx_->be_scope_as_operation (); - if (!op) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad operation\n"), - -1); - } - - // We need the interface node in which this operation was defined. However, - // if this operation node was an attribute node in disguise, we get this - // information from the context - be_interface *intf; - intf = this->ctx_->attribute () - ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ()) - : be_interface::narrow_from_scope (op->defined_in ()); - - if (!intf) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_arglist::" - "visit_argument - " - "Bad interface\n"), - -1); - } - ctx.scope (intf); // set new scope - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_OPERATION_ARG_PRE_DOCALL_CS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_PRE_DOCALL_CS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_DOCALL_CS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_DOCALL_CS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_POST_DOCALL_CS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_DOCALL_CS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_DECL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_VARDECL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_DEMARSHAL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_DEMARSHAL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_MARSHAL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_MARSHAL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_PRE_UPCALL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_PRE_UPCALL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_POST_UPCALL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_UPCALL_SS); - break; - case TAO_CodeGen::TAO_OPERATION_ARG_POST_MARSHAL_SS: - ctx.state (TAO_CodeGen::TAO_ARGUMENT_POST_MARSHAL_SS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_argument::" - "visit_argument - " - "Bad context\n"), - -1); - } - } - - // grab a visitor - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_argument::" - "visit_argument - " - "Bad visitor\n"), - -1); - } - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_argument::" - - "visit_argument - " - "codegen for argument failed\n"), - -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/collocated_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/collocated_sh.cpp deleted file mode 100644 index 4493f5c6d5f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/collocated_sh.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for collocated operation in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************************* -// be_visitor_operation_collocated_sh -- -// This visitor generates code for the collocated operation signature in a -// server header file -// ************************************************************************* - -be_visitor_operation_collocated_sh::be_visitor_operation_collocated_sh -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_collocated_sh::~be_visitor_operation_collocated_sh (void) -{ -} - -int be_visitor_operation_collocated_sh::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node representing the return type - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node - - os->indent (); // start with the current indentation level - - // every operation is declared virtual in the client code - *os << "virtual "; - - // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // grab the right visitor to generate the return type - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - // STEP 2: generate the operation name - *os << " " << node->local_name (); - - // STEP 3: generate the argument list with the appropriate mapping. For these - // we grab a visitor that generates the parameter listing - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_COLLOCATED_SH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/collocated_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/collocated_ss.cpp deleted file mode 100644 index e7a07aa7ce7..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/collocated_ss.cpp +++ /dev/null @@ -1,163 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for collocated Operation in the skeleton. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************************* -// be_visitor_operation_collocated_ss -- -// This visitor generates code for the collocated operation signature in a -// server skeletons file -// ************************************************************************* - -be_visitor_operation_collocated_ss::be_visitor_operation_collocated_ss -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_collocated_ss::~be_visitor_operation_collocated_ss (void) -{ -} - -int be_visitor_operation_collocated_ss::visit_operation (be_operation *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - // We need the interface node in which this operation was defined. However, - // if this operation node was an attribute node in disguise, we get this - // information from the context - be_interface *intf; - intf = this->ctx_->attribute () - ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ()) - : be_interface::narrow_from_scope (node->defined_in ()); - - if (!intf) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_collocated_ss::" - "visit_operation - " - "bad interface scope\n"), - -1); - } - - // retrieve the operation return type - be_type *bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_collocated_ss::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // STEP 2: generate the return type mapping (same as in the header file) - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_collocated_ss::" - "visit_operation - " - "Bad visitor for return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_collocated_ss::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - *os << " " << intf->full_coll_name () << "::" - << node->local_name () << " "; - - // STEP 4: generate the argument list with the appropriate mapping (same as - // in the header file) - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_cs::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - *os << "{" << be_idt << "\n"; - - os->indent (); - if (bt->node_type () != AST_Decl::NT_pre_defined - || be_predefined_type::narrow_from_decl (bt)->pt () != AST_PredefinedType::PT_void) - { - *os << "return "; - } - - *os << "this->servant_->" << node->local_name () << " (" << be_idt << "\n"; - - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for making upcall failed\n"), - -1); - } - // last argument is the environment - if (node->argument_count () > 0) - *os << ",\n"; - os->indent (); - *os << "_tao_environment"; - // end the upcall - *os << be_uidt_nl; - *os << ");" << be_uidt_nl; - *os << "}\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp deleted file mode 100644 index 671848b4fa9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/exceptlist_cs.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exceptlist_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for the list of exceptions that an operation -// raises. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// **************************************************************************** -// visitor to generate the exception list for operations -// **************************************************************************** - -be_visitor_operation_exceptlist_cs::be_visitor_operation_exceptlist_cs (be_visitor_context - *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_exceptlist_cs::~be_visitor_operation_exceptlist_cs (void) -{ -} - -int -be_visitor_operation_exceptlist_cs::visit_operation (be_operation *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - // don't do anything if the exception list is empty - if (node->exceptions ()) - { - os->indent (); -#if 0 - *os << "static CORBA::TypeCode_ptr " << "_tao_" << node->flatname () - << "_exceptlist [] = {" << be_idt_nl; -#endif - *os << "static TAO_Exception_Data " << "_tao_" << node->flatname () - << "_exceptiondata [] = " << be_nl; - *os << "{" << be_idt_nl; - // initialize an iterator to iterate thru the exception list - UTL_ExceptlistActiveIterator *ei; - ACE_NEW_RETURN (ei, - UTL_ExceptlistActiveIterator (node->exceptions ()), - -1); - // continue until each element is visited - while (!ei->is_done ()) - { - be_exception *excp = be_exception::narrow_from_decl (ei->item ()); - - if (excp == 0) - { - delete ei; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_exceptlist_cs" - "visit_operation - " - "codegen for scope failed\n"), -1); - - } - *os << "{"; - *os << excp->tc_name (); - *os << ", "; - *os << excp->name () << "::_alloc}"; - ei->next (); - if (!ei->is_done ()) - { - *os << ",\n"; - os->indent (); - } - // except the last one is processed? - - } // end of while loop - delete ei; - *os << be_uidt_nl << "};\n\n"; - } // end of if - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp deleted file mode 100644 index e86c9c4401b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ch.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Operation node in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ****************************************************** -// primary visitor for "operation" in client header -// ****************************************************** - -be_visitor_operation_ch::be_visitor_operation_ch (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_ch::~be_visitor_operation_ch (void) -{ -} - -int -be_visitor_operation_ch::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node - - os->indent (); // start with the current indentation level - - // every operation is declared virtual in the client code - *os << "virtual "; - - // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ch::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // grab the right visitor to generate the return type - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_ch::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ch::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - // STEP 2: generate the operation name - *os << " " << node->local_name (); - - // STEP 3: generate the argument list with the appropriate mapping. For these - // we grab a visitor that generates the parameter listing - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_CH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_ch::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ch::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp deleted file mode 100644 index e36e649fcf9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_cs.cpp +++ /dev/null @@ -1,461 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Operation in the stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// Operation visitor for client stubs -// ************************************************************ - -be_visitor_operation_cs::be_visitor_operation_cs (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_cs::~be_visitor_operation_cs (void) -{ -} - -// processing to be done after every element in the scope is processed -int -be_visitor_operation_cs::post_process () -{ - // all we do here is to insert a comma and a newline - TAO_OutStream *os = this->ctx_->stream (); - *os << ",\n"; - return 0; -} - -int -be_visitor_operation_cs::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node - be_visitor_context ctx; // visitor context - be_visitor *visitor; // visitor - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node for future use - - os->indent (); // start with the current indentation level - - // retrieve the operation return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // Generate the return type mapping (same as in the header file) - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_cs::" - "visit_operation - " - "Bad visitor for return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - // Generate the operation name - *os << " " << node->name (); - - // Generate the argument list with the appropriate mapping (same as - // in the header file) - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_cs::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - // Generate the actual code for the stub. However, if any of the argument - // types is "native", we flag a MARSHAL exception. - // last argument - is always CORBA::Environment - *os << "{\n"; - os->incr_indent (0); - - // Generate the param_data and call_data tables. We generate these if and - // only if none of our arguments is of "native" type. Native types cannot be - // marshaled. Hence, stubs for such operations will generate MARSHAL - // exceptions. As a result it is pointless generating these tables - if (!node->has_native ()) - { - // native type does not exist. Generate the static tables - - // Generate the TAO_Param_Data table - os->indent (); - *os << "static const TAO_Param_Data "; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << - "_paramdata [] = " << be_nl; - *os << "{\n"; - os->incr_indent (); - - // entry for the return type - *os << "{" << bt->tc_name () << ", PARAM_RETURN, 0}"; - if (node->nmembers () > 0) - *os << ",\n"; - - // generate entries for the param data table for arguments - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "visit scope failed\n"), - -1); - } - *os << "\n"; - os->decr_indent (); - *os << "}; // " << node->flatname () << "_paramdata\n\n"; - - // Check if this operation raises any exceptions. In that case, we must - // generate a list of exception typecodes. This is not valid for - // attributes - if (!this->ctx_->attribute ()) - { - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_EXCEPTLIST_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) " - "be_visitor_operation_cs::visit_operation - " - "Exceptionlist generation error\n"), - -1); - } - } - - // now generate the calldata table - os->indent (); - *os << "static const TAO_Call_Data "; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () - << "_calldata = " << be_nl - << "{" - << "\""; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->local_name () << "\", "; - - // are we oneway or two operation? - if (node->flags () == AST_Operation::OP_oneway) - { - *os << "0, "; // for false - } - else - { - *os << "1, "; // for true - } - // insert the size of the paramdata table i.e., number of arguments + 1 - // for return type - *os << (node->argument_count () + 1) << ", "; - - // insert the address of the paramdata table - // first check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << "_paramdata, "; - - // insert exception list (if any) - node for attributes - if (this->ctx_->attribute ()) - *os << "0, 0};\n\n"; - else - { - if (node->exceptions ()) - { - *os << node->exceptions ()->length () - << ", _tao_" << node->flatname () << "_exceptiondata};\n\n"; - } - else - *os << "0, 0};\n\n"; - } - } // end of if !(native) - - // Declare a return type - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DECL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var decl failed\n"), - -1); - } - - os->indent (); - if (node->has_native ()) // native exists => no stub - { - *os << "_tao_environment.exception (new CORBA::MARSHAL " - << "(CORBA::COMPLETED_NO));" << be_nl; - *os << "return _tao_retval;\n"; - } - else - { - // Generate code that retrieves the underlying stub object and then - // invokes do_static_call on it. - *os << "STUB_Object *istub = this->stubobj (_tao_environment);" << be_nl - << "if (istub)" << be_nl - << "{\n"; - os->incr_indent (0); - - // do any pre do_static_call processing with return type. This includes - // allocating memory, initialization. - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_PRE_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for retval pre do_static_call failed\n"), - -1); - } - - - // do any pre do_static_call stuff with arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_PRE_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument pre do_static_call failed\n"), - -1); - } - - // call do_static_call with appropriate number of arguments - os->indent (); - *os << "istub->do_static_call (" << be_idt_nl - << "_tao_environment, " << be_nl - << "&"; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << "_calldata,\n"; - - // pass the appropriate return value to docall - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var in do_static_call failed\n"), - -1); - } - // insert a comma after the return val if there are arguments - if (node->argument_count () > 0) - { - *os << ",\n"; - } - - // pass each argument to do_static_call - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var in do_static_call failed\n"), - -1); - } - - // end the do_static_call - *os << be_uidt_nl; - *os << ");\n"; - - // do any post processing for the retval - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_POST_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return type post do_static_call failed\n"), - -1); - } - - // do any post processing for the arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_POST_DOCALL_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for args in post do_static_call failed\n"), - -1); - } - - } // end of if (!native) - - os->decr_indent (); - *os << "} // end of if (istub)\n"; - // return the appropriate return value - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_RETURN_CS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var failed\n"), - -1); - } - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_operation_cs::visit_argument (be_argument *node) -{ - // this method is used to generate the ParamData table entry - - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; // argument type - - // retrieve the type for this argument - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - os->indent (); - *os << "{" << bt->tc_name () << ", "; - switch (node->direction ()) - { - case AST_Argument::dir_IN: - *os << "PARAM_IN, "; - break; - case AST_Argument::dir_INOUT: - *os << "PARAM_INOUT, "; - break; - case AST_Argument::dir_OUT: - *os << "PARAM_OUT, "; - break; - } - *os << "0}"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp deleted file mode 100644 index 722f9fdf5f6..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_sh.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for Operation in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// Operation visitor for server header -// ************************************************************ - -be_visitor_operation_sh::be_visitor_operation_sh (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_sh::~be_visitor_operation_sh (void) -{ -} - -int -be_visitor_operation_sh::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node representing the return type - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node - - os->indent (); // start with the current indentation level - - // every operation is declared virtual in the client code - *os << "virtual "; - - // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // grab the right visitor to generate the return type - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - // STEP 2: generate the operation name - *os << " " << node->local_name (); - - // STEP 3: generate the argument list with the appropriate mapping. For these - // we grab a visitor that generates the parameter listing - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_SH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_sh::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - // generate the corresponding static skeleton method for this operation only - // if there was no "native" type - if (!node->has_native ()) - { - os->indent (); - *os << "static void "; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->local_name () << - "_skel (" << be_idt << be_idt_nl - << "CORBA::ServerRequest &_tao_req, " << be_nl - << "void *_tao_obj, " << be_nl - << "void *_tao_context, " << be_nl - << "CORBA::Environment &_tao_env" - << be_uidt_nl << be_uidt << ");\n\n"; - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp deleted file mode 100644 index 85751032c22..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ss.cpp +++ /dev/null @@ -1,497 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for Operation in the server skeleton -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// Operation visitor for server skeletons -// ************************************************************ - -be_visitor_operation_ss::be_visitor_operation_ss (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_ss::~be_visitor_operation_ss (void) -{ -} - -// processing to be done after every element in the scope is processed -int -be_visitor_operation_ss::post_process () -{ - // all we do here is to insert a comma and a newline - TAO_OutStream *os = this->ctx_->stream (); - *os << ",\n"; - return 0; -} - -int -be_visitor_operation_ss::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node for return type - - os = this->ctx_->stream (); // grab the o/p stream - this->ctx_->node (node); // save the node for future use - - os->indent (); // start with the current indentation level - - // if there is an argument of type "native", return immediately - if (node->has_native ()) - return 0; - - // retrieve the operation return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // We need the interface node in which this operation was defined. However, - // if this operation node was an attribute node in disguise, we get this - // information from the context - be_interface *intf; - intf = this->ctx_->attribute () - ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ()) - : be_interface::narrow_from_scope (node->defined_in ()); - - if (!intf) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "bad interface scope\n"), - -1); - } - - // generate the signature of the static skeleton - os->indent (); - *os << "void " << intf->full_skel_name () << "::"; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->local_name () - << "_skel (" << be_idt << be_idt_nl - << "CORBA::ServerRequest &_tao_server_request, " << be_nl - << "void *_tao_object_reference, " << be_nl - << "void * /* context */, " << be_nl - << "CORBA::Environment &_tao_environment" << be_uidt << be_uidt_nl - << ")" << be_nl; - - // generate the actual code for the skeleton. However, if any of the argument - // types is "native", we do not generate any skeleton - // last argument - is always CORBA::Environment - *os << "{" << be_idt_nl; - - // generate the param_data and call_data tables. We generate these if and - // only if none of our arguments is of "native" type. Native types cannot be - // marshaled. - // native type does not exist. Generate the static tables - - // generate the TAO_Param_Data_Skel table - *os << "static const TAO_Param_Data_Skel "; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << - "_paramdata [] = " << be_nl; - *os << "{\n"; - os->incr_indent (); - - // entry for the return type - *os << "{" << bt->tc_name () << ", 0, 0}"; - if (node->nmembers () > 0) - *os << ",\n"; - - // generate entries for the param data table for arguments - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "visit scope failed\n"), - -1); - } - *os << "\n"; - os->decr_indent (); - *os << "}; // " << node->flatname () << "_paramdata\n\n"; - - // now generate the calldata table - os->indent (); - *os << "static const TAO_Call_Data_Skel "; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () - << "_calldata = " << be_nl - << "{" - << "\""; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->local_name () << "\", "; - - // are we oneway or two operation? - if (node->flags () == AST_Operation::OP_oneway) - { - *os << "0, "; // for false - } - else - { - *os << "1, "; // for true - } - // insert the size of the paramdata table i.e., number of arguments + 1 - // for return type - *os << (node->argument_count () + 1) << ", "; - - // insert the address of the paramdata table - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << "_paramdata};\n\n"; - - os->indent (); - // declare an environment variable for user raised exceptions - *os << "CORBA::Environment _tao_skel_environment;" << be_nl; - // get the right object implementation. - *os << intf->full_skel_name () << " *_tao_impl = (" - << intf->full_skel_name () << " *)_tao_object_reference;\n"; - - // declare a return type variable - be_visitor_context ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DECL_SS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var decl failed\n"), - -1); - } - - // declare variables for arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_DECL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for return var decl failed\n"), - -1); - } - - - // setup parameters for demarshaling and demarshal them - os->indent (); - *os << "_tao_server_request.demarshal (" << be_idt_nl - << "_tao_environment, " << be_nl - << "&"; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << "_calldata,\n"; - - // pass the appropriate return value to the demarshal operation - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_DEMARSHAL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for return var in demarshal failed\n"), - -1); - } - // insert a comma after the return val if there are arguments - if (node->argument_count () > 0) - *os << ",\n"; - - // pass each argument to the demarshal operation - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_DEMARSHAL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument in demarshal failed\n"), - -1); - } - - // end the demarshal call - *os << be_uidt_nl; - *os << ");\n"; - - // check for exception - os->indent (); - *os << "if (_tao_environment.exception ()) return;\n"; - - // do pre upcall processing if any - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_PRE_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for making upcall failed\n"), - -1); - } - // make the upcall and assign to the return val - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_ASSIGN_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for retval assignment failed\n"), - -1); - } - - // make the upcall - *os << "_tao_impl->" << node->local_name () << " (" << be_idt << "\n"; - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for making upcall failed\n"), - -1); - } - // last argument is the environment - if (node->argument_count () > 0) - *os << ",\n"; - os->indent (); - *os << "_tao_skel_environment"; - // end the upcall - *os << be_uidt_nl; - *os << ");\n"; - - // do any post processing for the arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_POST_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for args in post upcall failed\n"), - -1); - } - - // check if we are oneway in which case, we are done - if (node->flags () == AST_Operation::OP_oneway) - { - // we are done. Nothing else to do, except closing the function body. - os->decr_indent (); - *os << "}\n\n"; - return 0; - } - - // setup parameters for marshaling and marshal them into the - // outgoing stream - os->indent (); - *os << "_tao_server_request.marshal (" << be_idt_nl - << "_tao_environment, " << be_nl - << "_tao_skel_environment, " << be_nl - << "&"; - // check if we are an attribute node in disguise - if (this->ctx_->attribute ()) - { - // now check if we are a "get" or "set" operation - if (node->nmembers () == 1) // set - *os << "_set_"; - else - *os << "_get_"; - } - *os << node->flatname () << "_calldata,\n"; - - // pass the appropriate return value to the marshal operation - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_MARSHAL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for return var in marshal failed\n"), - -1); - } - // insert a comma after the return val if there are arguments - if (node->argument_count () > 0) - { - *os << ",\n"; - } - - // pass each argument to the marshal operation - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_MARSHAL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument in marshal failed\n"), - -1); - } - // end the marshal call - *os << be_uidt_nl; - *os << ");\n"; - - // do any post processing for the retval - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_RETVAL_POST_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (bt->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for return type post upcall failed\n"), - -1); - } - - // do any post processing for the arguments - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_POST_MARSHAL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for args in post marshal failed\n"), - -1); - } - - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_operation_ss::visit_argument (be_argument *node) -{ - // this method is used to generate the ParamData table entry - - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; // argument type - - // retrieve the type for this argument - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_argument - " - "Bad argument type\n"), - -1); - } - - os->indent (); - *os << "{" << bt->tc_name () << ", "; - switch (node->direction ()) - { - case AST_Argument::dir_IN: - *os << "CORBA::ARG_IN, "; - break; - case AST_Argument::dir_INOUT: - *os << "CORBA::ARG_INOUT, "; - break; - case AST_Argument::dir_OUT: - *os << "CORBA::ARG_OUT, "; - break; - } - *os << "0}"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp deleted file mode 100644 index 66851c0b3fc..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype.cpp -// -// = DESCRIPTION -// Visitor generating code for return type of the Operation node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// **************************************************************************** -// Operation visitor for return types. This generates the mapping for a return -// type in an operation signature -// **************************************************************************** - -be_visitor_operation_rettype::be_visitor_operation_rettype (be_visitor_context - *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype::~be_visitor_operation_rettype (void) -{ -} - -int -be_visitor_operation_rettype::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_slice") << " *"; - else - *os << bt->name () << "_slice *"; - return 0; -} - -int -be_visitor_operation_rettype::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - return 0; -} - -int -be_visitor_operation_rettype::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_ptr"); - else - *os << bt->name () << "_ptr"; - return 0; -} - -int -be_visitor_operation_rettype::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_ptr"); - else - *os << bt->name () << "_ptr"; - return 0; -} - -int -be_visitor_operation_rettype::visit_native (be_native *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()) << " *"; - else - *os << bt->name () << " *"; - return 0; -} - -int -be_visitor_operation_rettype::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - switch (node->pt ()) - { - case AST_PredefinedType::PT_pseudo: - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope (), "_ptr"); - else - *os << bt->name () << "_ptr"; - break; - case AST_PredefinedType::PT_any: - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()) << " *"; - else - *os << bt->name () << " *"; - break; - default: - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - break; - } - return 0; -} - -int -be_visitor_operation_rettype::visit_sequence (be_sequence *node) -{ - // we should never directly be here because anonymous sequence return types - // are not allowed - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()) << " *"; - else - *os << bt->name () << " *"; - return 0; -} - -int -be_visitor_operation_rettype::visit_string (be_string * /* node*/) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - *os << "char *"; - return 0; -} - -int -be_visitor_operation_rettype::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - *os << " *"; - return 0; -} - -int -be_visitor_operation_rettype::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_OPERATION_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - *os << " *"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp deleted file mode 100644 index 217817b3c1d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_assign_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for assigning the return value of upcall to the -// return type variable. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// **************************************************************************** -// visitor for assignment to a return value variable from the upcall -// **************************************************************************** - -be_visitor_operation_rettype_assign_ss:: -be_visitor_operation_rettype_assign_ss (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_assign_ss:: -~be_visitor_operation_rettype_assign_ss (void) -{ -} - -int -be_visitor_operation_rettype_assign_ss::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss:: -visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss:: -visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - switch (node->pt ()) - { - case AST_PredefinedType::PT_void: - break; - case AST_PredefinedType::PT_pseudo: - case AST_PredefinedType::PT_any: - default: - *os << "_tao_retval = "; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_string (be_string * /* node*/) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_structure (be_structure *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_assign_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_assign_ss::visit_union (be_union *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = "; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_docall_cs.cpp deleted file mode 100644 index 8ea3099c626..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_docall_cs.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_docall_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for passing the return type variable to the -// do_static_call method in the stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ***************************************************************************** -// be_visitor_operation_rettype_docall_cs -// -// This visitor generates code that passes the return type variable to the -// do_static_call method -// ***************************************************************************** - -be_visitor_operation_rettype_docall_cs::be_visitor_operation_rettype_docall_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_docall_cs:: -~be_visitor_operation_rettype_docall_cs (void) -{ -} - -int -be_visitor_operation_rettype_docall_cs::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_base_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_base_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - switch (node->pt ()) - { - case AST_PredefinedType::PT_void: - *os << "0"; - break; - case AST_PredefinedType::PT_any: - *os << "_tao_retval"; - break; - default: - *os << "&_tao_retval"; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // check if the struct is variable - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_retval"; - else - *os << "&_tao_retval"; - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_docall_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_docall_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // check if the union is variable - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_retval"; - else - *os << "&_tao_retval"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp deleted file mode 100644 index c379584a560..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp +++ /dev/null @@ -1,179 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_marshal_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for marshaling the return type variable -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// **************************************************************************** -// Visitor that passes the return value to the marshal/demarshal routine -// **************************************************************************** - -be_visitor_operation_rettype_marshal_ss:: -be_visitor_operation_rettype_marshal_ss (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_marshal_ss:: -~be_visitor_operation_rettype_marshal_ss (void) -{ -} - -int -be_visitor_operation_rettype_marshal_ss::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_ptr_retval"; - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_ptr_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss:: -visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_ptr_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss:: -visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - switch (node->pt ()) - { - case AST_PredefinedType::PT_void: - os->indent (); - *os << "0"; - break; - case AST_PredefinedType::PT_pseudo: - os->indent (); - *os << "&_tao_ptr_retval"; - break; - case AST_PredefinedType::PT_any: - os->indent (); - *os << "_tao_ptr_retval"; - break; - default: - os->indent (); - *os << "&_tao_retval"; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_ptr_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_string (be_string * /* node*/) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "&_tao_ptr_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_ptr_retval"; - else - *os << "&_tao_retval"; - - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_marshal_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_marshal_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - if (node->size_type () == be_type::VARIABLE) - *os << "_tao_ptr_retval"; - else - *os << "&_tao_retval"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_docall_cs.cpp deleted file mode 100644 index a906fcfbd65..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_docall_cs.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_post_docall_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for return type post processing following a -// do_static_call. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ******************************************************************************* -// be_visitor_operation_rettype_post_docall_cs -// -// This visitor generates code that passes the return type variable to the -// do_static_call method -// ******************************************************************************** - -be_visitor_operation_rettype_post_docall_cs:: -be_visitor_operation_rettype_post_docall_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_post_docall_cs:: -~be_visitor_operation_rettype_post_docall_cs (void) -{ -} - -int -be_visitor_operation_rettype_post_docall_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = " << node->name () - << "::_narrow (_tao_base_retval, _tao_environment);" << be_nl; - *os << "CORBA::release (_tao_base_retval);\n"; - return 0; -} - -int -be_visitor_operation_rettype_post_docall_cs:: -visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "_tao_retval = " << node->name () - << "::_narrow (_tao_base_retval, _tao_environment);" << be_nl; - *os << "CORBA::release (_tao_base_retval);\n"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_upcall_ss.cpp deleted file mode 100644 index 909cdb9a7aa..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_post_upcall_ss.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_post_upcall_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for post-processing of return type after an -// upcall is made -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// **************************************************************************** -// visitor to do any post processing for return type after an upcall -// **************************************************************************** - -be_visitor_operation_rettype_post_upcall_ss::be_visitor_operation_rettype_post_upcall_ss (be_visitor_context - *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_post_upcall_ss::~be_visitor_operation_rettype_post_upcall_ss (void) -{ -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_array (be_array *) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_enum (be_enum *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_interface (be_interface *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_interface_fwd (be_interface_fwd *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_predefined_type (be_predefined_type *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_sequence (be_sequence *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_string (be_string * /* node*/) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_structure (be_structure *node) -{ - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_post_upcall_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_post_upcall_ss::visit_union (be_union *node) -{ - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_pre_docall_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_pre_docall_cs.cpp deleted file mode 100644 index 73ac0632b3e..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_pre_docall_cs.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_pre_docall_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for doing any pre-processing of return type prior -// to making the do_static_call. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ***************************************************************************** -// be_visitor_operation_rettype_pre_docall_cs -// -// This visitor generates code that passes the return type variable to the -// do_static_call method -// ***************************************************************************** - -be_visitor_operation_rettype_pre_docall_cs:: -be_visitor_operation_rettype_pre_docall_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_pre_docall_cs:: -~be_visitor_operation_rettype_pre_docall_cs (void) -{ -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "ACE_ALLOCATOR_RETURN (_tao_retval, " << node->name () - << "_alloc (), _tao_retval);\n"; - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "CORBA::Object_ptr _tao_base_retval = CORBA::Object::_nil ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "CORBA::Object_ptr _tao_base_retval = CORBA::Object::_nil ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs:: -visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - switch (node->pt ()) - { - case AST_PredefinedType::PT_any: - os->indent (); - *os << "ACE_NEW_RETURN (_tao_retval, CORBA::Any, _tao_retval);\n"; - break; - default: - break; - } - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "ACE_NEW_RETURN (_tao_retval, " << node->name () << ", _tao_retval);\n"; - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - // check if the union is variable - if (node->size_type () == be_type::VARIABLE) - { - os->indent (); - *os << "ACE_NEW_RETURN (_tao_retval, " << node->name () << ", _tao_retval);\n"; - } - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_pre_docall_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_pre_docall_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - // check if the union is variable - if (node->size_type () == be_type::VARIABLE) - { - os->indent (); - *os << "ACE_NEW_RETURN (_tao_retval, " << node->name () << ", _tao_retval);\n"; - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp deleted file mode 100644 index 72e59343e27..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_return_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for returning the return type variable. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// be_visitor_operation_rettype_return_cs -// -// code to generate the return statement of the stub. -// ************************************************************ - -be_visitor_operation_rettype_return_cs::be_visitor_operation_rettype_return_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_return_cs::~be_visitor_operation_rettype_return_cs (void) -{ -} - -int -be_visitor_operation_rettype_return_cs::visit_array (be_array *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_enum (be_enum *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // we must narrow it - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // we must narrow it - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - switch (node->pt ()) - { - case AST_PredefinedType::PT_void: - *os << "return;\n"; - break; - default: - *os << "return _tao_retval;\n"; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_sequence (be_sequence *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_structure (be_structure *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_return_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_return_cs::visit_union (be_union *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "return _tao_retval;\n"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp deleted file mode 100644 index ac98bffcd56..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp +++ /dev/null @@ -1,230 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_vardecl_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for return type variable declaration in the stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// be_visitor_operation_rettype_vardecl_cs -// This visitor generates code for variable declaration and initialization -// of the return type. -// ************************************************************ - -be_visitor_operation_rettype_vardecl_cs:: -be_visitor_operation_rettype_vardecl_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_vardecl_cs:: -~be_visitor_operation_rettype_vardecl_cs (void) -{ -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << "_slice *_tao_retval = 0;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << " _tao_retval = (" << bt->name () << ")0;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << "_ptr _tao_retval = " << bt->name () << "::_nil ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << "_ptr _tao_retval = " << bt->name () << "::_nil ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - switch (node->pt ()) - { - case AST_PredefinedType::PT_pseudo: - os->indent (); - *os << bt->name () << "_ptr _tao_retval = 0;\n"; - break; - case AST_PredefinedType::PT_any: - os->indent (); - *os << bt->name () << " *_tao_retval = 0;\n"; - break; - case AST_PredefinedType::PT_void: - break; - default: - os->indent (); - *os << bt->name () << " _tao_retval = 0;\n"; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_sequence (be_sequence *node) -{ - // we should never directly be here because anonymous sequence return types - // are not allowed - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << " *_tao_retval = 0;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_string (be_string * /* node*/) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "char *_tao_retval = 0;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - *os << bt->name () << " *_tao_retval = 0;\n"; - else - { - *os << bt->name () << " _tao_retval;" << be_nl; - *os << "ACE_OS::memset (&_tao_retval, 0, sizeof (" << bt->name () << "));\n"; - } - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_vardecl_cs::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_vardecl_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - *os << bt->name () << " *_tao_retval = 0;\n"; - else - { - *os << bt->name () << " _tao_retval;" << be_nl; - *os << "ACE_OS::memset (&_tao_retval, 0, sizeof (" << bt->name () << "));\n"; - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp deleted file mode 100644 index 0f5abf1bea9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp +++ /dev/null @@ -1,236 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_vardecl_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for return type variable declaration in the -// skeleton file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ******************************************************************************** -// be_visitor_operation_rettype_vardecl_ss -// This visitor generates code for variable declaration and initialization -// of the return type. -// ******************************************************************************** - -be_visitor_operation_rettype_vardecl_ss::be_visitor_operation_rettype_vardecl_ss -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_operation_rettype_vardecl_ss:: -~be_visitor_operation_rettype_vardecl_ss (void) -{ -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << "_slice *&_tao_ptr_retval = _tao_retval.out ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << " _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_interface (be_interface *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // due to the virtual inheritance and the fact that we will be passing the - // address of the objref to the marshaling routine, we use the base - // CORBA::Object_ptr as the type for the return value even though the actual - // return type may be some derived class - *os << "CORBA::Object_var _tao_retval = CORBA::Object::_nil ();" << be_nl; - *os << "CORBA::Object_ptr &_tao_ptr_retval = _tao_retval.out ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss:: -visit_interface_fwd (be_interface_fwd *) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - // due to the virtual inheritance and the fact that we will be passing the - // address of the objref to the marshaling routine, we use the base - // CORBA::Object_ptr as the type for the return value even though the actual - // return type may be some derived class - *os << "CORBA::Object_var _tao_retval = CORBA::Object::_nil ();" << be_nl; - *os << "CORBA::Object_ptr &_tao_ptr_retval = _tao_retval.out ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss:: -visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - switch (node->pt ()) - { - case AST_PredefinedType::PT_pseudo: - os->indent (); - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << "_ptr &_tao_ptr_retval = _tao_retval.out ();\n"; - break; - case AST_PredefinedType::PT_any: - os->indent (); - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << "_ptr &_tao_ptr_retval = _tao_retval.out ();\n"; - break; - case AST_PredefinedType::PT_void: - break; - default: - os->indent (); - *os << bt->name () << " _tao_retval = 0;\n"; - break; - } - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_sequence (be_sequence *node) -{ - // we should never directly be here because anonymous sequence return types - // are not allowed - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << " *&_tao_ptr_retval = _tao_retval.out ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_string (be_string * /* node*/) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - - os->indent (); - *os << "CORBA::String_var _tao_retval;" << be_nl; - *os << "char *&_tao_ptr_retval = _tao_retval.out ();\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - { - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << " *&_tao_ptr_retval = _tao_retval.out ();\n"; - } - else - *os << bt->name () << " _tao_retval;\n"; - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_rettype_vardecl_ss::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_operation_rettype_vardecl_ss::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // grab the out stream - be_type *bt; // return type - - if (this->ctx_->alias ()) // a typedefed return type - bt = this->ctx_->alias (); - else - bt = node; - - os->indent (); - // based on whether we are variable or not, we return a pointer or the - // aggregate type - if (node->size_type () == be_decl::VARIABLE) - { - *os << bt->name () << "_var _tao_retval;" << be_nl; - *os << bt->name () << " *&_tao_ptr_retval = _tao_retval.out ();\n"; - } - else - *os << bt->name () << " _tao_retval;\n"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp b/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp deleted file mode 100644 index 5ec925ee3f5..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/tie_sh.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for operations of the TIE class in the header -// file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// Operation visitor for server header for TIE class operations -// ************************************************************ - -be_visitor_operation_tie_sh::be_visitor_operation_tie_sh (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_tie_sh::~be_visitor_operation_tie_sh (void) -{ -} - -int -be_visitor_operation_tie_sh::visit_operation (be_operation *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node representing the return type - - os = this->ctx_->stream (); - this->ctx_->node (node); // save the node - - os->indent (); // start with the current indentation level - - // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_sh::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - // grab the right visitor to generate the return type - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_tie_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_sh::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - // STEP 2: generate the operation name - *os << " " << node->local_name (); - - // STEP 3: generate the argument list with the appropriate mapping. For these - // we grab a visitor that generates the parameter listing - ctx = *this->ctx_; - // we use the _CH state here because the _SH state produces pure virtual - // methods. - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_CH); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_tie_sh::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_sh::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp b/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp deleted file mode 100644 index 53de27865e8..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_operation/tie_si.cpp +++ /dev/null @@ -1,164 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_si.cpp -// -// = DESCRIPTION -// Visitor generating code for operations for the TIE class. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_operation.h" - - -// ************************************************************ -// Operation visitor for server inline for TIE class operations -// ************************************************************ - -be_visitor_operation_tie_si::be_visitor_operation_tie_si -(be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_operation_tie_si::~be_visitor_operation_tie_si (void) -{ -} - -int be_visitor_operation_tie_si::visit_operation (be_operation *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - // We need the interface node in which this operation was defined. However, - // if this operation node was an attribute node in disguise, we get this - // information from the context - be_interface *intf; - intf = this->ctx_->attribute () - ? be_interface::narrow_from_scope (this->ctx_->attribute ()->defined_in ()) - : be_interface::narrow_from_scope (node->defined_in ()); - - if (!intf) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_si::" - "visit_operation - " - "bad interface scope\n"), - -1); - } - - // retrieve the operation return type - be_type *bt = be_type::narrow_from_decl (node->return_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_si::" - "visit_operation - " - "Bad return type\n"), - -1); - } - - os->indent (); - *os << "template ACE_INLINE\n"; - - // generate the return type mapping (same as in the header file) - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_tie_si::" - "visit_operation - " - "Bad visitor for return type\n"), - -1); - } - - if (bt->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_tie_si::" - "visit_operation - " - "codegen for return type failed\n"), - -1); - } - delete visitor; - - *os << " " << intf->full_skel_name () << "_tie::" - << node->local_name () << " "; - - // STEP 4: generate the argument list with the appropriate mapping (same as - // in the header file) - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_OTHERS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_cs::" - "visit_operation - " - "Bad visitor for argument list\n"), - -1); - } - - if (node->accept (visitor) == -1) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_cs::" - "visit_operation - " - "codegen for argument list failed\n"), - -1); - } - delete visitor; - - *os << "{" << be_idt << "\n"; - - os->indent (); - if (bt->node_type () != AST_Decl::NT_pre_defined - || be_predefined_type::narrow_from_decl (bt)->pt () != AST_PredefinedType::PT_void) - { - *os << "return "; - } - - *os << "this->ptr_->" << node->local_name () << " (" << be_idt << "\n"; - - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_OPERATION_ARG_UPCALL_SS); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - delete visitor; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_operation_ss::" - "visit_operation - " - "codegen for making upcall failed\n"), - -1); - } - // last argument is the environment - if (node->argument_count () > 0) - *os << ",\n"; - os->indent (); - *os << "_tao_environment"; - // end the upcall - *os << be_uidt_nl; - *os << ");" << be_uidt_nl; - *os << "}\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root.cpp b/TAO/TAO_IDL/be/be_visitor_root.cpp deleted file mode 100644 index e6c7c6c6c34..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_root.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Root -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" -#include "be_visitor_root.h" - -// include all the individual files -#include "be_visitor_root/any_op.cpp" -#include "be_visitor_root/root.cpp" -#include "be_visitor_root/root_ch.cpp" -#include "be_visitor_root/root_ci.cpp" -#include "be_visitor_root/root_cs.cpp" -#include "be_visitor_root/root_sh.cpp" -#include "be_visitor_root/root_si.cpp" -#include "be_visitor_root/root_ss.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_root/any_op.cpp b/TAO/TAO_IDL/be/be_visitor_root/any_op.cpp deleted file mode 100644 index 740fed8b97c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/any_op.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op.cpp -// -// = DESCRIPTION -// Visitor generating code for the Any operators for types defined in Root's -// scope. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// *************************************************************************** -// Root visitor for generating Any operator declarations in the client header -// and stub -// *************************************************************************** - -be_visitor_root_any_op::be_visitor_root_any_op (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_any_op::~be_visitor_root_any_op (void) -{ -} - -int -be_visitor_root_any_op::visit_root (be_root *node) -{ - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::visit_root - " - "codegen for scope failed\n"), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root.cpp b/TAO/TAO_IDL/be/be_visitor_root/root.cpp deleted file mode 100644 index 3b1cf0fef05..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root.cpp +++ /dev/null @@ -1,745 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root.cpp -// -// = DESCRIPTION -// Visitor generating code for the Root node. This is a generic visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// Generic Root visitor -be_visitor_root::be_visitor_root (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_root::~be_visitor_root (void) -{ -} - -// this method must be overridden by the derived root visitors -int -be_visitor_root::init (void) -{ - return -1; -} - -// visit the Root node and its scope -int be_visitor_root::visit_root (be_root *node) -{ - // open the appropriate output file based on what state we are in. The - // overridden "init" method of derived classes will do the job. - if (this->init () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::init - " - "failed to initialize context\n"), -1); - } - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::visit_root - " - "codegen for scope failed\n"), -1); - } - - // The last thing we need to do is make one more pass thru the entire tree - // and generate code for all the <<= and >>= operators for all the - // user-defined types. - // - // XXXASG - this part of the code may be conditionally generated because at - // times it is not necessary to have these operators at all. TO-DO. - be_visitor_context ctx (*this->ctx_); - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_ROOT_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - (void) tao_cg->end_server_header (); - (void) tao_cg->end_server_template_header (); - return 0; - break; - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SI: - return 0; // nothing to be done - case TAO_CodeGen::TAO_ROOT_SS: - (void) tao_cg->end_server_template_skeletons (); - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_constant - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_root - " - "NUL visitor\n" - ), -1); - } - - // generate the <<= and >>= operators for all the user-defined data types in - // the outermost scope - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_root - " - "failed to generate Any operators\n" - ), -1); - } - delete visitor; - - // generate any final code such as #endifs - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - (void) tao_cg->end_client_header (); - break; - default: - break; - } - return 0; -} - -// =all common visit methods for root visitor - -// visit a constant -int -be_visitor_root::visit_constant (be_constant *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CH); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_CONSTANT_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_constant - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_constant - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_constant - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -//visit an enum -int -be_visitor_root::visit_enum (be_enum *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_CI: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_enum - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_enum - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_enum - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an exception -int -be_visitor_root::visit_exception (be_exception *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_EXCEPTION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_exception - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_exception - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_exception - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an interface -int -be_visitor_root::visit_interface (be_interface *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SH); - break; - case TAO_CodeGen::TAO_ROOT_SI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SI); - break; - case TAO_CodeGen::TAO_ROOT_SS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_SS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_INTERFACE_ANY_OP_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an interface_fwd -int -be_visitor_root::visit_interface_fwd (be_interface_fwd *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_INTERFACE_FWD_CI); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - case TAO_CodeGen::TAO_ROOT_CS: - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface_fwd - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface_fwd - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_interface_fwd - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an module -int -be_visitor_root::visit_module (be_module *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_MODULE_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_MODULE_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_MODULE_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - ctx.state (TAO_CodeGen::TAO_MODULE_SH); - break; - case TAO_CodeGen::TAO_ROOT_SI: - ctx.state (TAO_CodeGen::TAO_MODULE_SI); - break; - case TAO_CodeGen::TAO_ROOT_SS: - ctx.state (TAO_CodeGen::TAO_MODULE_SS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_MODULE_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_MODULE_ANY_OP_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_module - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_module - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_module - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an structure -int -be_visitor_root::visit_structure (be_structure *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_structure - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_structure - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_structure - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an union -int -be_visitor_root::visit_union (be_union *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_UNION_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_UNION_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_UNION_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_union - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_union - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_union - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an typedef -int -be_visitor_root::visit_typedef (be_typedef *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_ROOT_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CH); - break; - case TAO_CodeGen::TAO_ROOT_CI: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CI); - break; - case TAO_CodeGen::TAO_ROOT_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_CS); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_ROOT_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_ROOT_SH: - case TAO_CodeGen::TAO_ROOT_SI: - case TAO_CodeGen::TAO_ROOT_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_typedef - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_typedef - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root::" - "visit_typedef - " - "failed to accept visitor" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp deleted file mode 100644 index 4b90947687d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_ch.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Root in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// ******************************** -// Root visitor for client header -// ******************************** - -be_visitor_root_ch::be_visitor_root_ch (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_ch::~be_visitor_root_ch (void) -{ -} - -int -be_visitor_root_ch::init (void) -{ - // first open the client-side header file for writing - if (tao_cg->start_client_header (idl_global->be_get_client_hdr_fname ()) - == -1) - { - ACE_ERROR ((LM_ERROR, - "(%N:%l) be_visitor_root_ch::init - " - "Error opening client header file\n")); - return -1; - } - - // init the stream - this->ctx_->stream (tao_cg->client_header ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_ci.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_ci.cpp deleted file mode 100644 index a4849fb6ab4..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_ci.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for the Root in the client inline -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// ********************************* -// Root visitor for client inline -// ********************************* - -be_visitor_root_ci::be_visitor_root_ci (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_ci::~be_visitor_root_ci (void) -{ -} - -int -be_visitor_root_ci::init (void) -{ - // first open the client-side inline file for writing - if (tao_cg->start_client_inline (idl_global->be_get_client_inline_fname ()) - == -1) - { - ACE_ERROR ((LM_ERROR, - "(%N:%l) be_visitor_root_ci - " - "Error opening client inline file\n")); - return -1; - } - - this->ctx_->stream (tao_cg->client_inline ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_cs.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_cs.cpp deleted file mode 100644 index 12e6f6155da..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_cs.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Root in the client stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// *********************************** -// Root visitor for client stubs -// *********************************** - -be_visitor_root_cs::be_visitor_root_cs (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_cs::~be_visitor_root_cs (void) -{ -} - -int -be_visitor_root_cs::init (void) -{ - // first open the file - if (tao_cg->start_client_stubs (idl_global->be_get_client_stub_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_cs - " - "Error opening client stub file\n"), -1); - } - - // init stream - this->ctx_->stream (tao_cg->client_stubs ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_sh.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_sh.cpp deleted file mode 100644 index a6bb7e00f32..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_sh.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_sh.cpp -// -// = DESCRIPTION -// Visitor generating code for Root in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// *********************************** -// Root visitor for server header -// *********************************** - -be_visitor_root_sh::be_visitor_root_sh (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_sh::~be_visitor_root_sh (void) -{ -} - -int -be_visitor_root_sh::init (void) -{ - // open the file - if (tao_cg->start_server_header (idl_global->be_get_server_hdr_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_sh::init - " - "Error opening server header file\n"), -1); - } - - if (tao_cg->start_server_template_header - (idl_global->be_get_server_template_hdr_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_sh::init - " - "Error opening server template header file\n"), - -1); - } - - // set the stream and the next state - this->ctx_->stream (tao_cg->server_header ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp deleted file mode 100644 index 414a40083fb..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_si.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_si.cpp -// -// = DESCRIPTION -// Visitor generating code for the Root in the server inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// *********************************************** -// Root visitor for server inline -// *********************************************** - -be_visitor_root_si::be_visitor_root_si (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_si::~be_visitor_root_si (void) -{ -} - -int -be_visitor_root_si::init (void) -{ - // first open the file for writing - if (tao_cg->start_server_inline (idl_global->be_get_server_inline_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_si::init - " - "server inline open failed\n"), -1); - } - - if (tao_cg->start_server_template_inline - (idl_global->be_get_server_template_inline_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_si::init - " - "Error opening server template inline file\n"), - -1); - } - - // init stream - this->ctx_->stream (tao_cg->server_inline ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_root/root_ss.cpp b/TAO/TAO_IDL/be/be_visitor_root/root_ss.cpp deleted file mode 100644 index ce0486ffad6..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_root/root_ss.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ss.cpp -// -// = DESCRIPTION -// Visitor generating code for the Root in the server skeletons file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_root.h" - - -// ****************************************************** -// Root visitor for server skeletons -// ****************************************************** - -be_visitor_root_ss::be_visitor_root_ss (be_visitor_context *ctx) - : be_visitor_root (ctx) -{ -} - -be_visitor_root_ss::~be_visitor_root_ss (void) -{ -} - -int -be_visitor_root_ss::init (void) -{ - // first open the file for writing - if (tao_cg->start_server_skeletons (idl_global - ->be_get_server_skeleton_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_ss::init - " - "Error opening server skeletons file\n"), -1); - } - - if (tao_cg->start_server_template_skeletons - (idl_global->be_get_server_template_skeleton_fname ()) - == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_root_ss::init - " - "Error opening server template skeleton file\n"), - -1); - } - - // set stream - this->ctx_->stream (tao_cg->server_skeletons ()); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_scope.cpp b/TAO/TAO_IDL/be/be_visitor_scope.cpp deleted file mode 100644 index 0d28959f0f3..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_scope.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_scope.cpp -// -// = DESCRIPTION -// Visitor for the base be_scope node. This serves to maintain the current -// state (context) of code generation for the derived visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_scope.h" - -// ****************************************************** -// Generic visitor for a scope. -// All elements that give rise to a scope inherit from -// this class -// ****************************************************** - -be_visitor_scope::be_visitor_scope (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_scope::~be_visitor_scope (void) -{ -} - -// visit the scope and its elements -int -be_visitor_scope::visit_scope (be_scope *node) -{ - // proceed if the number of members in our scope is greater than 0 - if (node->nmembers () > 0) - { - // initialize an iterator to iterate thru our scope - UTL_ScopeActiveIterator *si; - ACE_NEW_RETURN (si, - UTL_ScopeActiveIterator (node, - UTL_Scope::IK_decls), - -1); - // continue until each element is visited - while (!si->is_done ()) - { - AST_Decl *d = si->item (); - if (!d) - { - delete si; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_scope::visit_scope - " - "bad node in this scope\n"), -1); - - } - be_decl *bd = be_decl::narrow_from_decl (d); - // set the scope node as "node" in which the code is being generated - // so that elements in the node's scope can use it for code generation - this->ctx_->scope (node->decl ()); - // set the node to be visited - this->ctx_->node (bd); - if (bd == 0 || bd->accept (this) == -1) - { - delete si; - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_scope::visit_scope - " - "codegen for scope failed\n"), -1); - - } - si->next (); - if (!si->is_done ()) - this->post_process (); // anything to be done after each element - // except the last one is processed? - - } // end of while loop - delete si; - } // end of if - - return 0; -} - -int -be_visitor_scope::post_process (void) -{ - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence.cpp b/TAO/TAO_IDL/be/be_visitor_sequence.cpp deleted file mode 100644 index eb251923059..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_sequence.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Sequence -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" -#include "be_visitor_sequence.h" - -// include all the individual files -#include "be_visitor_sequence/any_op_ch.cpp" -#include "be_visitor_sequence/any_op_cs.cpp" -#include "be_visitor_sequence/buffer_type.cpp" -#include "be_visitor_sequence/elemtype.cpp" -#include "be_visitor_sequence/sequence_base.cpp" -#include "be_visitor_sequence/sequence_ch.cpp" -#include "be_visitor_sequence/sequence_ci.cpp" -#include "be_visitor_sequence/sequence_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp deleted file mode 100644 index 09bb17911ca..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_ch.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for the Sequence -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// *************************************************************************** -// Sequence visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_sequence_any_op_ch::be_visitor_sequence_any_op_ch -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_any_op_ch::~be_visitor_sequence_any_op_ch (void) -{ -} - -int -be_visitor_sequence_any_op_ch::visit_sequence (be_sequence *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operators - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << " &); // copying version" << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << "*); // noncopying version" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " *&);\n"; - - node->cli_hdr_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp deleted file mode 100644 index 22f4e6df5d9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/any_op_cs.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operator for the Sequence node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// *************************************************************************** -// Sequence visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_sequence_any_op_cs::be_visitor_sequence_any_op_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_any_op_cs::~be_visitor_sequence_any_op_cs (void) -{ -} - -int -be_visitor_sequence_any_op_cs::visit_sequence (be_sequence *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, const " - << node->name () << " &_tao_elem) // copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", &" - << "_tao_elem, 1, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " *_tao_elem) // non copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem, 0, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " *&_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "if (_tao_any.any_owns_data ())" << be_nl - << "{" << be_idt_nl - << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" - << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_elem, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_elem, 1, _tao_env);" - << be_nl - << " return 1;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // decode failed - << "{" << be_idt_nl - << "delete _tao_elem;" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}\n\n"; - - - node->cli_stub_any_op_gen (1); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp deleted file mode 100644 index 5474bceb86a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp +++ /dev/null @@ -1,152 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// buffer_type.cpp -// -// = DESCRIPTION -// Visitor generating code for the internal buffer type of the Sequence node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// **************************************************************** -// We have to generate the buffer type in the constructor -// **************************************************************** - -be_visitor_sequence_buffer_type:: -be_visitor_sequence_buffer_type (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_buffer_type::~be_visitor_sequence_buffer_type (void) -{ -} - -// helper -int -be_visitor_sequence_buffer_type::visit_node (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - return 0; -} - -int -be_visitor_sequence_buffer_type::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - if (node->pt () == AST_PredefinedType::PT_pseudo) - *os << node->name () << "_ptr"; - else - *os << node->name (); - return 0; -} - -int -be_visitor_sequence_buffer_type::visit_sequence (be_sequence *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH) - *os << node->nested_type_name (this->ctx_->scope (), "_ptr"); - else - *os << node->name () << "_ptr"; - return 0; -} - -int -be_visitor_sequence_buffer_type::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH) - *os << node->nested_type_name (this->ctx_->scope (), "_ptr"); - else - *os << node->name () << "_ptr"; - return 0; -} - -int -be_visitor_sequence_buffer_type::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); - *os << "char *"; - return 0; -} - -int -be_visitor_sequence_buffer_type::visit_structure (be_structure *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_union (be_union *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_enum (be_enum *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_exception (be_exception *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_array (be_array *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_buffer_type::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_buffer_type::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp deleted file mode 100644 index 4837066484d..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp +++ /dev/null @@ -1,190 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// elemtype.cpp -// -// = DESCRIPTION -// Visitor generating code for the element type for the Sequence -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// *********************************************************** -// sequence element type visitor for return types of [] methods -// *********************************************************** - - -be_visitor_sequence_elemtype:: -be_visitor_sequence_elemtype (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_elemtype::~be_visitor_sequence_elemtype (void) -{ -} - -// helper -int -be_visitor_sequence_elemtype::visit_node (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()) << " &"; - else - *os << bt->name () << " &"; - return 0; -} - -int -be_visitor_sequence_elemtype::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - switch (node->pt ()) - { - case AST_PredefinedType::PT_pseudo: - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH) - { - *os << "TAO_Object_Manager<" << bt->nested_type_name - (this->ctx_->scope ()) << "> "; - } - else - *os << "TAO_Object_Manager<" << bt->name () << "> "; - break; - default: - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()) << " &"; - else - *os << bt->name () << " &"; - } - return 0; -} - -int -be_visitor_sequence_elemtype::visit_sequence (be_sequence *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - - *os << "TAO_Object_Manager <" - << bt->nested_type_name (this->ctx_->scope ()) - << " > "; - - return 0; -} - -int -be_visitor_sequence_elemtype::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - - *os << "TAO_Object_Manager <" - << bt->nested_type_name (this->ctx_->scope ()) - << " > "; - - return 0; -} - -int -be_visitor_sequence_elemtype::visit_string (be_string *) -{ - TAO_OutStream *os = this->ctx_->stream (); - - *os << "TAO_String_Manager "; - return 0; -} - -int -be_visitor_sequence_elemtype::visit_structure (be_structure *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_union (be_union *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_enum (be_enum *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_exception (be_exception *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_array (be_array *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_elemtype::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_elemtype::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp deleted file mode 100644 index 207a573b9fe..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_base.cpp +++ /dev/null @@ -1,139 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_base.cpp -// -// = DESCRIPTION -// Visitor generating code for the base type of the Sequence -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// **************************************************************** -// We have to generate the parameters for the template that implements -// each sequence type. -// **************************************************************** - -be_visitor_sequence_base:: -be_visitor_sequence_base (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_base::~be_visitor_sequence_base (void) -{ -} - -int -be_visitor_sequence_base::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - *os << node->name (); - return 0; -} - -// helper -int -be_visitor_sequence_base::visit_node (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BASE_CH) - *os << bt->nested_type_name (this->ctx_->scope ()); - else - *os << bt->name (); - return 0; -} - -int -be_visitor_sequence_base::visit_sequence (be_sequence *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_interface (be_interface *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_interface_fwd (be_interface_fwd *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_string (be_string *) -{ - // NO-OP, we have ad-hoc classes from strings. - return 0; -} - -int -be_visitor_sequence_base::visit_structure (be_structure *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_union (be_union *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_enum (be_enum *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_exception (be_exception *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_array (be_array *node) -{ - return this->visit_node (node); -} - -int -be_visitor_sequence_base::visit_typedef (be_typedef *node) -{ - this->ctx_->alias (node); // set the alias node - if (node->primitive_base_type ()->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_sequence_base::" - "visit_typedef - " - "accept on primitive type failed\n"), - -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp deleted file mode 100644 index 224e414c606..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp +++ /dev/null @@ -1,475 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Sequence in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// Root visitor for client header -be_visitor_sequence_ch::be_visitor_sequence_ch (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_ch::~be_visitor_sequence_ch (void) -{ -} - -int -be_visitor_sequence_ch::gen_base_sequence_class (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - // retrieve the base type since we may need to do some code - // generation for the base type. - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "Bad element type\n"), -1); - } - - // generate the appropriate sequence type - switch (node->managed_type ()) - { - case be_sequence::MNG_OBJREF: // sequence of objrefs - if (node->unbounded ()) - *os << "TAO_Unbounded_Object_Sequence<"; - else - *os << "TAO_Bounded_Object_Sequence<"; - break; - case be_sequence::MNG_STRING: // sequence of strings - if (node->unbounded ()) - *os << "TAO_Unbounded_String_Sequence"; - else - *os << "TAO_Bounded_String_Sequence"; - break; - default: // not a managed type - if (node->unbounded ()) - *os << "TAO_Unbounded_Sequence<"; - else - *os << "TAO_Bounded_Sequence<"; - break; - } - - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "base type visit failed\n"), - -1); - } - delete visitor; - - // find out if the sequence is of a managed type and if it is bounded or not - if (node->managed_type () == be_sequence::MNG_STRING) - { - if (!node->unbounded ()) - { - *os << "<" << node->max_size () << ">"; - } - } - else - { - if (node->unbounded ()) - { - *os << ">"; - } - else - { - *os << ", " << node->max_size () << ">"; - } - } - return 0; -} - -int be_visitor_sequence_ch::visit_sequence (be_sequence *node) -{ - be_type *bt; // type node - TAO_OutStream *os = this->ctx_->stream (); - - // first create a name for ourselves - if (node->create_name (this->ctx_->tdef ()) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "failed creating name\n"), -1); - } - - if (node->cli_hdr_gen () || node->imported ()) - return 0; - - // generate the ifdefined macro for the sequence type - os->gen_ifdef_macro (node->flatname ()); - - os->indent (); // start with the current indentation level - - // retrieve the base type since we may need to do some code - // generation for the base type. - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "Bad element type\n"), -1); - } - - *os << "// *************************************************************" - << be_nl - << "// " << node->local_name () << be_nl - << "// *************************************************************" - << be_nl << be_nl; - - // generate a typedef to a parametrized sequence - *os << "class " << idl_global->export_macro () - << " " << node->local_name () << " : public "; - if (this->gen_base_sequence_class (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "codegen for base sequence class\n"), -1); - } - - *os << be_nl - << "{" << be_nl - << "public:" << be_idt_nl - << node->local_name () << " (void); // default ctor" << be_nl; - // for unbounded sequences, we have a different set of constructors - if (node->unbounded ()) - { - *os << node->local_name () << " (CORBA::ULong max); // uses max size" - << be_nl; - } - - *os << node->local_name () << " (" << be_idt_nl; - if (node->unbounded ()) - { - // unbounded seq takes this extra parameter - *os << "CORBA::ULong max, " << be_nl; - } - *os << "CORBA::ULong length, " << be_nl; - // generate the base type for the buffer - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "base type visit failed\n"), - -1); - } - delete visitor; - *os << " *buffer, " << be_nl - << "CORBA::Boolean release=0" << be_uidt_nl - << ");" << be_nl; - *os << node->local_name () << " (const " << node->local_name () - << " &); // copy ctor" << be_nl; - *os << "~" << node->local_name () << " (void); // dtor\n"; - - os->decr_indent (); - *os << "};" << be_nl; - - // define a _ptr type. This is just an extension for convenience - *os << "typedef " << node->local_name () << " *" - << node->local_name () << "_ptr;\n"; - - if (!this->ctx_->tdef ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "TypeCode declaration failed\n" - ), -1); - } - } - - os->gen_endif (); // endif macro - - // generate the ifdefined macro for the var type - os->gen_ifdef_macro (node->flatname (), "_var"); - - // generate the var and out types - if (this->gen_var_defn (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "codegen for _var failed\n"), -1); - } - - os->gen_endif (); - - // generate the ifdefined macro for the _out type - os->gen_ifdef_macro (node->flatname (), "_out"); - - if (this->gen_out_defn (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "codegen for _out failed\n"), - -1); - } - os->gen_endif (); - node->cli_hdr_gen (1); - - return 0; -} - -// generate the _var definition for ourself -int -be_visitor_sequence_ch::gen_var_defn (be_sequence *node) -{ - TAO_OutStream *os; // output stream - char namebuf [NAMEBUFSIZE]; // names - be_type *bt; // base type - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (namebuf, "%s_var", node->local_name ()->get_string ()); - - os = this->ctx_->stream (); - - *os << "// *************************************************************" - << be_nl; - *os << "// class " << node->name () << "_var" << be_nl; - *os << "// *************************************************************\n\n"; - - // retrieve base type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "gen_var_defn - " - "Bad base type\n"), - -1); - } - - // generate the var definition (always in the client header). - // Depending upon the data type, there are some differences which we account - // for over here. - - os->indent (); // start with whatever was our current indent level - *os << "class " << idl_global->export_macro () - << " " << namebuf << be_nl; - *os << "{" << be_nl; - *os << "public:\n"; - os->incr_indent (); - // default constr - *os << namebuf << " (void); // default constructor" << be_nl; - // constr - *os << namebuf << " (" << node->local_name () << " *);" << be_nl; - // copy constructor - *os << namebuf << " (const " << namebuf << - " &); // copy constructor" << be_nl; - // destructor - *os << "~" << namebuf << " (void); // destructor" << be_nl; - *os << be_nl; - // assignment operator from a pointer - *os << namebuf << " &operator= (" << node->local_name () << " *);" << be_nl; - // assignment from _var - *os << namebuf << " &operator= (const " << namebuf << - " &);" << be_nl; - - // arrow operator - *os << node->local_name () << " *operator-> (void);" << be_nl; - *os << "const " << node->local_name () << " *operator-> (void) const;" << be_nl; - *os << be_nl; - - // other extra types (cast operators, [] operator, and others) - - // cast operator - *os << "operator const " << node->local_name () << " &() const;" << be_nl; - *os << "operator " << node->local_name () << " &();" << be_nl; - *os << "operator " << node->local_name () << " &() const;" << be_nl; - - // overloaded [] operator. The const version is not required for sequences - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "gen_var_defn - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_sequence::" - "gen_var_defn - " - "[] ret type gen failed\n"), - -1); - } - delete visitor; - - *os << "operator[] (CORBA::ULong index);" << be_nl; - - *os << "// in, inout, out, _retn " << be_nl; - // the return types of in, out, inout, and _retn are based on the parameter - // passing rules and the base type - *os << "const " << node->local_name () << " &in (void) const;" << be_nl; - *os << node->local_name () << " &inout (void);" << be_nl; - *os << node->local_name () << " *&out (void);" << be_nl; - *os << node->local_name () << " *_retn (void);" << be_nl; - - // generate an additional member function that returns the underlying pointer - *os << node->local_name () << " *ptr (void) const;\n"; - - *os << "\n"; - os->decr_indent (); - - // generate the private section - *os << "private:\n"; - os->incr_indent (); - *os << node->local_name () << " *ptr_;\n"; - - os->decr_indent (); - *os << "};\n\n"; - - return 0; -} - -// generate the _out definition -int -be_visitor_sequence_ch::gen_out_defn (be_sequence *node) -{ - TAO_OutStream *os; // output stream - char namebuf [NAMEBUFSIZE]; // to hold the _out name - be_type *bt; // base type - - ACE_OS::memset (namebuf, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (namebuf, "%s_out", node->local_name ()->get_string ()); - os = this->ctx_->stream (); - - // retrieve base type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "gen_out_defn - " - "Bad base type\n"), - -1); - } - - // generate the out definition (always in the client header) - os->indent (); // start with whatever was our current indent level - - *os << "class " << idl_global->export_macro () << " " - << namebuf << be_nl; - *os << "{" << be_nl; - *os << "public:\n"; - os->incr_indent (); - - // No default constructor - - // constructor from a pointer - *os << namebuf << " (" << node->local_name () << " *&);" << be_nl; - // constructor from a _var & - *os << namebuf << " (" << node->local_name () << "_var &);" << be_nl; - // constructor from a _out & - *os << namebuf << " (" << namebuf << " &);" << be_nl; - // assignment operator from a _out & - *os << namebuf << " &operator= (" << namebuf << " &);" << be_nl; - // assignment operator from a pointer &, cast operator, ptr fn, operator - // -> and any other extra operators - // assignment - *os << namebuf << " &operator= (" << node->local_name () << " *);" << be_nl; - // operator () - *os << "operator " << node->local_name () << " *&();" << be_nl; - // ptr fn - *os << node->local_name () << " *&ptr (void);" << be_nl; - // operator -> - *os << node->local_name () << " *operator-> (void);" << be_nl; - - // overloaded [] operator only for sequence. The const version is not - // required - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "gen_out_defn - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_sequence::" - "gen_var_defn - " - "[] ret type gen failed\n"), - -1); - } - delete visitor; - *os << "operator[] (CORBA::ULong index);" << be_nl; - *os << "\n"; - os->decr_indent (); - *os << "private:\n"; - os->incr_indent (); - - *os << node->local_name () << " *&ptr_;" << be_nl; - *os << "// assignment from T_var not allowed" << be_nl; - *os << "void operator= (const " << node->local_name () << "_var &);\n"; - - os->decr_indent (); - *os << "};\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp deleted file mode 100644 index e336c230fa1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp +++ /dev/null @@ -1,469 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Sequence in the client inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// *********************************************************** -// sequence visitor for inline generation -// *********************************************************** - - -be_visitor_sequence_ci::be_visitor_sequence_ci (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_ci::~be_visitor_sequence_ci (void) -{ -} - -int -be_visitor_sequence_ci::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - if (node->cli_inline_gen () || node->imported ()) - return 0; - - // all we do is generate the _var and _out implementations - if (this->gen_var_impl (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "visit_sequence - " - "codegen for _var failed\n"), -1); - } - - if (this->gen_out_impl (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "visit_sequence - " - "codegen for _out failed\n"), -1); - } - - return 0; -} - -int -be_visitor_sequence_ci::gen_var_impl (be_sequence *node) -{ - TAO_OutStream *os; // output stream - char fname [NAMEBUFSIZE]; // to hold the full and - char lname [NAMEBUFSIZE]; // local _var names - be_type *bt; // base type - - - ACE_OS::memset (fname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (fname, "%s_var", node->fullname ()); - - ACE_OS::memset (lname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (lname, "%s_var", node->local_name ()->get_string ()); - - os = this->ctx_->stream (); - - // retrieve base type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "visit_sequence - " - "Bad element type\n"), -1); - } - - // generate the var implementation in the inline file - os->indent (); // start with whatever was our current indent level - - *os << "// *************************************************************" - << be_nl; - *os << "// Inline operations for class " << fname << be_nl; - *os << "// *************************************************************\n\n"; - - // default constr - *os << "ACE_INLINE" << be_nl - << fname << "::" << lname - << " (void) // default constructor" << be_nl - << " " << ": ptr_ (0)" << be_nl - << "{}\n\n"; - - // constr from a _ptr - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::" << lname << " (" << node->name () << " *p)" << be_nl; - *os << " : ptr_ (p)" << be_nl; - *os << "{}\n\n"; - - // copy constructor - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::" << lname << " (const " << fname << - " &p) // copy constructor" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "if (p.ptr_)" << be_nl; - *os << " this->ptr_ = new " << node->name () << "(*p.ptr_);" << be_nl; - *os << "else" << be_nl; - *os << " this->ptr_ = 0;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // destructor - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::~" << lname << " (void) // destructor" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "delete this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // assignment operator from a pointer - os->indent (); - *os << "ACE_INLINE " << fname << " &" << be_nl; - *os << fname << "::operator= (" << node->name () << - " *p)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "delete this->ptr_;" << be_nl; - *os << "this->ptr_ = p;" << be_nl; - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // assignment operator from _var - os->indent (); - *os << "ACE_INLINE " << fname << " &" << be_nl; - *os << fname << "::operator= (const " << fname << - " &p) // deep copy" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "if (this != &p)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "delete this->ptr_;" << be_nl; - *os << "this->ptr_ = new " << node->name () << " (*p.ptr_);\n"; - os->decr_indent (); - *os << "}" << be_nl; - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // two arrow operators - os->indent (); - *os << "ACE_INLINE const " << node->name () << " *" << be_nl; - *os << fname << "::operator-> (void) const" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "ACE_INLINE " << node->name () << " *" << be_nl; - *os << fname << "::operator-> (void)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // other extra methods - 3 cast operator () - os->indent (); - *os << "ACE_INLINE " << be_nl; - *os << fname << "::operator const " << node->name () << - " &() const // cast" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return *this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "ACE_INLINE " << be_nl; - *os << fname << "::operator " << node->name () << " &() // cast " << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return *this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "ACE_INLINE " << be_nl; - *os << fname << "::operator " << node->name () << " &() const// cast " << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return *this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // operator [] - os->indent (); - *os << "ACE_INLINE "; - - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "gen_var_impl - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "gen_var_impl - " - "[] ret type gen failed\n"), - -1); - } - delete visitor; - - *os << be_nl; - *os << fname << "::operator[] (CORBA::ULong index)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_->operator[] (index);\n"; - os->decr_indent (); - *os << "}\n\n"; - - // in, inout, out, and _retn - os->indent (); - *os << "ACE_INLINE const " << node->name () << " &" << be_nl; - *os << fname << "::in (void) const" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return *this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "ACE_INLINE " << node->name () << " &" << be_nl; - *os << fname << "::inout (void)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return *this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "// mapping for variable size " << be_nl; - *os << "ACE_INLINE " << node->name () << " *&" << be_nl; - *os << fname << "::out (void)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "delete this->ptr_;" << be_nl; - *os << "this->ptr_ = 0;" << be_nl; - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - os->indent (); - *os << "ACE_INLINE " << node->name () << " *" << be_nl; - *os << fname << "::_retn (void)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << node->name () << " *tmp = this->ptr_;" << be_nl; - *os << "this->ptr_ = 0;" << be_nl; - *os << "return tmp;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // the additional ptr () member function - os->indent (); - *os << "ACE_INLINE " << node->name () << " *" << be_nl; - *os << fname << "::ptr (void) const" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - return 0; -} - -int -be_visitor_sequence_ci::gen_out_impl (be_sequence *node) -{ - TAO_OutStream *os; // output stream - char fname [NAMEBUFSIZE]; // to hold the full and - char lname [NAMEBUFSIZE]; // local _out names - be_type *bt; // base type - - - ACE_OS::memset (fname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (fname, "%s_out", node->fullname ()); - - ACE_OS::memset (lname, '\0', NAMEBUFSIZE); - ACE_OS::sprintf (lname, "%s_out", node->local_name ()->get_string ()); - - os = this->ctx_->stream (); - - // retrieve base type - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "gen_out_impl - " - "Bad element type\n"), -1); - } - - // generate the out implementation in the inline file - - os->indent (); // start with whatever was our current indent level - - *os << "// *************************************************************" - << be_nl; - *os << "// Inline operations for class " << fname << be_nl; - *os << "// *************************************************************\n\n"; - - // constr from a pointer - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::" << lname << " (" << node->name () << " *&p)" << be_nl; - *os << " : ptr_ (p)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "this->ptr_ = 0;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // constructor from _var & - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::" << lname << " (" << node->name () << - "_var &p) // constructor from _var" << be_nl; - *os << " : ptr_ (p.out ())" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "delete this->ptr_;" << be_nl; - *os << "this->ptr_ = 0;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // copy constructor - os->indent (); - *os << "ACE_INLINE" << be_nl; - *os << fname << "::" << lname << " (" << fname << - " &p) // copy constructor" << be_nl; - *os << " : ptr_ (p.ptr_)" << be_nl; - *os << "{}\n\n"; - - // assignment operator from _out & - os->indent (); - *os << "ACE_INLINE " << fname << " &" << be_nl; - *os << fname << "::operator= (" << fname << - " &p)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "this->ptr_ = p.ptr_;" << be_nl; - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // assignment from _var is not allowed by a private declaration - - // assignment operator from pointer - os->indent (); - *os << "ACE_INLINE " << fname << " &" << be_nl; - *os << fname << "::operator= (" << node->name () << - " *p)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "this->ptr_ = p;" << be_nl; - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // other extra methods - cast operator () - os->indent (); - *os << "ACE_INLINE " << be_nl; - *os << fname << "::operator " << node->name () << - " *&() // cast" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // ptr function - os->indent (); - *os << "ACE_INLINE " << node->name () << " *&" << be_nl; - *os << fname << "::ptr (void) // ptr" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // operator -> - os->indent (); - *os << "ACE_INLINE " << node->name () << " *" << be_nl; - *os << fname << "::operator-> (void)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // sequence has an additional method - os->indent (); - *os << "ACE_INLINE "; - - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQELEM_RETTYPE_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "gen_out_impl - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ci::" - "gen_out_impl - " - "[] ret type gen failed\n"), - -1); - } - delete visitor; - - *os << be_nl; - *os << fname << "::operator[] (CORBA::ULong index)" << be_nl; - *os << "{\n"; - os->incr_indent (); - *os << "return this->ptr_->operator[] (index);\n"; - os->decr_indent (); - *os << "}\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp deleted file mode 100644 index b508e405204..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_cs.cpp +++ /dev/null @@ -1,261 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Sequences in the client stubs file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_sequence.h" - - -// ************************************************************ -// Root visitor for client stub class -// ************************************************************ - -be_visitor_sequence_cs::be_visitor_sequence_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_sequence_cs::~be_visitor_sequence_cs (void) -{ -} - -// XXXASG - this method is same as that in the _ch visitor. So we need some -// abstraction for this - -int -be_visitor_sequence_cs::gen_base_sequence_class (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - be_type *bt; - - // retrieve the base type since we may need to do some code - // generation for the base type. - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "gen_base_sequence_class - " - "Bad element type\n"), -1); - } - - // generate the appropriate sequence type - switch (node->managed_type ()) - { - case be_sequence::MNG_OBJREF: // sequence of objrefs - if (node->unbounded ()) - *os << "TAO_Unbounded_Object_Sequence<"; - else - *os << "TAO_Bounded_Object_Sequence<"; - break; - case be_sequence::MNG_STRING: // sequence of strings - if (node->unbounded ()) - *os << "TAO_Unbounded_String_Sequence"; - else - *os << "TAO_Bounded_String_Sequence"; - break; - default: // not a managed type - if (node->unbounded ()) - *os << "TAO_Unbounded_Sequence<"; - else - *os << "TAO_Bounded_Sequence<"; - break; - } - - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BASE_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "base type visit failed\n"), - -1); - } - delete visitor; - - // find out if the sequence is of a managed type and if it is bounded or not - if (node->managed_type () == be_sequence::MNG_STRING) - { - if (!node->unbounded ()) - { - *os << "<" << node->max_size () << ">"; - } - } - else - { - if (node->unbounded ()) - { - *os << ">"; - } - else - { - *os << ", " << node->max_size () << ">"; - } - } - return 0; -} - -int be_visitor_sequence_cs::visit_sequence (be_sequence *node) -{ - // generate the constructors - be_type *bt; // type node - TAO_OutStream *os = this->ctx_->stream (); - - if (node->cli_stub_gen () || node->imported ()) - return 0; - - // generate the ifdefined macro for the sequence type - os->gen_ifdef_macro (node->flatname ()); - - os->indent (); // start with the current indentation level - - // retrieve the base type since we may need to do some code - // generation for the base type. - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "Bad element type\n"), -1); - } - - *os << "// *************************************************************" - << be_nl - << "// " << node->name () << be_nl - << "// *************************************************************" - << be_nl << be_nl; - - // default constructor - *os << node->name () << "::" << node->local_name () << " (void)" << be_nl - << "{}" << be_nl; - - // for unbounded sequences, we have a different set of constructors - if (node->unbounded ()) - { - *os << node->name () << "::" << node->local_name () - << " (CORBA::ULong max) // uses max size" << be_nl - << " : "; - // pass it to the base constructor - if (this->gen_base_sequence_class (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "codegen for base sequence class\n"), -1); - } - *os << " (max)" << be_nl - << "{}" << be_nl; - } - - // constructor with the buffer - *os << node->name () << "::" << node->local_name () << " ("; - if (node->unbounded ()) - { - *os << "CORBA::ULong max, "; // unbounded seq takes this extra parameter - } - *os << "CORBA::ULong length, "; - // generate the base type for the buffer - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "Bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_ch::" - "visit_sequence - " - "base type visit failed\n"), - -1); - } - delete visitor; - *os << " *buffer, CORBA::Boolean release)" << be_nl - << " : "; - // pass it to the base constructor - if (this->gen_base_sequence_class (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "codegen for base sequence class\n"), -1); - } - *os << " ("; - if (node->unbounded ()) - { - *os << "max, "; - } - *os << "length, buffer, release)" << be_nl - << "{}" << be_nl; - - // copy constructor - *os << node->name () << "::" << node->local_name () - << " (const " << node->local_name () - << " &seq) // copy ctor" << be_nl - << " : "; - // pass it to the base constructor - if (this->gen_base_sequence_class (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "codegen for base sequence class\n"), -1); - } - *os << " (seq)" << be_nl - << "{}" << be_nl; - - // destructor - *os << node->name () << "::~" << node->local_name () - << " (void) // dtor" << be_nl - << "{}\n\n"; - - if (!this->ctx_->tdef ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_sequence_cs::" - "visit_sequence - " - "TypeCode definition failed\n" - ), -1); - } - } - - os->gen_endif (); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure.cpp b/TAO/TAO_IDL/be/be_visitor_structure.cpp deleted file mode 100644 index 06b3ddf1e91..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_structure.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Structure -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - -// include all the individual files -#include "be_visitor_structure/any_op_ch.cpp" -#include "be_visitor_structure/any_op_cs.cpp" -#include "be_visitor_structure/structure.cpp" -#include "be_visitor_structure/structure_ch.cpp" -#include "be_visitor_structure/structure_ci.cpp" -#include "be_visitor_structure/structure_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp deleted file mode 100644 index d3c705e34d2..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_ch.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for structures -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// *************************************************************************** -// Structure visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_structure_any_op_ch::be_visitor_structure_any_op_ch -(be_visitor_context *ctx) - : be_visitor_structure (ctx) -{ -} - -be_visitor_structure_any_op_ch::~be_visitor_structure_any_op_ch (void) -{ -} - -int -be_visitor_structure_any_op_ch::visit_structure (be_structure *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << " &); // copying version" << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << "*); // noncopying version" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " *&);\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure::visit_structure - " - "codegen for scope failed\n"), -1); - } - - node->cli_hdr_any_op_gen (1); - return 0; -} - -int -be_visitor_structure_any_op_ch::visit_field (be_field *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_any_op_ch::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_any_op_ch::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp deleted file mode 100644 index 43078696baa..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/any_op_cs.cpp +++ /dev/null @@ -1,144 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for structures -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// *************************************************************************** -// Structure visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_structure_any_op_cs::be_visitor_structure_any_op_cs -(be_visitor_context *ctx) - : be_visitor_structure (ctx) -{ -} - -be_visitor_structure_any_op_cs::~be_visitor_structure_any_op_cs (void) -{ -} - -int -be_visitor_structure_any_op_cs::visit_structure (be_structure *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, const " - << node->name () << " &_tao_elem) // copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", new " - << node->name () << "(_tao_elem), 1, _tao_env);" - << " // copy the value" << be_uidt_nl - << "}" << be_nl; - - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " *_tao_elem) // non copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem, 1, _tao_env); // consume it" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " *&_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "if (_tao_any.any_owns_data ())" << be_nl - << "{" << be_idt_nl - << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" - << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_elem, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_elem, 1, _tao_env);" - << be_nl - << " return 1;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // decode failed - << "{" << be_idt_nl - << "delete _tao_elem;" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}\n\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure::visit_structure - " - "codegen for scope failed\n"), -1); - } - - node->cli_stub_any_op_gen (1); - return 0; -} - -int -be_visitor_structure_any_op_cs::visit_field (be_field *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_any_op_cs::" - "visit_field - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_any_op_cs::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp deleted file mode 100644 index 4bb06dd49ca..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure.cpp -// -// = DESCRIPTION -// Visitor generating code for Structures. This is a generic visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// generic struct visitor -be_visitor_structure::be_visitor_structure (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_structure::~be_visitor_structure (void) -{ -} - -// visit the Structure node and its scope -int -be_visitor_structure::visit_structure (be_structure *node) -{ - return -1; // must be overriden -} - -int -be_visitor_structure::visit_field (be_field *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_STRUCT_CH: - ctx.state (TAO_CodeGen::TAO_FIELD_CH); - break; - case TAO_CodeGen::TAO_STRUCT_CI: - ctx.state (TAO_CodeGen::TAO_FIELD_CI); - break; - case TAO_CodeGen::TAO_STRUCT_CS: - ctx.state (TAO_CodeGen::TAO_FIELD_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure::" - "visit_field - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure::" - "visit_field - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure::" - "visit_field - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp deleted file mode 100644 index 79b14735d82..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure_ch.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Structure in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// ****************************************************** -// for client header -// ****************************************************** - -be_visitor_structure_ch::be_visitor_structure_ch (be_visitor_context *ctx) - : be_visitor_structure (ctx) -{ -} - -be_visitor_structure_ch::~be_visitor_structure_ch (void) -{ -} - -// visit the Structure node and its scope -int be_visitor_structure_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - - if (!node->cli_hdr_gen () && !node->imported ()) // not already generated and - // not imported - { - os = this->ctx_->stream (); - - os->indent (); // start from whatever indentation level we were at - *os << "struct " << node->local_name () << be_nl - << "{" << be_idt << "\n"; - - // generate code for field members - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ch::" - "visit_structure - " - "codegen for scope failed\n"), -1); - } - - os->decr_indent (); - *os << "};\n\n"; - - // generate var defn - if (node->gen_var_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ch::" - "visit_structure - " - "codegen for _var failed\n"), -1); - } - - // a class is generated for an out defn only for a variable length struct - if (node->size_type () == be_decl::VARIABLE) - { - if (node->gen_out_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ch::" - "visit_structure - " - "codegen for _out failed\n"), -1); - } - } - else - { - os->indent (); - *os << "typedef " << node->local_name () << " &" << node->local_name - () << "_out;\n\n"; - } - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ch::" - "visit_structure - " - "TypeCode declaration failed\n" - ), -1); - } - - - node->cli_hdr_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_ci.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_ci.cpp deleted file mode 100644 index e4b78ca86ca..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure_ci.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Structure in the inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// ****************************************************** -// for client inline -// ****************************************************** - -be_visitor_structure_ci::be_visitor_structure_ci (be_visitor_context *ctx) - : be_visitor_structure (ctx) -{ -} - -be_visitor_structure_ci::~be_visitor_structure_ci (void) -{ -} - -// visit the Structure node and its scope -int be_visitor_structure_ci::visit_structure (be_structure *node) -{ - if (!node->cli_inline_gen () && !node->imported ()) - { - if (node->gen_var_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ci::" - "visit_structure - " - "codegen for _var failed\n"), -1); - } - if (node->size_type () == be_decl::VARIABLE && - node->gen_out_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ci::" - "visit_structure - " - "codegen for _out failed\n"), -1); - } - // all we have to do is to visit the scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_ci::" - "visit_structure - " - "codegen for scope failed\n"), -1); - } - node->cli_inline_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp b/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp deleted file mode 100644 index 412faaea865..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_structure/structure_cs.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Structures in the client stubs file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_structure.h" - - -// *************************************************************************** -// for client stubs -// *************************************************************************** -be_visitor_structure_cs::be_visitor_structure_cs (be_visitor_context *ctx) - : be_visitor_structure (ctx) -{ -} - -be_visitor_structure_cs::~be_visitor_structure_cs (void) -{ -} - -// visit the Structure_Cs node and its scope -int be_visitor_structure_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - - if (!node->cli_stub_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_cs::" - "visit_structure - " - "TypeCode definition failed\n" - ), -1); - } - - - // do any code generation required for the scope members - // all we have to do is to visit the scope - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_structure_cs::" - "visit_structure - " - "codegen for scope failed\n"), -1); - } - node->cli_stub_gen (I_TRUE); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typecode.cpp b/TAO/TAO_IDL/be/be_visitor_typecode.cpp deleted file mode 100644 index 9e11d5c2885..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typecode.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_typecode.cpp -// -// = DESCRIPTION -// Visitors for generation of code for TypeCodes for various types -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typecode.h" - -// include all the individual files -#include "be_visitor_typecode/typecode_decl.cpp" -#include "be_visitor_typecode/typecode_defn.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp deleted file mode 100644 index e145106b3fc..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_decl.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typecode_decl.cpp -// -// = DESCRIPTION -// Visitor generating code for TypeCode declaration for a type -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typecode.h" - - -// ****************************************************** -// TypeCode declarations -// ****************************************************** - -be_visitor_typecode_decl::be_visitor_typecode_decl (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_typecode_decl::~be_visitor_typecode_decl (void) -{ -} - -int -be_visitor_typecode_decl::visit_type (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - // Generate the typecode decl - if (node->is_nested ()) - { - // we have a scoped name - os->indent (); - // is our enclosing scope a module? We need this check because for - // platforms that support namespaces, the typecode must be declared - // extern - if (node->defined_in ()->scope_node_type () == AST_Decl::NT_module) - *os << "TAO_NAMESPACE_STORAGE_CLASS "; - else - *os << "static "; - *os << "CORBA::TypeCode_ptr " << node->tc_name - ()->last_component () << ";\n\n"; - } - else - { - // we are in the ROOT scope - os->indent (); - *os << "extern CORBA::TypeCode_ptr " << node->tc_name - ()->last_component () << ";\n\n"; - } - return 0; -} - -int -be_visitor_typecode_decl::visit_array (be_array *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_enum (be_enum *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_exception (be_exception *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_interface (be_interface *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_sequence (be_sequence *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_structure (be_structure *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_typedef (be_typedef *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_decl::visit_union (be_union *node) -{ - return this->visit_type (node); -} diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp deleted file mode 100644 index c1f676449ee..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp +++ /dev/null @@ -1,224 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typecode_defn.cpp -// -// = DESCRIPTION -// Visitor generating code for TypeCode definitions for types. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typecode.h" - - -// ****************************************************** -// TypeCode Definitions -// ****************************************************** - -be_visitor_typecode_defn::be_visitor_typecode_defn (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_typecode_defn::~be_visitor_typecode_defn (void) -{ -} - -// the following needs to be done to deal with the most bizarre behavior of -// MSVC++ compiler -int -be_visitor_typecode_defn::gen_nested_namespace_begin (be_module *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - UTL_IdListActiveIterator *i; - - i = new UTL_IdListActiveIterator (node->name ()); - while (!(i->is_done ())) - { - if (ACE_OS::strcmp (i->item ()->get_string (), "") != 0) - { - // leave the outermost root scope - *os << "TAO_NAMESPACE_BEGIN (" << i->item ()->get_string () - << ")" << be_nl; - } - i->next (); - } - delete i; - return 0; -} - -// the following needs to be done to deal with the most bizarre behavior of -// MSVC++ compiler -int -be_visitor_typecode_defn::gen_nested_namespace_end (be_module *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - UTL_IdListActiveIterator *i; - - i = new UTL_IdListActiveIterator (node->name ()); - while (!(i->is_done ())) - { - if (ACE_OS::strcmp (i->item ()->get_string (), "") != 0) - { - // leave the outermost root scope - *os << "TAO_NAMESPACE_END" << be_nl; - } - i->next (); - } - delete i; - return 0; -} - -int -be_visitor_typecode_defn::visit_type (be_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); - - os->indent (); - // generate the typecode information here - *os << "static const CORBA::Long _oc_" << node->flatname () << "[] =" - << be_nl; - *os << "{" << be_idt << "\n"; - // note that we just need the parameters here and hence we generate the - // encapsulation for the parameters - if (node->gen_encapsulation () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typecode_defn::" - "visit_type - " - "codegen for typecode failed\n"), -1); - } - *os << be_uidt << "};" << be_nl; - - *os << "static CORBA::TypeCode _tc__tc_" << node->flatname () - << " ("; - switch (node->node_type ()) - { - case AST_Decl::NT_array: - *os << "CORBA::tk_array"; - break; - case AST_Decl::NT_enum: - *os << "CORBA::tk_enum"; - break; - case AST_Decl::NT_except: - *os << "CORBA::tk_except"; - break; - case AST_Decl::NT_interface: - *os << "CORBA::tk_objref"; - break; - case AST_Decl::NT_sequence: - *os << "CORBA::tk_sequence"; - break; - case AST_Decl::NT_struct: - *os << "CORBA::tk_struct"; - break; - case AST_Decl::NT_typedef: - *os << "CORBA::tk_alias"; - break; - case AST_Decl::NT_union: - *os << "CORBA::tk_union"; - break; - default: - return -1; // error - } - - *os << ", sizeof (_oc_" << node->flatname () - << "), (char *) &_oc_" << node->flatname () - << ", CORBA::B_FALSE);" << be_nl; - - // is our enclosing scope a module? We need this check because for - // platforms that support namespaces, the typecode must be declared - // extern - if (node->is_nested () && - node->defined_in ()->scope_node_type () == AST_Decl::NT_module) - { - *os << "TAO_NAMESPACE_TYPE (CORBA::TypeCode_ptr)" << be_nl; - be_module *module = be_module::narrow_from_scope (node->defined_in ()); - if (!module || (this->gen_nested_namespace_begin (module) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_typecode_defn::visit_type - " - "Error parsing nested name\n"), - -1); - } - *os << "TAO_NAMESPACE_DEFINE (CORBA::TypeCode_ptr, _tc_" - << node->local_name () << ", &_tc__tc_" - << node->flatname () << ")" << be_nl; - if (this->gen_nested_namespace_end (module) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_typecode_defn::visit_type - " - "Error parsing nested name\n"), - -1); - } - } - else - { - // outermost scope. - *os << "CORBA::TypeCode_ptr " << node->tc_name () << " = &_tc__tc_" - << node->flatname () << ";\n\n"; - } - return 0; -} - -int -be_visitor_typecode_defn::visit_array (be_array *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_enum (be_enum *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_exception (be_exception *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_interface (be_interface *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_sequence (be_sequence *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_structure (be_structure *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_typedef (be_typedef *node) -{ - return this->visit_type (node); -} - -int -be_visitor_typecode_defn::visit_union (be_union *node) -{ - return this->visit_type (node); -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef.cpp b/TAO/TAO_IDL/be/be_visitor_typedef.cpp deleted file mode 100644 index 6a0f7c6562a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_typedef.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Typedef -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - -// include all the individual files -#include "be_visitor_typedef/any_op_ch.cpp" -#include "be_visitor_typedef/any_op_cs.cpp" -#include "be_visitor_typedef/typedef.cpp" -#include "be_visitor_typedef/typedef_ch.cpp" -#include "be_visitor_typedef/typedef_ci.cpp" -#include "be_visitor_typedef/typedef_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/any_op_ch.cpp deleted file mode 100644 index ebeb21d5cb1..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/any_op_ch.cpp +++ /dev/null @@ -1,291 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators of a Typedef node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// *************************************************************************** -// Typedef visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_typedef_any_op_ch::be_visitor_typedef_any_op_ch -(be_visitor_context *ctx) - : be_visitor_typedef (ctx) -{ -} - -be_visitor_typedef_any_op_ch::~be_visitor_typedef_any_op_ch (void) -{ -} - -int -be_visitor_typedef_any_op_ch::visit_typedef (be_typedef *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - - // In general, we may have a chain of typedefs. i.e., - // typedef sequence X; - // typedef X Y; - // typedef Y Z; and so on - // The first time we will be in will be for node Z for which the code - // generation has to take place. However, it is not enough to just generate - // code that looks like - - // typedef Y Z; - // For different types (in this case we have a sequence), we will need - // typedefs for the _var and _out types for Z. If it had been an array, we - // will additionally have the _forany type as well as inlined *_alloc, _dup, - // and _free methods. - // - // Finally, we need to differentiate between the case where we were - // generating code for - // typedef sequence X; and - // typedef Y Z; where Y was somehow aliased to the sequence. In the former - // case, we will need to generate all the code for sequence or whatever - // the type maybe. In the latter, we just need typedefs for the type and all - // associated _var, _out, and other types. - - be_type *bt; // base type - - if (this->ctx_->tdef ()) - { - // the fact that we are here indicates that we were generating code for a - // typedef node whose base type also happens to be another typedef-ed - // (i.e. an alias) node for another (possibly alias) node - - this->ctx_->alias (node); // save this alias - - // grab the most primitive base type in the chain to avoid recusrsively - // going thru this visit method - bt = node->primitive_base_type (); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_typedef - " - "bad primitive base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - this->ctx_->alias (0); // reset - } - else - { - // the context has not stored any "tdef" node. So we must be in here for - // the first time - this->ctx_->tdef (node); // save the typedef node - - // grab the immediate base type node - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_typedef - " - "bad base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - this->ctx_->tdef (0); // reset - } - - node->cli_hdr_any_op_gen (1); - return 0; -} - -int -be_visitor_typedef_any_op_ch::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (!bt->imported () && - bt->node_type () == AST_Decl::NT_array) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_array (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_array - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_enum) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_enum (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_enum - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_ch::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_sequence) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_sequence (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_sequence - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_struct) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_structure (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_structure - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_ch::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_union) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_union (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_ch::" - "visit_union - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/any_op_cs.cpp deleted file mode 100644 index 62dc1e4ef76..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/any_op_cs.cpp +++ /dev/null @@ -1,292 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// *************************************************************************** -// Typedef visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_typedef_any_op_cs::be_visitor_typedef_any_op_cs -(be_visitor_context *ctx) - : be_visitor_typedef (ctx) -{ -} - -be_visitor_typedef_any_op_cs::~be_visitor_typedef_any_op_cs (void) -{ -} - -int -be_visitor_typedef_any_op_cs::visit_typedef (be_typedef *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - // Any <<= and >>= operators - os->indent (); - - // In general, we may have a chain of typedefs. i.e., - // typedef sequence X; - // typedef X Y; - // typedef Y Z; and so on - // The first time we will be in will be for node Z for which the code - // generation has to take place. However, it is not enough to just generate - // code that looks like - - // typedef Y Z; - // For different types (in this case we have a sequence), we will need - // typedefs for the _var and _out types for Z. If it had been an array, we - // will additionally have the _forany type as well as inlined *_alloc, _dup, - // and _free methods. - // - // Finally, we need to differentiate between the case where we were - // generating code for - // typedef sequence X; and - // typedef Y Z; where Y was somehow aliased to the sequence. In the former - // case, we will need to generate all the code for sequence or whatever - // the type maybe. In the latter, we just need typedefs for the type and all - // associated _var, _out, and other types. - - be_type *bt; // base type - - if (this->ctx_->tdef ()) - { - // the fact that we are here indicates that we were generating code for a - // typedef node whose base type also happens to be another typedef-ed - // (i.e. an alias) node for another (possibly alias) node - - this->ctx_->alias (node); // save this alias - - // grab the most primitive base type in the chain to avoid recusrsively - // going thru this visit method - bt = node->primitive_base_type (); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_typedef - " - "bad primitive base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - this->ctx_->alias (0); // reset - } - else - { - // the context has not stored any "tdef" node. So we must be in here for - // the first time - this->ctx_->tdef (node); // save the typedef node - - // grab the immediate base type node - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_typedef - " - "bad base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - this->ctx_->tdef (0); // reset - } - - node->cli_stub_any_op_gen (1); - return 0; -} - -int -be_visitor_typedef_any_op_cs::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (!bt->imported () && - bt->node_type () == AST_Decl::NT_array) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_array (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_array - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_cs::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_enum) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_enum (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_enum - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_cs::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_sequence) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_sequence (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_sequence - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_cs::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_struct) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_structure (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_structure - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} - -int -be_visitor_typedef_any_op_cs::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_union) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_union (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_any_op_cs::" - "visit_union - " - "base class visitor failed \n" - ), -1); - } - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp deleted file mode 100644 index 1f10f25a85b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef.cpp +++ /dev/null @@ -1,457 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef.cpp -// -// = DESCRIPTION -// Generic visitor generating code for Typedefs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// ****************************************************** -// Generic Typedef visitor -// ****************************************************** - -be_visitor_typedef::be_visitor_typedef (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_typedef::~be_visitor_typedef (void) -{ -} - -// visit the Typedef node and its scope -int be_visitor_typedef::visit_typedef (be_typedef *node) -{ - return -1; // must be overridden -} - -// =all common visit methods for typedef visitor - -// visit a array -int -be_visitor_typedef::visit_array (be_array *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_ARRAY_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_ARRAY_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_ARRAY_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_ARRAY_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_array - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_array - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_array - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -//visit an enum -int -be_visitor_typedef::visit_enum (be_enum *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_ENUM_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_enum - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_enum - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_enum - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an predefined type -int -be_visitor_typedef::visit_predefined_type (be_predefined_type *node) -{ - return 0; -} - -// visit an sequence -int -be_visitor_typedef::visit_sequence (be_sequence *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CI); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_SEQUENCE_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_SEQUENCE_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_sequence - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_sequence - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_sequence - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an structure -int -be_visitor_typedef::visit_string (be_string *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_string - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_string - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_string - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an structure -int -be_visitor_typedef::visit_structure (be_structure *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_STRUCT_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_structure - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_structure - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_structure - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit an union -int -be_visitor_typedef::visit_union (be_union *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_TYPEDEF_CH: - ctx.state (TAO_CodeGen::TAO_UNION_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_CI: - ctx.state (TAO_CodeGen::TAO_UNION_CI); - break; - case TAO_CodeGen::TAO_TYPEDEF_CS: - ctx.state (TAO_CodeGen::TAO_UNION_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CH: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CH); - break; - case TAO_CodeGen::TAO_TYPEDEF_ANY_OP_CS: - ctx.state (TAO_CodeGen::TAO_UNION_ANY_OP_CS); - break; - case TAO_CodeGen::TAO_TYPEDEF_SH: - case TAO_CodeGen::TAO_TYPEDEF_SI: - case TAO_CodeGen::TAO_TYPEDEF_SS: - return 0; // nothing to be done - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_union - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_union - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef::" - "visit_union - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp deleted file mode 100644 index c1f10f36d51..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp +++ /dev/null @@ -1,458 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Typedef in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// ****************************************************** -// Typedef visitor for client header -// ****************************************************** - -be_visitor_typedef_ch::be_visitor_typedef_ch (be_visitor_context *ctx) - : be_visitor_typedef (ctx) -{ -} - -be_visitor_typedef_ch::~be_visitor_typedef_ch (void) -{ -} - -int -be_visitor_typedef_ch::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - - // In general, we may have a chain of typedefs. i.e., - // typedef sequence X; - // typedef X Y; - // typedef Y Z; and so on - // The first time we will be in will be for node Z for which the code - // generation has to take place. However, it is not enough to just generate - // code that looks like - - // typedef Y Z; - // For different types (in this case we have a sequence), we will need - // typedefs for the _var and _out types for Z. If it had been an array, we - // will additionally have the _forany type as well as inlined *_alloc, _dup, - // and _free methods. - // - // Finally, we need to differentiate between the case where we were - // generating code for - // typedef sequence X; and - // typedef Y Z; where Y was somehow aliased to the sequence. In the former - // case, we will need to generate all the code for sequence or whatever - // the type maybe. In the latter, we just need typedefs for the type and all - // associated _var, _out, and other types. - - be_type *bt; // base type - - if (this->ctx_->tdef ()) - { - // the fact that we are here indicates that we were generating code for a - // typedef node whose base type also happens to be another typedef-ed - // (i.e. an alias) node for another (possibly alias) node - - this->ctx_->alias (node); // save this alias - - // grab the most primitive base type in the chain to avoid recusrsively - // going thru this visit method - bt = node->primitive_base_type (); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad primitive base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - this->ctx_->alias (0); // reset - } - else - { - // the context has not stored any "tdef" node. So we must be in here for - // the first time - this->ctx_->tdef (node); // save the typedef node - - // grab the immediate base type node - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad base type\n" - ), -1); - } - - // accept on this base type, but generate code for the typedef node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - // generate the typecode decl for this typedef node - if (!node->imported ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "TypeCode declaration failed\n" - ), -1); - } - - - } - this->ctx_->tdef (0); // reset - } - - return 0; -} - -int -be_visitor_typedef_ch::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - // is the base type an alias to an array node or an actual array node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - // is our base type an array node. If so, generate code for that array node - if (bt->node_type () == AST_Decl::NT_array) - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_array (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_array - " - "base class visitor failed \n" - ), -1); - } - } - else - { - // base type is simply an alias to an array node. Simply output the - // required typedefs - - os->indent (); - // typedef the type and the _slice type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_slice") - << " " << tdef->nested_type_name (scope, "_slice") << ";" << be_nl; - // typedef the _var, _out, and _forany types - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_forany") - << " " << tdef->nested_type_name (scope, "_forany") << ";" << be_nl; - // the _alloc, _dup, copy, and free methods - *os << "static " << tdef->nested_type_name (scope, "_slice") << " *" - << tdef->nested_type_name (scope, "_alloc") << " (void);" << be_nl; - *os << "static " << tdef->nested_type_name (scope, "_slice") << " *" - << tdef->nested_type_name (scope, "_dup") << " (const " - << tdef->nested_type_name (scope, "_slice") << " *_tao_slice);" << be_nl; - *os << "static void " << tdef->nested_type_name (scope, "_copy") << " (" - << tdef->nested_type_name (scope, "_slice") << " *_tao_to, const " - << tdef->nested_type_name (scope, "_slice") << " *_tao_from);" << be_nl; - *os << "static void " << tdef->nested_type_name (scope, "_free") << " (" - << tdef->nested_type_name (scope, "_slice") << " *_tao_slice);" << be_nl; - } - return 0; -} - -int -be_visitor_typedef_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_enum) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_enum (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_enum - " - "base class visitor failed \n" - ), -1); - } - } - - // now generate the typedefs - os->indent (); - // typedef the type and the _slice type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // typedef the _out - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - return 0; -} - -int -be_visitor_typedef_ch::visit_interface (be_interface *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - // now generate the typedefs - os->indent (); - - // typedef the _ptr - *os << "typedef " << bt->nested_type_name (scope, "_ptr") - << " " << tdef->nested_type_name (scope, "_ptr") << ";" << be_nl; - - // typedef the _var - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - - // typedef the _out - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - - return 0; -} - -int -be_visitor_typedef_ch::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - // now generate the typedefs - os->indent (); - // typedef the type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - if ((node->pt () == AST_PredefinedType::PT_pseudo) || - (node->pt () == AST_PredefinedType::PT_any)) - { - // typedef the _ptr and _var - *os << "typedef " << bt->nested_type_name (scope, "_ptr") - << " " << tdef->nested_type_name (scope, "_ptr") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - } - // typedef the _out - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - return 0; -} - -int -be_visitor_typedef_ch::visit_string (be_string *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - - // now generate the typedefs - os->indent (); - // typedef the type and the _slice type - *os << "typedef char *" - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // typedef the _var, _out, and _forany types - *os << "typedef CORBA::String_var" - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef CORBA::String_out" - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - return 0; -} - -int -be_visitor_typedef_ch::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_sequence) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_sequence (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_sequence - " - "base class visitor failed \n" - ), -1); - } - } - else - { - // now generate the typedefs - os->indent (); - // typedef the type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // typedef the _var, _out types - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - } - return 0; -} - -int -be_visitor_typedef_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_struct) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_structure (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_structure - " - "base class visitor failed \n" - ), -1); - } - } - - // now generate the typedefs - os->indent (); - // typedef the type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // typedef the _var, _out types - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - return 0; -} - -int -be_visitor_typedef_ch::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_union) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_union (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_union - " - "base class visitor failed \n" - ), -1); - } - } - - // now generate the typedefs - os->indent (); - // typedef the type and the _slice type - *os << "typedef " << bt->nested_type_name (scope) - << " " << tdef->nested_type_name (scope) << ";" << be_nl; - // typedef the _var, _out types - *os << "typedef " << bt->nested_type_name (scope, "_var") - << " " << tdef->nested_type_name (scope, "_var") << ";" << be_nl; - *os << "typedef " << bt->nested_type_name (scope, "_out") - << " " << tdef->nested_type_name (scope, "_out") << ";" << be_nl; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp deleted file mode 100644 index 93b7cdc3306..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ci.cpp +++ /dev/null @@ -1,287 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Typedefs in the client inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// ****************************************************** -// Typedef visitor for client inline -// ****************************************************** - -be_visitor_typedef_ci::be_visitor_typedef_ci (be_visitor_context *ctx) - : be_visitor_typedef (ctx) -{ -} - -be_visitor_typedef_ci::~be_visitor_typedef_ci (void) -{ -} - -int -be_visitor_typedef_ci::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - - // In general, we may have a chain of typedefs. i.e., - // typedef sequence X; - // typedef X Y; - // typedef Y Z; and so on - // The first time we will be in will be for node Z for which the code - // generation has to take place. However, it is not enough to just generate - // code that looks like - - // typedef Y Z; - // For different types (in this case we have a sequence), we will need - // typedefs for the _var and _out types for Z. If it had been an array, we - // will additionally have the _forany type as well as inlined *_alloc - // methods. - // - // Finally, we need to differentiate between the case where we were - // generating code for - // typedef sequence X; and - // typedef Y Z; where Y was somehow aliased to the sequence. In the former - // case, we will need to generate all the code for sequence or whatever - // the type maybe. In the latter, we just need typedefs for the type and all - // associated _var, _out, and other types. - - be_type *bt; // base type - - if (this->ctx_->tdef ()) - { - // the fact that we are here indicates that we were generating code for a - // typedef node whose base type also happens to be another typedef-ed - // (i.e. an alias) node for another (possibly alias) node - - this->ctx_->alias (node); // save this alias - - // grab the most primitive base type in the chain to avoid recusrsively - // going thru this visit method - bt = node->primitive_base_type (); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad primitive base type\n" - ), -1); - } - // accept on this base type - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - this->ctx_->alias (0); - } - else - { - // the context has not stored any "tdef" node. So we must be in here for - // the first time - this->ctx_->tdef (node); // save the typedef node - - // grab the immediate base type node - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad base type\n" - ), -1); - } - // accept on this base type - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - this->ctx_->tdef (0); - } - return 0; -} - -int -be_visitor_typedef_ci::visit_array (be_array *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_array) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_array (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ci::" - "visit_array - " - "base class visitor failed \n" - ), -1); - } - } - else - { - // generate the inline code for alloc, dup, copy, and free methods - - // alloc method - os->indent (); - *os << "ACE_INLINE " << tdef->name () << "_slice *" << be_nl; - *os << tdef->name () << "_alloc (void)" << be_nl; - *os << "{" << be_idt_nl; - *os << "return " << bt->name () << "_alloc ();" << be_uidt_nl; - *os << "}\n\n"; - - // dup method - os->indent (); - *os << "ACE_INLINE " << tdef->name () << "_slice *" << be_nl; - *os << tdef->name () << "_dup (const " << tdef->name () - << "_slice *_tao_src)" << be_nl; - *os << "{" << be_idt_nl; - *os << "return " << bt->name () << "_dup (_tao_src);" << be_uidt_nl; - *os << "}\n\n"; - - // copy method - os->indent (); - *os << "ACE_INLINE void" << be_nl; - *os << tdef->name () << "_copy (" << tdef->name () - << "_slice *_tao_dest, const " << tdef->name () - << "_slice *_tao_src)" << be_nl; - *os << "{" << be_idt_nl; - *os << bt->name () << "_copy (_tao_dest, _tao_src);" << be_uidt_nl; - *os << "}\n\n"; - - // free method - os->indent (); - *os << "ACE_INLINE void" << be_nl; - *os << tdef->name () << "_free (" << tdef->name () - << "_slice *_tao_src)" << be_nl; - *os << "{" << be_idt_nl; - *os << bt->name () << "_free (_tao_src);" << be_uidt_nl; - *os << "}\n\n"; - } - return 0; -} - -int -be_visitor_typedef_ci::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_sequence) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_sequence (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ci::" - "visit_sequence - " - "base class visitor failed \n" - ), -1); - } - } - return 0; -} - -int -be_visitor_typedef_ci::visit_structure (be_structure *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_struct) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_structure (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ci::" - "visit_structure - " - "base class visitor failed \n" - ), -1); - } - } - return 0; -} - -int -be_visitor_typedef_ci::visit_union (be_union *node) -{ - TAO_OutStream *os = this->ctx_->stream (); // output stream - be_typedef *tdef = this->ctx_->tdef (); // typedef node - be_decl *scope = this->ctx_->scope (); // scope in which it is used - be_type *bt; - - if (this->ctx_->alias ()) // typedef of a typedef - bt = this->ctx_->alias (); - else - bt = node; - - if (bt->node_type () == AST_Decl::NT_union) // direct typedef of a base node - // type - { - // let the base class visitor handle this case - if (this->be_visitor_typedef::visit_union (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ci::" - "visit_union - " - "base class visitor failed \n" - ), -1); - } - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp deleted file mode 100644 index ff4338e002a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_cs.cpp +++ /dev/null @@ -1,150 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Typedef in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_typedef.h" - - -// ****************************************************** -// Typedef visitor for client stubs -// ****************************************************** - -be_visitor_typedef_cs::be_visitor_typedef_cs (be_visitor_context *ctx) - : be_visitor_typedef (ctx) -{ -} - -be_visitor_typedef_cs::~be_visitor_typedef_cs (void) -{ -} - -int -be_visitor_typedef_cs::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - - // In general, we may have a chain of typedefs. i.e., - // typedef sequence X; - // typedef X Y; - // typedef Y Z; and so on - // The first time we will be in will be for node Z for which the code - // generation has to take place. However, it is not enough to just generate - // code that looks like - - // typedef Y Z; - // For different types (in this case we have a sequence), we will need - // typedefs for the _var and _out types for Z. If it had been an array, we - // will additionally have the _forany type as well as inlined *_alloc - // methods. - // - // Finally, we need to differentiate between the case where we were - // generating code for - // typedef sequence X; and - // typedef Y Z; where Y was somehow aliased to the sequence. In the former - // case, we will need to generate all the code for sequence or whatever - // the type maybe. In the latter, we just need typedefs for the type and all - // associated _var, _out, and other types. - - be_type *bt; // base type - - if (this->ctx_->tdef ()) - { - // the fact that we are here indicates that we were generating code for a - // typedef node whose base type also happens to be another typedef-ed - // (i.e. an alias) node for another (possibly alias) node - - this->ctx_->alias (node); // save this alias - - // grab the most primitive base type in the chain to avoid recusrsively - // going thru this visit method - bt = node->primitive_base_type (); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad primitive base type\n" - ), -1); - } - // accept on this base type - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - this->ctx_->alias (0); - } - else - { - // the context has not stored any "tdef" node. So we must be in here for - // the first time - this->ctx_->tdef (node); // save the typedef node - - // grab the immediate base type node - bt = be_type::narrow_from_decl (node->base_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "bad base type\n" - ), -1); - } - // accept on this base type - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_ch::" - "visit_typedef - " - "failed to accept visitor\n" - ), -1); - } - - if (!node->imported ()) - { - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - be_visitor *visitor; - be_visitor_context ctx (*this->ctx_); - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_typedef_cs::" - "visit_typedef - " - "TypeCode definition failed\n" - ), -1); - } - - } - this->ctx_->tdef (0); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union.cpp b/TAO/TAO_IDL/be/be_visitor_union.cpp deleted file mode 100644 index 92cc1c717cb..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union.cpp -// -// = DESCRIPTION -// Visitors for generation of code for Union -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - -// include all the individual files -#include "be_visitor_union/any_op_ch.cpp" -#include "be_visitor_union/any_op_cs.cpp" -#include "be_visitor_union/discriminant_ch.cpp" -#include "be_visitor_union/discriminant_ci.cpp" -#include "be_visitor_union/discriminant_cs.cpp" -#include "be_visitor_union/union.cpp" -#include "be_visitor_union/union_ch.cpp" -#include "be_visitor_union/union_ci.cpp" -#include "be_visitor_union/union_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp deleted file mode 100644 index 0a1d05e1033..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/any_op_ch.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for Union. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// *************************************************************************** -// Union visitor for generating Any operator declarations in the client header -// *************************************************************************** - -be_visitor_union_any_op_ch::be_visitor_union_any_op_ch -(be_visitor_context *ctx) - : be_visitor_union (ctx) -{ -} - -be_visitor_union_any_op_ch::~be_visitor_union_any_op_ch (void) -{ -} - -int -be_visitor_union_any_op_ch::visit_union (be_union *node) -{ - if (node->cli_hdr_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_header (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, const " << node->name () - << " &); // copying version" << be_nl; - *os << "void " << idl_global->export_macro () - << " operator<<= (CORBA::Any &, " << node->name () - << "*); // noncopying version" << be_nl; - *os << "CORBA::Boolean " << idl_global->export_macro () - << " operator>>= (const CORBA::Any &, " - << node->name () << " *&);\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union::visit_union - " - "codegen for scope failed\n"), -1); - } - - node->cli_hdr_any_op_gen (1); - return 0; -} - -int -be_visitor_union_any_op_ch::visit_union_branch (be_union_branch *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_any_op_ch::" - "visit_union_branch - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_any_op_ch::" - "visit_field - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp deleted file mode 100644 index 78e2fca68d3..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/any_op_cs.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Any operators for Union. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// *************************************************************************** -// Union visitor for generating Any operator declarations in the client -// stubs file -// *************************************************************************** - -be_visitor_union_any_op_cs::be_visitor_union_any_op_cs -(be_visitor_context *ctx) - : be_visitor_union (ctx) -{ -} - -be_visitor_union_any_op_cs::~be_visitor_union_any_op_cs (void) -{ -} - -int -be_visitor_union_any_op_cs::visit_union (be_union *node) -{ - if (node->cli_stub_any_op_gen () || node->imported ()) - return 0; - - TAO_OutStream *os = tao_cg->client_stubs (); - - // generate the Any <<= and >>= operator declarations - os->indent (); - *os << "void operator<<= (CORBA::Any &_tao_any, const " - << node->name () << " &_tao_elem) // copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", new " - << node->name () << "(_tao_elem), 1, _tao_env);" << be_uidt_nl - << "}" << be_nl; - - *os << "void operator<<= (CORBA::Any &_tao_any, " - << node->name () << " *_tao_elem) // non copying" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "_tao_any.replace (" << node->tc_name () << ", " - << "_tao_elem, 1, _tao_env); // consume it" << be_uidt_nl - << "}" << be_nl; - - *os << "CORBA::Boolean operator>>= (const CORBA::Any &_tao_any, " - << node->name () << " *&_tao_elem)" << be_nl - << "{" << be_idt_nl - << "CORBA::Environment _tao_env;" << be_nl - << "if (!_tao_any.type ()->equal (" << node->tc_name () - << ", _tao_env)) return 0; // not equal" << be_nl - << "if (_tao_any.any_owns_data ())" << be_nl - << "{" << be_idt_nl - << "ACE_NEW_RETURN (_tao_elem, " << node->name () << ", 0);" - << be_nl - << "TAO_InputCDR stream ((ACE_Message_Block *)_tao_any.value ());" - << be_nl - << "if (stream.decode (" << node->tc_name () - << ", _tao_elem, 0, _tao_env)" << be_nl - << " == CORBA::TypeCode::TRAVERSE_CONTINUE)" << be_nl - << "{" << be_idt_nl - << "((CORBA::Any *)&_tao_any)->replace (_tao_any.type (), " - << "_tao_elem, 1, _tao_env);" - << be_nl - << " return 1;" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // decode failed - << "{" << be_idt_nl - << "delete _tao_elem;" << be_nl - << "return 0;" << be_uidt_nl - << "}" << be_uidt_nl - << "}" << be_nl - << "else" << be_nl // else any does not own the data - << "{" << be_idt_nl - << "_tao_elem = (" << node->name () << " *)_tao_any.value ();" - << be_nl - << "return 1;" << be_uidt_nl - << "}" << be_uidt_nl - << "}\n\n"; - - - // all we have to do is to visit the scope and generate code - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union::visit_union - " - "codegen for scope failed\n"), -1); - } - - node->cli_stub_any_op_gen (1); - return 0; -} - -int -be_visitor_union_any_op_cs::visit_union_branch (be_union_branch *node) -{ - be_type *bt; // field's type - - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_any_op_cs::" - "visit_union_branch - " - "Bad field type\n" - ), -1); - } - - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_any_op_cs::" - "visit_union_branch - " - "codegen for field type failed\n" - ), -1); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp deleted file mode 100644 index 64f6418f620..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ch.cpp +++ /dev/null @@ -1,143 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for discriminant of the Union -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ************************************************************************* -// be_visitor_discriminant_ch - visitor for discriminant in client header file -// ************************************************************************* - -be_visitor_union_discriminant_ch::be_visitor_union_discriminant_ch -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_union_discriminant_ch::~be_visitor_union_discriminant_ch (void) -{ -} - -int -be_visitor_union_discriminant_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_union *bu = - this->ctx_->be_node_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_ch::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_ch::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - os->indent (); - // the set method - *os << "void _d (" << bt->nested_type_name (bu) << ");" << be_nl; - // the get method - *os << bt->nested_type_name (bu) << " _d (void) const;\n\n"; - return 0; -} - -int -be_visitor_union_discriminant_ch::visit_predefined_type (be_predefined_type - *node) -{ - TAO_OutStream *os; // output stream - be_union *bu = - this->ctx_->be_node_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - os = this->ctx_->stream (); - - os->indent (); - // the set method - *os << "void _d (" << bt->nested_type_name (bu) << ");" << be_nl; - // the get method - *os << bt->nested_type_name (bu) << " _d (void) const;\n\n"; - return 0; -} - -int -be_visitor_union_discriminant_ch::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_ch::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - this->ctx_->alias (0); - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp deleted file mode 100644 index 02ab7c6aa3c..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for discriminant of the union. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ************************************************************************* -// be_visitor_discriminant_ci - visitor for discriminant in client inline file -// ************************************************************************* - -be_visitor_union_discriminant_ci::be_visitor_union_discriminant_ci -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_union_discriminant_ci::~be_visitor_union_discriminant_ci (void) -{ -} - -int -be_visitor_union_discriminant_ci::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_union *bu = - this->ctx_->be_node_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - os = this->ctx_->stream (); - - os->indent (); - // the set method - *os << "// accessor to set the discriminant" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::_d (" << bt->name () - << " discval)" << be_nl - << "{" << be_idt_nl - << "this->disc_ = discval;" << be_uidt_nl - << "}" << be_nl; - - // the get method - *os << "// accessor to get the discriminant" << be_nl - << "ACE_INLINE " << bt->name () << be_nl - << bu->name () << "::_d (void) const" << be_nl - << "{" << be_idt_nl - << "return this->disc_;" << be_uidt_nl - << "}\n\n"; - return 0; -} - -int -be_visitor_union_discriminant_ci::visit_predefined_type (be_predefined_type - *node) -{ - TAO_OutStream *os; // output stream - be_union *bu = - this->ctx_->be_node_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - os = this->ctx_->stream (); - - os->indent (); - // the set method - *os << "// accessor to set the discriminant" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::_d (" << bt->name () - << " discval)" << be_nl - << "{" << be_idt_nl - << "this->disc_ = discval;" << be_uidt_nl - << "}" << be_nl; - - // the get method - *os << "// accessor to get the discriminant" << be_nl - << "ACE_INLINE " << bt->name () << be_nl - << bu->name () << "::_d (void) const" << be_nl - << "{" << be_idt_nl - << "return this->disc_;" << be_uidt_nl - << "}\n\n"; - return 0; -} - -int -be_visitor_union_discriminant_ci::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_ci::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - this->ctx_->alias (0); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp deleted file mode 100644 index 09c8e4d4e48..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for discriminant of the union -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ************************************************************************* -// be_visitor_discriminant_cs - visitor for discriminant in client stubs -// ************************************************************************* - -be_visitor_union_discriminant_cs::be_visitor_union_discriminant_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -be_visitor_union_discriminant_cs::~be_visitor_union_discriminant_cs (void) -{ -} - -int -be_visitor_union_discriminant_cs::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_union *bu = - this->ctx_->be_node_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // generate the typecode for the enum - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_cs::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_cs::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/union.cpp b/TAO/TAO_IDL/be/be_visitor_union/union.cpp deleted file mode 100644 index 49d159cdee8..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/union.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union.cpp -// -// = DESCRIPTION -// Generic visitor generating code for Unions -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// generic struct visitor -be_visitor_union::be_visitor_union (be_visitor_context *ctx) - : be_visitor_scope (ctx) -{ -} - -be_visitor_union::~be_visitor_union (void) -{ -} - -// visit the Union node and its scope -int -be_visitor_union::visit_union (be_union *node) -{ - return -1; // must be overriden -} - -int -be_visitor_union::visit_union_branch (be_union_branch *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // this switch is acceptable rather than having derived visitors overriding - // this method and differing only in what state they set - - switch (this->ctx_->state ()) - { - case TAO_CodeGen::TAO_UNION_PUBLIC_CH: - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CH); - break; - case TAO_CodeGen::TAO_UNION_PRIVATE_CH: - ctx.state (TAO_CodeGen::TAO_UNION_PRIVATE_CH); - break; - case TAO_CodeGen::TAO_UNION_PUBLIC_CI: - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CI); - break; - case TAO_CodeGen::TAO_UNION_PUBLIC_CS: - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_CS); - break; - case TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS: - ctx.state (TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS); - break; - default: - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union::" - "visit_union_branch - " - "Bad context state\n" - ), -1); - } - break; - } - - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union::" - "visit_union_branch - " - "NUL visitor\n" - ), -1); - } - - // let the node accept this visitor - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union::" - "visit_union_branch - " - "failed to accept visitor\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp deleted file mode 100644 index a209021e578..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/union_ch.cpp +++ /dev/null @@ -1,203 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Unions in the client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ****************************************************** -// for client header -// ****************************************************** - -be_visitor_union_ch::be_visitor_union_ch (be_visitor_context *ctx) - : be_visitor_union (ctx) -{ -} - -be_visitor_union_ch::~be_visitor_union_ch (void) -{ -} - -// visit the Union node and its scope -int be_visitor_union_ch::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - - if (!node->cli_hdr_gen () && !node->imported ()) // not already generated and - // not imported - { - os = this->ctx_->stream (); - - // generate the ifdefined macro for the union type - os->gen_ifdef_macro (node->flatname ()); - os->indent (); // start with the current indentation level - *os << "class " << node->local_name () << be_nl - << "{" << be_nl - << "public:" << be_idt_nl - - // generate default and copy constructors - << node->local_name () << " (void); // default constructor" << be_nl - << node->local_name () << " (const " << node->local_name () - << " &); // copy constructor" << be_nl - // generate destructor - << "~" << node->local_name () << " (void); // destructor" << be_nl - // generate assignment operator - << node->local_name () << " &operator= (const " - << node->local_name () << " &); // copy constructor\n\n"; - - // retrieve the disriminant type - bt = be_type::narrow_from_decl (node->disc_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "bad disciminant type\n"), -1); - } - - // the discriminant type may have to be defined here if it was an enum - // declaration inside of the union statement. - - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CH); // set current code - // gen state - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "bad visitor\n"), -1); - } - - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - " visit_union - " - "codegen for discriminant failed\n"), -1); - } - delete visitor; - - // now generate the public defn for the union branch members. For this, - // set our state to reflect what we are aiming to do - this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_CH); // set current code - // gen state - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "codegen for public defn of union members\n"), - -1); - } - - // now generate the private data members of the union - os->decr_indent (); - *os << "private:\n"; - os->incr_indent (); - *os << bt->nested_type_name (node) << " disc_;" << be_nl; // emit the - // ACE_NESTED_CLASS macro - - // the members are inside of a union - *os << "union" << be_nl; - *os << "{\n"; - os->incr_indent (0); - this->ctx_->state (TAO_CodeGen::TAO_UNION_PRIVATE_CH); // set current - // code gen state - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "codegen for private members of union\n"), -1); - } - - os->decr_indent (); - *os << "}; // end of union \n"; - - os->decr_indent (); - *os << "}; // " << node->name () << "\n\n"; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DECL); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "TypeCode declaration failed\n" - ), -1); - } - - - os->gen_endif (); - - // generate the ifdefined macro for the _var type - os->gen_ifdef_macro (node->flatname (), "_var"); - // generate var defn - if (node->gen_var_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "codegen for _var\n"), -1); - } - os->gen_endif (); - - // generate the ifdefined macro for the array type - os->gen_ifdef_macro (node->flatname (), "_out"); - // a class is generated for an out defn only for a variable length struct - if (node->size_type () == be_decl::VARIABLE) - { - if (node->gen_out_defn () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ch::" - "visit_union - " - "codegen for _out\n"), -1); - } - } - else - { - os->indent (); - *os << "typedef " << node->local_name () << " &" << node->local_name - () << "_out;\n\n"; - } - os->gen_endif (); - - node->cli_hdr_gen (I_TRUE); - } - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp deleted file mode 100644 index 14f43322f8f..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/union_ci.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Union in the client inline file -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ****************************************************** -// for client inline -// ****************************************************** - -be_visitor_union_ci::be_visitor_union_ci (be_visitor_context *ctx) - : be_visitor_union (ctx) -{ -} - -be_visitor_union_ci::~be_visitor_union_ci (void) -{ -} - -// visit the Union node and its scope -int be_visitor_union_ci::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // type node - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - - if (!node->cli_inline_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - - *os << "// *************************************************************" - << be_nl; - *os << "// Inline operations for union " << node->name () << be_nl; - *os << "// *************************************************************\n\n"; - - // generate the default constructor and the destructor here - os->indent (); - *os << "// default constructor" << be_nl - << "ACE_INLINE" << be_nl - << node->name () << "::" << node->local_name () << " (void)" << be_nl - << "{" << be_nl - << "}" << be_nl << be_nl; - - *os << "// destructor" << be_nl - << "ACE_INLINE" << be_nl - << node->name () << "::~" << node->local_name () << " (void)" << be_nl - << "{" << be_nl - << "}\n\n"; - - // the discriminant type may have to be defined here if it was an enum - // declaration inside of the union statement. - - bt = be_type::narrow_from_decl (node->disc_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit_union - " - "bad discriminant type\n"), -1); - } - - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CI); // set current code - // gen state - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit_union - " - "bad visitor\n"), -1); - } - // generate code for the discriminant - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit union - " - "codegen for discrminant failed\n"), -1); - } - - // now generate the implementation of the access methods for the - // union. For this set our state - this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_CI); - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit_union - " - "codegen for scope failed\n"), -1); - } - - // generate the ifdefined macro for the array type - os->gen_ifdef_macro (node->flatname (), "_var"); - if (node->gen_var_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit_union - " - "codegen for _var failed\n"), -1); - } - os->gen_endif (); - - // generate the ifdefined macro for the array type then generate the _out - // impl - os->gen_ifdef_macro (node->flatname (), "_out"); - if (node->size_type () == be_decl::VARIABLE - && node->gen_out_impl () == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_ci::" - "visit_union - " - "codegen for _out failed\n"), -1); - } - os->gen_endif (); - - node->cli_inline_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp deleted file mode 100644 index 28c5cdeff2b..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union/union_cs.cpp +++ /dev/null @@ -1,179 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Unions in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union.h" - - -// ****************************************************** -// for client stubs -// ****************************************************** - -be_visitor_union_cs::be_visitor_union_cs (be_visitor_context *ctx) - : be_visitor_union (ctx) -{ -} - -be_visitor_union_cs::~be_visitor_union_cs (void) -{ -} - -// visit the Union_cs node and its scope -int be_visitor_union_cs::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // for discriminant type - - if (!node->cli_stub_gen () && !node->imported ()) - { - os = this->ctx_->stream (); - - be_visitor_context ctx (*this->ctx_); - // the discriminant type may have to be defined here if it was an enum - // declaration inside of the union statement. We need to generate its - // typecode - - bt = be_type::narrow_from_decl (node->disc_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs::" - "visit_union - " - "bad discriminant type\n"), -1); - } - - ctx.state (TAO_CodeGen::TAO_UNION_DISCTYPEDEFN_CS); // set current code - // gen state - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs::" - "visit_union - " - "bad visitor\n"), -1); - } - // generate code for the discriminant - if (bt->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs::" - "visit union - " - "codegen for discrminant failed\n"), -1); - } - - // first generate code for any of the members (if required, e.g., - // anonymous sequences, structs, unions, arrays) - this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_CS); // set current code - // gen state - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs" - "visit_union - " - "codegen for scope failed\n"), -1); - } - - // now generate the operations on the union such as the copy constructor - // and the assignment operator - - *os << "// *************************************************************" - << be_nl; - *os << "// Operations for union " << node->name () << be_nl; - *os << "// *************************************************************\n\n"; - - this->ctx_->state (TAO_CodeGen::TAO_UNION_PUBLIC_ASSIGN_CS); - - // generate the copy constructor and the assignment operator here - os->indent (); - *os << "// copy constructor" << be_nl; - *os << node->name () << "::" << node->local_name () << " (const " << - node->name () << " &u)" << be_nl; - *os << "{\n"; - os->incr_indent (); - // first set the discriminant - *os << "this->disc_ = u.disc_;" << be_nl; - // now switch based on the disc value - *os << "switch (this->disc_)" << be_nl; - *os << "{\n"; - os->incr_indent (0); - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs" - "visit_union - " - "codegen for copy ctor failed\n"), -1); - } - - os->decr_indent (); - *os << "}\n"; - os->decr_indent (); - *os << "}\n\n"; - - // assignment operator - os->indent (); - *os << "// assignment operator" << be_nl; - *os << node->name () << " &" << be_nl; // return type - *os << node->name () << "::operator= (const " << - node->name () << " &u)" << be_nl; - *os << "{\n"; - os->incr_indent (); - // first set the discriminant - *os << "this->disc_ = u.disc_;" << be_nl; - // now switch based on the disc value - *os << "switch (this->disc_)" << be_nl; - *os << "{\n"; - os->incr_indent (0); - if (this->visit_scope (node) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs" - "visit_union - " - "codegen for assign op failed\n"), -1); - } - - os->decr_indent (); - *os << "}" << be_nl; - *os << "return *this;\n"; - os->decr_indent (); - *os << "}\n\n"; - - // by using a visitor to declare and define the TypeCode, we have the - // added advantage to conditionally not generate any code. This will be - // based on the command line options. This is still TO-DO - ctx = *this->ctx_; - ctx.state (TAO_CodeGen::TAO_TYPECODE_DEFN); - visitor = tao_cg->make_visitor (&ctx); - if (!visitor || (node->accept (visitor) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_cs::" - "visit_union - " - "TypeCode definition failed\n" - ), -1); - } - - - node->cli_stub_gen (I_TRUE); - } - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch.cpp deleted file mode 100644 index 3f3d63da167..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union_branch.cpp -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Union_Branch" node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - -// include all the individual files -#include "be_visitor_union_branch/private_ch.cpp" -#include "be_visitor_union_branch/public_assign_cs.cpp" -#include "be_visitor_union_branch/public_ch.cpp" -#include "be_visitor_union_branch/public_ci.cpp" -#include "be_visitor_union_branch/public_cs.cpp" diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp deleted file mode 100644 index d1b481f1aa2..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp +++ /dev/null @@ -1,390 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// private_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Union branch for the private part of the -// class. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - - -// ********************************************** -// visitor for union_branch in the client header generating the private information -// ********************************************** - -// constructor -be_visitor_union_branch_private_ch::be_visitor_union_branch_private_ch (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_union_branch_private_ch::~be_visitor_union_branch_private_ch (void) -{ -} - -// visit the union_branch node -int -be_visitor_union_branch_private_ch::visit_union_branch (be_union_branch *node) -{ - TAO_OutStream *os; - be_type *bt; // union_branch's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_cs::" - "visit_union_branch - " - "Bad union_branch type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_cs::" - "visit_union_branch - " - "codegen for union_branch type failed\n" - ), -1); - } - return 0; -} - -// =visit operations on all possible data types that a union_branch can be - -int -be_visitor_union_branch_private_ch::visit_array (be_array *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_array - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); - *os << bt->nested_type_name (bu, "_slice") << " *" << ub->local_name () - << "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_enum - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - *os << bt->nested_type_name (bu) << " " << ub->local_name () << "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_interface - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - // C++ does not allow an object declaration inside a union. Hence we - // must have a pointer. This changes some of the methods - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () << - "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_interface_fwd - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - // C++ does not allow an object declaration inside a union. Hence we - // must have a pointer. This changes some of the methods - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () << - "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_predefined_type - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (node->pt () == AST_PredefinedType::PT_pseudo) - { - // Cannot have an object inside of a union - os->indent (); // start from current indentation - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () << - "_;\n"; - } - else - { - os->indent (); // start from current indentation - *os << bt->nested_type_name (bu) << " " << ub->local_name () << - "_;\n"; - } - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_sequence - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); - // C++ doesn't allow object instances inside unions, so we need a - // pointer - *os << bt->nested_type_name (bu) << " *" << ub->local_name () << "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_string (be_string *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_string - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - *os << "char *" << ub->local_name () << "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_structure - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); - *os << bt->nested_type_name (bu) << " " << ub->local_name () << "_;\n"; - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_union_branch_private_ch::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_private_ch::" - "visit_union - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); - // C++ doesn't allow object instances inside unions, so we need a - // pointer - *os << bt->nested_type_name (bu) << " *" << ub->local_name () << "_;\n"; - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp deleted file mode 100644 index 274cea03844..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_assign_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Union Branch for the assignment operator -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - - -// ********************************************** -// visitor for union_branch in the client stubs file generating the code for -// the copy ctor and assignment operator -// ********************************************** - -// constructor -be_visitor_union_branch_public_assign_cs::be_visitor_union_branch_public_assign_cs -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_union_branch_public_assign_cs::~be_visitor_union_branch_public_assign_cs -(void) -{ -} - -// visit the union_branch node -int -be_visitor_union_branch_public_assign_cs::visit_union_branch (be_union_branch *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - - os = this->ctx_->stream (); - - // This visitor is used when we are generating the copy ctor and - // assignment operator for the union. - // Individual assignment of the members takes place inside a case - // statement because the type of member assigned is based on the value - // of the discriminant - os->indent (); - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "case " << ub->label ()->label_val ()->n () << ":" << be_idt_nl; - } - else - { - *os << "case " << ub->label ()->label_val () << ":" << be_idt_nl; - } - - *os << "this->" << ub->local_name () << "_ = u." << ub->local_name () - << "_;" << be_nl - << "break;\n"; - os->decr_indent (0); - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp deleted file mode 100644 index 7c2619d3cf9..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp +++ /dev/null @@ -1,608 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_ch.cpp -// -// = DESCRIPTION -// Visitor generating code for Union_branch in the public part. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - - -// ********************************************** -// visitor for union_branch in the client header file -// ********************************************** - -// constructor -be_visitor_union_branch_public_ch::be_visitor_union_branch_public_ch -(be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_union_branch_public_ch::~be_visitor_union_branch_public_ch (void) -{ -} - -// visit the union_branch node -int -be_visitor_union_branch_public_ch::visit_union_branch (be_union_branch *node) -{ - TAO_OutStream *os; // output stream - be_type *bt; // union_branch's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_union_branch - " - "Bad union_branch type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_union_branch - " - "codegen for union_branch type failed\n" - ), -1); - } - return 0; -} - -// =visit operations on all possible data types that a union_branch can be - -// visit array type -int -be_visitor_union_branch_public_ch::visit_array (be_array *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch member - be_decl *bu = this->ctx_->scope (); // get the enclosing union node - be_type *bt; - - // check if we are visiting this via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_array - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ARRAY_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_array - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_array - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // now use this enum as a "type" for the subsequent declarator - os->indent (); // start from current indentation - // the set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu) << ");// set" - << be_nl; - // the get method - *os << bt->nested_type_name (bu, "_slice *") << " " << ub->local_name () - << " (void) const; // get method\n\n"; - - return 0; -} - -// visit enum type -int -be_visitor_union_branch_public_ch::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch member - be_decl *bu = this->ctx_->scope (); // get the enclosing union node - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_enum - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ENUM_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // now use this enum as a "type" for the subsequent declarator - os->indent (); // start from current indentation - // the set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu) << ");// set" - << be_nl; - // the get method - *os << bt->nested_type_name (bu) << " " << ub->local_name () - << " (void) const; // get method\n\n"; - - return 0; -} - -// visit interface type -int -be_visitor_union_branch_public_ch::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_interface - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - // set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu, "_ptr") - << ");// set" << be_nl; - // get method - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () - << " (void) const; // get method\n\n"; - return 0; -} - -// visit interface forward type -int -be_visitor_union_branch_public_ch::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_interface_fwd - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - // set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu, "_ptr") - << ");// set" << be_nl; - // get method - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () - << " (void) const; // get method\n\n"; - return 0; -} - -// visit predefined type -int -be_visitor_union_branch_public_ch::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_predefined_type - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); // start from current indentation - if (node->pt () == AST_PredefinedType::PT_pseudo) - { - // set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu, "_ptr") << ");// set" << be_nl; - // get method - *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name () - << " (void) const; // get method\n\n"; - } - else - { - // set method - *os << "void " << ub->local_name () << " (" - << bt->nested_type_name (bu) << ");// set" << be_nl; - // get method - *os << bt->nested_type_name (bu) << " " << ub->local_name () - << " (void) const; // get method\n\n"; - } - return 0; -} - -// visit sequence type -int -be_visitor_union_branch_public_ch::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_sequence - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the sequence declaration - ctx.state (TAO_CodeGen::TAO_SEQUENCE_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_sequence - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_sequence - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - os->indent (); - // set method - *os << "void " << ub->local_name () << " (const " - << bt->nested_type_name (bu) << " &);// set" << be_nl; - // read-only - *os << "const " << bt->nested_type_name (bu) << " &" - << ub->local_name () << " (void) const; // get method (read only)" - << be_nl; - // read/write - *os << bt->nested_type_name (bu) << " &" << ub->local_name () - << " (void); // get method (read/write only)\n\n"; - - return 0; -} - -// visit string type -int -be_visitor_union_branch_public_ch::visit_string (be_string *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_string - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - os->indent (); - // three methods to set the string value - *os << "void " << ub->local_name () << " (char *); // set" << be_nl; - *os << "void " << ub->local_name () << " (const char *); // set" - << be_nl; - *os << "void " << ub->local_name () << " (const CORBA::String_var&); // set" - << be_nl; - //get method - *os << "const char *" << ub->local_name () - << " (void) const; // get method\n\n"; - return 0; -} - -// visit structure type -int -be_visitor_union_branch_public_ch::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_structure - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the sequence declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_structure - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_structure - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - os->indent (); - // set method - *os << "void " << ub->local_name () << " (const " - << bt->nested_type_name (bu) << " &);// set" << be_nl - // read-only - << "const " << bt->nested_type_name (bu) << " &" - << ub->local_name () << " (void) const; // get method (read only)" - << be_nl - // read/write - << bt->nested_type_name (bu) << " &" << ub->local_name () - << " (void); // get method (read/write only)\n\n"; - - return 0; -} - -// visit typedefed type -int -be_visitor_union_branch_public_ch::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - os->indent (); // start from current indentation level - this->ctx_->alias (node); // save the node for use in code generation and - // indicate that the union_branch of the union_branch node - // is a typedefed quantity - - // make a decision based on the primitive base type - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_spec_ch::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - this->ctx_->alias (0); - return 0; -} - -// visit union type -int -be_visitor_union_branch_public_ch::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_decl *ub = this->ctx_->node (); // get union branch - be_decl *bu = this->ctx_->scope (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_union - " - "bad context information\n" - ), -1); - } - - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the sequence declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CH); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_union - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ch::" - "visit_union - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - os->indent (); - // set method - *os << "void " << ub->local_name () << " (const " - << bt->nested_type_name (bu) << " &);// set" << be_nl - // read-only - << "const " << bt->nested_type_name (bu) << " &" - << ub->local_name () << " (void) const; // get method (read only)" - << be_nl - // read/write - << bt->nested_type_name (bu) << " &" << ub->local_name () - << " (void); // get method (read/write only)\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp deleted file mode 100644 index 8037d378bea..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp +++ /dev/null @@ -1,949 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_ci.cpp -// -// = DESCRIPTION -// Visitor generating code for Union Branch in the client inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - - -// ***************************************************** -// visitor for union_branch in the client inline file -// ***************************************************** - -// constructor -be_visitor_union_branch_public_ci::be_visitor_union_branch_public_ci (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_union_branch_public_ci::~be_visitor_union_branch_public_ci (void) -{ -} - -// visit the union_branch node -int -be_visitor_union_branch_public_ci::visit_union_branch (be_union_branch *node) -{ - TAO_OutStream *os; - be_type *bt; // union_branch's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_cs::" - "visit_union_branch - " - "Bad union_branch type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_cs::" - "visit_union_branch - " - "codegen for union_branch type failed\n" - ), -1); - } - return 0; -} - -// =visit operations on all possible data types that a union_branch can be - -int -be_visitor_union_branch_public_ci::visit_array (be_array *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_enum - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_ARRAY_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_array - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_array - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // set method - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (" << bt->name () - << " val)// set" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;\n"; - } - else - { - // default label - // XXXASG - TODO - } - os->decr_indent (); - *os << "}" << be_nl; - - // get method - *os << "// retrieve the member" << be_nl - << "ACE_INLINE " << bt->name () << "_slice *" << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{\n"; - os->incr_indent (); - *os << "return this->" << ub->local_name () << "_;\n"; - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_enum (be_enum *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_enum - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // set method - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (" << bt->name () - << " val)// set" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;\n"; - } - else - { - // default label - // XXXASG - TODO - } - os->decr_indent (); - *os << "}" << be_nl; - - // get method - *os << "// retrieve the member" << be_nl - << "ACE_INLINE " << bt->name () << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{\n"; - os->incr_indent (); - *os << "return this->" << ub->local_name () << "_;\n"; - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_interface (be_interface *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_interface - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // set method - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (" << bt->name () - << "_ptr val)// set" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;\n"; - } - else - { - // default label - // XXXASG - TODO - } - os->decr_indent (); - *os << "}" << be_nl; - - // get method - *os << "// retrieve the member" << be_nl - << "ACE_INLINE " << bt->name () << "_ptr " << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{\n"; - os->incr_indent (); - *os << "return this->" << ub->local_name () << "_;\n"; - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_interface_fwd (be_interface_fwd *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_interface_fwd - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // set method - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (" << bt->name () - << "_ptr val)// set" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;\n"; - } - else - { - // default label - // XXXASG - TODO - } - os->decr_indent (); - *os << "}" << be_nl; - - // get method - *os << "// retrieve the member" << be_nl - << "ACE_INLINE " << bt->name () << "_ptr " << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{\n"; - os->incr_indent (); - *os << "return this->" << ub->local_name () << "_;\n"; - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_predefined_type (be_predefined_type *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_interface - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // set method - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (" << bt->name (); - if (node->pt () == AST_PredefinedType::PT_pseudo) - *os << "_ptr"; - *os << " val)// set" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;\n"; - } - else - { - // default label - // XXXASG - TODO - } - os->decr_indent (); - *os << "}" << be_nl; - - // get method - *os << "// retrieve the member" << be_nl - << "ACE_INLINE " << bt->name (); - if (node->pt () == AST_PredefinedType::PT_pseudo) - *os << "_ptr"; - *os << be_nl; - *os << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{\n"; - os->incr_indent (); - *os << "return this->" << ub->local_name () << "_;\n"; - os->decr_indent (); - *os << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_sequence (be_sequence *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_sequence - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // (1) set from a const - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () - << " (const " << bt->name () << " &val)" << be_nl - << "{" << be_idt_nl; - - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" - << be_nl; - } - *os << "// set the value" << be_nl - << "if (!this->" << ub->local_name () << "_)" << be_idt_nl - << "this->" << ub->local_name () << "_ = new " - << bt->name () << ";" << be_uidt_nl - << "*this->" << ub->local_name () << "_ = val;" << be_uidt_nl; - } - else - { - // default label - // XXXASG - TODO - } - *os << "}" << be_nl; - - // readonly get method - *os << "// readonly get method " << be_nl - << "ACE_INLINE const " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{" << be_idt_nl - << "return *this->" << ub->local_name () << "_;" << be_uidt_nl - << "}" << be_nl; - - // read/write get method - *os << "// read/write get method " << be_nl - << "ACE_INLINE " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void)" << be_nl - << "{" << be_idt_nl - << "return *this->" << ub->local_name () << "_;" << be_uidt_nl - << "}\n\n"; - - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_string (be_string *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_string - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - // three methods to set the string value - - // (1) set method from char* - os->indent (); // start from current indentation - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () << " (char *val)" - << be_nl - << "{" << be_idt_nl; - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "if (!this->" << ub->local_name () << "_) // does not exist" - << be_nl - << " this->" << ub->local_name () - << "_ = new CORBA::String_var (val);" << be_nl - << "else" << be_nl - << " *this->" << ub->local_name () << "_ = val;"; - } - else - { - // default label - // XXXASG - TODO - } - *os << be_uidt_nl << "}" << be_nl; - - // (2) set method from const char * - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () - << " (const char *val)" << be_nl - << "{\n"; - os->incr_indent (); - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "if (!this->" << ub->local_name () << "_) // does not exist" - << be_nl - << " this->" << ub->local_name () - << "_ = new CORBA::String_var (val);" << be_nl - << "else" << be_nl - << " *this->" << ub->local_name () << "_ = val;" << be_uidt_nl; - } - else - { - // default label - // XXXASG - TODO - } - - *os << "}" << be_nl; - - // (3) set from const String_var& - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () - << " (const CORBA::String_var &val)" << be_nl - << "{" << be_idt_nl; - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "if (!this->" << ub->local_name () << "_) // does not exist" - << be_nl - << " this->" << ub->local_name () - << "_ = new CORBA::String_var (val);" << be_nl - << "else" << be_nl - << " *this->" << ub->local_name () << "_ = val;"; - } - else - { - // default label - // XXXASG - TODO - } - *os << be_uidt_nl << "}" << be_nl; - - // get method - *os << "ACE_INLINE const char *" << be_nl - << bu->name () << "::" << ub->local_name () - << " (void) const // get method" << be_nl - << "{" << be_idt_nl - << "return *this->" << ub->local_name () << "_;" << be_uidt_nl - << "}\n\n"; - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_structure (be_structure *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_structure - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_STRUCT_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_structure - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_structure - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // (1) set from a const - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () - << " (const " << bt->name () << " &val)" << be_nl - << "{" << be_idt_nl; - - // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" - << be_nl; - } - *os << "// set the value" << be_nl - << "this->" << ub->local_name () << "_ = val;" << be_uidt_nl; - } - else - { - // default label - // XXXASG - TODO - } - *os << "}" << be_nl; - - // readonly get method - *os << "// readonly get method " << be_nl - << "ACE_INLINE const " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{" << be_idt_nl - << "return this->" << ub->local_name () << "_;" << be_uidt_nl - << "}" << be_nl; - - // read/write get method - *os << "// read/write get method " << be_nl - << "ACE_INLINE " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void)" << be_nl - << "{" << be_idt_nl - << "return this->" << ub->local_name () << "_;" << be_uidt_nl - << "}\n\n"; - - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_typedef (be_typedef *node) -{ - TAO_OutStream *os; // output stream - - os = this->ctx_->stream (); - this->ctx_->alias (node); // save the typedef node for use in code generation - // as we visit the base type - - // the node to be visited in the base primitve type that gets typedefed - be_type *bt = node->primitive_base_type (); - if (!bt || (bt->accept (this) == -1)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_typedef - " - "Bad primitive type\n" - ), -1); - } - - this->ctx_->alias (0); - return 0; -} - -int -be_visitor_union_branch_public_ci::visit_union (be_union *node) -{ - TAO_OutStream *os; // output stream - be_union_branch *ub = - this->ctx_->be_node_as_union_branch (); // get union branch - be_union *bu = - this->ctx_->be_scope_as_union (); // get the enclosing union backend - be_type *bt; - - // check if we are visiting this node via a visit to a typedef node - if (this->ctx_->alias ()) - bt = this->ctx_->alias (); - else - bt = node; - - if (!ub || !bu) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_union - " - "bad context information\n" - ), -1); - } - os = this->ctx_->stream (); - - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union - { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same - - // first generate the enum declaration - ctx.state (TAO_CodeGen::TAO_UNION_CI); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_union - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_ci::" - "visit_union - " - "codegen failed\n" - ), -1); - } - delete visitor; - } - - // (1) set from a const - *os << "// accessor to set the member" << be_nl - << "ACE_INLINE void" << be_nl - << bu->name () << "::" << ub->local_name () - << " (const " << bt->name () << " &val)" << be_nl - << "{" << be_idt_nl; - os->incr_indent (); // set the discriminant to the appropriate label - if (ub->label ()->label_kind () == AST_UnionLabel::UL_label) - { - // valid label - *os << "// set the discriminant val" << be_nl; - // check if the case label is a symbol or a literal - if (ub->label ()->label_val ()->ec () == AST_Expression::EC_symbol) - { - *os << "this->disc_ = " << ub->label ()->label_val ()->n () - << ";" << be_nl; - } - else - { - *os << "this->disc_ = " << ub->label ()->label_val () << ";" << - be_nl; - } - *os << "// set the value" << be_nl - << "*this->" << ub->local_name () << "_ = val;" << be_uidt_nl; - } - else - { - // default label - // XXXASG - TODO - } - *os << "}" << be_nl; - - // readonly get method - *os << "// readonly get method " << be_nl - << "ACE_INLINE const " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void) const" << be_nl - << "{" << be_idt_nl - << "return *this->" << ub->local_name () << "_;" << be_uidt_nl - << "}" << be_nl; - - // read/write get method - *os << "// read/write get method " << be_nl - << "ACE_INLINE " << bt->name () << " &" << be_nl - << bu->name () << "::" << ub->local_name () << " (void)" << be_nl - << "{" << be_idt_nl - << "return *this->" << ub->local_name () << "_;" << be_uidt_nl - << "}\n\n"; - - return 0; -} diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp deleted file mode 100644 index dc2c7700d2a..00000000000 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_cs.cpp +++ /dev/null @@ -1,193 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_cs.cpp -// -// = DESCRIPTION -// Visitor generating code for Union Branch in the client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - -#include "be_visitor_union_branch.h" - - -// ********************************************** -// visitor for union_branch in the client stubs file -// ********************************************** - -// constructor -be_visitor_union_branch_public_cs::be_visitor_union_branch_public_cs (be_visitor_context *ctx) - : be_visitor_decl (ctx) -{ -} - -// destructor -be_visitor_union_branch_public_cs::~be_visitor_union_branch_public_cs (void) -{ -} - -// visit the union_branch node -int -be_visitor_union_branch_public_cs::visit_union_branch (be_union_branch *node) -{ - TAO_OutStream *os; // output stream - - be_type *bt; // union_branch's type - - os = this->ctx_->stream (); - // first generate the type information - bt = be_type::narrow_from_decl (node->field_type ()); - if (!bt) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_union_branch - " - "Bad union_branch type\n" - ), -1); - } - - this->ctx_->node (node); // save the node - if (bt->accept (this) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_union_branch - " - "codegen for union_branch type failed\n" - ), -1); - } - return 0; -} - -// visit array type -int -be_visitor_union_branch_public_cs::visit_array (be_array *node) -{ - return 0; -} - -// visit enum type -int -be_visitor_union_branch_public_cs::visit_enum (be_enum *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the typcode for enums - ctx.state (TAO_CodeGen::TAO_ENUM_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_enum - " - "codegen failed\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit sequence type -int -be_visitor_union_branch_public_cs::visit_sequence (be_sequence *node) -{ - return 0; -} - -// visit string type -int -be_visitor_union_branch_public_cs::visit_string (be_string *node) -{ - return 0; -} - -// visit structure type -int -be_visitor_union_branch_public_cs::visit_structure (be_structure *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the inline code for structs - ctx.state (TAO_CodeGen::TAO_STRUCT_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_struct - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_struct - " - "codegen failed\n" - ), -1); - } - delete visitor; - return 0; -} - -// visit union type -int -be_visitor_union_branch_public_cs::visit_union (be_union *node) -{ - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting - be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope is - // still the same - - // generate the inline code for union - ctx.state (TAO_CodeGen::TAO_UNION_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_union - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_branch_public_cs::" - "visit_union - " - "codegen failed\n" - ), -1); - } - delete visitor; - return 0; -} diff --git a/TAO/TAO_IDL/be_include/be.h b/TAO/TAO_IDL/be_include/be.h deleted file mode 100644 index 5505a36ad8b..00000000000 --- a/TAO/TAO_IDL/be_include/be.h +++ /dev/null @@ -1,125 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _BE_BE_HH -#define _BE_BE_HH - -// be.h -// - -#if defined (ACE_WIN32) -#pragma warning(disable:4250) -#endif /* ACE_WIN32 */ - -// ACE includes - -#include "ace/ACE.h" -#include "ace/OS.h" -#include "ace/Singleton.h" -#include "ace/Synch.h" -#include "ace/Log_Msg.h" -#include "ace/Containers.h" - -/* - * BE includes - */ - -#include "be_decl.h" // class BE_Decl -#include "be_scope.h" // class BE_Scope -#include "be_generator.h" // BE generator class -#include "be_type.h" -#include "be_predefined_type.h" // class BE_PredefinedType -#include "be_module.h" // class BE_Module -#include "be_interface.h" // class BE_Interface -#include "be_interface_fwd.h" // class BE_InterfaceFwd -#include "be_structure.h" // class BE_Structure -#include "be_exception.h" // class BE_Exception -#include "be_expression.h" // class BE_Expr_val -#include "be_enum.h" // class BE_Enum -#include "be_operation.h" // class BE_Operation -#include "be_field.h" // class BE_Field -#include "be_argument.h" // class BE_Argument -#include "be_attribute.h" // class BE_Attribute -#include "be_union.h" // class BE_Union -#include "be_union_branch.h" // class BE_UnionBranch -#include "be_union_label.h" // class BE_UnionLabel -#include "be_constant.h" // class BE_Constant -#include "be_enum_val.h" // class BE_EnumVal -#include "be_array.h" // class BE_Array -#include "be_sequence.h" // class BE_Sequence -#include "be_string.h" // class BE_String -#include "be_typedef.h" // class BE_Typedef -#include "be_root.h" // class BE_Root -#include "be_native.h" // class BE_Native - -#include "be_helper.h" // helper functions -#include "be_codegen.h" // code generator -#include "be_factory.h" // factory - -#include "be_visitor.h" // abstract visitor -#include "be_visitor_context.h" // visitor context - -#endif // _BE_BE_HH diff --git a/TAO/TAO_IDL/be_include/be_argument.h b/TAO/TAO_IDL/be_include/be_argument.h deleted file mode 100644 index cbf2e30f249..00000000000 --- a/TAO/TAO_IDL/be_include/be_argument.h +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_argument.h -// -// = DESCRIPTION -// Extension of class AST_Argument that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ARGUMENT_H) -#define BE_ARGUMENT_H - -/* - * BE_Argument - */ -class be_argument : public virtual AST_Argument, - public virtual be_decl -{ -public: - // =Operations - - be_argument (void); - // default constructor - - be_argument (AST_Argument::Direction d, AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_argument, AST_Argument, be_decl); - DEF_NARROW_FROM_DECL (be_argument); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_array.h b/TAO/TAO_IDL/be_include/be_array.h deleted file mode 100644 index 2d47c20f846..00000000000 --- a/TAO/TAO_IDL/be_include/be_array.h +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_array.h -// -// = DESCRIPTION -// Extension of class AST_Array that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ARRAY_H) -#define BE_ARRAY_H - -class TAO_OutStream; - -/* - * BE_Array - */ -class be_array : public virtual AST_Array, - public virtual be_type -{ -public: - // =Operations - - be_array (void); - // default constructor - - be_array (UTL_ScopedName *n, unsigned long ndims, UTL_ExprList *dims); - // constructor - - ~be_array (void); - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_forany_defn (void); - // the forany class - - virtual int gen_forany_impl (void); - // the forany impl - - virtual int gen_dimensions (TAO_OutStream *os, unsigned short slice=0); - // generate dimensions. If slice == 1, generate dimensions for the slice - // definition - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_array, AST_Array, be_type); - DEF_NARROW_FROM_DECL (be_array); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - - virtual int create_name (void); - // create a name for us - - const char* tao_name (void); - -private: - char* tao_name_; - // We need a name to generate typecodes and other objects, but it - // must be different from the typedef name.... -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_attribute.h b/TAO/TAO_IDL/be_include/be_attribute.h deleted file mode 100644 index 93f7d111279..00000000000 --- a/TAO/TAO_IDL/be_include/be_attribute.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_attribute.h -// -// = DESCRIPTION -// Extension of class AST_Attribute that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ATTRIBUTE_H) -#define BE_ATTRIBUTE_H - -/* - * BE_Attribute - */ -class be_attribute : public virtual AST_Attribute, - public virtual be_decl -{ -public: - // =Operations - - be_attribute (void); - // default constructor - - be_attribute (idl_bool ro, AST_Type *ft, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_attribute, AST_Attribute, be_decl); - DEF_NARROW_FROM_DECL (be_attribute); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h deleted file mode 100644 index aafbadc5ddc..00000000000 --- a/TAO/TAO_IDL/be_include/be_codegen.h +++ /dev/null @@ -1,505 +0,0 @@ -// $Id$ -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_codegen.h -// -// = DESCRIPTION -// The Code generator class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_CODEGEN_H) -#define TAO_BE_CODEGEN_H - -#define NAMEBUFSIZE 1024 -// maximum length of static buffers used to store names - -class TAO_Visitor_Factory; -class be_visitor_context; - -class TAO_CodeGen -{ - // = TITLE - // TAO_CodeGen - // - // = DESCRIPTION - // Holds global parameters for the Back End and generates the C++ mapping - // -public: - - // define all the code generation states. The first letter C/S of the suffix stands - // for client/server-side and the second letter H/I/S stands for - // header/inline/impl file. These are used to denote the state or the context - // of code generation we are in and serves to produce the right kind of - // visitor for us - - enum CG_STATE - { - // initial state - TAO_INITIAL, - - // rest of the state in alphabetical order of the types - - // emitting code for arguments of an operation. No distinction between - // headers, inlines, stubs. - TAO_ARGUMENT_CH, // in client header - TAO_ARGUMENT_CI, // in client inline - TAO_ARGUMENT_CS, // in client stubs - TAO_ARGUMENT_SH, // in server header - TAO_ARGUMENT_SI, // in server inline - TAO_ARGUMENT_SS, // in server skeleton - TAO_ARGUMENT_ARGLIST_CH, // argument in op signature of - // ... client header - TAO_ARGUMENT_ARGLIST_OTHERS, // ... in other cases - TAO_ARGUMENT_PRE_DOCALL_CS, // preprocessing of argument - // variable before passing to - // do_static_call (in stub) - TAO_ARGUMENT_DOCALL_CS, // passing argument variable to do_static_call - TAO_ARGUMENT_POST_DOCALL_CS, // postprocessing of argument - // variable after do_static_call - TAO_ARGUMENT_VARDECL_SS, // declaration of argument - // variable in skeleton (server) - TAO_ARGUMENT_MARSHAL_SS, // passing argument node to the - TAO_ARGUMENT_DEMARSHAL_SS, // demarshal and marshal - // operations - TAO_ARGUMENT_POST_MARSHAL_SS, - TAO_ARGUMENT_PRE_UPCALL_SS, // preprocessing of argument - // variable before upcall - TAO_ARGUMENT_UPCALL_SS, // passing argument variable to upcall - TAO_ARGUMENT_COLLOCATED_UPCALL_SS, // passing argument - // variable to upcall - TAO_ARGUMENT_POST_UPCALL_SS, // postprocessing of argument - // variable after upcall - - // emitting code for attributes. - TAO_ATTRIBUTE_CH, // in client header - TAO_ATTRIBUTE_CS, // in client stubs - TAO_ATTRIBUTE_SH, // in server header - TAO_ATTRIBUTE_SS, // in server skeletons - TAO_ATTRIBUTE_COLLOCATED_SH, // in server header for collocated - TAO_ATTRIBUTE_COLLOCATED_SS, // in server skeletons for - // collocated - - TAO_ATTRIBUTE_RETVAL_DECL_SS, - TAO_ATTRIBUTE_RETVAL_ASSIGN_SS, - TAO_ATTRIBUTE_RETURN_TYPE_CH, - TAO_ATTRIBUTE_INPARAM_TYPE_CH, - TAO_ATTRIBUTE_RETURN_TYPE_CS, - TAO_ATTRIBUTE_RETVAL_DECL_CS, - TAO_ATTRIBUTE_RETVAL_EXCEPTION_CS, - TAO_ATTRIBUTE_RETVAL_RETURN_CS, - TAO_ATTRIBUTE_INPARAM_TYPE_CS, - TAO_ATTRIBUTE_PRE_DOCALL_CS, - TAO_ATTRIBUTE_DOCALL_CS, - TAO_ATTRIBUTE_POST_DOCALL_CS, - TAO_ATTRIBUTE_RETURN_TYPE_SH, - TAO_ATTRIBUTE_INPARAM_TYPE_SH, - TAO_ATTRIBUTE_RESULT_SS, - TAO_ATTRIBUTE_INPARAM_TYPE_SS, - TAO_ATTRIBUTE_PRE_UPCALL_SS, - TAO_ATTRIBUTE_UPCALL_SS, - TAO_ATTRIBUTE_POST_UPCALL_SS, - TAO_ATTRIBUTE_TIE_SH, - TAO_ATTRIBUTE_TIE_SI, - - // emitting code for array defn - TAO_ARRAY_CH, - TAO_ARRAY_CI, - TAO_ARRAY_CS, - - TAO_ARRAY_DEFN_CH, - TAO_ARRAY_DEFN_CI, - TAO_ARRAY_DEFN_CS, - TAO_ARRAY_DEFN_SH, - TAO_ARRAY_DEFN_SI, - TAO_ARRAY_DEFN_SS, - TAO_ARRAY_ANY_OP_CH, - TAO_ARRAY_ANY_OP_CS, - - // emitting code for rest of the array decl - TAO_ARRAY_OTHER_CH, - TAO_ARRAY_OTHER_CI, - TAO_ARRAY_OTHER_CS, - TAO_ARRAY_OTHER_SH, - TAO_ARRAY_OTHER_SI, - TAO_ARRAY_OTHER_SS, - - // emitting code for the constants - TAO_CONSTANT_CH, // in client header - TAO_CONSTANT_CI, // XXXASG rm? - TAO_CONSTANT_CS, // in client stub - - // emitting code for enums - TAO_ENUM_CH, // in client header - TAO_ENUM_CI, // XXXASG rm? - TAO_ENUM_CS, // in client stubs - TAO_ENUM_SH, // XXXASG rm? all 3 - TAO_ENUM_SI, - TAO_ENUM_SS, - TAO_ENUM_ANY_OP_CH, - TAO_ENUM_ANY_OP_CS, - - // emitting code for exceptions - TAO_EXCEPTION_CH, - TAO_EXCEPTION_CTOR_CH, - TAO_EXCEPTION_CI, - TAO_EXCEPTION_CS, - TAO_EXCEPTION_CTOR_CS, - TAO_EXCEPTION_CTOR_ASSIGN_CS, - TAO_EXCEPTION_SH, - TAO_EXCEPTION_SI, - TAO_EXCEPTION_SS, - TAO_EXCEPTION_ANY_OP_CH, - TAO_EXCEPTION_ANY_OP_CS, - - // emitting fields i.e., struct members - TAO_FIELD_CH, - TAO_FIELD_CI, - TAO_FIELD_CS, - - // emitting code for the interface - TAO_INTERFACE_CH, - TAO_INTERFACE_CI, - TAO_INTERFACE_CS, - TAO_INTERFACE_SH, - TAO_INTERFACE_SI, - TAO_INTERFACE_SS, - TAO_INTERFACE_COLLOCATED_SH, - TAO_INTERFACE_COLLOCATED_SS, - TAO_INTERFACE_ANY_OP_CH, - TAO_INTERFACE_ANY_OP_CS, - TAO_INTERFACE_TIE_SH, - TAO_INTERFACE_TIE_SI, - - // emitting code for the interface forward declaration - TAO_INTERFACE_FWD_CH, - TAO_INTERFACE_FWD_CI, - - // emitting code for the module - TAO_MODULE_CH, - TAO_MODULE_CI, - TAO_MODULE_CS, - TAO_MODULE_SH, - TAO_MODULE_SI, - TAO_MODULE_SS, - TAO_MODULE_ANY_OP_CH, - TAO_MODULE_ANY_OP_CS, - - // emitting code for an operation. - TAO_OPERATION_CH, // in client header - TAO_OPERATION_CI, // XXXASG rm? - TAO_OPERATION_CS, // in client stubs - TAO_OPERATION_SH, // in server header - TAO_OPERATION_SI, // XXXASG rm? - TAO_OPERATION_SS, // in server skeletons - TAO_OPERATION_COLLOCATED_SH, // in collocated server header - TAO_OPERATION_COLLOCATED_SS, // in collocated server skel - TAO_OPERATION_RETTYPE_CH, // return type in client header op - // signature - TAO_OPERATION_RETTYPE_OTHERS, // ... in other cases - TAO_OPERATION_RETURN_TYPE_CS, // - TAO_OPERATION_ARGLIST_CH, // parameter list in op signature - // ... for client header - TAO_OPERATION_ARGLIST_SH, // ... for server header - TAO_OPERATION_ARGLIST_COLLOCATED_SH, // ... for collocated server - TAO_OPERATION_ARGLIST_OTHERS, // ... for all other cases - TAO_OPERATION_RETVAL_DECL_CS, // return value variable declaration - TAO_OPERATION_RETVAL_EXCEPTION_CS, // return value on exception (error) - TAO_OPERATION_RETVAL_PRE_DOCALL_CS, // preprocessing for return value - // before sending over the wire - TAO_OPERATION_ARG_PRE_DOCALL_CS, // preprocessing of arguments - // before do_static_call - TAO_OPERATION_RETVAL_DOCALL_CS, // passing the return type - // variable to do_static_call - TAO_OPERATION_ARG_DOCALL_CS, // passing argument variable to do_static_call - TAO_OPERATION_RETVAL_POST_DOCALL_CS, // processing of return type - // after do_static_call - TAO_OPERATION_ARG_POST_DOCALL_CS, // processing of arg after do_static_call - TAO_OPERATION_RETVAL_RETURN_CS, // returning the return type - // variable - TAO_OPERATION_EXCEPTLIST_CS, // generating the exception list - TAO_OPERATION_RETVAL_DECL_SS, // return type decl in skeleton - TAO_OPERATION_ARG_DECL_SS, // argument decl in skeleton - TAO_OPERATION_RETVAL_DEMARSHAL_SS, // passing return type variable - TAO_OPERATION_ARG_DEMARSHAL_SS, // and argument variables to the - TAO_OPERATION_RETVAL_MARSHAL_SS, // marshal and demarshal operations - TAO_OPERATION_ARG_MARSHAL_SS, - TAO_OPERATION_ARG_POST_MARSHAL_SS, - TAO_OPERATION_RETVAL_ASSIGN_SS, // assigning to return type - // variable - TAO_OPERATION_ARG_PRE_UPCALL_SS, // pre upcall processing - TAO_OPERATION_RETVAL_UPCALL_SS, // passing return type var and argument - TAO_OPERATION_ARG_UPCALL_SS, // variables to upcall - TAO_OPERATION_COLLOCATED_ARG_UPCALL_SS, // variables to upcall for - // collocated op - TAO_OPERATION_RETVAL_POST_UPCALL_SS, // post upcall processing for - TAO_OPERATION_ARG_POST_UPCALL_SS, // return and argument variables - TAO_OPERATION_RESULT_SS, // XXXASG rm? - TAO_OPERATION_TIE_SH, - TAO_OPERATION_TIE_SI, - - // for predefined type - TAO_PREDEFINED_TYPE_CH, - TAO_PREDEFINED_TYPE_CI, - TAO_PREDEFINED_TYPE_CS, - - // emitting code for root - TAO_ROOT_CH, - TAO_ROOT_CI, - TAO_ROOT_CS, - TAO_ROOT_SH, - TAO_ROOT_SI, - TAO_ROOT_SS, - TAO_ROOT_ANY_OP_CH, - TAO_ROOT_ANY_OP_CS, - - // emitting sequences - TAO_SEQUENCE_CH, - TAO_SEQUENCE_CI, - TAO_SEQUENCE_CS, - TAO_SEQUENCE_ANY_OP_CH, - TAO_SEQUENCE_ANY_OP_CS, - - // emitting code for sequence base type - TAO_SEQUENCE_BASE_CH, - TAO_SEQUENCE_BASE_CI, - TAO_SEQUENCE_BASE_CS, - TAO_SEQUENCE_BASE_SH, - TAO_SEQUENCE_BASE_SI, - TAO_SEQUENCE_BASE_SS, - - // emitting code for sequence body - TAO_SEQUENCE_BODY_CH, - TAO_SEQUENCE_BODY_CI, - TAO_SEQUENCE_BODY_CS, - TAO_SEQUENCE_BODY_SH, - TAO_SEQUENCE_BODY_SI, - TAO_SEQUENCE_BODY_SS, - - // for special sequnce elements - TAO_SEQELEM_RETTYPE_CH, - TAO_SEQELEM_RETTYPE_CI, - TAO_SEQELEM_RETTYPE_CS, - - // for sequence buffer types - TAO_SEQUENCE_BUFFER_TYPE_CH, - TAO_SEQUENCE_BUFFER_TYPE_CI, - TAO_SEQUENCE_BUFFER_TYPE_CS, - - // emitting code for strings - TAO_STRING_CH, - TAO_STRING_CI, - TAO_STRING_CS, - TAO_STRING_SH, - TAO_STRING_SI, - TAO_STRING_SS, - - // emitting code for struct and its members - TAO_STRUCT_CH, - TAO_STRUCT_CI, - TAO_STRUCT_CS, - TAO_STRUCT_ANY_OP_CH, - TAO_STRUCT_ANY_OP_CS, - - // emitting code for typedefs - TAO_TYPEDEF_CH, - TAO_TYPEDEF_CI, - TAO_TYPEDEF_CS, - TAO_TYPEDEF_SH, - TAO_TYPEDEF_SI, - TAO_TYPEDEF_SS, - TAO_TYPEDEF_ANY_OP_CH, - TAO_TYPEDEF_ANY_OP_CS, - - // emitting code for unions - TAO_UNION_CH, - TAO_UNION_CI, - TAO_UNION_CS, - TAO_UNION_ANY_OP_CH, - TAO_UNION_ANY_OP_CS, - - // emitting code for the discriminant - TAO_UNION_DISCTYPEDEFN_CH, - TAO_UNION_DISCTYPEDEFN_CI, - TAO_UNION_DISCTYPEDEFN_CS, - TAO_UNION_DISCTYPEDEFN_SH, - TAO_UNION_DISCTYPEDEFN_SI, - TAO_UNION_DISCTYPEDEFN_SS, - - // emitting code for the public members of the union - TAO_UNION_PUBLIC_CH, - TAO_UNION_PUBLIC_CI, - TAO_UNION_PUBLIC_CS, - TAO_UNION_PUBLIC_ASSIGN_CS, - TAO_UNION_PUBLIC_SH, - TAO_UNION_PUBLIC_SI, - TAO_UNION_PUBLIC_SS, - - // emitting code for private members of the union - TAO_UNION_PRIVATE_CH, - TAO_UNION_PRIVATE_CI, - TAO_UNION_PRIVATE_CS, - TAO_UNION_PRIVATE_SH, - TAO_UNION_PRIVATE_SI, - TAO_UNION_PRIVATE_SS, - - // emitting code for typecodes - TAO_TYPECODE_DECL, - TAO_TYPECODE_DEFN, - - // Always must be last - TAO_UNKNOWN - - }; - - TAO_CodeGen (void); - // Constructor - - ~TAO_CodeGen (void); - // destructor - - be_visitor *make_visitor (be_visitor_context *); - // Factory that makes the right visitor based on the contex. This - // delegates the task to its factory data member - - int gen_cplusplus_mapping (void); - // generate the C++ mapping for CORBA IDL - - int start_client_header (const char *fname); - // set the client header stream - - int start_client_inline (const char *fname); - // set the client inline stream - - int start_client_stubs (const char *fname); - // set the client stub stream - - int start_server_header (const char *fname); - // set the server header stream - - int start_server_template_header (const char *fname); - // set the server template header stream - - int start_server_inline (const char *fname); - // set the server inline stream - - int start_server_template_inline (const char *fname); - // set the server template inline stream - - int start_server_skeletons (const char *fname); - // set the server skeletons stream - - int start_server_template_skeletons (const char *fname); - // set the server template skeletons stream - - int end_client_header (void); - // generate code at the end such as the <<= and >>= operators alongwith the - // ending #endif statement - - int end_server_header (void); - // put a last #endif in the server header - - int end_server_template_header (void); - // put a last #endif in the server template header - - int end_server_template_skeletons (void); - // put a last #endif in the server skeletons - - TAO_OutStream *client_header (void); - // get the client header stream - - TAO_OutStream *client_stubs (void); - // get the client stubs stream - - TAO_OutStream *client_inline (void); - // get the client inline stream - - TAO_OutStream *server_header (void); - // get the server header stream - - TAO_OutStream *server_template_header (void); - // get the server header template stream - - TAO_OutStream *server_skeletons (void); - // get the server skeletons stream - - TAO_OutStream *server_template_skeletons (void); - // get the server template skeletons stream - - TAO_OutStream *server_inline (void); - // get the server inline stream - - TAO_OutStream *server_template_inline (void); - // get the server template inline stream - - void outstream (TAO_OutStream *os); - // set current out stream - - TAO_OutStream *outstream (void); - // retrieve current out stream being used - - void visitor_factory (TAO_Visitor_Factory *); - // set the visitor factory object - - void node (be_decl *n); - // pass info - - be_decl *node (void); - // retrieve passed info - - const char *upcase (const char *str); - // convert input string to all upcase - -private: - TAO_OutStream *client_header_; - // client header stream - - TAO_OutStream *client_stubs_; - // client stub file stream - - TAO_OutStream *client_inline_; - // client side inline definitions - - TAO_OutStream *server_header_; - // server header stream - - TAO_OutStream *server_template_header_; - // server header template stream - - TAO_OutStream *server_skeletons_; - // server skeleton stream - - TAO_OutStream *server_template_skeletons_; - // server skeleton template stream - - TAO_OutStream *server_inline_; - // server side inline file - - TAO_OutStream *server_template_inline_; - // server side template inline file - - TAO_OutStream *curr_os_; - // currently used out stream - - be_decl *node_; - // save current node in this - - TAO_Visitor_Factory *visitor_factory_; - // visitor factory object - -}; - -typedef ACE_Singleton TAO_CODEGEN; -// Singleton instance of the BE code generator - -extern TAO_CodeGen *tao_cg; // code generator instance which is used everywhere - -#endif /* if !defined */ diff --git a/TAO/TAO_IDL/be_include/be_constant.h b/TAO/TAO_IDL/be_include/be_constant.h deleted file mode 100644 index 75a503e3e19..00000000000 --- a/TAO/TAO_IDL/be_include/be_constant.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_constant.h -// -// = DESCRIPTION -// Extension of class AST_Constant that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_CONSTANT_H) -#define BE_CONSTANT_H - -/* - * BE_Constant - */ -class be_constant : public virtual AST_Constant , public virtual be_decl -{ -public: - // Operations - - be_constant (void); - // constructor - - be_constant (AST_Expression::ExprType et, - AST_Expression *v, - UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - // = helper - char *exprtype_to_string (void); - // returns the appropriate type - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_constant, AST_Constant, be_decl); - DEF_NARROW_FROM_DECL (be_constant); - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_decl.h b/TAO/TAO_IDL/be_include/be_decl.h deleted file mode 100644 index 0d0f3f1daa4..00000000000 --- a/TAO/TAO_IDL/be_include/be_decl.h +++ /dev/null @@ -1,169 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_decl.h -// -// = DESCRIPTION -// Extension of the AST_Decl class. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_DECL_H) -#define TAO_BE_DECL_H - -class be_scope; -class be_visitor; - -/* - * BE_Decl - */ -class be_decl : public virtual AST_Decl -{ - // = TITLE - // be_decl - // = DESCRIPTION - // The back end extension of the AST_Decl class. Provides an abstract - // interface - // -public: - enum SIZE_TYPE - { - SIZE_UNKNOWN, - FIXED, - VARIABLE - }; - // indicates if we are fixed size or variable. Most useful for structs, - // unions, and arrays. - - // =Operations - - be_decl (void); - // Default constructor - - be_decl (AST_Decl::NodeType type, UTL_ScopedName *n, UTL_StrList *pragmas); - // constructor that sets the node type - - ~be_decl (void); - // destructor - - virtual void size_type (SIZE_TYPE); - // set the size type - - virtual SIZE_TYPE size_type (void); - // return our size type - - const char *repoID (void); - // retrieve the repository ID - - const char *fullname (void); - // return the stringified full name - - const char *flatname (void); - // return the flattened full scoped name - - virtual idl_bool is_nested (void); - // determines if we are inside of a nested scope or not - - virtual int gen_encapsulation (void); - // encapsulation of parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual be_scope *scope (void); - // return the scope created by this node (if one exists) - - // Visiting - virtual int accept (be_visitor *visitor); - - // boolean methods to test if code was already generated - idl_bool cli_hdr_gen (void); - idl_bool cli_stub_gen (void); - idl_bool cli_inline_gen (void); - idl_bool srv_hdr_gen (void); - idl_bool srv_skel_gen (void); - idl_bool srv_inline_gen (void); - idl_bool cli_hdr_any_op_gen (void); - idl_bool cli_stub_any_op_gen (void); - - // set the flag indicating that code generation is done - void cli_hdr_gen (idl_bool); - void cli_stub_gen (idl_bool); - void cli_inline_gen (idl_bool); - void srv_hdr_gen (idl_bool); - void srv_skel_gen (idl_bool); - void srv_inline_gen (idl_bool); - void cli_hdr_any_op_gen (idl_bool); - void cli_stub_any_op_gen (idl_bool); - - idl_bool is_child (be_decl *node); - // am I a direct child of node? - - // Narrowing - DEF_NARROW_METHODS1 (be_decl, AST_Decl); - DEF_NARROW_FROM_DECL (be_decl); - -protected: - // =helper - - virtual int compute_size_type (void); - // determine our size type and set it if it is unknown - - virtual void compute_repoID (void); - // computes the repoID - - virtual void compute_fullname (void); - // computes the fully scoped name - - virtual void compute_flatname (void); - // compute the flattened fully scoped name - - virtual int tc_name2long (const char *name, long *&, long &); - // name represented as a padded array of longs - - virtual long repoID_encap_len (void); - // return encapsulation length required to hold repository ID - - virtual long name_encap_len (void); - // return encapsulation length required to hold IDL name - - // variables that indicate if the code generation for that node is already - // been done. This way we avoid regenerating same code. - idl_bool cli_hdr_gen_; - idl_bool cli_stub_gen_; - idl_bool cli_inline_gen_; - idl_bool srv_hdr_gen_; - idl_bool srv_skel_gen_; - idl_bool srv_inline_gen_; - idl_bool cli_hdr_any_op_gen_; - idl_bool cli_stub_any_op_gen_; - - char *fullname_; - // our full scoped name - - char *flatname_; - // flattened fully scoped name - - char *repoID_; - // repository ID - - SIZE_TYPE size_type_; - // whether we are fixed or variable size (by default fixed) - - long encap_len_; - // encapsulation length - required for typecodes - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_enum.h b/TAO/TAO_IDL/be_include/be_enum.h deleted file mode 100644 index 6196d5053aa..00000000000 --- a/TAO/TAO_IDL/be_include/be_enum.h +++ /dev/null @@ -1,79 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_enum.h -// -// = DESCRIPTION -// Extension of class AST_Enum that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ENUM_H) -#define BE_ENUM_H - -/* - * BE_Enum - */ -class be_enum : public virtual AST_Enum, - public virtual be_scope, - public virtual be_type -{ -public: - // Operations - - be_enum (void); - // default constructor - - be_enum (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_enum, AST_Enum, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_enum); - DEF_NARROW_FROM_SCOPE (be_enum); - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_enum_val.h b/TAO/TAO_IDL/be_include/be_enum_val.h deleted file mode 100644 index 45815eef998..00000000000 --- a/TAO/TAO_IDL/be_include/be_enum_val.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_enum_val.h -// -// = DESCRIPTION -// Extension of class AST_EnumVal that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_ENUM_VAL_H) -#define BE_ENUM_VAL_H - -/* - * BE_EnumVal - */ -class be_enum_val : public virtual AST_EnumVal, - public virtual be_decl -{ -public: - // =Operations - - be_enum_val (void); - // default constructor - - be_enum_val (unsigned long v, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_encapsulation (void); - // generate the typecode - - virtual long tc_encap_len (void); - // return length of encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_enum_val, AST_EnumVal, be_decl); - DEF_NARROW_FROM_DECL (be_enum_val); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_exception.h b/TAO/TAO_IDL/be_include/be_exception.h deleted file mode 100644 index 1f9348e993a..00000000000 --- a/TAO/TAO_IDL/be_include/be_exception.h +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -#if !defined (BE_EXCEPTION_H) -#define BE_EXCEPTION_H - -/* - * BE_Exception - */ -class be_exception : public virtual AST_Exception, - public virtual be_scope, - public virtual be_type - -{ -public: - // Operations - be_exception (void); - // default constructor - - be_exception (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - // =code generation - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_exception, AST_Exception, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_exception); - DEF_NARROW_FROM_SCOPE (be_exception); - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif // end of if !defined (...) diff --git a/TAO/TAO_IDL/be_include/be_expression.h b/TAO/TAO_IDL/be_include/be_expression.h deleted file mode 100644 index 01829d9b3bf..00000000000 --- a/TAO/TAO_IDL/be_include/be_expression.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_expression.h -// -// = DESCRIPTION -// Extension of class AST_Expression that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_EXPRESSION_H) -#define BE_EXPRESSION_H - -/* - * BE_Expression - */ -class be_expression : public virtual AST_Expression -{ -public: - // Operations - be_expression (UTL_ScopedName *n); - be_expression (AST_Expression *b, AST_Expression::ExprType t); - be_expression (AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - be_expression (long l); - be_expression (long l, AST_Expression::ExprType t); - be_expression (unsigned long l); - be_expression (String *s); - be_expression (char c); - be_expression (double d); - - // Visiting - virtual int accept (be_visitor *visitor); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_factory.h b/TAO/TAO_IDL/be_include/be_factory.h deleted file mode 100644 index 9ed9a18f0de..00000000000 --- a/TAO/TAO_IDL/be_include/be_factory.h +++ /dev/null @@ -1,72 +0,0 @@ -// $Id$ - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL Backend -// -// = FILENAME -// be_factory.h -// -// = DESCRIPTION -// Defines a factory that returns a specialized output stream object that -// understands a specific Front End -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_FACTORY_H) -#define TAO_BE_FACTORY_H - -class TAO_Visitor_Factory -{ - // =TITLE - // TAO_Visitor_Factory - // - // =DESCRIPTION - // Abstract factory that creates visitors -public: - virtual ~TAO_Visitor_Factory (void); - // destructor - - virtual be_visitor *make_visitor (be_visitor_context *) = 0; - // create the right visitor - -}; - -class TAO_OutStream_Factory -{ - // =TITLE - // TAO_OutStream_Factory - // =DESCRIPTION - // factory to produce specialized instances of the output stream objects -public: - enum TAO_OutStream_Type - { - TAO_SUNSOFT, - TAO_FLICK - }; - - TAO_OutStream_Factory (void); - // constructor - - ~TAO_OutStream_Factory (void); - // destructor - - TAO_OutStream *make_outstream (void); - // make the specialized out stream class - - int set_stream_type (TAO_OutStream_Type t); - // set the stream type - -private: - TAO_OutStream_Type strm_type_; -}; - -typedef ACE_Singleton TAO_OUTSTREAM_FACTORY; -// Singleton instance of the OutStream factory - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_field.h b/TAO/TAO_IDL/be_include/be_field.h deleted file mode 100644 index b5802574bad..00000000000 --- a/TAO/TAO_IDL/be_include/be_field.h +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_field.h -// -// = DESCRIPTION -// Extension of class AST_Field that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_FIELD_H) -#define BE_FIELD_H - -/* - * BE_Field - */ -class be_field : public virtual AST_Field, - public virtual be_decl -{ -public: - // =Operations - - be_field (void); - // default constructor - - be_field (AST_Type *ft, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_encapsulation (void); - // generate the typecode - - virtual long tc_encap_len (void); - // return the total byte length of ourselves represented as an encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_field, AST_Field, be_decl); - DEF_NARROW_FROM_DECL (be_field); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_generator.h b/TAO/TAO_IDL/be_include/be_generator.h deleted file mode 100644 index a4d6d22f636..00000000000 --- a/TAO/TAO_IDL/be_include/be_generator.h +++ /dev/null @@ -1,166 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _BE_GENERATOR_BE_GENERATOR_HH -#define _BE_GENERATOR_BE_GENERATOR_HH - -// be_generator.hh -// -// Defines BE class for generator -// -// This defines the same protocol as the AST_Generator class but actually -// is implemented to create nodes of AST classes subclassed in this BE - -/* -** DEPENDENCIES: AST_Generator.h -** -** USE: Included from be.h -*/ - -class be_generator : public AST_Generator { -public: - virtual AST_Root *create_root(UTL_ScopedName *n, - UTL_StrList *p); - // Create a node representing a module which is the root of an AST made up of - // BE nodes - - // Operations - virtual AST_PredefinedType - *create_predefined_type(AST_PredefinedType::PredefinedType t, - UTL_ScopedName *n, - UTL_StrList *p); - - virtual AST_Module *create_module(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Interface *create_interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p); - virtual AST_InterfaceFwd *create_interface_fwd(UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Exception *create_exception(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Structure *create_structure(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Enum *create_enum(UTL_ScopedName *n, UTL_StrList *p); - virtual AST_Operation *create_operation(AST_Type *rt, - AST_Operation::Flags fl, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Field *create_field(AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Argument *create_argument(AST_Argument::Direction d, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Attribute *create_attribute(idl_bool ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Union *create_union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_UnionBranch *create_union_branch(AST_UnionLabel *lab, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_UnionLabel *create_union_label(AST_UnionLabel::UnionLabel ul, - AST_Expression *lv); - virtual AST_Constant *create_constant(AST_Expression::ExprType et, - AST_Expression *ev, - UTL_ScopedName *n, - UTL_StrList *p); - - virtual AST_Expression *create_expr(UTL_ScopedName *n); - virtual AST_Expression *create_expr(AST_Expression *v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - virtual AST_Expression *create_expr(long v); - virtual AST_Expression *create_expr(long v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(unsigned long v); - virtual AST_Expression *create_expr(String *s); - virtual AST_Expression *create_expr(char c); - virtual AST_Expression *create_expr(double d); - - virtual AST_EnumVal *create_enum_val(unsigned long v, - UTL_ScopedName *n, - UTL_StrList *p); - virtual AST_Array *create_array(UTL_ScopedName *n, - unsigned long ndims, - UTL_ExprList *dims); - virtual AST_Sequence *create_sequence(AST_Expression *v, AST_Type *bt); - virtual AST_String *create_string(AST_Expression *v); - virtual AST_String *create_wstring(AST_Expression *v); - virtual AST_Typedef *create_typedef(AST_Type *bt, - UTL_ScopedName *n, - UTL_StrList *p); - // Create a node representing a native - virtual AST_Native *create_native (UTL_ScopedName *n, - UTL_StrList *p); - -}; - -#endif // _BE_GENERATOR_BE_GENERATOR_HH diff --git a/TAO/TAO_IDL/be_include/be_helper.h b/TAO/TAO_IDL/be_include/be_helper.h deleted file mode 100644 index 1c179150ad6..00000000000 --- a/TAO/TAO_IDL/be_include/be_helper.h +++ /dev/null @@ -1,179 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_helper.h -// -// = DESCRIPTION -// Defines the abstract class for outputting the C++ mapping. This is a -// helper class to the singleton TAO_CodeGen class -// -// = AUTHOR -// Aniruddha Gokhale -// -// Improvements by Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_OUTSTRM_H) -#define TAO_BE_OUTSTRM_H - -// a dummy structure to inform TAO_OutStream's << operator to put a newline -// and use the current indentation for the succeeding line -struct TAO_NL -{ -public: - TAO_NL (void); -}; - -struct TAO_INDENT -{ - // = TITLE - // Operates like a manipulator, increasing the indentation level. - // - // = DESCRIPTION - // Increase the indentation level, if the "do_now" parameter is - // not zero then the method is called on the stream. - // - TAO_INDENT (int do_now = 0); - - const int do_now_; -}; - -struct TAO_UNINDENT -{ - // = TITLE - // Operates like a manipulator, decreasing the indentation level. - // - // = DESCRIPTION - // Decrease the indentation level, if the "do_now" parameter is - // not zero then the method is called on the stream. - // - TAO_UNINDENT (int do_now = 0); - - const int do_now_; -}; - -extern const TAO_NL be_nl; -extern const TAO_INDENT be_idt; -extern const TAO_INDENT be_idt_nl; -extern const TAO_UNINDENT be_uidt; -extern const TAO_UNINDENT be_uidt_nl; - -class TAO_OutStream -{ - // =TITLE - // TAO_OutStream - // =DESCRIPTION - // Defines an interface by which the backend code generator can print its - // output to the underlying I/O handle. This is a helper class that will be - // used by the TAO_CodeGen class. However, this is an abstract class and - // classes that understand specific front ends must derive from this - // class. -public: - - // Enumerated type to indicate the stream type - enum STREAM_TYPE - { - TAO_CLI_HDR, - TAO_CLI_INL, - TAO_CLI_IMPL, - TAO_SVR_HDR, - TAO_SVR_TMPL_HDR, - TAO_SVR_INL, - TAO_SVR_TMPL_INL, - TAO_SVR_IMPL, - TAO_SVR_TMPL_IMPL - }; - - TAO_OutStream (void); - // constructor. - - virtual ~TAO_OutStream (void); - // destructor - - int open (const char *fname, TAO_OutStream::STREAM_TYPE st=TAO_OutStream::TAO_CLI_HDR); - // open the underlying low-level handle for output - - void stream_type (TAO_OutStream::STREAM_TYPE); - // set the stream type - - TAO_OutStream::STREAM_TYPE stream_type (void); - // return the stream type - - int incr_indent (unsigned short flag=1); - // increment the indentation level and by default actually indent the output - // accordingly - - int decr_indent (unsigned short flag=1); - // decrease the indentation level and by default actually indent the output - // accordingly - - int reset (void); - // reset indentation level to 0 - - int indent (void); - // indent starting next line - - int nl (void); - // put a newline and indent on the next line - - int print (const char *format, ...); - // "printf" style variable argument print - - int gen_ifdef_macro (const char *flatname, const char *suffix=0); - // generate a #if !defined, #defined macro - - int gen_endif (void); - // generate an endif statement - - // =overloaded operators - - TAO_OutStream &operator<< (const char *str); - // output the char string and return a reference to ourselves - - TAO_OutStream &operator<< (const long num); - // output the integer and return a reference to ourselves - - // = MANIPULATORS - - TAO_OutStream &operator<< (const TAO_NL& nl); - TAO_OutStream &operator<< (const TAO_INDENT& i); - TAO_OutStream &operator<< (const TAO_UNINDENT& i); - - // The following will be provided by specialized classes - - TAO_OutStream &operator<< (Identifier *id); - // output an Identifier node - - TAO_OutStream &operator<< (UTL_IdList *idl); - // output a scoped name - - TAO_OutStream &operator<< (AST_Expression *expr); - // output an AST_Expression node - - // provided by specialized classes - virtual TAO_OutStream &print (Identifier *id) = 0; - - virtual TAO_OutStream &print (UTL_IdList *idl) = 0; - - virtual TAO_OutStream &print (AST_Expression *idl) = 0; - -protected: - FILE *fp_; - // the underlying low-level I/O handle - - TAO_OutStream::STREAM_TYPE st_; - // stream type - - int indent_level_; - // indentation level - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h deleted file mode 100644 index 14c70aa4110..00000000000 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ /dev/null @@ -1,176 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_interface.h -// -// = DESCRIPTION -// Extension of class AST_Interface that provides additional means for C++ -// mapping of an interface. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_INTERFACE_H) -#define TAO_BE_INTERFACE_H - -class TAO_OutStream; - -/* - * BE_Interface - */ -class be_interface : public virtual AST_Interface, - public virtual be_scope, - public virtual be_type -{ - // = TITLE - // The back end extension of the AST_Interface class - // - // = DESCRIPTION - // -public: - - // used to pass functions to the template method - typedef int (*tao_code_emitter) (be_interface *, be_interface *, TAO_OutStream *); - - // Operations - be_interface (void); - // Default constructor - - be_interface (UTL_ScopedName *n, AST_Interface **ih, long nih, - UTL_StrList *p); - // Constructor that sets its scoped name , a list of inherited interfaces - // , the number of inherited interfaces , and any prgmas

    - - ~be_interface (void); - // dtor - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - const char *full_skel_name (void); - // retrieve the fully scoped skel class name - - // - // Each interface (to fix names "T") also defines two help classes, - // the "collocated" class inherits from T, but delegates on the - // skeleton for T (usually POA_T or POA_ModuleName::T), in other - // words it is a Bridge from T to its implementation. - // The class is nested inside the skeleton class. - // - // The "stub" is a class defined on the client scope, it actually - // defines the stubs (all operations in T are pure virtual). - // @@ TODO currently the stub class is not implemented. - // - const char *full_coll_name (void); - // retrieve the fully qualified collocated class name - - const char *local_coll_name (void) const; - // retrieve the fully qualified collocated class name - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int traverse_inheritance_graph (tao_code_emitter gen, - TAO_OutStream *os); - // template method using breadth first traversal of inheritance graph - - const char *relative_skel_name (const char *other_class_name); - // relative skeleton name - - const char *relative_coll_name (const char *other_class_name); - // relative name for collocated class. - - // Visiting - virtual int accept (be_visitor *visitor); - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Narrowing - DEF_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_interface); - DEF_NARROW_FROM_SCOPE (be_interface); - - static int is_a_helper (be_interface *, be_interface *, TAO_OutStream *os); - // helper method passed to the template method that generates code for the - // is_a method - - static int downcast_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method that generates code for the - // downcast. - - static int gen_optable_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method to generate code for the - // operation table - - static int gen_skel_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method to generate code for the - // skeletons in the inline file - - static int collocated_ctor_helper (be_interface *, - be_interface *, - TAO_OutStream *os); - // helper method passed to the template method to invoke ctors of all the - // base classes. - - void compute_fullskelname (void); - // compute the fully scoped skel class name - - int gen_operation_table (void); - // generate the operation table including entries for inherited interfaces - - static const char *relative_name (const char* our_name, - const char *other_class_name); - // relative name for collocated class. - - int gen_optable_entries (be_interface *); - // generate the operation table entries - - void compute_coll_name (void); - // compute the fully qualified collocated class name. - -private: - char *full_skel_name_; // fully scoped skeleton name - - int skel_count_; // number of static skeletons in the operation table - - char *full_coll_name_; - char *local_coll_name_; -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interface_fwd.h b/TAO/TAO_IDL/be_include/be_interface_fwd.h deleted file mode 100644 index e14b051837a..00000000000 --- a/TAO/TAO_IDL/be_include/be_interface_fwd.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_interface.h -// -// = DESCRIPTION -// Extension of class AST_Interface_Fwd that provides additional means for C++ -// mapping of an interface. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_INTERFACE_FWD_H) -#define BE_INTERFACE_FWD_H - -/* - * BE_InterfaceFwd - */ -class be_interface_fwd : public virtual AST_InterfaceFwd, - public virtual be_type -{ - // =TITLE - // be_interface_fwd - // =DESCRIPTION - // Extensions to the AST_Interface_Fwd class -public: - // Operations - - be_interface_fwd (void); - // default constructor - - be_interface_fwd (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual long tc_size (void); - // return typecode size - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_interface_fwd, AST_InterfaceFwd, be_type); - DEF_NARROW_FROM_DECL (be_interface_fwd); - -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_interpretive.h b/TAO/TAO_IDL/be_include/be_interpretive.h deleted file mode 100644 index e6312b8d2cd..00000000000 --- a/TAO/TAO_IDL/be_include/be_interpretive.h +++ /dev/null @@ -1,40 +0,0 @@ -// $Id$ - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL Backend -// -// = FILENAME -// be_interpretive_visitor.h -// -// = DESCRIPTION -// Defines a factory that returns a specialized visitor object based on the -// code generation state. The visitors returned by this factory generate -// stubs and skeletons that use interpretive form of marshaling -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -class TAO_Interpretive_Visitor_Factory: public TAO_Visitor_Factory -{ - // =TITLE - // TAO_Visitor_Factory - // - // =DESCRIPTION - // Factory that creates visitors that generate stubs/skeletons for - // interpretive form of marshaling -public: - TAO_Interpretive_Visitor_Factory (void); - // constructor - - virtual ~TAO_Interpretive_Visitor_Factory (void); - // destructor - - virtual be_visitor *make_visitor (be_visitor_context *); - // create the right visitor - -}; diff --git a/TAO/TAO_IDL/be_include/be_module.h b/TAO/TAO_IDL/be_include/be_module.h deleted file mode 100644 index 68190f9406b..00000000000 --- a/TAO/TAO_IDL/be_include/be_module.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_module.h -// -// = DESCRIPTION -// Extension of class AST_Module that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_MODULE_H) -#define _BE_MODULE_H - -/* - * BE_Module - */ - -class be_module : public virtual AST_Module, - public virtual be_scope, - public virtual be_decl -{ -public: - // =Operations - - be_module (void); - // default constructor - - be_module (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_module, AST_Module, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_module); - DEF_NARROW_FROM_SCOPE (be_module); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_native.h b/TAO/TAO_IDL/be_include/be_native.h deleted file mode 100644 index 869e17a0fca..00000000000 --- a/TAO/TAO_IDL/be_include/be_native.h +++ /dev/null @@ -1,59 +0,0 @@ -// $Id$ - -// Id -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_native.h -// -// = DESCRIPTION -// The native IDL type -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - - -#if !defined (BE_NATIVE_H) -#define BE_NATIVE_H - -// Representation of "native" IDL type added by the POA spec - -class be_native : public virtual AST_Native, public virtual be_type -{ -public: - // =Operations - - // Constructor(s) - be_native (void); - // default constructor - - be_native(UTL_ScopedName *n, UTL_StrList *p); - // constructor that initializes its scoped name - - virtual ~be_native (void) {} - // destructor - - virtual int gen_typecode (void); - // generate the typecode description - - virtual long tc_size (void); - // return typecode size - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2(be_native, AST_Native, be_type); - DEF_NARROW_FROM_DECL(be_native); -}; - -#endif /* BE_NATIVE_H */ diff --git a/TAO/TAO_IDL/be_include/be_operation.h b/TAO/TAO_IDL/be_include/be_operation.h deleted file mode 100644 index 21859abdd96..00000000000 --- a/TAO/TAO_IDL/be_include/be_operation.h +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_operation.h -// -// = DESCRIPTION -// Extension of class AST_Operation that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_OPERATION_H) -#define BE_OPERATION_H - -class be_argument; - -/* - * BE_Operation - */ -class be_operation : public virtual AST_Operation, - public virtual be_scope, - public virtual be_decl -{ -public: - // =Operations - - be_operation (void); - // default constructor - - be_operation (AST_Type *rt, AST_Operation::Flags fl, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int argument_count (void); - // return the count of members - - virtual int has_native (void); - // Any of the arguments or the return value is a type. - // This is important because in that case no code should be - // generated for the stubs. - - be_argument *add_argument_to_scope (be_argument *arg); - // add an argument to the scope - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_operation, AST_Operation, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_operation); - DEF_NARROW_FROM_SCOPE (be_operation); - -protected: - //=helper - int compute_size_type (void); - // compute the size type if it is unknown - - int compute_argument_attr (void); - // count the number of arguments - - int argument_count_; - // number of arguments - - int has_native_; - // Is any argument of type native. -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_predefined_type.h b/TAO/TAO_IDL/be_include/be_predefined_type.h deleted file mode 100644 index 8d0aa7a44fd..00000000000 --- a/TAO/TAO_IDL/be_include/be_predefined_type.h +++ /dev/null @@ -1,77 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_predefined_type.h -// -// = DESCRIPTION -// Extension of class AST_PredefinedType that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_PREDEFINED_TYPE_H) -#define _BE_PREDEFINED_TYPE_H - -// be_classes.hh -// -// Defines all classes for dummy BE - -/* - * BE_PredefinedType - */ -class be_predefined_type : public virtual AST_PredefinedType, - public virtual be_type -{ -public: - // =Operations - - be_predefined_type (void); - // default constructor - - be_predefined_type (AST_PredefinedType::PredefinedType t, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_typecode (void); - // generate the typecode - - virtual long tc_size (void); - // return typecode size - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_predefined_type, AST_PredefinedType, be_type); - DEF_NARROW_FROM_DECL (be_predefined_type); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - - virtual void compute_tc_name (void); - // overridden method -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_root.h b/TAO/TAO_IDL/be_include/be_root.h deleted file mode 100644 index d0d1221b7f2..00000000000 --- a/TAO/TAO_IDL/be_include/be_root.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_root.h -// -// = DESCRIPTION -// Extension of class AST_Root that provides the backend -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_ROOT_H) -#define TAO_BE_ROOT_H - -class be_root : public virtual AST_Root, - public virtual be_scope, - public virtual be_decl -{ - // = TITLE - // The back end extension of the AST_Root class - // - // = DESCRIPTION - // -public: - // Operations - be_root (void); - // Default constructor - - be_root (UTL_ScopedName *n, UTL_StrList *p); - // Constructor that sets its scoped name , and any pragmas

    - - // =Scope management functions that override the AST scope management methods - // since the AST methods set the names of the sequences, strings, and arrays - // to a fixed value which interferes with our back-end code generation - AST_Sequence *fe_add_sequence (AST_Sequence *); - AST_String *fe_add_string (AST_String *); - AST_Array *fe_add_array (AST_Array *); - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_root, AST_Root, be_scope, be_decl); - DEF_NARROW_FROM_DECL (be_root); - DEF_NARROW_FROM_SCOPE (be_root); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_scope.h b/TAO/TAO_IDL/be_include/be_scope.h deleted file mode 100644 index 0378a5dec80..00000000000 --- a/TAO/TAO_IDL/be_include/be_scope.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_scope.h -// -// = DESCRIPTION -// Extension of the UTL_Scope CFE class -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_SCOPE_H) -#define TAO_BE_SCOPE_H - -class be_decl; - -/* - * BE_Scope - */ -class be_scope : public virtual UTL_Scope -{ - // = TITLE - // be_scope - // = DESCRIPTION - // The back end extension of the UTL_Scope class - // -public: - // Operations - - be_scope (void); - // Default constructor - - be_scope (AST_Decl::NodeType nt); - // constructor that sets the node type - - virtual ~be_scope (void); - // destructor - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual void comma (unsigned short set); - // set the comma producing state - - int comma (void) const; - // get the comma producing state - - virtual be_decl *decl (void); - // return the be_decl node corresponding to this scope node - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS1 (be_scope, UTL_Scope); - DEF_NARROW_FROM_SCOPE (be_scope); - -private: - unsigned short comma_; - // if set, generate a comma after every element is handled -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h deleted file mode 100644 index cd9e446cf54..00000000000 --- a/TAO/TAO_IDL/be_include/be_sequence.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_sequence.h -// -// = DESCRIPTION -// Extension of class AST_Sequence that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_SEQUENCE_H) -#define BE_SEQUENCE_H - -/* - * BE_Sequence - */ - -class be_typedef; - -// A sequence in OMG IDL does not define a scoping construct just as a struct -// or union or an interface do. However, in the C++ mapping, a sequence becomes -// a class. If the base type of a sequence is another anonymous sequence, then -// the base type is defined in the scope of this sequence. Hence we define -// be_sequence to possess the additional characteristics of a scope -class be_sequence : public virtual AST_Sequence, - public virtual be_scope, - public virtual be_type -{ -public: - enum MANAGED_TYPE - { - MNG_UNKNOWN , - MNG_NONE, - MNG_STRING, - MNG_OBJREF - }; - - // =Operations - - be_sequence (void); - // default constructor - - be_sequence (AST_Expression *v, AST_Type *bt); - // constructor - - virtual int create_name (be_typedef *node=0); - // create a name for ourselves. If we are typedefed, then we get the name of - // the typedef node, else we generate a name for ourselves - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual MANAGED_TYPE managed_type (void); - // return the managed type - - virtual idl_bool unbounded (void) const; - // is this sequence bounded or not - - // =Scope management functions - be_sequence *fe_add_sequence (be_sequence *); - - virtual be_decl *decl (void); - // overridden method on the be_scope class - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_sequence, AST_Sequence, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_sequence); - -protected: - virtual char *gen_name (void); - // helper to create_name - -private: - idl_bool unbounded_; - // whether we are bounded or unbounded - - MANAGED_TYPE mt_; - // our managed type -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_state.h b/TAO/TAO_IDL/be_include/be_state.h deleted file mode 100644 index 48284bd7813..00000000000 --- a/TAO/TAO_IDL/be_include/be_state.h +++ /dev/null @@ -1,296 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_state.h -// -// = DESCRIPTION -// The Code generator state class and its subclasses -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_STATE_H) -#define TAO_BE_STATE_H - -class be_state -{ - // =TITLE - // be_state - // =DESCRIPTION - // Emits code based on current state. This is an abstract base class. The - // task of code generation is handled by subclasses. -public: - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0) = 0; - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef - - virtual ~be_state (void); - // destructor - -protected: - be_state (void); - // constructor -}; - -// ============== subclasses ==================== - -class be_state_struct : public be_state -{ - // =TITLE - // be_state_struct - // =DESCRIPTION - // struct generation -public: - - be_state_struct (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton TAO_BE_STATE_STRUCT; - -class be_state_union_disctypedefn_ch: public be_state -{ - // =TITLE - // be_state_union_disctypedefn_ch - // =DESCRIPTION - // union discriminant defn generation in client header -public: - - be_state_union_disctypedefn_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_DISCTYPEDEFN_CH; - -class be_state_union_disctypedefn_ci: public be_state -{ - // =TITLE - // be_state_union_disctypedefn_ci - // =DESCRIPTION - // union discriminant defn generation in client inline file -public: - - be_state_union_disctypedefn_ci (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_DISCTYPEDEFN_CI; - -class be_state_union_public_ch: public be_state -{ - // =TITLE - // be_state_union_public_ch - // =DESCRIPTION - // union discriminant defn generation in client header file -public: - - be_state_union_public_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_PUBLIC_CH; - -class be_state_union_public_ci: public be_state -{ - // =TITLE - // be_state_union_public_ci - // =DESCRIPTION - // union discriminant defn generation in client inline file -public: - - be_state_union_public_ci (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_PUBLIC_CI; - -class be_state_union_private_ch: public be_state -{ - // =TITLE - // be_state_union_private_ch - // =DESCRIPTION - // union discriminant defn generation in client header file -public: - - be_state_union_private_ch (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_PRIVATE_CH; - -class be_state_union_public_cs: public be_state -{ - // =TITLE - // be_state_union_public_cs - // =DESCRIPTION - // union discriminant defn generation in client stubs file -public: - - be_state_union_public_cs (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_UNION_PUBLIC_CS; - -class be_state_operation: public be_state -{ - // =TITLE - // be_state_operation - // =DESCRIPTION - // operation return type -public: - - be_state_operation (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_OPERATION; - -class be_state_argument: public be_state -{ - // =TITLE - // be_state_argument - // =DESCRIPTION - // argument return type -public: - - be_state_argument (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_ARGUMENT; - -class be_state_typedef: public be_state -{ - // =TITLE - // be_state_typedef - // =DESCRIPTION - // typedef code generation -public: - - be_state_typedef (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_TYPEDEF; - -class be_state_array: public be_state -{ - // =TITLE - // be_state_array - // =DESCRIPTION - // array code generation -public: - - be_state_array (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_ARRAY; - -class be_state_sequence: public be_state -{ - // =TITLE - // be_state_sequence - // =DESCRIPTION - // sequence code generation -public: - - be_state_sequence (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third parameter is - // used for recursive invocation involving a typedef -}; -typedef ACE_Singleton - TAO_BE_STATE_SEQUENCE; - -class be_state_attribute : public be_state -{ - // =TITLE - // be_state_attribute - // =DESCRIPTION - // attribute code generation -public: - be_state_attribute (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third - // parameter is used for recursive invocation involving a typedef -}; - -typedef ACE_Singleton - TAO_BE_STATE_ATTRIBUTE; - -class be_state_exception : public be_state -{ - // =TITLE - // be_state_exception - // =DESCRIPTION - // exception code generation -public: - be_state_exception (void); - // constructor - - virtual int gen_code (be_type *bt, be_decl *d, be_type *type=0); - // code generation for node "d" whose type is "bt". The third - // parameter is used for recursive invocation involving a typedef -}; - -typedef ACE_Singleton - TAO_BE_STATE_EXCEPTION; - -#endif /* end of be_state */ diff --git a/TAO/TAO_IDL/be_include/be_string.h b/TAO/TAO_IDL/be_include/be_string.h deleted file mode 100644 index 983653f4824..00000000000 --- a/TAO/TAO_IDL/be_include/be_string.h +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_string.h -// -// = DESCRIPTION -// Extension of class AST_String that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_STRING_H) -#define BE_STRING_H - -/* - * BE_String - */ -class be_string : public virtual AST_String, - public virtual be_type -{ -public: - // Operations - - be_string (void); - // default constructor - - be_string (AST_Expression *v); - // constructor - - be_string (AST_Expression *v, long wide); - // constructor - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_string, AST_String, be_type); - DEF_NARROW_FROM_DECL (be_string); - -protected: - virtual void compute_tc_name (void); - // overridden method to compute typecode name -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_structure.h b/TAO/TAO_IDL/be_include/be_structure.h deleted file mode 100644 index 52fe361e00e..00000000000 --- a/TAO/TAO_IDL/be_include/be_structure.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_structure.h -// -// = DESCRIPTION -// Extension of class AST_Structure that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_STRUCTURE_H) -#define BE_STRUCTURE_H - -/* - * BE_Structure - */ -class be_structure : public virtual AST_Structure, - public virtual be_scope, - public virtual be_type -{ -public: - // =Operations - - be_structure (void); - // default constructor - - be_structure (UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_structure, AST_Structure, be_scope, be_type); - DEF_NARROW_FROM_DECL (be_structure); - DEF_NARROW_FROM_SCOPE (be_structure); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int member_count_; - // number of members -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_sunsoft.h b/TAO/TAO_IDL/be_include/be_sunsoft.h deleted file mode 100644 index 15b9b9a2568..00000000000 --- a/TAO/TAO_IDL/be_include/be_sunsoft.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_sunsoft.h -// -// = DESCRIPTION -// SunSoft specific backend output generation -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_HELPER_H) -#define TAO_BE_HELPER_H - -class TAO_SunSoft_OutStream : public TAO_OutStream -{ - // =TITLE - // TAO_SunSoft_OutStream - // =DESCRIPTION - // Backend specific to SunSoft AST nodes -public: - TAO_SunSoft_OutStream (void); - // constructor - - ~TAO_SunSoft_OutStream (void); - // destuctor - - virtual TAO_OutStream &print (Identifier *id); - // output the SunSoft IDL Identifier Node - - virtual TAO_OutStream &print (UTL_IdList *idl); - // output the SunSoft IDL UTL_IdList Node which is usually used to maintain a - // scoped name - - virtual TAO_OutStream &print (AST_Expression *expr); - // output the contents of the AST_Expression node -}; - -#endif // if !defined diff --git a/TAO/TAO_IDL/be_include/be_type.h b/TAO/TAO_IDL/be_include/be_type.h deleted file mode 100644 index 56e4acfd5c4..00000000000 --- a/TAO/TAO_IDL/be_include/be_type.h +++ /dev/null @@ -1,106 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_type.h -// -// = DESCRIPTION -// Extension of class AST_Type that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_TYPE_H) -#define BE_TYPE_H - -class TAO_OutStream; - -/* - * BE_Type - */ -class be_type : public virtual AST_Type, - public virtual be_decl -{ -public: - // =Operations - - be_type (void); - // default constructor - - be_type (AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual ~be_type (void); - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void) = 0; - // generate the typecode description - - virtual long tc_size (void) = 0; - // return typecode size - - UTL_ScopedName *tc_name (void); - // return the typecode name - - virtual const char *nested_type_name (be_decl *d, const char *suffix = 0); - // type name of a node used when generating declarations - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // Different types have different mappings as return values, for - // instance interfaces are returned by reference (_ptr), but basic - // types by value. - // Typedefs are tricky, their mapping depend on the real type they - // are aliasing, but the name should be the typedef name, hence - // typedefs delegate on their base type, but pass their nodes down - // so the real name can be generated; hence the parameter. - // This method writes the type as a return value on the stream. - - virtual AST_Decl::NodeType base_node_type (void) const; - // Typedefs are tricky to handle, in many points their mapping - // depend on base type they are aliasing. Since typedefs can be - // recursive simply using "base_type->node_type()" will not work, so - // the most "unaliased" type is needed. - - // Visiting - virtual int accept (be_visitor* visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_type, AST_Type, be_decl); - DEF_NARROW_FROM_DECL (be_type); - -protected: - virtual void compute_tc_name (void); - // computes the fully scoped typecode name - - UTL_ScopedName *tc_name_; - // typecode name - - char *type_name_; - // type name (this uses the ACE NESTED macro) - - char *nested_type_name_; - // for the corresponding method. -}; - -#endif // end of if !defined diff --git a/TAO/TAO_IDL/be_include/be_typedef.h b/TAO/TAO_IDL/be_include/be_typedef.h deleted file mode 100644 index abc9d767b3b..00000000000 --- a/TAO/TAO_IDL/be_include/be_typedef.h +++ /dev/null @@ -1,77 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_typedef.h -// -// = DESCRIPTION -// Extension of class AST_typedef that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_TYPEDEF_H) -#define BE_TYPEDEF_H - -/* - * BE_Typedef - */ -class be_typedef : public virtual AST_Typedef, - public virtual be_type -{ -public: - // =Operations - - be_typedef (void); - // default constructor - - be_typedef (AST_Type *bt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - be_type *primitive_base_type (void); - // return the most primitive base type by traversing the chain of typedefed - // base types - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual AST_Decl::NodeType base_node_type (void) const; - // Return the most "unaliased" type node for the base type (see - // be_type.h). - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_typedef, AST_Typedef, be_type); - DEF_NARROW_FROM_DECL (be_typedef); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union.h b/TAO/TAO_IDL/be_include/be_union.h deleted file mode 100644 index 55757b68030..00000000000 --- a/TAO/TAO_IDL/be_include/be_union.h +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union.h -// -// = DESCRIPTION -// Extension of class AST_Union that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_UNION_H) -#define BE_UNION_H - -/* - * BE_Union - */ -class be_union : public virtual AST_Union, - public virtual be_scope, - public virtual be_type -{ -public: - // =Operations - - be_union (void); - // default constructor - - be_union(AST_ConcreteType *dt, UTL_ScopedName *n, UTL_StrList *p); - // constructor - - virtual int gen_var_defn (void); - // generate the _var class definition - - virtual int gen_var_impl (void); - // generate the implementation for the _var class - - virtual int gen_out_defn (void); - // generate the _out class definition - - virtual int gen_out_impl (void); - // generate the _out implementation - - virtual int gen_typecode (void); - // generate the typecode - - virtual int gen_encapsulation (void); - // encapsulation for parameters - - virtual long tc_size (void); - // return typecode size - - virtual long tc_encap_len (void); - // return length of encapsulation - - virtual int member_count (void); - // return the count of members - - virtual int default_index (void); - // return the default index used - - virtual int write_as_return (TAO_OutStream *stream, - be_type *type); - // write the mapping as a return value on the stream. - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS3 (be_union, AST_Union, be_scope, be_type); - DEF_NARROW_FROM_DECL(be_union); - DEF_NARROW_FROM_SCOPE(be_union); - -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -private: - //=helper - - int compute_member_count (void); - // count the number of members - - int compute_default_index (void); - // count the default index - - int member_count_; - // number of members - - int default_index_; - // default label index (zero based indexing) -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union_branch.h b/TAO/TAO_IDL/be_include/be_union_branch.h deleted file mode 100644 index 349db9ff58f..00000000000 --- a/TAO/TAO_IDL/be_include/be_union_branch.h +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_union_branch.h -// -// = DESCRIPTION -// Extension of class AST_UnionBranch that provides additional means for C++ -// mapping. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (BE_UNION_BRANCH_H) -#define BE_UNION_BRANCH_H - -/* - * BE_UnionBranch - */ -class be_union_branch : public virtual AST_UnionBranch, - public virtual be_decl -{ -public: - // Operations - be_union_branch (void); - // default constructor - - be_union_branch (AST_UnionLabel *lab, AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - // constructor - - virtual int gen_encapsulation (void); - // generate the encapsulation - - virtual long tc_encap_len (void); - // return the total byte length of ourselves represented as an encapsulation - - // Visiting - virtual int accept (be_visitor *visitor); - - // Narrowing - DEF_NARROW_METHODS2 (be_union_branch, AST_UnionBranch, be_decl); - DEF_NARROW_FROM_DECL (be_union_branch); -protected: - virtual int compute_size_type (void); - // compute the size type if it is unknown - -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_union_label.h b/TAO/TAO_IDL/be_include/be_union_label.h deleted file mode 100644 index 311e6b94dc9..00000000000 --- a/TAO/TAO_IDL/be_include/be_union_label.h +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -#if !defined(BE_UNION_LABEL_H) -#define BE_UNION_LABEL_H - -/* - * BE_UnionLabel - */ -class be_union_label : public virtual AST_UnionLabel { -public: - // Operations - be_union_label(); - be_union_label(AST_UnionLabel::UnionLabel ul, AST_Expression *v); - - // Visiting - virtual int accept (be_visitor *visitor); -}; - -#endif diff --git a/TAO/TAO_IDL/be_include/be_visitor.h b/TAO/TAO_IDL/be_include/be_visitor.h deleted file mode 100644 index 4f8f6d9844b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor.h +++ /dev/null @@ -1,157 +0,0 @@ -// -// $Id$ -// - -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor.h -// -// = DESCRIPTION -// The abstract visitor class. The concrete classes are responsible for code -// generation. -// -// = AUTHOR -// Copyright 1994-1995 by Sun Microsystems, Inc. -// and -// Carlos O'Ryan, Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_H) -#define TAO_BE_VISITOR_H - -class be_decl; -class be_scope; -class be_type; -class be_predefined_type; -class be_module; -class be_interface; -class be_interface_fwd; -class be_structure; -class be_exception; -class be_expression; -class be_enum; -class be_operation; -class be_field; -class be_argument; -class be_attribute; -class be_union; -class be_union_branch; -class be_union_label; -class be_constant; -class be_enum_val; -class be_array; -class be_sequence; -class be_string; -class be_typedef; -class be_root; -class be_native; - -class be_visitor_context; -class TAO_OutStream; - -class be_visitor -{ - // - // = TITLE - // Base class for visitors. - // - // = DESCRIPTION - // To implement code generation we use the "Visitor Pattern", this - // is the abstract "Visitor". - // The "visit" methods are not pure virtual to facilitate the - // implementation of simple visitors that only override a few. - // -public: - virtual ~be_visitor (void); - - virtual int visit_decl (be_decl *d); - // visit a decl node - - virtual int visit_scope (be_scope *node); - // visit the scope - - virtual int visit_type (be_type *node); - // visit the type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit the predefined type - - virtual int visit_module (be_module *node); - // visit module - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_exception (be_exception *node); - // visit exception - - virtual int visit_expression (be_expression *node); - // visit expression - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_operation (be_operation *node); - // visit an operation - - virtual int visit_field (be_field *node); - // visit a field - - virtual int visit_argument (be_argument *node); - // visit argument - - virtual int visit_attribute (be_attribute *node); - // visit an attribute - - virtual int visit_union (be_union *node); - // visit union - - virtual int visit_union_branch (be_union_branch *node); - // visit union branch - - virtual int visit_union_label (be_union_label *node); - // visit union label - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum_val (be_enum_val *node); - // visit enum val - - virtual int visit_array (be_array *node); - // visit an array - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_string (be_string *node); - // visit a string - - virtual int visit_typedef (be_typedef *node); - // visit a typedef - - virtual int visit_root (be_root *node); - // visit a root - - virtual int visit_native (be_native *node); - // visit a native - -protected: - be_visitor (void); - // constructor is protected - -}; - -#endif // TAO_BE_VISITOR_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument.h b/TAO/TAO_IDL/be_include/be_visitor_argument.h deleted file mode 100644 index 6b4a6c0ed63..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_args.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. These are used for the -// interpretive styled stubs and skeletons -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O' Ryan -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_H) -#define _BE_VISITOR_ARGUMENT_H - -#include "be_visitor_decl.h" -#include "be_visitor_argument/argument.h" -#include "be_visitor_argument/arglist.h" -#include "be_visitor_argument/pre_docall_cs.h" -#include "be_visitor_argument/docall_cs.h" -#include "be_visitor_argument/post_docall_cs.h" -#include "be_visitor_argument/vardecl_ss.h" -#include "be_visitor_argument/pre_upcall_ss.h" -#include "be_visitor_argument/upcall_ss.h" -#include "be_visitor_argument/post_upcall_ss.h" -#include "be_visitor_argument/marshal_ss.h" -#include "be_visitor_argument/post_marshal_ss.h" - -#endif /* _BE_VISITOR_ARGUMENT_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h b/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h deleted file mode 100644 index 7042280a22e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/arglist.h +++ /dev/null @@ -1,88 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// arglist.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments as parameter lists in the -// operation signature -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_ARGLIST_H_) -#define _BE_VISITOR_ARGUMENT_ARGLIST_H_ - -class be_visitor_args_arglist : public be_visitor_args -{ - // - // = TITLE - // Generates the code for arguments output. - // - // = DESCRIPTION - // At several stages in the code generation a node of type - // "be_operation" is visited, and the code for its arguments must - // be generated. - // Sometimes the argument declarations must be generated (such as - // in the class declaration), other the arguments names (such as - // in method invocations). - // This class implements the declaration output, in other words, - // it outputs both the arguments and their types. - // -public: - be_visitor_args_arglist (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_arglist (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_native (be_native *node); - // visit native node - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_ARGLIST_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h b/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h deleted file mode 100644 index 537811f8b94..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/argument.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// argument.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_ARGUMENT_H_) -#define _BE_VISITOR_ARGUMENT_ARGUMENT_H_ - -class be_visitor_args : public be_visitor_decl -{ - // - // = TITLE - // Generates the code for arguments output. - // - // = DESCRIPTION - // At several stages in the code generation a node of type - // "be_operation" is visited, and the code for its arguments must - // be generated. - // Sometimes the argument declarations must be generated (such as - // in the class declaration), other the arguments names (such as - // in method invocations). - // This class implements some common functionality required across all - // argument visitors - // -public: - be_visitor_args (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args (void); - // destructor - - //= helper - virtual const char *type_name (be_type *type, const char *suffix=0); - // helper that produces either a nested name for header files or full name - // for others - - virtual AST_Argument::Direction direction (void); - // return the direction of the argument node - - virtual int visit_argument (be_argument *node); - // must be overridden by derived classes -}; - -#endif /* _BE_VISITOR_ARGUMENT_ARGUMENT_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h deleted file mode 100644 index 0b876370660..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/docall_cs.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// docall_cs.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments for passing the arguments -// to the docall in the client side stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_DOCALL_CS_H_) -#define _BE_VISITOR_ARGUMENT_DOCALL_CS_H_ - -// ************************************************************ -// class be_visitor_args_docall_cs -// ************************************************************ -class be_visitor_args_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_docall_cs - // - // = DESCRIPTION - // Code to be generated when making the do_static_call - // -public: - be_visitor_args_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_docall_cs (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h deleted file mode 100644 index ea26a66fde3..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/marshal_ss.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// marshal_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// code to pass the arguments to the call to the marshaler/demarshaler -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_MARSHAL_SS_H_) -#define _BE_VISITOR_ARGUMENT_MARSHAL_SS_H_ - -// ************************************************************ -// class be_visitor_args_marshal_ss -// ************************************************************ -class be_visitor_args_marshal_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_marshal_ss - // - // = DESCRIPTION - // Visitor for passing argument to the marshaling/demarshaling routine - // -public: - be_visitor_args_marshal_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_marshal_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_MARSHAL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h deleted file mode 100644 index e292de4fa0a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/post_docall_cs.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_docall_cs.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments for docall post processing -// in the client side stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_) -#define _BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_ - -// ************************************************************ -// class be_visitor_args_post_docall_cs -// ************************************************************ -class be_visitor_args_post_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_docall_cs - // - // = DESCRIPTION - // Code to be generated after the do_static_call is done - // -public: - be_visitor_args_post_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_docall_cs (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type -}; - -#endif /* _BE_VISITOR_ARGUMENT_POST_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h deleted file mode 100644 index 4988ff66ad2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/post_marshal_ss.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_marshal_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// code that does post-marshal processing (cleaning up) for arguments -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H_) -#define _BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H_ - -// ************************************************************ -// class be_visitor_args_post_marshal_ss -// ************************************************************ -class be_visitor_args_post_marshal_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_marshal_ss - // - // = DESCRIPTION - // Visitor for post processing after marshal - // -public: - be_visitor_args_post_marshal_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_marshal_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_POST_MARSHAL_SS_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h deleted file mode 100644 index 7b87ba9bf35..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/post_upcall_ss.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// post_upcall_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// code for post upcall processing of the arguments -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - - -#if !defined (_BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_) -#define _BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_ - -// ************************************************************ -// class be_visitor_args_post_upcall_ss -// ************************************************************ -class be_visitor_args_post_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_post_upcall_ss - // - // = DESCRIPTION - // Visitor for post processing after upcall - // -public: - be_visitor_args_post_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_post_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_POST_UPCALL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h deleted file mode 100644 index f5238423590..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_docall_cs.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// pre_docall_cs.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments for pre docall processing -// in client side stub that uses interpretive marshaling. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_) -#define _BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_ - -// ************************************************************ -// class be_visitor_args_pre_docall_cs -// ************************************************************ -class be_visitor_args_pre_docall_cs : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_docall_cs - // - // = DESCRIPTION - // Code to be generated when making the do_static_call - // -public: - be_visitor_args_pre_docall_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_pre_docall_cs (void); - // destructor - - virtual int void_return_type (void); - // return true if the operation return type is void - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_PRE_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h deleted file mode 100644 index 24bf3e88054..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/pre_upcall_ss.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// pre_upcall_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// pre upcall processing of arguments in the server-side skeleton. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_) -#define _BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_ - -// ************************************************************ -// class be_visitor_args_pre_upcall_ss -// ************************************************************ -class be_visitor_args_pre_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_upcall_ss - // - // = DESCRIPTION - // Visitor for passing argument to the upcall - // -public: - be_visitor_args_pre_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_pre_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_PRE_UPCALL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h deleted file mode 100644 index 5bd504fcded..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/upcall_ss.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// upcall_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// passing of arguments to the upcall. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_UPCALL_SS_H_) -#define _BE_VISITOR_ARGUMENT_UPCALL_SS_H_ - -// ************************************************************ -// class be_visitor_args_upcall_ss -// ************************************************************ -class be_visitor_args_upcall_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_upcall_ss - // - // = DESCRIPTION - // Visitor for passing argument to the upcall - // -public: - be_visitor_args_upcall_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_upcall_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_UPCALL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h b/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h deleted file mode 100644 index 40018f1f0e2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_argument/vardecl_ss.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// vardecl_ss.h -// -// = DESCRIPTION -// Visitors for generation of code for Arguments. This generates the -// variable declartion for the argument in the server-sde skeleton -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARGUMENT_VARDECL_SS_H_) -#define _BE_VISITOR_ARGUMENT_VARDECL_SS_H_ - -// ************************************************************ -// class be_visitor_args_vardecl_ss -// ************************************************************ -class be_visitor_args_vardecl_ss : public be_visitor_args -{ - // - // = TITLE - // be_visitor_args_vardecl_ss - // - // = DESCRIPTION - // Visitor for variable declaration for argument - // -public: - be_visitor_args_vardecl_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_args_vardecl_ss (void); - // destructor - - virtual int visit_argument (be_argument *node); - // visit the argument node - - // =visit all the nodes that can be the types for the argument - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_ARGUMENT_VARDECL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array.h b/TAO/TAO_IDL/be_include/be_visitor_array.h deleted file mode 100644 index 2f461c49cd4..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array.h +++ /dev/null @@ -1,34 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_array.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ARRAY_H) -#define TAO_BE_VISITOR_ARRAY_H - -#include "be_visitor_decl.h" -// generic visitor -#include "be_visitor_array/array.h" -// concrete visitors -#include "be_visitor_array/array_ch.h" -#include "be_visitor_array/array_ci.h" -#include "be_visitor_array/array_cs.h" -#include "be_visitor_array/any_op_ch.h" -#include "be_visitor_array/any_op_cs.h" - -#endif /* TAO_BE_VISITOR_ARRAY_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_array/any_op_ch.h deleted file mode 100644 index dffce321f77..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/any_op_ch.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays in client header. This one -// generates the Any operators. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_ANY_OP_CH_H_) -#define _BE_VISITOR_ARRAY_ANY_OP_CH_H_ - -// ************************************************************ -// class be_visitor_array_any_op_ch -// ************************************************************ - -class be_visitor_array_any_op_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_array_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for array that generates the Any operator - // declarations - // - -public: - be_visitor_array_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_array_any_op_ch (void); - // destructor - - virtual int visit_array (be_array *node); - // visit array - -}; - -#endif /* _BE_VISITOR_ARRAY_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_array/any_op_cs.h deleted file mode 100644 index fc3c814c0d6..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/any_op_cs.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays in client stubs. This one -// generates the Any operators. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_ANY_OP_CS_H_) -#define _BE_VISITOR_ARRAY_ANY_OP_CS_H_ - -// ************************************************************ -// class be_visitor_array_cs -// ************************************************************ - -class be_visitor_array_any_op_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_array_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for array that generates the Any operator - // implementations - // - -public: - be_visitor_array_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_array_any_op_cs (void); - // destructor - - virtual int visit_array (be_array *node); - // visit array - -}; - -#endif /* _BE_VISITOR_ARRAY_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/array.h b/TAO/TAO_IDL/be_include/be_visitor_array/array.h deleted file mode 100644 index 0a9510ce383..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/array.h +++ /dev/null @@ -1,84 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_ARRAY_H_) -#define _BE_VISITOR_ARRAY_ARRAY_H_ - -// ************************************************************ -// class be_visitor_array -// ************************************************************ - -class be_visitor_array : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_array - // - // = DESCRIPTION - // This is a generic visitor for arrays - // - // -public: - be_visitor_array (be_visitor_context *ctx); - // Constructor - - ~be_visitor_array (void); - // destructor - - virtual int visit_array (be_array *); - // visit the array node - - // = Visitor methods on array types - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_interface (be_interface *node); - // visit an interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit an interface forward node - - virtual int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - virtual int visit_sequence (be_sequence *node); - // visit sequence - - virtual int visit_string (be_string *node); - // visit string - - virtual int visit_structure (be_structure *node); - // visit structure - - virtual int visit_typedef (be_typedef *node); - // visit typedef - - virtual int visit_union (be_union *node); - // visit union - -protected: - - int visit_node (be_type *); - // helper that does the common job - -}; - -#endif /* _BE_VISITOR_ARRAY_ARRAY_H_*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/array_ch.h b/TAO/TAO_IDL/be_include/be_visitor_array/array_ch.h deleted file mode 100644 index 7a859d85527..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/array_ch.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_ch.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays in client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_CH_H_) -#define _BE_VISITOR_ARRAY_CH_H_ - -// ************************************************************ -// class be_visitor_array_ch -// ************************************************************ - -class be_visitor_array_ch : public be_visitor_array -{ - // - // = TITLE - // be_visitor_array_ch - // - // = DESCRIPTION - // Code to be generated for arrays in the client header file - // -public: - be_visitor_array_ch (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_array_ch (void); - // destructor - - virtual int visit_array (be_array *node); - // visit the array node - -}; - -#endif /* _BE_VISITOR_ARRAY_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/array_ci.h b/TAO/TAO_IDL/be_include/be_visitor_array/array_ci.h deleted file mode 100644 index 3cb5f06cb6d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/array_ci.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_ci.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays in client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_CI_H_) -#define _BE_VISITOR_ARRAY_CI_H_ - -// ************************************************************ -// class be_visitor_array_ci -// ************************************************************ - -class be_visitor_array_ci : public be_visitor_array -{ - // - // = TITLE - // be_visitor_array_ci - // - // = DESCRIPTION - // Code to be generated for arrays in the client inline file - // -public: - be_visitor_array_ci (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_array_ci (void); - // destructor - - virtual int visit_array (be_array *node); - // visit the array node - -}; - -#endif /* _BE_VISITOR_ARRAY_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h b/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h deleted file mode 100644 index 101ce40ce31..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_array/array_cs.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// array_cs.h -// -// = DESCRIPTION -// Visitors for generation of code for Arrays in client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ARRAY_CS_H_) -#define _BE_VISITOR_ARRAY_CS_H_ - -// ************************************************************ -// class be_visitor_array_cs -// ************************************************************ - -class be_visitor_array_cs : public be_visitor_array -{ - // - // = TITLE - // be_visitor_array_cs - // - // = DESCRIPTION - // Code to be generated for arrays in the client stub file - // -public: - be_visitor_array_cs (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_array_cs (void); - // destructor - - virtual int visit_array (be_array *node); - // visit the array node - -}; - -#endif /* _BE_VISITOR_ARRAY_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_attribute.h b/TAO/TAO_IDL/be_include/be_visitor_attribute.h deleted file mode 100644 index 0e9fb275ae6..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_attribute.h +++ /dev/null @@ -1,29 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_attribute.h -// -// = DESCRIPTION -// Concrete visitor for the Attribute class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ATTRIBUTE_H) -#define TAO_BE_VISITOR_ATTRIBUTE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" -#include "be_visitor_attribute/attribute.h" - -#endif diff --git a/TAO/TAO_IDL/be_include/be_visitor_attribute/attribute.h b/TAO/TAO_IDL/be_include/be_visitor_attribute/attribute.h deleted file mode 100644 index c330de69537..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_attribute/attribute.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// attribute.h -// -// = DESCRIPTION -// Visitor for the Attribute class. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ATTRIBUTE_ATTRIBUTE_H) -#define _BE_VISITOR_ATTRIBUTE_ATTRIBUTE_H - -// ************************************************************ -// Attribute visitor -// ************************************************************ - -class be_visitor_attribute : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_attribute - // - // = DESCRIPTION - // This is a concrete visitor to generate code for attributes. We have one - // class for mapping into the client and server. - // - // -public: - be_visitor_attribute (be_visitor_context *ctx); - // constructor - - ~be_visitor_attribute (void); - // destructor - - virtual int visit_attribute (be_attribute *node); - // visit attribute. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_ATTRIBUTE_ATTRIBUTE_H*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_constant.h b/TAO/TAO_IDL/be_include/be_visitor_constant.h deleted file mode 100644 index 4bd864c7aa3..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_constant.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_constant.h -// -// = DESCRIPTION -// Concrete visitor for the constant class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_CONSTANT_H) -#define TAO_BE_VISITOR_CONSTANT_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" -#include "be_visitor_constant/constant_ch.h" -#include "be_visitor_constant/constant_cs.h" - -#endif // TAO_BE_VISITOR_CONSTANT_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_constant/constant_ch.h b/TAO/TAO_IDL/be_include/be_visitor_constant/constant_ch.h deleted file mode 100644 index 3d6113ddbd6..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_constant/constant_ch.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// constant_ch.h -// -// = DESCRIPTION -// Concrete visitor for the constant class generating code in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_CONSTANT_CONSTANT_CH_H_) -#define _BE_VISITOR_CONSTANT_CONSTANT_CH_H_ - -class be_visitor_constant_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_constant_ch - // - // = DESCRIPTION - // This is the visitor for constant for the header file - // - // -public: - be_visitor_constant_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_constant_ch (void); - // destructor - - virtual int visit_constant (be_constant *node); - // visit constant. - -}; - -#endif /* _BE_VISITOR_CONSTANT_CONSTANT_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_constant/constant_cs.h b/TAO/TAO_IDL/be_include/be_visitor_constant/constant_cs.h deleted file mode 100644 index 104614536a1..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_constant/constant_cs.h +++ /dev/null @@ -1,54 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// constant_cs.h -// -// = DESCRIPTION -// Concrete visitor for the constant class generating code in the client stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_CONSTANT_CONSTANT_CS_H_) -#define _BE_VISITOR_CONSTANT_CONSTANT_CS_H_ - -class be_visitor_constant_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_constant_cs - // - // = DESCRIPTION - // This is the visitor for constant for the impl file - // - // -public: - be_visitor_constant_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_constant_cs (void); - // destructor - - virtual int visit_constant (be_constant *node); - // visit constant - - // = special methods - - virtual int gen_nested_namespace_begin (be_module *node); - // generate the nested namespace begins - - virtual int gen_nested_namespace_end (be_module *node); - // generate the nested namespace ends -}; - -#endif /* _BE_VISITOR_CONSTANT_CONSTANT_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_context.h b/TAO/TAO_IDL/be_include/be_visitor_context.h deleted file mode 100644 index 5896f2dd892..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_context.h +++ /dev/null @@ -1,229 +0,0 @@ -// -// $Id$ -// - -/* -*- C++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_context.h -// -// = DESCRIPTION -// This class serves to provide all the necessary context information to the -// visitor as it generates code. This may include the scope inside which the -// code is generated, the output file that is being used, and others. This -// context information will be passed to the abstract/concrete visitor -// factory which in turn will use it to construct the right visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_CONTEXT_H) -#define TAO_BE_VISITOR_CONTEXT_H - -class be_visitor_context -{ -public: - be_visitor_context (void); - // default constructor - - be_visitor_context (const be_visitor_context &ctx); - // default constructor - - ~be_visitor_context (void); - // destructor - - be_visitor_context &operator= (const be_visitor_context &ctx); - // assignment operator - - // =helpers - - void reset (void); - // reset the context - - void stream (TAO_OutStream *os); - // set the output stream - - TAO_OutStream *stream (void); - // get the stream - - void scope (be_decl *scope); - // set the scope - - be_decl *scope (void); - // get the scope in which code will be generated - - void node (be_decl *node); - // current node being visited - - be_decl *node (void); - // node being visited - - void state (TAO_CodeGen::CG_STATE); - // code generation state - - TAO_CodeGen::CG_STATE state (void); - // return the code generation state - - void alias (be_typedef *node); - // set the alias node (if any) - - be_typedef *alias (void); - // return the aliased node (if any) - - void tdef (be_typedef *node); - // set the typedef node (if any) - - be_typedef *tdef (void); - // return the typedef node (if any) - - void attribute (be_attribute *attr); - // set the attribute node if any - - be_attribute *attribute (void); - // get the attribute node - - void exception (idl_bool); - // is it the special ctor for exceptions? - - idl_bool exception (void); - // is it the special ctor for exceptions? - - void comma (idl_bool); - // scope supoorts generation of comma after each element - - idl_bool comma (void); - // are we supposed to generate a comma? - - // = helpers - - // visitors may need the actual type of the node stored in this context. We - // could have kept separate nodes but that would have increased the size of - // the context class by a large extent. So we will rely on the - // "narrow_from_decl" approach - - // two types of helpers are provided here. One of them returns the node as - // the desired actual type. The other returns the scope as the desired type. - - be_argument *be_node_as_argument (void); - // return the node as argument if possible - - be_array *be_node_as_array (void); - // return the node as array if possible - - be_attribute *be_node_as_attribute (void); - // return the node as attribute if possible - - be_constant *be_node_as_constant (void); - // return the node as constant if possible - - be_enum *be_node_as_enum (void); - // return the node as enum if possible - - be_enum_val *be_node_as_enum_val (void); - // return the node as enum_val if possible - - be_exception *be_node_as_exception (void); - // return the node as exception if possible - - be_field *be_node_as_field (void); - // return the node as field if possible - - be_interface *be_node_as_interface (void); - // return the node as interface if possible - - be_interface_fwd *be_node_as_interface_fwd (void); - // return the node as interface_fwd if possible - - be_module *be_node_as_module (void); - // return the node as module if possible - - be_operation *be_node_as_operation (void); - // return the node as operation if possible - - be_predefined_type *be_node_as_predefined_type (void); - // return the node as predefined_type if possible - - be_root *be_node_as_root (void); - // return the node as root if possible - - be_sequence *be_node_as_sequence (void); - // return the node as sequence if possible - - be_string *be_node_as_string (void); - // return the node as string if possible - - be_structure *be_node_as_structure (void); - // return the node as structure if possible - - be_typedef *be_node_as_typedef (void); - // return the node as typedef if possible - - be_union *be_node_as_union (void); - // return the node as union if possible - - be_union_branch *be_node_as_union_branch (void); - // return the node as union_branch if possible - - // for scope - - be_enum *be_scope_as_enum (void); - // return the scope as enum if possible - - be_exception *be_scope_as_exception (void); - // return the scope as exception if possible - - be_interface *be_scope_as_interface (void); - // return the scope as interface if possible - - be_module *be_scope_as_module (void); - // return the scope as module if possible - - be_operation *be_scope_as_operation (void); - // return the scope as operation if possible - - be_root *be_scope_as_root (void); - // return the scope as root if possible - - be_structure *be_scope_as_structure (void); - // return the scope as structure if possible - - be_union *be_scope_as_union (void); - // return the scope as union if possible - -private: - TAO_CodeGen::CG_STATE state_; - // code generation state - - TAO_OutStream *os_; - // current output stream - - be_decl *scope_; - // current scope in which code is generated - - be_decl *node_; - // current node - - be_typedef *alias_; - // aliased node used as a scoped name to define IDL types. - - be_typedef *tdef_; - // typedef node - - be_attribute *attr_; - // attribute node stored here while generating its code - - idl_bool exception_; - // is it the special ctor for exceptions? - - idl_bool comma_; - // whether scope should generate a comma after every element -}; - - -#endif /* BE_VISITOR_CONTEXT_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_decl.h b/TAO/TAO_IDL/be_include/be_visitor_decl.h deleted file mode 100644 index 4c8f575cacd..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_decl.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_decl.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Decl" node -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_DECL_H) -#define TAO_BE_VISITOR_DECL_H - -#include "be_visitor.h" - -class be_visitor_decl : public be_visitor -{ - // - // = TITLE - // be_visitor_decl - // - // = DESCRIPTION - // This is a concrete visitor for the be_decl node. Its only purpose is to - // maintain state information for the derived visitor - // -public: - be_visitor_decl (be_visitor_context *ctx); - // constructor - - ~be_visitor_decl (void); - // destructor - -protected: - // using a protected mechanism will allow derived visitors to access this - // information - - be_visitor_context *ctx_; - // any context information required by the visitor -}; - - -#endif // TAO_BE_VISITOR_DECL_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum.h b/TAO/TAO_IDL/be_include/be_visitor_enum.h deleted file mode 100644 index 070cceda0b0..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_enum.h -// -// = DESCRIPTION -// Concrete visitor for the enum class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ENUM_H) -#define TAO_BE_VISITOR_ENUM_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" -#include "be_visitor_enum/enum_ch.h" -#include "be_visitor_enum/enum_cs.h" -#include "be_visitor_enum/any_op_ch.h" -#include "be_visitor_enum/any_op_cs.h" - -#endif /* TAO_BE_VISITOR_ENUM_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_ch.h deleted file mode 100644 index 469e661bb2c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_ch.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for Enums generating code for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ENUM_ANY_OP_CH_H_) -#define _BE_VISITOR_ENUM_ANY_OP_CH_H_ - -class be_visitor_enum_any_op_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for enum that generates the Any operator - // declarations - // - -public: - be_visitor_enum_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_enum_any_op_ch (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit enum -}; - -#endif /* _BE_VISITOR_ENUM_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_cs.h deleted file mode 100644 index aab50eb6305..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum/any_op_cs.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Concrete visitor for Enums generating code for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ENUM_ANY_OP_CS_H_) -#define _BE_VISITOR_ENUM_ANY_OP_CS_H_ - -class be_visitor_enum_any_op_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for enum that generates the Any operator - // implementations - // - -public: - be_visitor_enum_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_enum_any_op_cs (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit enum -}; - -#endif /* _BE_VISITOR_ENUM_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum/enum_ch.h b/TAO/TAO_IDL/be_include/be_visitor_enum/enum_ch.h deleted file mode 100644 index bd1effe5e0e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum/enum_ch.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// enum_ch.h -// -// = DESCRIPTION -// Concrete visitor for Enums generating code in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ENUM_ENUM_CH_H_) -#define _BE_VISITOR_ENUM_ENUM_CH_H_ - -class be_visitor_enum_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_ch - // - // = DESCRIPTION - // This is the base visitor for enum for the header file - // - // -public: - be_visitor_enum_ch (be_visitor_context *ctx); - // conenumor - - ~be_visitor_enum_ch (void); - // deenumor - - virtual int visit_enum (be_enum *node); - // visit enum. - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_enum_val (be_enum_val *node); - // visit enum_val - - // = helper - - virtual int post_process (void); - // generate a comma after each element is processed -}; - -#endif /* _BE_VISITOR_ENUM_ENUM_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_enum/enum_cs.h b/TAO/TAO_IDL/be_include/be_visitor_enum/enum_cs.h deleted file mode 100644 index f1684ff1d01..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_enum/enum_cs.h +++ /dev/null @@ -1,47 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// enum_cs.h -// -// = DESCRIPTION -// Concrete visitor for Enums generating code in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ENUM_ENUM_CS_H_) -#define _BE_VISITOR_ENUM_ENUM_CS_H_ - -class be_visitor_enum_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_enum_cs - // - // = DESCRIPTION - // This is the visitor for enum for the impl file - // - // -public: - be_visitor_enum_cs (be_visitor_context *ctx); - // conenumor - - ~be_visitor_enum_cs (void); - // deenumor - - virtual int visit_enum (be_enum *node); - // visit enum and generate the typecode - -}; - -#endif /* _BE_VISITOR_ENUM_ENUM_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception.h b/TAO/TAO_IDL/be_include/be_visitor_exception.h deleted file mode 100644 index 7d5069ddc63..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_exception.h -// -// = DESCRIPTION -// Concrete visitor for the Exception class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_EXCEPTION_H) -#define TAO_BE_VISITOR_EXCEPTION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" -#include "be_visitor_exception/exception.h" -#include "be_visitor_exception/exception_ch.h" -#include "be_visitor_exception/exception_ci.h" -#include "be_visitor_exception/exception_cs.h" -#include "be_visitor_exception/ctor.h" -#include "be_visitor_exception/ctor_assign.h" -#include "be_visitor_exception/any_op_ch.h" -#include "be_visitor_exception/any_op_cs.h" - -#endif /* TAO_BE_VISITOR_EXCEPTION_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_ch.h deleted file mode 100644 index 6ad35719449..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_ch.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation of Any operator in client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_ANY_OP_CH_H_) -#define _BE_VISITOR_EXCEPTION_ANY_OP_CH_H_ - -class be_visitor_exception_any_op_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_exception_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for exception that generates the Any operator - // declarations - // - -public: - be_visitor_exception_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_exception_any_op_ch (void); - // destructor - - virtual int visit_exception (be_exception *node); - // visit exception - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_EXCEPTION_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_cs.h deleted file mode 100644 index dc96479b918..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/any_op_cs.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation of Any operator in client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_ANY_OP_CS_H_) -#define _BE_VISITOR_EXCEPTION_ANY_OP_CS_H_ - -class be_visitor_exception_any_op_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_exception_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for exception that generates the Any operator - // implementations - // - -public: - be_visitor_exception_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_exception_any_op_cs (void); - // destructor - - virtual int visit_exception (be_exception *node); - // visit exception - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_EXCEPTION_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/ctor.h b/TAO/TAO_IDL/be_include/be_visitor_exception/ctor.h deleted file mode 100644 index ac774c1388e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/ctor.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// ctor.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation for the special constructor for exceptions -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_CTOR_H_) -#define _BE_VISITOR_EXCEPTION_CTOR_H_ - -class be_visitor_exception_ctor : public be_visitor_scope -{ - // =TITLE - // be_visitor_exception_ctor - // - // =DESCRIPTION - // generation of the special constructor -public: - be_visitor_exception_ctor (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ctor (void); - // dtor - - virtual int post_process (void); - // post processing after each element - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - - virtual int visit_field (be_field *node); - // visit the argument node - - // =visit all the nodes that can be the types for the field - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_EXCEPTION_CTOR_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/ctor_assign.h b/TAO/TAO_IDL/be_include/be_visitor_exception/ctor_assign.h deleted file mode 100644 index e40610ac2fb..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/ctor_assign.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// ctor_assign.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation for the special constructor and assignment operator -// for exceptions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_CTOR_ASSIGN_H_) -#define _BE_VISITOR_EXCEPTION_CTOR_ASSIGN_H_ - -class be_visitor_exception_ctor_assign : public be_visitor_scope -{ - // =TITLE - // be_visitor_exception_ctor_assign - // - // =DESCRIPTION - // generation of the assignment statements in -public: - be_visitor_exception_ctor_assign (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ctor_assign (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit all the nodes that can be the types for the field - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_EXCEPTION_CTOR_ASSIGN_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/exception.h b/TAO/TAO_IDL/be_include/be_visitor_exception/exception.h deleted file mode 100644 index f7e4bab2d26..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/exception.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// This is the generic (common) visitor for all exceptions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_EXCEPTION_H_) -#define _BE_VISITOR_EXCEPTION_EXCEPTION_H_ - -class be_visitor_exception : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_exception - // - // = DESCRIPTION - // This is the base visitor for exception - // - // -public: - be_visitor_exception (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_EXCEPTION_EXCEPTION_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ch.h b/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ch.h deleted file mode 100644 index 9211782a96e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ch.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ch.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation in client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_EXCEPTION_CH_H_) -#define _BE_VISITOR_EXCEPTION_EXCEPTION_CH_H_ - -class be_visitor_exception_ch : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for exception - // - // -public: - be_visitor_exception_ch (be_visitor_context *ctx); - // constructureor - - ~be_visitor_exception_ch (void); - // destructureor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_EXCEPTION_EXCEPTION_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ci.h b/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ci.h deleted file mode 100644 index 67ca3e1c449..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ci.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ci.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation in client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_EXCEPTION_CI_H_) -#define _BE_VISITOR_EXCEPTION_EXCEPTION_CI_H_ - -class be_visitor_exception_ci : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for exception - // - // -public: - be_visitor_exception_ci (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ci (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. - -}; - -#endif /* _BE_VISITOR_EXCEPTION_EXCEPTION_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_cs.h b/TAO/TAO_IDL/be_include/be_visitor_exception/exception_cs.h deleted file mode 100644 index 0b1edd4cc6c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_cs.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_cs.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation in client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_EXCEPTION_CS_H_) -#define _BE_VISITOR_EXCEPTION_EXCEPTION_CS_H_ - -class be_visitor_exception_cs : public be_visitor_exception -{ - // - // = TITLE - // be_visitor_exception_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for exception - // - // -public: - be_visitor_exception_cs (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_cs (void); - // dtor - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_EXCEPTION_EXCEPTION_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ctor.h b/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ctor.h deleted file mode 100644 index 94ad9534889..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_exception/exception_ctor.h +++ /dev/null @@ -1,83 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exception_ctor.h -// -// = DESCRIPTION -// Visitor for Exceptions. -// For code generation for the special constructor for exceptions -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_EXCEPTION_EXCEPTION_CTOR_H_) -#define _BE_VISITOR_EXCEPTION_EXCEPTION_CTOR_H_ - -class be_visitor_exception_ctor : public be_visitor_scope -{ - // =TITLE - // be_visitor_exception_ctor - // - // =DESCRIPTION - // generation of the special constructor -public: - be_visitor_exception_ctor (be_visitor_context *ctx); - // ctor - - ~be_visitor_exception_ctor (void); - // dtor - - virtual int post_process (void); - // post processing after each element - - virtual int visit_exception (be_exception *node); - // visit exception. We provide code for this method in the derived class - - virtual int visit_field (be_field *node); - // visit the argument node - - // =visit all the nodes that can be the types for the field - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit the enum node - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - - virtual int visit_typedef (be_typedef *node); - // visit the typedef type - -}; - -#endif /* _BE_VISITOR_EXCEPTION_EXCEPTION_CTOR_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_field.h b/TAO/TAO_IDL/be_include/be_visitor_field.h deleted file mode 100644 index e1af83716e5..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_field.h +++ /dev/null @@ -1,30 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_field.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_FIELD_H) -#define TAO_BE_VISITOR_FIELD_H - -#include "be_visitor_decl.h" - -#include "be_visitor_field/field_ch.h" -#include "be_visitor_field/field_ci.h" -#include "be_visitor_field/field_cs.h" - -#endif /* TAO_BE_VISITOR_FIELD_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_field/field_ch.h b/TAO/TAO_IDL/be_include/be_visitor_field/field_ch.h deleted file mode 100644 index aa72105c520..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_field/field_ch.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_ch.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// This generates code for structure members in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_FIELD_CH_H_) -#define _BE_VISITOR_FIELD_CH_H_ - -class be_visitor_field_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client header. - // -public: - be_visitor_field_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_ch (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_FIELD_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_field/field_ci.h b/TAO/TAO_IDL/be_include/be_visitor_field/field_ci.h deleted file mode 100644 index 0e2c3797a5e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_field/field_ci.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_ci.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// This generates code for structure members in the client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_FIELD_CI_H_) -#define _BE_VISITOR_FIELD_CI_H_ - -class be_visitor_field_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_ci - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client inline - // file - // -public: - be_visitor_field_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_ci (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be and for - // which inline code must be generated - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_FIELD_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_field/field_cs.h b/TAO/TAO_IDL/be_include/be_visitor_field/field_cs.h deleted file mode 100644 index 7edaae3b4c2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_field/field_cs.h +++ /dev/null @@ -1,68 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// field_cs.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Field" node -// This generates code for structure members in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_FIELD_CS_H_) -#define _BE_VISITOR_FIELD_CS_H_ - -class be_visitor_field_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_field_cs - // - // = DESCRIPTION - // This is a concrete visitor for the be_field node for the client stubs - // file - // -public: - be_visitor_field_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_field_cs (void); - // destructor - - virtual int visit_field (be_field *node); - // visit the field node - - // =visit operations on all possible data types that a field can be and impl - // code must be generated - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_FIELD_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface.h b/TAO/TAO_IDL/be_include/be_visitor_interface.h deleted file mode 100644 index 4aac0f9050a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface.h +++ /dev/null @@ -1,40 +0,0 @@ - -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface.h -// -// = DESCRIPTION -// Concrete visitor for the Interface class -// -// = AUTHOR -// Carlos O'Ryan and Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_INTERFACE_H) -#define TAO_BE_VISITOR_INTERFACE_H - -#include "be_visitor_scope.h" - -#include "be_visitor_interface/interface.h" -#include "be_visitor_interface/interface_ch.h" -#include "be_visitor_interface/interface_ci.h" -#include "be_visitor_interface/interface_cs.h" -#include "be_visitor_interface/interface_sh.h" -#include "be_visitor_interface/interface_si.h" -#include "be_visitor_interface/interface_ss.h" -#include "be_visitor_interface/collocated_sh.h" -#include "be_visitor_interface/collocated_ss.h" -#include "be_visitor_interface/any_op_ch.h" -#include "be_visitor_interface/any_op_cs.h" -#include "be_visitor_interface/tie_sh.h" -#include "be_visitor_interface/tie_si.h" - -#endif /* _BE_VISITOR_INTERFACE_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_ch.h deleted file mode 100644 index 4e635bfd8a3..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_ch.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides code generation for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_ANY_OP_CH_H_) -#define _BE_INTERFACE_ANY_OP_CH_H_ - -class be_visitor_interface_any_op_ch : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for interface that generates the Any operator - // declarations - // - -public: - be_visitor_interface_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_any_op_ch (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit interface -}; - -#endif /* _BE_INTERFACE_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_cs.h deleted file mode 100644 index 012aca9d3f8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/any_op_cs.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides code generation for the Any operators -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_ANY_OP_CS_H_) -#define _BE_INTERFACE_ANY_OP_CS_H_ - -class be_visitor_interface_any_op_cs : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for interface that generates the Any operator - // implementations - // - -public: - be_visitor_interface_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_any_op_cs (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit interface -}; - -#endif /* _BE_INTERFACE_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_sh.h deleted file mode 100644 index a96c5a6701d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_sh.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_sh.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This provides code generation for collocated classes in server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_COLLOCATED_SH_H_) -#define _BE_INTERFACE_COLLOCATED_SH_H_ - -class be_visitor_interface_collocated_sh : public be_visitor_interface -{ - // = TITLE - // Generate the "collocated" class declaration. - -public: - be_visitor_interface_collocated_sh (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_interface_collocated_sh (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit an interface - -}; - -#endif /* _BE_INTERFACE_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_ss.h deleted file mode 100644 index ad49cbb1448..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/collocated_ss.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_ss.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This provides code generation for collocated classes in server skeleton -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_COLLOCATED_SS_H_) -#define _BE_INTERFACE_COLLOCATED_SS_H_ - -class be_visitor_interface_collocated_ss : public be_visitor_interface -{ - // = TITLE - // Generate the "collocated" class declaration. - -public: - be_visitor_interface_collocated_ss (be_visitor_context *ctx); - // constructor - - virtual ~be_visitor_interface_collocated_ss (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit interface - -}; - -#endif /* _BE_INTERFACE_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface.h deleted file mode 100644 index 086c8f1b56b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface.h +++ /dev/null @@ -1,91 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides the generic visitor for interfaces from which others -// will inherit. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_H_) -#define _BE_INTERFACE_INTERFACE_H_ - -// = DESCRIPTION -// Interface code generation is complex, the client stubs require -// two different class and the server also require other two. -// Only one of them includes whatever nested typedefs, exceptions -// and or structures are defined in the interface. -// To break this complexity a different visitor is used for each -// case. -// -// = NOTE -// Visitors were added recently into the compiler, so some -// code is still generated using the old "state oriented" approach; -// notably only the _collocated class is actually generated using -// the visitor, in the other cases (the interface class and the -// skeleton class) we still call back the old code generation -// methods. -// - -class be_visitor_interface : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_interface - // - // = DESCRIPTION - // This is a concrete visitor for interface that abstracts all common tasks - // - -public: - be_visitor_interface (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface (void); - // destructor - - virtual int visit_interface (be_interface *node); - // visit the interface node - - // =visit methods on all elements syntactically valid in a Interface scope - - virtual int visit_attribute (be_attribute *node); - // visit attribute - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_operation (be_operation *node); - // visit operation - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - -}; - -#endif /* _BE_INTERFACE_INTERFACE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ch.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ch.h deleted file mode 100644 index 7dc997f7f15..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ch.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides code generation for interfaces in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_CH_H_) -#define _BE_INTERFACE_INTERFACE_CH_H_ - -// we need derived interface visitors for the client and server header files. For -// the others, they use the default interface visitor - -class be_visitor_interface_ch : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for interface - // - // -public: - be_visitor_interface_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ch (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor - -}; - -#endif /* _BE_INTERFACE_INTERFACE_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ci.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ci.h deleted file mode 100644 index 4eff86b2099..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ci.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides code generation for interfaces in the client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_CI_H_) -#define _BE_INTERFACE_INTERFACE_CI_H_ - -class be_visitor_interface_ci : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for interface - // - // -public: - be_visitor_interface_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ci (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor - -}; - -#endif /* _BE_INTERFACE_INTERFACE_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_cs.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_cs.h deleted file mode 100644 index 7acede89420..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_cs.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides code generation for interfaces in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_CS_H_) -#define _BE_INTERFACE_INTERFACE_CS_H_ - -class be_visitor_interface_cs : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for interface - // - // -public: - be_visitor_interface_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_cs (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_INTERFACE_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_sh.h deleted file mode 100644 index a2f09833147..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_sh.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_sh.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This provides for code generation in the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_SH_H_) -#define _BE_INTERFACE_INTERFACE_SH_H_ - -class be_visitor_interface_sh : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for interface - // - // -public: - be_visitor_interface_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_sh (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_INTERFACE_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h deleted file mode 100644 index e8c7bae245c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_si.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_si.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This provides for code generation in the server inline -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_SI_H_) -#define _BE_INTERFACE_INTERFACE_SI_H_ - -class be_visitor_interface_si : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_si - // - // = DESCRIPTION - // This is a concrete visitor to generate the server inline for interface - // - // -public: - be_visitor_interface_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_si (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_INTERFACE_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h b/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h deleted file mode 100644 index 78c5d48cbab..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/interface_ss.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_ss.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This provides for code generation in the server skeleton -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_SS_H_) -#define _BE_INTERFACE_INTERFACE_SS_H_ - -class be_visitor_interface_ss : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for interface - // - // -public: - be_visitor_interface_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_ss (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_INTERFACE_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/tie_sh.h b/TAO/TAO_IDL/be_include/be_visitor_interface/tie_sh.h deleted file mode 100644 index c9417e04d22..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/tie_sh.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_sh.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides the code generation for TIE classes -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_TIE_SH_H_) -#define _BE_INTERFACE_TIE_SH_H_ - -class be_visitor_interface_tie_sh : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_tie_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for the TIE class - // - // -public: - be_visitor_interface_tie_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_tie_sh (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_TIE_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface/tie_si.h b/TAO/TAO_IDL/be_include/be_visitor_interface/tie_si.h deleted file mode 100644 index 51221dfedc5..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface/tie_si.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_si.h -// -// = DESCRIPTION -// Concrete visitor for the Interface node. -// This one provides the code generation for TIE classes -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_TIE_SI_H_) -#define _BE_INTERFACE_TIE_SI_H_ - -class be_visitor_interface_tie_si : public be_visitor_interface -{ - // - // = TITLE - // be_visitor_interface_tie_si - // - // = DESCRIPTION - // This is a concrete visitor to generate the server inline for operations - // of the TIE class - // - // -public: - be_visitor_interface_tie_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_tie_si (void); - // destructor - - virtual int visit_interface (be_interface *node); - // set the right context and make a visitor -}; - -#endif /* _BE_INTERFACE_TIE_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h deleted file mode 100644 index e139af36707..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -*- C++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_interface_fwd.h -// -// = DESCRIPTION -// Concrete visitor for the interface_fwd class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_INTERFACE_FWD_H) -#define TAO_BE_VISITOR_INTERFACE_FWD_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -#include "be_visitor_interface_fwd/interface_fwd_ch.h" -#include "be_visitor_interface_fwd/interface_fwd_ci.h" - -#endif /* TAO_BE_VISITOR_INTERFACE_FWD_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ch.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ch.h deleted file mode 100644 index 788faa611db..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ch.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_fwd_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Interface Forward node. -// This one provides code generation for interface forward node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_FWD_CH_H_) -#define _BE_INTERFACE_INTERFACE_FWD_CH_H_ - -class be_visitor_interface_fwd_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_interface_fwd_ch - // - // = DESCRIPTION - // This is the visitor for interface_fwd for the header file - // - // -public: - be_visitor_interface_fwd_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_fwd_ch (void); - // destructor - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd. - -}; - -#endif /* _BE_INTERFACE_INTERFACE_FWD_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ci.h b/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ci.h deleted file mode 100644 index a53bd7d7a05..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_interface_fwd/interface_fwd_ci.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// interface_fwd_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Interface Forward node. -// This one provides code generation for interface forward node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_INTERFACE_INTERFACE_FWD_CI_H_) -#define _BE_INTERFACE_INTERFACE_FWD_CI_H_ - -class be_visitor_interface_fwd_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_interface_fwd_ci - // - // = DESCRIPTION - // This is the visitor for interface_fwd for the inline file - // - // -public: - be_visitor_interface_fwd_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_interface_fwd_ci (void); - // destructor - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface_fwd - -}; - -#endif /* _BE_INTERFACE_INTERFACE_FWD_CH_I_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_module.h b/TAO/TAO_IDL/be_include/be_visitor_module.h deleted file mode 100644 index 9ccf934e2f5..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_module.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_MODULE_H) -#define TAO_BE_VISITOR_MODULE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -#include "be_visitor_module/module.h" -// we need derived module visitors for the client and server header files. For -// the others, they use the default module visitor -#include "be_visitor_module/module_ch.h" -#include "be_visitor_module/module_sh.h" -#include "be_visitor_module/any_op.h" - -#endif // TAO_BE_VISITOR_MODULE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_module/any_op.h b/TAO/TAO_IDL/be_include/be_visitor_module/any_op.h deleted file mode 100644 index ab941bc345b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module/any_op.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// This one provides visitors to generate the Any operators for elements in -// the Module's scope. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_MODULE_ANY_OP_H_) -#define _BE_VISITOR_MODULE_ANY_OP_H_ - -class be_visitor_module_any_op : public be_visitor_module -{ - // - // = TITLE - // be_visitor_module_any_op - // - // = DESCRIPTION - // This is a concrete visitor for module that generates the Any operator - // declarations and implementations - // - -public: - be_visitor_module_any_op (be_visitor_context *ctx); - // constructor - - ~be_visitor_module_any_op (void); - // destructor - - virtual int visit_module (be_module *node); - // visit module -}; - -#endif /* _BE_VISITOR_MODULE_ANY_OP_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_module/module.h b/TAO/TAO_IDL/be_include/be_visitor_module/module.h deleted file mode 100644 index 58c4f951cb8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module/module.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// This one provides the generic visitor for the Module node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_MODULE_MODULE_H_) -#define _BE_VISITOR_MODULE_MODULE_H_ - -class be_visitor_module : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_module - // - // = DESCRIPTION - // This is a concrete visitor for module that abstracts all common tasks - // - -public: - be_visitor_module (be_visitor_context *ctx); - // constructor - - ~be_visitor_module (void); - // destructor - - // =visit methods on all elements syntactically valid in a Module scope - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_interface (be_interface *node); - // visit an interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit an interface - - virtual int visit_module (be_module *node); - // visit a module - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - -}; - -#endif /* _BE_VISITOR_MODULE_MODULE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_module/module_ch.h b/TAO/TAO_IDL/be_include/be_visitor_module/module_ch.h deleted file mode 100644 index f001d3e4900..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module/module_ch.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// This provides code generation for the module in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_MODULE_MODULE_CH_H_) -#define _BE_VISITOR_MODULE_MODULE_CH_H_ - -class be_visitor_module_ch : public be_visitor_module -{ - // - // = TITLE - // be_visitor_module_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for module - // - // -public: - be_visitor_module_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_module_ch (void); - // destructor - - virtual int visit_module (be_module *node); - // visit module. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_MODULE_MODULE_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_module/module_sh.h b/TAO/TAO_IDL/be_include/be_visitor_module/module_sh.h deleted file mode 100644 index 0ee2c25379c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_module/module_sh.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// module_sh.h -// -// = DESCRIPTION -// Concrete visitor for the Module class -// This provides code generation for the module in the server header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_MODULE_MODULE_SH_H_) -#define _BE_VISITOR_MODULE_MODULE_SH_H_ - -class be_visitor_module_sh : public be_visitor_module -{ - // - // = TITLE - // be_visitor_module_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for module - // - // -public: - be_visitor_module_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_module_sh (void); - // destructor - - virtual int visit_module (be_module *node); - // visit module. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_MODULE_MODULE_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation.h b/TAO/TAO_IDL/be_include/be_visitor_operation.h deleted file mode 100644 index 0fdcd877f9e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_operation.h -// -// = DESCRIPTION -// Concrete visitor for the Operation class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_OPERATION_H) -#define TAO_BE_VISITOR_OPERATION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" -#include "be_visitor_operation/operation_ch.h" -#include "be_visitor_operation/operation_cs.h" -#include "be_visitor_operation/operation_sh.h" -#include "be_visitor_operation/operation_ss.h" -#include "be_visitor_operation/tie_sh.h" -#include "be_visitor_operation/tie_si.h" -#include "be_visitor_operation/collocated_sh.h" -#include "be_visitor_operation/collocated_ss.h" -#include "be_visitor_operation/arglist.h" -#include "be_visitor_operation/rettype.h" -#include "be_visitor_operation/rettype_vardecl_cs.h" -#include "be_visitor_operation/rettype_pre_docall_cs.h" -#include "be_visitor_operation/rettype_pre_docall_cs.h" -#include "be_visitor_operation/rettype_docall_cs.h" -#include "be_visitor_operation/rettype_post_docall_cs.h" -#include "be_visitor_operation/rettype_return_cs.h" -#include "be_visitor_operation/exceptlist_cs.h" -#include "be_visitor_operation/argument.h" -#include "be_visitor_operation/rettype_vardecl_ss.h" -#include "be_visitor_operation/rettype_assign_ss.h" -#include "be_visitor_operation/rettype_post_upcall_ss.h" -#include "be_visitor_operation/rettype_marshal_ss.h" - -#endif // TAO_BE_VISITOR_OPERATION_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h b/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h deleted file mode 100644 index 42f418a97ed..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/arglist.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// arglist.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the -// operation signature. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_ARGLIST_H_) -#define _BE_VISITOR_OPERATION_ARGLIST_H_ - -// ****************************************************************************** -// Operation visitor for argument list - generates parameters in the signature -// ****************************************************************************** - -class be_visitor_operation_arglist : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operaion_arglist - // - // = DESCRIPTION - // This is a visitor to generate operation argument list - // - // -public: - be_visitor_operation_arglist (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_arglist (void); - // destructor - - int visit_operation (be_operation *node); - // visit the operation - - int visit_argument (be_argument *node); - // visit each argument - -}; - -#endif /* _BE_VISITOR_OPERATION_ARGLIST_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h b/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h deleted file mode 100644 index 6fc51da3ca7..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/argument.h +++ /dev/null @@ -1,57 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// argument.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This is a generic visitor -// that calls visitors for the Argument class. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_ARGUMENT_H_) -#define _BE_VISITOR_OPERATION_ARGUMENT_H_ - -// ************************************************************ -// generic operation visitor for docall, upcall, pre/post -// ************************************************************ - -class be_visitor_operation_argument : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_argument - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_argument (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_argument (void); - // destructor - - int post_process (void); - // stuff to o/p after each element of the scope is handled - - int visit_operation (be_operation *node); - // visit the operation - - int visit_argument (be_argument *node); - // visit argument - -}; - -#endif /* _BE_VISITOR_OPERATION_ARGUMENT_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h deleted file mode 100644 index dc31959e345..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_sh.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_ch.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations for the collocated case -// inside of the servant header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_COLLOCATED_SH_H_) -#define _BE_VISITOR_OPERATION_COLLOCATED_SH_H_ - -// ************************************************************ -// Operation visitor for server header in the collocated class -// ************************************************************ - -class be_visitor_operation_collocated_sh : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_collocated_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for operation - // in the collocated class - // - // -public: - be_visitor_operation_collocated_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_collocated_sh (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation node. - -}; - -#endif /* _BE_VISITOR_OPERATION_COLLOCATED_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h deleted file mode 100644 index 48b7966e9aa..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/collocated_ss.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// collocated_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations for the collocated case -// inside of the servant skeleton -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_COLLOCATED_SS_H_) -#define _BE_VISITOR_OPERATION_COLLOCATED_SS_H_ - -// ***************************************************************** -// Operation visitor for server skeletons for the collocated class -// ***************************************************************** - -class be_visitor_operation_collocated_ss : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for - // operation in the collocated class - // - // -public: - be_visitor_operation_collocated_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_collocated_ss (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation node. - -}; - -#endif /* _BE_VISITOR_OPERATION_COLLOCATED_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h deleted file mode 100644 index 32c9e1c3d22..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/exceptlist_cs.h +++ /dev/null @@ -1,52 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// exceptlist_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the tables -// for the exceptions used by the stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_) -#define _BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_ - -// ****************************************************************************** -// Visitor for generating the exception list -// ****************************************************************************** - -class be_visitor_operation_exceptlist_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operaion_exceptlist_cs - // - // = DESCRIPTION - // This is a visitor to generate operation exception list to be provided to - // the do_static_call - // - // -public: - be_visitor_operation_exceptlist_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_exceptlist_cs (void); - // destructor - - int visit_operation (be_operation *node); - // visit the operation - -}; - -#endif /* _BE_VISITOR_OPERATION_EXCEPTIONLIST_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h deleted file mode 100644 index e039623dd5d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ch.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_ch.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations in client header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_OPERATION_CH_H_) -#define _BE_VISITOR_OPERATION_OPERATION_CH_H_ - -// ************************************************************ -// Operation visitor for client header -// ************************************************************ - -class be_visitor_operation_ch : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for operation - // - // -public: - be_visitor_operation_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_ch (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_OPERATION_OPERATION_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h deleted file mode 100644 index 1228b684e21..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_cs.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations in client stubs -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_OPERATION_CS_H_) -#define _BE_VISITOR_OPERATION_OPERATION_CS_H_ - -// ************************************************************ -// Operation visitor for client stubs -// ************************************************************ - -class be_visitor_operation_cs : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for operation - // - // -public: - be_visitor_operation_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_cs (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. - - virtual int visit_argument (be_argument *node); - // visit argument to generate ParamData entries - - virtual int post_process (void); - // stuff to output after every member of the scope is handled -}; - -#endif /* _BE_VISITOR_OPERATION_OPERATION_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h deleted file mode 100644 index 702a0dc2251..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_sh.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_sh.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations in server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_OPERATION_SH_H_) -#define _BE_VISITOR_OPERATION_OPERATION_SH_H_ - -// ************************************************************ -// Operation visitor for server header -// ************************************************************ - -class be_visitor_operation_sh : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for operation - // - // -public: - be_visitor_operation_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_sh (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_OPERATION_OPERATION_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h deleted file mode 100644 index 14cf41e7863..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/operation_ss.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// operation_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations in server skeletons -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_OPERATION_SS_H_) -#define _BE_VISITOR_OPERATION_OPERATION_SS_H_ - -// ************************************************************ -// Operation visitor for server skeletons -// ************************************************************ - -class be_visitor_operation_ss : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for operation - // - // -public: - be_visitor_operation_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_ss (void); - // destructor - - virtual int visit_operation (be_operation *node); - // visit operation. We provide code for this method in the derived class - - virtual int visit_argument (be_argument *node); - // visit argument to generate ParamData entries - - virtual int post_process (void); - // stuff to output after every member of the scope is handled -}; - -#endif /* _BE_VISITOR_OPERATION_OPERATION_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h deleted file mode 100644 index 9a4fc0a8ac3..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype.h +++ /dev/null @@ -1,81 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the return -// type of the operation -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_H_ - -// *********************************************************************** -// Operation visitor for return types in the signature of the operation -// *********************************************************************** - -class be_visitor_operation_rettype : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a visitor to generate operation return types - // - // -public: - be_visitor_operation_rettype (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_native (be_native *node); - // visit native type - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h deleted file mode 100644 index ff35c744e62..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_assign_ss.h +++ /dev/null @@ -1,80 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_assign_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the -// assignment of the return value of the upcall to the return type variabel -// inside the server-skeleton. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_ - -// *********************************************************************** -// Operation visitor for assignment to return types in an upcall -// *********************************************************************** - -class be_visitor_operation_rettype_assign_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_ch - // - // = DESCRIPTION - // This is a visitor to generate code that assigns to the return type - // variable in the upcall - // - // -public: - be_visitor_operation_rettype_assign_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_assign_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_ASSIGN_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h deleted file mode 100644 index eb3b287ce9c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_docall_cs.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_docall_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the code -// for passing the return type variable to the docall -// made. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_ - -// ************************************************************ -// Operation visitor for passing return variable to do_static_call -// ************************************************************ - -class be_visitor_operation_rettype_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_docall_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h deleted file mode 100644 index b3f95579a6a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_marshal_ss.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_marshal_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the code -// for passing the return type variable to the marshaler. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SSH_ - -// *********************************************************************** -// Operation visitor for passing return type to the marshal/demarshal routine -// inside the server skeleton -// *********************************************************************** - -class be_visitor_operation_rettype_marshal_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_marshal_ss - // - // = DESCRIPTION - // This is a visitor to pass return type to the marshal/demarshal routines - // - // -public: - be_visitor_operation_rettype_marshal_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_marshal_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_MARSHAL_SSH_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h deleted file mode 100644 index e2299617a35..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_docall_cs.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_post_docall_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the code -// for post processing of the return type variable after the docall is -// made. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_ - -// ************************************************************ -// Operation visitor for postprocessing after do_static_call is invoked -// ************************************************************ - -class be_visitor_operation_rettype_post_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_psot_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate any post processing after the do_static_call is - // made - // -public: - be_visitor_operation_rettype_post_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_post_docall_cs (void); - // destructor - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_POST_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h deleted file mode 100644 index 6cfbd7566ed..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_post_upcall_ss.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_post_upcall_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the code -// for post processing of the return type variable after the upcall is -// made. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_ - -// *********************************************************************** -// Operation visitor for post upcall processing of return types -// *********************************************************************** - -class be_visitor_operation_rettype_post_upcall_ss : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_post_upcall_ss - // - // = DESCRIPTION - // This is a visitor for post processing after an upcall - // - // -public: - be_visitor_operation_rettype_post_upcall_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_post_upcall_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_POST_UPCALL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h deleted file mode 100644 index acb296f6ac9..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_pre_docall_cs.h +++ /dev/null @@ -1,73 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_pre_docall_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the code -// for pre processing of the return type variable before the docall is -// made. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_ - -// ************************************************************ -// Operation visitor for preprocessing before do_static_call is invoked -// ************************************************************ - -class be_visitor_operation_rettype_pre_docall_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_pre_docall_cs - // - // = DESCRIPTION - // This is a visitor to generate any pre processing before the do_static_call is - // made - // -public: - be_visitor_operation_rettype_pre_docall_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_pre_docall_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_PRE_DOCALL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h deleted file mode 100644 index ec9b8383342..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_return_cs.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_return_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the return -// statement for returning the return type variable in the client stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_RETURN_CS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_CS_H_ - -// ************************************************************ -// Operation visitor for returning the return val -// ************************************************************ - -class be_visitor_operation_rettype_return_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_return_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_return_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_return_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_RETURN_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h deleted file mode 100644 index ca9b7ba99e7..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_cs.h +++ /dev/null @@ -1,78 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_vardecl_cs.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the return -// type variable declaration in the client side stub. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_ - -// ************************************************************ -// Operation visitor for return type variable declaration -// ************************************************************ - -class be_visitor_operation_rettype_vardecl_cs :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_vardecl_cs - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type - // -public: - be_visitor_operation_rettype_vardecl_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_vardecl_cs (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_VARDECL_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h b/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h deleted file mode 100644 index 57678e6371b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/rettype_vardecl_ss.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// rettype_vardecl_ss.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations. This generates the return -// type variable declaration in the server side skeleton. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_) -#define _BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_ - -// ************************************************************ -// Operation visitor for return type variable declaration in the server -// skeleton -// ************************************************************ - -class be_visitor_operation_rettype_vardecl_ss :public be_visitor_decl -{ - // - // = TITLE - // be_visitor_operation_rettype_vardecl_ss - // - // = DESCRIPTION - // This is a visitor to generate a variable declaration ofr an operation - // return type in the server skeleton - // -public: - be_visitor_operation_rettype_vardecl_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_rettype_vardecl_ss (void); - // destructor - - int visit_array (be_array *node); - // visit an array node - - int visit_enum (be_enum *node); - // visit an enum node - - int visit_interface (be_interface *node); - // visit an interface node - - int visit_interface_fwd (be_interface_fwd *node); - // visit an interface node - - int visit_predefined_type (be_predefined_type *node); - // visit a predefined type node - - int visit_sequence (be_sequence *node); - // visit a sequence node - - int visit_string (be_string *node); - // visit a sequence node - - int visit_structure (be_structure *node); - // visit a structure node - - int visit_typedef (be_typedef *node); - // visit a typedef node - - int visit_union (be_union *node); - // visit a union node - -}; - -#endif /* _BE_VISITOR_OPERATION_RETTYPE_VARDECL_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h deleted file mode 100644 index f5329bfe963..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_sh.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_sh.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations for the TIE class inside -// the server header -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_TIE_SH_H_) -#define _BE_VISITOR_OPERATION_TIE_SH_H_ - -// *********************************************************************** -// Operation visitor for operation declaration inside the TIE class -// *********************************************************************** - -class be_visitor_operation_tie_sh : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_tie_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the operaton inside a TIE class - // - // -public: - be_visitor_operation_tie_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_tie_sh (void); - // destructor - - virtual int visit_operation (be_operation *node); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_OPERATION_TIE_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h b/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h deleted file mode 100644 index f6168878069..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_operation/tie_si.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// tie_si.h -// -// = DESCRIPTION -// Visitor for generating code for IDL operations for the TIE class inside -// the server inline -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_OPERATION_TIE_SI_H_) -#define _BE_VISITOR_OPERATION_TIE_SI_H_ - -// *********************************************************************** -// Operation visitor for operation declaration inside the TIE class -// *********************************************************************** - -class be_visitor_operation_tie_si : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_operation_tie_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the operaton inside a TIE class - // - // -public: - be_visitor_operation_tie_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_operation_tie_si (void); - // destructor - - virtual int visit_operation (be_operation *node); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_OPERATION_TIE_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root.h b/TAO/TAO_IDL/be_include/be_visitor_root.h deleted file mode 100644 index b18ad225c15..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_root.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_ROOT_H) -#define TAO_BE_VISITOR_ROOT_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -#include "be_visitor_root/root.h" -#include "be_visitor_root/root_ch.h" -#include "be_visitor_root/root_ci.h" -#include "be_visitor_root/root_cs.h" -#include "be_visitor_root/root_sh.h" -#include "be_visitor_root/root_si.h" -#include "be_visitor_root/root_ss.h" -#include "be_visitor_root/any_op.h" - -#endif // TAO_BE_VISITOR_ROOT_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/any_op.h b/TAO/TAO_IDL/be_include/be_visitor_root/any_op.h deleted file mode 100644 index 55bea266f7b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/any_op.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for the Any operators for elements of -// the Root scope. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ANY_OP_H_) -#define _BE_VISITOR_ROOT_ANY_OP_H_ - -class be_visitor_root_any_op : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_any_op - // - // = DESCRIPTION - // This is a concrete visitor for root that generates the Any operator - // declarations and implementations - // - -public: - be_visitor_root_any_op (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_any_op (void); - // destructor - - virtual int visit_root (be_root *node); - // visit root -}; - -#endif /* _BE_VISITOR_ROOT_ANY_OP_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root.h b/TAO/TAO_IDL/be_include/be_visitor_root/root.h deleted file mode 100644 index 106bf26355d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides the generic visitor for the Root node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_H_) -#define _BE_VISITOR_ROOT_ROOT_H_ - -class be_visitor_root : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_root - // - // = DESCRIPTION - // This is a concrete visitor for root that abstracts all common tasks - // - -public: - be_visitor_root (be_visitor_context *ctx); - // constructor - - ~be_visitor_root (void); - // destructor - - virtual int visit_root (be_root *node); - // visit root - - // =visit methods on all elements syntactically valid in a Root scope - - virtual int visit_constant (be_constant *node); - // visit a constant - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an exception - - virtual int visit_interface (be_interface *node); - // visit an interface - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit an interface - - virtual int visit_module (be_module *node); - // visit a module - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - - virtual int visit_typedef (be_typedef *node); - // visit the typedef node - - // =helper. This is used by derived clases to set the right context - - virtual int init (void); - // will be overridden by derived classes that set the appropriate context -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_ch.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_ch.h deleted file mode 100644 index 47dd1f09b56..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_ch.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_CH_H_) -#define _BE_VISITOR_ROOT_ROOT_CH_H_ - -class be_visitor_root_ch : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for root - // - // -public: - be_visitor_root_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ch (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_ci.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_ci.h deleted file mode 100644 index 1362397511b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_ci.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_CI_H_) -#define _BE_VISITOR_ROOT_ROOT_CI_H_ - -class be_visitor_root_ci : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for root - // - // -public: - be_visitor_root_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ci (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_cs.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_cs.h deleted file mode 100644 index e8462a0df49..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_cs.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_CS_H_) -#define _BE_VISITOR_ROOT_ROOT_CS_H_ - -class be_visitor_root_cs : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for root - // - // -public: - be_visitor_root_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_cs (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_sh.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_sh.h deleted file mode 100644 index 45a15201de8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_sh.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_sh.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// server header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_SH_H_) -#define _BE_VISITOR_ROOT_ROOT_SH_H_ - -class be_visitor_root_sh : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for root - // - // -public: - be_visitor_root_sh (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_sh (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_SH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h deleted file mode 100644 index 5ff6648ebb8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_si.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_si.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// server inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_SI_H_) -#define _BE_VISITOR_ROOT_ROOT_SI_H_ - -class be_visitor_root_si : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_si - // - // = DESCRIPTION - // This is a concrete visitor to generate the server inline for root - // - // -public: - be_visitor_root_si (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_si (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_SI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_root/root_ss.h b/TAO/TAO_IDL/be_include/be_visitor_root/root_ss.h deleted file mode 100644 index 412f93df56b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_root/root_ss.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// root_ss.h -// -// = DESCRIPTION -// Concrete visitor for the Root class -// This one provides code generation for elements of the Root node in the -// server skeletons. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_ROOT_ROOT_SS_H_) -#define _BE_VISITOR_ROOT_ROOT_SS_H_ - -class be_visitor_root_ss : public be_visitor_root -{ - // - // = TITLE - // be_visitor_root_ss - // - // = DESCRIPTION - // This is a concrete visitor to generate the server skeletons for root - // - // -public: - be_visitor_root_ss (be_visitor_context *ctx); - // constructor - - ~be_visitor_root_ss (void); - // destructor - - virtual int init (void); - // set the right context and make a visitor -}; - -#endif /* _BE_VISITOR_ROOT_ROOT_SS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_scope.h b/TAO/TAO_IDL/be_include/be_visitor_scope.h deleted file mode 100644 index 07796a9b0e2..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_scope.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_scope.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Scope" node -// -// = AUTHOR -// Aniruddha Gokhale and Carlos O'Ryan -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_SCOPE_H) -#define TAO_BE_VISITOR_SCOPE_H - -#include "be_visitor.h" -#include "be_visitor_decl.h" - -class be_visitor_scope : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_scope - // - // = DESCRIPTION - // This is a concrete visitor for the be_scope node. Its only purpose is to - // iterate over the elements of the scope - // -public: - be_visitor_scope (be_visitor_context *ctx); - // constructor - - ~be_visitor_scope (void); - // destructor - - int visit_scope (be_scope *node); - // visit scope - - virtual int post_process (void); - // do any processing after every element except the last one of the scope is - // processed -}; - - -#endif // TAO_BE_VISITOR_SCOPE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence.h b/TAO/TAO_IDL/be_include/be_visitor_sequence.h deleted file mode 100644 index 1cda7cdae2f..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence.h +++ /dev/null @@ -1,22 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -#if !defined (TAO_BE_VISITOR_SEQUENCE_H) -#define TAO_BE_VISITOR_SEQUENCE_H - -#include "be_visitor_decl.h" - -#include "be_visitor_sequence/sequence_ch.h" -#include "be_visitor_sequence/sequence_ci.h" -#include "be_visitor_sequence/sequence_cs.h" -// =helper visitors to generate the base type and element type -#include "be_visitor_sequence/sequence_base.h" -#include "be_visitor_sequence/buffer_type.h" -#include "be_visitor_sequence/elemtype.h" -// = any operators -#include "be_visitor_sequence/any_op_ch.h" -#include "be_visitor_sequence/any_op_cs.h" - -#endif /* TAO_BE_VISITOR_SEQUENCE_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_ch.h deleted file mode 100644 index b0b1f8a666e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_ch.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the Any operators for the Sequence -// node in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_ANY_OP_CH_H_) -#define _BE_VISITOR_SEQUENCE_ANY_OP_CH_H_ - -class be_visitor_sequence_any_op_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for sequence that generates the Any operator - // declarations - // - -public: - be_visitor_sequence_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_any_op_ch (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence -}; - -#endif /* _BE_VISITOR_SEQUENCE_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_cs.h deleted file mode 100644 index 4252635baef..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/any_op_cs.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the Sequence node in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_ANY_OP_CS_H_) -#define _BE_VISITOR_SEQUENCE_ANY_OP_CS_H_ - -class be_visitor_sequence_any_op_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for sequence that generates the Any operator - // implementations - // - -public: - be_visitor_sequence_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_any_op_cs (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence -}; - -#endif /* _BE_VISITOR_SEQUENCE_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/buffer_type.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/buffer_type.h deleted file mode 100644 index 449e5efd482..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/buffer_type.h +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// buffer_type.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the buffer type of the Sequence -// node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_BUFFER_TYPE_H_) -#define _BE_VISITOR_SEQUENCE_BUFFER_TYPE_H_ - -class be_visitor_sequence_buffer_type : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_buffer_type - // - // = DESCRIPTION - // This is a concrete visitor to generate the buffer type - // for a TAO_*_Sequence instantiation. - // -public: - be_visitor_sequence_buffer_type (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_buffer_type (void); - // destructor - - // = Visitor methods. - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_string (be_string *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -#endif /* _BE_VISITOR_SEQUENCE_BUFFER_TYPE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/elemtype.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/elemtype.h deleted file mode 100644 index 88212e3ac0e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/elemtype.h +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// elemtype.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the element type returned by the [] -// operators for the Sequence node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_ELEMTYPE_H_) -#define _BE_VISITOR_SEQUENCE_ELEMTYPE_H_ - -class be_visitor_sequence_elemtype : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_elemtype - // - // = DESCRIPTION - // This is a concrete visitor to generate the return type for the - // [] operators - // - // = NOTES - // This class may eventually go away when the _var and _out classes are - // generated using templates -public: - be_visitor_sequence_elemtype (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_elemtype (void); - // destructor - - // = Visitors - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - virtual int visit_string (be_string *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -#endif /* _BE_VISITOR_SEQUENCE_ELEMTYPE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_base.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_base.h deleted file mode 100644 index 71673e2c230..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_base.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_base.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the base typ of the Sequence node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_SEQUENCE_BASE_H_) -#define _BE_VISITOR_SEQUENCE_SEQUENCE_BASE_H_ - -class be_visitor_sequence_base : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_base - // - // = DESCRIPTION - // This is a concrete visitor to generate the template parameters - // for a TAO_*_Sequence instantiation. - // - // = BUGS - // The class name is misleading, eventually this class could be - // used to generate code in other files, not only the client - // header. - // The visitor factory should provide a factory method that builds - // this class on the fly. - // -public: - be_visitor_sequence_base (be_visitor_context *ctx); - // Constructor - - ~be_visitor_sequence_base (void); - // destructor - - // = Visitor methods. - virtual int visit_predefined_type (be_predefined_type *node); - virtual int visit_interface (be_interface *node); - virtual int visit_interface_fwd (be_interface_fwd *node); - virtual int visit_structure (be_structure *node); - virtual int visit_enum (be_enum *node); - virtual int visit_exception (be_exception *node); - virtual int visit_union (be_union *node); - virtual int visit_array (be_array *node); - virtual int visit_string (be_string *node); - virtual int visit_sequence (be_sequence *node); - virtual int visit_typedef (be_typedef *node); - -protected: - int visit_node (be_type *); - // helper that does the common job - -}; - -#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_BASE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h deleted file mode 100644 index 8e7a3fd3e24..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ch.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the Sequence node in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_SEQUENCE_CH_H_) -#define _BE_VISITOR_SEQUENCE_SEQUENCE_CH_H_ - -class be_visitor_sequence_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for - // sequences - // -public: - be_visitor_sequence_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_ch (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_base_sequence_class (be_sequence *node); - // generate the base sequence class - - virtual int gen_var_defn (be_sequence *node); - // generate the var defn - - virtual int gen_out_defn (be_sequence *node); - // generate the out defn -}; - -#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h deleted file mode 100644 index fbe8890c7c8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_ci.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the Sequence node in the client -// inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_SEQUENCE_CI_H_) -#define _BE_VISITOR_SEQUENCE_SEQUENCE_CI_H_ - -class be_visitor_sequence_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for - // sequences. The only purpose is to generate the implementation for the - // _var and _out classes - // -public: - be_visitor_sequence_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_ci (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_var_impl (be_sequence *node); - // generate the var impl - - virtual int gen_out_impl (be_sequence *node); - // generate the out impl -}; - -#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h b/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h deleted file mode 100644 index f60808eda4d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_sequence/sequence_cs.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// sequence_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Sequence class -// This one provides code generation for the Sequence node in the client -// stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_SEQUENCE_SEQUENCE_CS_H_) -#define _BE_VISITOR_SEQUENCE_SEQUENCE_CS_H_ - -class be_visitor_sequence_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_sequence_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for - // sequences - // -public: - be_visitor_sequence_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_sequence_cs (void); - // destructor - - virtual int visit_sequence (be_sequence *node); - // visit sequence node - - virtual int gen_base_sequence_class (be_sequence *node); - // generate the base sequence class - -}; - -#endif /* _BE_VISITOR_SEQUENCE_SEQUENCE_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure.h b/TAO/TAO_IDL/be_include/be_visitor_structure.h deleted file mode 100644 index 3dafbd10eb8..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_structure.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_STRUCTURE_H) -#define TAO_BE_VISITOR_STRUCTURE_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -// generic visitor -#include "be_visitor_structure/structure.h" -// concrete visitors -#include "be_visitor_structure/structure_ch.h" -#include "be_visitor_structure/structure_ci.h" -#include "be_visitor_structure/structure_cs.h" -#include "be_visitor_structure/any_op_ch.h" -#include "be_visitor_structure/any_op_cs.h" - -#endif // TAO_BE_VISITOR_STRUCTURE_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_ch.h deleted file mode 100644 index 1bd7384f191..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_ch.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// This one provides code generation for the Any operators for the structure -// in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_ANY_OP_CH_H_) -#define _BE_VISITOR_STRUCTURE_ANY_OP_CH_H_ - -class be_visitor_structure_any_op_ch : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for structure that generates the Any operator - // declarations - // - -public: - be_visitor_structure_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_structure_any_op_ch (void); - // destructor - - virtual int visit_structure (be_structure *node); - // visit structure - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_STRUCTURE_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_cs.h deleted file mode 100644 index 1ee098a905a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/any_op_cs.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// This one provides code generation for the Any operators for the structure -// in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_ANY_OP_CS_H_) -#define _BE_VISITOR_STRUCTURE_ANY_OP_CS_H_ - -class be_visitor_structure_any_op_cs : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for structure that generates the Any operator - // implementations - // - -public: - be_visitor_structure_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_structure_any_op_cs (void); - // destructor - - virtual int visit_structure (be_structure *node); - // visit structure - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_STRUCTURE_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/structure.h b/TAO/TAO_IDL/be_include/be_visitor_structure/structure.h deleted file mode 100644 index a10531ccf9c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/structure.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure.h -// -// = DESCRIPTION -// Concrete visitor for the STRUCTURE class -// This one provides the generic visitor for the Structure node. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_STRUCTURE_H_) -#define _BE_VISITOR_STRUCTURE_STRUCTURE_H_ - -class be_visitor_structure : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_structure - // - // = DESCRIPTION - // This is the base visitor for structure - // - // -public: - be_visitor_structure (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_field (be_field *node); - // visit field -}; - -#endif /* _BE_VISITOR_STRUCTURE_STRUCTURE_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ch.h b/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ch.h deleted file mode 100644 index f946d033288..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ch.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// This one provides code generation for the structure in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_STRUCTURE_CH_H_) -#define _BE_VISITOR_STRUCTURE_STRUCTURE_CH_H_ - -class be_visitor_structure_ch : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for structure - // - // -public: - be_visitor_structure_ch (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_ch (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_STRUCTURE_STRUCTURE_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ci.h b/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ci.h deleted file mode 100644 index ac47118f00d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_ci.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// This one provides code generation for the structure in the client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_STRUCTURE_CI_H_) -#define _BE_VISITOR_STRUCTURE_STRUCTURE_CI_H_ - -class be_visitor_structure_ci : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for structure - // - // -public: - be_visitor_structure_ci (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_ci (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_STRUCTURE_STRUCTURE_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_cs.h b/TAO/TAO_IDL/be_include/be_visitor_structure/structure_cs.h deleted file mode 100644 index 06c4c0c51d0..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_structure/structure_cs.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// structure_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Structure class -// This one provides code generation for the structure in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_STRUCTURE_STRUCTURE_CS_H_) -#define _BE_VISITOR_STRUCTURE_STRUCTURE_CS_H_ - -class be_visitor_structure_cs : public be_visitor_structure -{ - // - // = TITLE - // be_visitor_structure_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for structure - // - // -public: - be_visitor_structure_cs (be_visitor_context *ctx); - // constructureor - - ~be_visitor_structure_cs (void); - // destructureor - - virtual int visit_structure (be_structure *node); - // visit structure. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_STRUCTURE_STRUCTURE_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode.h b/TAO/TAO_IDL/be_include/be_visitor_typecode.h deleted file mode 100644 index cbd083c4fb7..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typecode.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_typecode.h -// -// = DESCRIPTION -// Concrete visitor to generate code for TypeCodes -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_TYPECODE_H) -#define TAO_BE_VISITOR_TYPECODE_H - -#include "be_visitor_decl.h" - -#include "be_visitor_typecode/typecode_decl.h" -#include "be_visitor_typecode/typecode_defn.h" - - -#endif /* TAO_BE_VISITOR_TYPECODE_H */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_decl.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_decl.h deleted file mode 100644 index c6f67b4fc4a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_decl.h +++ /dev/null @@ -1,74 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typecode_decl.h -// -// = DESCRIPTION -// Concrete visitor for the generation of TypeCodes. -// This one generates the declaration. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPECODE_TYPECODE_DECL_H_) -#define _BE_VISITOR_TYPECODE_TYPECODE_DECL_H_ - -class be_visitor_typecode_decl : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_typecode_decl - // - // = DESCRIPTION - // This is a concrete visitor for generating TypeCode declarations - // - -public: - be_visitor_typecode_decl (be_visitor_context *ctx); - // constructor - - ~be_visitor_typecode_decl (void); - // destructor - - virtual int visit_type (be_type *node); - // visit a generic be_type node - - // =visit methods on all types. They call the generic visit_type - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an enum - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_typedef (be_typedef *node); - // visit a typedef - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPECODE_TYPECODE_DECL_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h b/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h deleted file mode 100644 index b87b57dfa05..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typecode/typecode_defn.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typecode_defn.h -// -// = DESCRIPTION -// Concrete visitor for the generation of TypeCodes. -// This one generates the definitions. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_) -#define _BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_ - -class be_visitor_typecode_defn : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_typecode_defn - // - // = DESCRIPTION - // This is a concrete visitor for generating TypeCode definitions - // - -public: - be_visitor_typecode_defn (be_visitor_context *ctx); - // constructor - - ~be_visitor_typecode_defn (void); - // destructor - - virtual int visit_type (be_type *node); - // visit a generic be_type node - - // =visit methods on all types. They call the generic visit_type - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_exception (be_exception *node); - // visit an enum - - virtual int visit_interface (be_interface *node); - // visit interface - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_typedef (be_typedef *node); - // visit a typedef - - virtual int visit_union (be_union *node); - // visit a union - - - // = special methods - - virtual int gen_nested_namespace_begin (be_module *node); - // generate the nested namespace begins - - virtual int gen_nested_namespace_end (be_module *node); - // generate the nested namespace ends -}; - -#endif /* _BE_VISITOR_TYPECODE_TYPECODE_DEFN_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef.h b/TAO/TAO_IDL/be_include/be_visitor_typedef.h deleted file mode 100644 index 206410cb13f..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_typedef.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_TYPEDEF_H) -#define TAO_BE_VISITOR_TYPEDEF_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -// generic visitor -#include "be_visitor_typedef/typedef.h" -// concrete visitors -#include "be_visitor_typedef/typedef_ch.h" -#include "be_visitor_typedef/typedef_ci.h" -#include "be_visitor_typedef/typedef_cs.h" -#include "be_visitor_typedef/any_op_ch.h" -#include "be_visitor_typedef/any_op_cs.h" - -#endif // TAO_BE_VISITOR_TYPEDEF_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_ch.h deleted file mode 100644 index 915465ed1fb..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_ch.h +++ /dev/null @@ -1,69 +0,0 @@ - -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the code generation for the Any operators of the Typedef -// class in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_ANY_OP_CH_H_) -#define _BE_VISITOR_TYPEDEF_ANY_OP_CH_H_ - -class be_visitor_typedef_any_op_ch : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for typedef that generates the Any operator - // declarations and implementations - // - -public: - be_visitor_typedef_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_any_op_ch (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPEDEF_ANY_OP_CH_H_*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_cs.h deleted file mode 100644 index 9014b277d1d..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/any_op_cs.h +++ /dev/null @@ -1,69 +0,0 @@ - -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the code generation for the Any operators of the Typedef -// class in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_ANY_OP_CS_H_) -#define _BE_VISITOR_TYPEDEF_ANY_OP_CS_H_ - -class be_visitor_typedef_any_op_cs : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for typedef that generates the Any operator - // declarations and implementations - // - -public: - be_visitor_typedef_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_any_op_cs (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPEDEF_ANY_OP_CS_H_*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef.h deleted file mode 100644 index 4b9f9f48507..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the generic visitors for the Typedef class. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_TYPEDEF_H_) -#define _BE_VISITOR_TYPEDEF_TYPEDEF_H_ - -class be_visitor_typedef : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_typedef - // - // = DESCRIPTION - // This is a concrete visitor for typedef that abstracts all common tasks - // - -public: - be_visitor_typedef (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // must be overridden - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type node - - virtual int visit_string (be_string *node); - // visit a typedef - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPEDEF_TYPEDEF_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h deleted file mode 100644 index a18b580d489..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ch.h +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_ch.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the code generation for the Typedef class in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_TYPEDEF_CH_H_) -#define _BE_VISITOR_TYPEDEF_TYPEDEF_CH_H_ - -class be_visitor_typedef_ch : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for typedef - // - // -public: - be_visitor_typedef_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_ch (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_interface (be_interface *node); - // visit an interface; - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type node - - virtual int visit_string (be_string *node); - // visit a typedef - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPEDEF_TYPEDEF_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ci.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ci.h deleted file mode 100644 index 38c0276c33a..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_ci.h +++ /dev/null @@ -1,65 +0,0 @@ - -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_ci.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the code generation for the Typedef class in the client -// inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_TYPEDEF_CI_H_) -#define _BE_VISITOR_TYPEDEF_TYPEDEF_CI_H_ - -class be_visitor_typedef_ci : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_sh - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for typedef - // - // -public: - be_visitor_typedef_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_ci (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - - // =visit methods on all elements syntactically valid as types that can be - // typedefed. - - virtual int visit_array (be_array *node); - // visit a array - - virtual int visit_sequence (be_sequence *node); - // visit a sequence - - virtual int visit_structure (be_structure *node); - // visit a structure - - virtual int visit_union (be_union *node); - // visit a union - -}; - -#endif /* _BE_VISITOR_TYPEDEF_TYPEDEF_CI_H_*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_cs.h b/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_cs.h deleted file mode 100644 index 091ac01e22c..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_typedef/typedef_cs.h +++ /dev/null @@ -1,50 +0,0 @@ - -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// typedef_cs.h -// -// = DESCRIPTION -// Concrete visitor for the Typedef class -// This provides the code generation for the Typedef class in the client -// stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_TYPEDEF_TYPEDEF_CS_H_) -#define _BE_VISITOR_TYPEDEF_TYPEDEF_CS_H_ - -class be_visitor_typedef_cs : public be_visitor_typedef -{ - // - // = TITLE - // be_visitor_typedef_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the server header for typedef - // - // -public: - be_visitor_typedef_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_typedef_cs (void); - // destructor - - virtual int visit_typedef (be_typedef *node); - // visit typedef. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_TYPEDEF_TYPEDEF_CS_H_*/ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union.h b/TAO/TAO_IDL/be_include/be_visitor_union.h deleted file mode 100644 index 1111d4bd198..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union.h -// -// = DESCRIPTION -// Concrete visitor for the Union class -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_UNION_H) -#define TAO_BE_VISITOR_UNION_H - -#include "be_visitor.h" -#include "be_visitor_scope.h" - -// generic visitor -#include "be_visitor_union/union.h" -// concrete visitors -#include "be_visitor_union/union_ch.h" -#include "be_visitor_union/union_ci.h" -#include "be_visitor_union/union_cs.h" -#include "be_visitor_union/discriminant_ch.h" -#include "be_visitor_union/discriminant_ci.h" -#include "be_visitor_union/discriminant_cs.h" -#include "be_visitor_union/any_op_ch.h" -#include "be_visitor_union/any_op_cs.h" - -#endif // TAO_BE_VISITOR_UNION_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_ch.h b/TAO/TAO_IDL/be_include/be_visitor_union/any_op_ch.h deleted file mode 100644 index 2f045164396..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_ch.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_ch.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the Any operators for the Union in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_ANY_OP_CH_H_) -#define _BE_VISITOR_UNION_ANY_OP_CH_H_ - -class be_visitor_union_any_op_ch : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_any_op_ch - // - // = DESCRIPTION - // This is a concrete visitor for union that generates the Any operator - // declarations - // - -public: - be_visitor_union_any_op_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_any_op_ch (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union - - virtual int visit_union_branch (be_union_branch *node); - // visit union_branch -}; - -#endif /* _BE_VISITOR_UNION_ANY_OP_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h deleted file mode 100644 index 95bf8baaa82..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/any_op_cs.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// any_op_cs.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the Any operators for the Union in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_ANY_OP_CS_H_) -#define _BE_VISITOR_UNION_ANY_OP_CS_H_ - -class be_visitor_union_any_op_cs : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_any_op_cs - // - // = DESCRIPTION - // This is a concrete visitor for union that generates the Any operator - // implementations - // - -public: - be_visitor_union_any_op_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_any_op_cs (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union - - virtual int visit_union_branch (be_union_branch *node); - // visit union_branch -}; - -#endif /* _BE_VISITOR_UNION_ANY_OP_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ch.h b/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ch.h deleted file mode 100644 index 5c46ba2cd58..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ch.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_ch.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the discriminant of the Union in the client -// header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_DISCRIMINANT_CH_H_) -#define _BE_VISITOR_UNION_DISCRIMINANT_CH_H_ - -class be_visitor_union_discriminant_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for union - // discriminant - // - // -public: - be_visitor_union_discriminant_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_ch (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit a predefined type - - virtual int visit_typedef (be_typedef *node); - // visit a typedef node -}; - -#endif /* _BE_VISITOR_UNION_DISCRIMINANT_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ci.h b/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ci.h deleted file mode 100644 index bb44c2f12ee..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_ci.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_ci.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the discriminant of the Union in the client -// inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_DISCRIMINANT_CI_H_) -#define _BE_VISITOR_UNION_DISCRIMINANT_CI_H_ - -class be_visitor_union_discriminant_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for union - // discriminant - // - // -public: - be_visitor_union_discriminant_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_ci (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum - - virtual int visit_predefined_type (be_predefined_type *node); - // visit a predefined type - - virtual int visit_typedef (be_typedef *node); - // visit a typedef node -}; - -#endif /* _BE_VISITOR_UNION_DISCRIMINANT_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_cs.h deleted file mode 100644 index 23cbe129a22..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/discriminant_cs.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// discriminant_cs.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the discriminant of the Union in the client -// stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_DISCRIMINANT_CS_H_) -#define _BE_VISITOR_UNION_DISCRIMINANT_CS_H_ - -class be_visitor_union_discriminant_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_discriminant_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for union - // discriminant - // - // -public: - be_visitor_union_discriminant_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_discriminant_cs (void); - // destructor - - virtual int visit_enum (be_enum *node); - // visit an enum. Required to generate the typecode for an enum definition - // appearing side the union - -}; - -#endif /* _BE_VISITOR_UNION_DISCRIMINANT_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/union.h b/TAO/TAO_IDL/be_include/be_visitor_union/union.h deleted file mode 100644 index 568f32b6d8b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/union.h +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one is a generic visitor. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_UNION_H_) -#define _BE_VISITOR_UNION_UNION_H_ - -class be_visitor_union : public be_visitor_scope -{ - // - // = TITLE - // be_visitor_union - // - // = DESCRIPTION - // This is the base visitor for union - // - // -public: - be_visitor_union (be_visitor_context *ctx); - // constructor - - ~be_visitor_union (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - - // =visit operations on syntactically valid elements in our scope - - virtual int visit_union_branch (be_union_branch *node); - // visit union_branch -}; - -#endif /* _BE_VISITOR_UNION_UNION_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/union_ch.h b/TAO/TAO_IDL/be_include/be_visitor_union/union_ch.h deleted file mode 100644 index 5d2f389fb5e..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/union_ch.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_ch.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_UNION_CH_H_) -#define _BE_VISITOR_UNION_UNION_CH_H_ - -class be_visitor_union_ch : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_ch - // - // = DESCRIPTION - // This is a concrete visitor to generate the client header for union - // - // -public: - be_visitor_union_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_ch (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_UNION_UNION_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/union_ci.h b/TAO/TAO_IDL/be_include/be_visitor_union/union_ci.h deleted file mode 100644 index b0a2c52afe5..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/union_ci.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_ci.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code in the client inline file. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_UNION_CI_H_) -#define _BE_VISITOR_UNION_UNION_CI_H_ - -class be_visitor_union_ci : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_ci - // - // = DESCRIPTION - // This is a concrete visitor to generate the client inline for union - // - // -public: - be_visitor_union_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_ci (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_UNION_UNION_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union/union_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union/union_cs.h deleted file mode 100644 index 3a6ef0322aa..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union/union_cs.h +++ /dev/null @@ -1,48 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// union_cs.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_UNION_CS_H_) -#define _BE_VISITOR_UNION_UNION_CS_H_ - -class be_visitor_union_cs : public be_visitor_union -{ - // - // = TITLE - // be_visitor_union_cs - // - // = DESCRIPTION - // This is a concrete visitor to generate the client stubs for union - // - // -public: - be_visitor_union_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_cs (void); - // destructor - - virtual int visit_union (be_union *node); - // visit union. We provide code for this method in the derived class - -}; - -#endif /* _BE_VISITOR_UNION_UNION_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch.h deleted file mode 100644 index 7607d2a7f81..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch.h +++ /dev/null @@ -1,32 +0,0 @@ -// -// $Id$ -// -/* -*- c++ -*- */ -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// be_visitor_union_branch.h -// -// = DESCRIPTION -// Concrete visitor for the base "BE_Union_Branch" node -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TAO_BE_VISITOR_UNION_BRANCH_H) -#define TAO_BE_VISITOR_UNION_BRANCH_H - -#include "be_visitor_decl.h" - -#include "be_visitor_union_branch/public_ch.h" -#include "be_visitor_union_branch/public_ci.h" -#include "be_visitor_union_branch/public_cs.h" -#include "be_visitor_union_branch/public_assign_cs.h" -#include "be_visitor_union_branch/private_ch.h" - -#endif // TAO_BE_VISITOR_UNION_BRANCH_H diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/private_ch.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/private_ch.h deleted file mode 100644 index 5037fb586ea..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch/private_ch.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// private_ch.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for private part of the union class for the union -// members in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_BRANCH_PRIVATE_CH_H_) -#define _BE_VISITOR_UNION_BRANCH_PRIVATE_CH_H_ - -class be_visitor_union_branch_private_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_private_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_union_branch node for the client - // header. This generates the code for the private section of the "union" - // class - // -public: - be_visitor_union_branch_private_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_private_ch (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_UNION_BRANCH_PRIVATE_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_assign_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_assign_cs.h deleted file mode 100644 index 71d2dd7cc3b..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_assign_cs.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_assign_cs.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for the assignment operator of the union class -// for the union members in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_BRANCH_PUBLIC_ASSIGN_CS_H_) -#define _BE_VISITOR_UNION_BRANCH_PUBLIC_ASSIGN_CS_H_ - -class be_visitor_union_branch_public_assign_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_assign_cs - // - // = DESCRIPTION - // This is used to generate the body of the assignment operator and the - // copy constructor of the union class - // -public: - be_visitor_union_branch_public_assign_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_assign_cs (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - -}; - -#endif /* _BE_VISITOR_UNION_BRANCH_PUBLIC_ASSIGN_CS_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ch.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ch.h deleted file mode 100644 index 43387f44cfa..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ch.h +++ /dev/null @@ -1,82 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_ch.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for public part of the union class for the union -// members in the client header. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_BRANCH_PUBLIC_CH_H_) -#define _BE_VISITOR_UNION_BRANCH_PUBLIC_CH_H_ - -class be_visitor_union_branch_public_ch : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_ch - // - // = DESCRIPTION - // This is a concrete visitor for the be_union_branch node for the client - // header. This generates the code for the public section of the "union" - // class - // -public: - be_visitor_union_branch_public_ch (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_ch (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_UNION_BRANCH_PUBLIC_CH_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ci.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ci.h deleted file mode 100644 index 7462bdfe3de..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_ci.h +++ /dev/null @@ -1,81 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_ci.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for public part of the union class for the union -// members in the client inline. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_BRANCI_PUBLIC_CI_H_) -#define _BE_VISITOR_UNION_BRANCI_PUBLIC_CI_H_ - -class be_visitor_union_branch_public_ci : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_ci - // - // = DESCRIPTION - // This visitor is used to generate the accessors for the members of the - // union - // -public: - be_visitor_union_branch_public_ci (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_ci (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_interface (be_interface *node); - // visit interface type - - virtual int visit_interface_fwd (be_interface_fwd *node); - // visit interface forward type - - virtual int visit_predefined_type (be_predefined_type *node); - // visit predefined type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_typedef (be_typedef *node); - // visit typedefed type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_UNION_BRANCI_PUBLIC_CI_H_ */ diff --git a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_cs.h b/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_cs.h deleted file mode 100644 index f727b019644..00000000000 --- a/TAO/TAO_IDL/be_include/be_visitor_union_branch/public_cs.h +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- c++ -*- */ -// -// $Id$ -// - -// ============================================================================ -// -// = LIBRARY -// TAO IDL -// -// = FILENAME -// public_cs.h -// -// = DESCRIPTION -// Visitor for the Union class. -// This one generates code for public part of the union class for the union -// members in the client stubs. -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (_BE_VISITOR_UNION_BRANCS_PUBLIC_CS_H_) -#define _BE_VISITOR_UNION_BRANCS_PUBLIC_CS_H_ - -class be_visitor_union_branch_public_cs : public be_visitor_decl -{ - // - // = TITLE - // be_visitor_union_branch_public_cs - // - // = DESCRIPTION - // This visitor is used to generate implementation such as typecodes for - // constructed types - // -public: - be_visitor_union_branch_public_cs (be_visitor_context *ctx); - // constructor - - ~be_visitor_union_branch_public_cs (void); - // destructor - - virtual int visit_union_branch (be_union_branch *node); - // visit the union_branch node - - // =visit operations on all possible data types that a union_branch can be - - virtual int visit_array (be_array *node); - // visit array type - - virtual int visit_enum (be_enum *node); - // visit enum type - - virtual int visit_sequence (be_sequence *node); - // visit sequence type - - virtual int visit_string (be_string *node); - // visit string type - - virtual int visit_structure (be_structure *node); - // visit structure type - - virtual int visit_union (be_union *node); - // visit union type - -}; - -#endif /* _BE_VISITOR_UNION_BRANCS_PUBLIC_CS_H_ */ diff --git a/TAO/TAO_IDL/docs/ANNOUNCEMENT b/TAO/TAO_IDL/docs/ANNOUNCEMENT deleted file mode 100644 index 870db6f6006..00000000000 --- a/TAO/TAO_IDL/docs/ANNOUNCEMENT +++ /dev/null @@ -1,131 +0,0 @@ -WHAT: - -SunSoft, Inc., Mountain View, California, has placed the source code to -Project DOE's Interface Definition Language (IDL) compiler front end -(CFE) on OMG's file server, making the implementation publicly -available. This release is identified by the version number 1.3. - -Project DOE is SunSoft's corporate-wide development effort to integrate -distributed object technology into the Solaris O/S. OMG (Object Management -Group) is the industry wide body formed to create specifications for -distributed object technology. It currently has more than 370 members. OMG -IDL is part of OMG's CORBA 1.1 specification and provides a standardized -way for defining object interfaces. OMG IDL forms the basis for distributed -object interactionin Project DOE. - -The SunSoft OMG IDL CFE provides a complete framework for building -CORBA 1.1-compliant preprocessors for OMG IDL. By using this standard -implementation, developers of OMG IDL compilers will save many months -of work and enhance the portability and interoperability of OMG -IDL-interfaced objects. - -The SunSoft OMG IDL CFE allows convenient and fast integration of new back -ends to the compiler. The release consists of a front end which converts -OMG IDL to an intermediate format, a compiler framework driver, an example -implementation of a compiler back end, and a set of protocols for -interaction between the front and back ends. The SunSoft OMG IDL CFE -parser uses components generated by yacc and lex. - -The SunSoft OMG IDL CFE is designed to allow easy extension of OMG IDL -without impacting existing back-end implementations. As the CORBA -specification evolves, any new updates to the IDE CFE will be placed -by SunSoft on the OMG server. - -This release provides a directory with many examples of OMG IDL -specifications to allow users to become familiar with the process of -writing OMG IDL code. - -For more information send email to idl-cfe@sun.com. - -HOW: - -The SunSoft OMG IDL CFE is available at no charge through anonymous FTP -in source form on the OMG file server, omg.org. Please retrieve the -file OMG_IDL_CFE_1.3.tar.Z from the directory pub/OMG_IDL_CFE_1.3. Please -let us know who you are if you retrieve the compiler front end using this -method, by sending email to idl-cfe@sun.com. - -You can also retrieve the software by using the OMG mail server program. -Send email with the subject 'help' to omg_idl@omg.org, and the mail server -will respond with instructions on how to retrieve the software. - -WHEN: - -The SunSoft OMG IDL CFE is available now. - -CONTACT: - -Please let us know who you are if you decide to use this software, and how -you use it. Please send email to: - - idl-cfe@sun.com - -This address can also be used to report problems, bugs, suggestions and -send general comments. - -We ask that if you make extensions or modifications to this source release, -please make these extensions available to others using the OMG IDL compiler -front end, by sending the modified sources to the above email address. This -will help us evaluate your extensions for inclusion in a future version. It -also ensures your investment in these extensions when new versions of the -CFE are released. - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - -COPYRIGHT NOTICE: - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 diff --git a/TAO/TAO_IDL/docs/BUG_REPORT b/TAO/TAO_IDL/docs/BUG_REPORT deleted file mode 100644 index 28c34ae141d..00000000000 --- a/TAO/TAO_IDL/docs/BUG_REPORT +++ /dev/null @@ -1,144 +0,0 @@ -OMG IDL COMPILER FRONT END PROBLEM REPORT FORM --============================================- - -Checklist: Did you: -- include configuration information? -- include compiler version number (use -V to obtain)? -- include script of run? -- include IDL file causing problem? -- make any changes to the CFE? If so, did you include a diff against - original version? - -PLEASE SEND THE COMPLETED BUG REPORT TO: idl-cfe@sun.com. - -THANK YOU FOR REPORTING THIS PROBLEM! THROUGH YOUR COLLABORATION, SUNSOFT -WILL BE ABLE TO IMPROVE THE FUNCTIONALITY OF THIS PRODUCT. RECEIPT OF BUG -REPORTS WILL BE ACKNOWLEDGED BUT NO OBLIGATION IS UNDERTAKEN BY SUNSOFT TO -CORRECT THE REPORTED PROBLEM. SEE YOUR COPYRIGHT AND LICENSE INFORMATION. - - -CONFIGURATION INFORMATION (describe your hardware platform, operating -system and which compilers you used to compile the CFE): - - - - - - -COMPILER VERSION INFORMATION (include output from idl -V here): - - - - - - - -PROBLEM DESCRIPTION (describe problem, include script if available): - - - - - - - - -IDL INPUT CAUSING PROBLEM (include IDL input causing problem): - - - - - - - - - -DID YOU MAKE ANY CHANGES TO THE CFE? [Y] _ [N] _ -IF YES, INCLUDE A DIF OF YOUR VERSION AGAINST ORIGINAL VERSION: - - - - - - - - - -PROPOSED FIX (if you believe you know the cause of the problem, please -include a proposed change to the software to correct it): - - - - - - - - -ANY OTHER RELEVANT INPUT (include here any other information you believe -may be relevant to the resolution of the problem you described): - - - - - - -PLEASE SEND THIS PROBLEM REPORT TO idl-cfe@sun.com. - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - -COPYRIGHT NOTICE: - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 diff --git a/TAO/TAO_IDL/docs/CHANGES b/TAO/TAO_IDL/docs/CHANGES deleted file mode 100644 index ae6fca7bcea..00000000000 --- a/TAO/TAO_IDL/docs/CHANGES +++ /dev/null @@ -1,122 +0,0 @@ -CHANGES WHICH AFFECT BE WRITERS --=============================- - -INTRODUCTION - -This file describes changes that affect BE writers. It contains IMPORTANT -INFORMATION for BE writers who wish to migrate a BE written to operate with -release 1.2 to operate with release 1.3. It is likely that not following -these instructions will result in a compilable but malfunctioning compiler. - -AST INHERITANCE CHANGES - -The AST has been reorganized so that AST_Union and AST_Exception now -inherit from AST_Structure. This means that constructors of BE classes -which inherit from AST_Union or AST_Exception now need to explicitly call -an initializer for AST_Structure in their init section. - -We repeat below the information given in the file WRITING_A_BE, in the -section entitled "WRITING A BE". - -AST_EXCEPTION - -The signature for constructors of classes inheriting from AST_Exception -should now be: - - BE_Exception::BE_Exception(UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(AST_Decl::NT_except, n, p), - AST_Structure(AST_Decl::NT_except, n, p), - UTL_Scope(AST_Decl::NT_except) - -AST_UNION - -The signature for constructors of classes inheriting from AST_Union should -now be: - - BE_Union::BE_Union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Union(dt, n, p), - AST_Structure(AST_Decl::NT_union, n, p), - AST_Decl(AST_Decl::NT_union, n, p), - UTL_Scope(AST_Decl::NT_union) - -IDL_BOOL TYPE - -To increase portability and reduce dependency of the sources on POSIX -compliance in targets of ports, IDL now provides its own boolean type which -is named idl_bool. It provides two truth values, I_TRUE and I_FALSE. - -UTL_SCOPEDNAME TYPE - -The UTL_ScopedName type is now a list of Identifier nodes; in previous -releases it used to be a list of String nodes. If your BE constructs scoped -names this change will prevent recompilation until you modify your -constructor calls to invoke constructors for Identifier instead of for -String. The signature of the constructor is: - - Identifier::Identifier(char *, long x=1, long y=0, long z=I_FALSE) - -The additional arguments which can be defaulted to the values indicated are -included for future use. - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/CLI b/TAO/TAO_IDL/docs/CLI deleted file mode 100644 index a61c2bae365..00000000000 --- a/TAO/TAO_IDL/docs/CLI +++ /dev/null @@ -1,187 +0,0 @@ -OMG INTERFACE DEFINITION LANGUAGE COMPILER FRONT END: COMMAND LINE INTERFACE --==========================================================================- - -INTRODUCTION - -This document describes general OMG Interface Definition Language compiler -command line options. Options that are specific to a given back end, object -adapter or language are not described here. These should be described in a -document detailing the interface implemented by each specific back end. - -OMG INTERFACE DEFINITION LANGUAGE COMMAND LINE OPTIONS - -OMG Interface Definition Language compiler options are described below. -Unless otherwise noted, only one occurrence of each option is allowed. -The following conventions are used - -- Text in '[..]' is optional. -- Text followed by '*' can be repeated zero or more times. -- Text followed by '+' can be repeated once or more times. -- '{' and '}' are used to group text to cause '+' or '*' to apply to - the entire grouped text. -- 'aa|bb' means either 'aa' or 'bb'. - -COMMAND LINE SUMMARY - - idl [flag | file-name]* - -Flags are command line words that start with a '-'. All other command line -words are assumed to be file names. If no file names are given, input is -taken from stdin. - -COMMAND LINE FLAGS - --A[xyz] A local escape. This can be used to specify additional options that - are specific to a given implementation. More than one -A option is - allowed - --Dname[=value] - Defines name and an optional value to be passed to a compliant C++ - preprocessor, as if by #define. White space between the -D option - and the name is optional. More than one -D option is allowed. - --d If no parse errors were found, prints out a representation of the - IDL input to stderr. - --E Runs the C++ preprocessor on the OMG Interface Definition Language - input and sends the result to the standard output. - --Idirectory - Causes directory to be added to the search path for include files. - More than one -I option is allowed. This option is processed by a - compliant C++ preprocessor. - --Uname Undefines name, as if by #undef. White space between the -U option - and the name is optional. More than one -U option is allowed. - --V Causes the version information of the CFE to be displayed. No other - work is done, regardless of any other options. - --W[b|p][,arg]+ - Hands off the arguments supplied to a specific portion of the OMG - Interface Definition Language compiler: - - - -Wb arguments are handed to the loaded back end - - -Wp arguments are handed to a compliant C++ preprocessor - --Yp,pathname - Specifies an alternate path for finding a C++ compliant - preprocessor. Specifiers other than 'p' may be defined in future - versions of the CFE. More than one -Y option may appear. The last - one specifying each component takes effect. - - This option exists but currently does nothing. Instead, we use the - preprocessing facilities provided by invoking CC -E always. - --bback_end - Causes the CFE to use a different compiler back end than the - default one (if dynamic loading is supported). Legal values for - this option and the default value are implementation specific. - --u Prints a usage message from the CFE. All possible options are - shown. No other work is done regardless of any other options. - --v Causes the CFE to produce informational output as the various - phases of the compiler execute. - --w Suppresses IDL compiler warning messages. - - -WHITESPACE - -All option arguments may be separated from their option letter by -whitespace. For example, -D FOO is equivalent to -DFOO. - -UNKNOWN OPTIONS - -If an unknown option is passed to the CFE, the offending option is -displayed to the user together with a usage message, and no compilation is -performed. - -PASSING OPTIONS TO COMPILER PHASES - -The order in which options appear on the command line is preserved when -they are passed to various compiler phases. - -MUTUALLY EXCLUSIVE OPTION COMBINATIONS - -Mutually exclusive or ambiguous option combinations are resolved by using -the option that appears later on the command line. For example, - - -DFOO -UFOO - -has no effect and leaves FOO undefined for the preprocessor. - -OPTION SCOPE - -All options are in effect for the entire IDL compilation run. If multiple -IDL source file names are given on the command line, all options apply to -each file. If different IDL source files require different sets of options -for successfull compilation, they must be compiled separately. - -EXIT STATUS - -IDL Compilers exit with status equal to zero for successfull compilations. -If errors were found by the CFE, the exit status is a count of the errors. -The exit status for unsuccessfull compilations aborted by BEs is defined by -each BE. - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - -COPYRIGHT NOTICE: - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 diff --git a/TAO/TAO_IDL/docs/COPYRIGHT b/TAO/TAO_IDL/docs/COPYRIGHT deleted file mode 100644 index 461ad949518..00000000000 --- a/TAO/TAO_IDL/docs/COPYRIGHT +++ /dev/null @@ -1,57 +0,0 @@ -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/INSTALL b/TAO/TAO_IDL/docs/INSTALL deleted file mode 100644 index 6fcaa710042..00000000000 --- a/TAO/TAO_IDL/docs/INSTALL +++ /dev/null @@ -1,229 +0,0 @@ -INTERFACE DEFINITION LANGUAGE INSTALLATION GUIDE --==============================================- - -INTRODUCTION - -This file describes the installation process for OMG_IDL_CFE version 1.3. -This file explains how to: - -- install the source code -- modify the sources to customize them for different configurations -- modify the sources to implement your own back end - -TESTED CONFIGURATIONS - -This release has been tested and is believed to operate correctly on: -- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x -- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3 -- g++ 2.5.8 on SunOS 4.1.x -- g++ 2.5.8 on Solaris 2.3 - -This is the first release of OMG IDL CFE which is preconfigured to compile -correctly for Solaris 2.x and with SunPro SparcWorks compilers. - -CUSTOMIZATION - -The release contains a file idl_make_vars in the current directory, which -is included in each Makefile. This file defines all the customizable -variables for the CFE. - -OSV should be set to a string denoting the operating system upon which you -wish to build the CFE. The CFE as shipped is preconfigured to compile -correctly on Solaris 2.x (OSV=SOLARIS2), and has also been tested on SunOS -4.1.x (OSV=SUNOS4). It contains code donated by HP which enables it to be -compiled on Apollo Domain systems (OSV=apollo) and HPUX systems (OSV=hpux), -but these two configurations have not been tested. - -C++ and CCC should be set to identify the C++ compiler you will use to -compile this release. Their values should be identical. Both are set to -address differences between various make programs - some predefine CCC, -others use C++ to denote the C++ compiler. The possible values are CC -(which uses the Sparcworks compilers on SunOS 4.1 and Solaris 2.3) and g++, -which uses the installed version of GNU C++. - -CCFLAGS should be set to a list of flags to pass to the C++ compiler. As -shipped, this list is -g. NOTE: We have not extensively tested the release -with optimization turned on. - -CPP_FLAGS should be set to a list of flags to pass to the C++ preprocessor. -Use this variable to enable or disable specific customizations you make to -the BE or CFE sources. - -YFLAGS should be set to a list of flags to pass to the Yacc program. As -shipped, the list is -d -t, which causes Yacc to generate y.tab.h and -y.tab.c files. - -LEXFLAGS should be set to a list of flags to pass to the Lex program. As -shipped, the list -t. - -RANLIB should be set to the location of the ranlib program on your system. -As shipped this is ranlib. If your system has no ranlib you can set this -variable to ':' or /bin/true. As shipped the variable is preset to -/bin/true since Solaris 2.x does not use ranlib. - -AR should be set to the location of the ar program on your system. As -shipped this is ar. If your system has a different mechanism for creating -libraries, you should modify the value of this variable accordingly. - -ARFLAGS should be set to the flags to be passed to the ar program. As -shipped this is 'crv'. - -INSTALLATION - -a. Disk space requirements - -This distribution requires approximately 350 KBytes when compressed. When -uncompressed, untarred and compiled, approximately 10 MBytes of disk space -are consumed on a Sun 4. - -b. Getting the software - -Use anonymous FTP to omg.org and supply your e-mail address as password. -Change directories to pub/OMG_IDL_CFE_1.3, set bin and get the compressed -tar file OMG_IDL_CFE_1.3.tar.Z. - -The distribution may, in the future, be made available from other archives -on the Internet. However, omg.org will always have the most up-to-date -version of this software. - -After transferring this file, uncompress it and untar it in a directory of -your choice. - -c. Compiling it - -If you are using a Sparcstation running Solaris 2.x and have the SunPro -Sparcworks compilers installed, you may directly install the software. If -your hardware or operating system configurations are different, read and -follow the instructions in the previous section first. - -At the root directory of the release, issue - - % make - -or - - % make all - -This will compile the provided sources and the sources found in the be -directory. Executing this make target causes 'make all' to be invoked in -each subdirectory, resulting in building the libraries for each component -and finally a link step producing an executable IDL compiler. - -In order to make only the compiler front end components, without compiling -the sources found in the be directory and without building an executable, -issue - - % make libs - -This will build the libraries in the ast, fe, util, driver and narrow -directories. To build only the be, issue - - % make be - -To build all libraries without creating an executable, issue - - % make all_libs - -To remove all files created by the build process, issue - - % make clean - -This will not remove any files created by Yacc and Lex, because you may be -using the ones provided in the distribution (see below). - -d. Yacc and Lex - -Some installations may not have a C++ aware Yacc and Lex processor. For -these installations, we have included the output of yacc and lex in the -release. If you need to use these files to build the release because you -don't have access to a C++ capable Yacc or Lex, go to the "fe" directory, -issue the command: - - % touch lex.yy.cc y.tab.cc y.tab.hh - -This will ensure that the processed files appear to be newer than the -source files they were produced from and will cause "make" to skip their -production. - -NOTE: The files provided in the distribution have been produced on Solaris -2.3 and may contain OS-specific #include directives. If you intend to use -these files, you may have to edit them to make them work in your -environment. The provided files are known to compile cleanly without -modification with both SunPro Sparcworks compilers and GNU C++ on both -SunOS 4.1 and Solaris 2.3. We have not tested the grammar and lexer input -files with bison or flex. - -IMPLEMENTING A BACK END - -To implement your own back end, you can start with the provided sources in -the be directory and modify them. The Makefile understands the 'make all' -target and will generate libbe.a in the demo_be directory. As set up, the -variable CPP_FLAGS allows you to place include files either in the current -directory or in the include directory. Alternatively, you can place your -include files in a new directory and modify CPP_FLAGS to cause the C++ -preprocessor to search this new directory for referenced include files, by -adding a new -I directive. - -Additional detail on the structure and function of back ends, and on the -protocol which a back end must implement, are found in the document -entitled WRITING_A_BE. - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/PROBLEMS b/TAO/TAO_IDL/docs/PROBLEMS deleted file mode 100644 index 65cfb6a1893..00000000000 --- a/TAO/TAO_IDL/docs/PROBLEMS +++ /dev/null @@ -1,132 +0,0 @@ -OMG INTERFACE DEFINITION LANGUAGE COMPILER FRONT END: KNOWN PROBLEMS --==================================================================- - -INTRODUCTION - -This file describes what configurations are known to work correctly with -this release, and what are the known problems with this release as shipped. -Comments about future possible enhancements do not imply a commitment on -the part of Sun or any of its subsidiaries to produce these enhancements. - -TESTED CONFIGURATIONS - -This release has been tested and is known to operate correctly on: - -- Sparcstation 2 running SunOS 4.1.2, when compiled with SparcWorks 3.0 -- Sparcstation 10 running Solaris 2.3, when compiled with SparcWorks 3.0.1 -- Sparcstation 10 running Solaris 2.3, when compiled with SparcWorks 4.0 - -We are aware of a bug in GNU C++ (the latest version we tested was 2.5) -which causes up-casting (changing the type of an instance from a base class -to a more derived class, also known as "narrowing") to fail or cause a -program crash. - -PROBLEMS: - -This is a list of known problems with the current version of the CFE: - -- The following syntax, although legal, is not accepted by the CFE: - - .. sequence > .. - - This causes a parse error. The cause of this problem is that the '>>' is - read as a right shif operater and not as two '>'s. You can avoid this - problem by instead writing - - .. sequence > .. - -- The following syntax, although legal, is not accepted by the CFE: - - const string foo = "abc" " and" " another" " string"; - - Instead, write: - - const string foo = "abc and another string"; - -- The printout produced by the -d option for dumping the AST is not always - perfect. Specifically, dumping of sequences and arrays is deficient. - -POSSIBLE FUTURE ENHANCEMENTS: - -This is a list of areas in which the code of the CFE may change in future -releases: - -- The current release is restricted in its use of C++ because it must - be possible to compile it using C++ 2.1. However, we have also provided - files that depend on features which are only present in C++ 3.0, such as - templates. If your compiler supports templates and you wish to use them, - copy the files in include/utl_tmpl to include, and copy the files in - util/utl_tmpl to util. You will also need to make compiler dependent - modifications to Makefiles throughout the CFE directory hierarchy to - enable the use of templates. - - The code using templates was donated by Steve Vinoski of HP. - - In a future release of the CFE only the template code may be included, - and hence users will need to use a C++ 3.0 or higher compiler. - -- The UTL_list classes defined in the util directory are rudimentary. More - features may be added to make the functionality richer. - -- The UTL_String class may be rewritten or replaced by a standard ANSI C++ - String implementation. Applications will be shielded from this change. - -COPYRIGHT: - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/README b/TAO/TAO_IDL/docs/README deleted file mode 100644 index 6d73554acce..00000000000 --- a/TAO/TAO_IDL/docs/README +++ /dev/null @@ -1,233 +0,0 @@ -INTERFACE DEFINITION LANGUAGE COMPILER FRONT END --==============================================- - -INTRODUCTION - -Welcome to the publicly available source release of SunSoft's -implementation of the compiler front end (CFE) for OMG Interface Definition -Language! This is Release 1.3 of the CFE. - -The Interface Definition Language (IDL) implementation is divided into -three parts: - -- A main program for driving the compilation process -- A parser and attendant utilities -- One or more back ends (BEs) for taking the processed input and producing - output in a target language and target format - -WARNINGS - -This is a preliminary version. This software is made available AS IS and -WITH NO GUARANTEES. Please read the copyright notice attached at the -bottom of this file. - -IMPORTANT NOTICE FOR USERS OF OMG IDL CFE VERSION 1.2. - -Please carefully read the file CHANGES to obtain IMPORTANT INFORMATION on -changes in that may affect the manner in which a BE is constructed. You -must follow instructions contained in the file CHANGES to obtain a -functional BE if you are migrating an existing BE from OMG IDL CFE v. 1.2. - -TARGET AUDIENCE - -Who should use this release? - -- You can use this source release to create a stand alone parser for OMG - Interface Definition Language. This may be useful to verify the legality - of IDL input. -- Developers of OMG Interface Definition Language compilers should use this - release as a basis for writing their back ends, to obtain a common - framework for their compiler and to provide portable and uniform - parsing of IDL input. - -HOW TO OBTAIN THIS SOFTWARE - -Please use anonymous FTP to omg.org and supply your e-mail address as the -password. Then change directories to pub/OMG_IDL_CFE_1.3, set binary transfer -and get the file OMG_IDL_CFE_1.3.TAR.Z. This file includes copies of all -individual documentation files in the directory. - -Precompiled binaries constructed from the sources in this release will be -made available shortly, in the directory pub/OMG_IDL_CFE_1.3/bin. These -binaries are useful for parsing IDL source and for learning about the -language. Precompiled binaries for Solaris 2.x and for SunOS 4.x will be -provided. - -You can also use the mail server program to retrieve this software. Send -email with the subject 'help' to omg_idl@omg.org, and the mail server will -respond with instructions on how to retrieve the software. - -Copies of this software may be made available from archives other than -omg.org. New versions made available by Sun will be placed on omg.org and a -message will be sent to this newsgroup announcing its availability. - -Finally, the SunSoft OMG IDL CFE is also available on magnetic tape for a -nominal media charge directly from SunSoft. Please refer to part number -DIDL-100-STP when ordering. - -CONTACT POINT - -Please let us know who you are if you decide to use this software, and how -you use it. Please send e-mail to: - - idl-cfe@sun.com - -This address can also be used to report problems, bugs, suggestions and -send general comments. - -WHAT IS PROVIDED IN THE RELEASE - -Provided in this release are: - -- A main program for driving an Interface Definition Language compiler -- A parser for the Interface Definition Language grammar which builds an - internal representation of the input parsed. This internal - representation, named an Abstract Syntax Tree (AST), is used as input to - a back end -- Some utility functions used by the parser -- A demonstration back end (BE) which exercises the front end but produces - no translated output -- Documentation of the public interfaces and of the contract between - the compiler front end and a back end - -OPERATION - -A complete compiler operates in two passes: - -- The first pass, provided in this release, parses the IDL input and - produces an internal representation, called an Abstract Syntax Tree (AST). - This pass also does a complete syntax and semantics check of the input - provided to ensure that exactly legal IDL input is accepted. If a syntax - or semantic error is discovered, the second pass is not invoked. -- The second pass, provided by compiler developers, takes the AST and - produces output in the language and format of choice. A demonstration - back end is provided in the release. - -HOW TO USE THIS SOFTWARE - -To create a complete compiler from OMG Interface Definition Language to a -target language, compiler developers will: - -- Write a back end (BE) to take the internal representation of the input - parsed and translate it to the target language and format. You will - probably want to replace the BE directory in this source tree with your - own BE directory -- Link the BE with the sources provided here to produce a complete - compiler. - -DOCUMENTATION - -The OMG Interface Definition Language is fully described in the CORBA -documentation, Chapter 4. This document may be obtained from OMG. - -This release also provides the following documents: - -- This README file, describing the release -- INSTALL, describing installation of the software -- WRITING_A_BE contains all the information needed to start writing a back - end for this distribution -- CHANGES_IN_AST describes changes that affect migration of BEs written - against version 1.2 to version 1.3. -- CLI, describing the command line interface to the CFE -- ROADMAP, describing the directory structure for the source code. This - file will assist a developer in understanding the structure of the code - and navigating it -- PROBLEMS, describing a list of issues that may be addressed in future - releases -- BUG_REPORT, containing a form for use in reporting bugs and problems - with the IDL CFE - -ENVIRONMENT - -The INSTALL file explains how to customize the software for specific -platforms. The source distribution expects the following environment: - -- Sparcstation 1, 2, or 10 hardware -- SunPro SparcWorks 3.x or 4.0 - -As preconfigured, it compiles on Solaris 2.x. It can be reconfigured to -compile on SunOS 4.x, HPUX or Apollo Domain OS. As far as is known, no use -is made of Sun Make-specific features, and the Makefiles should be usable -with other make programs. - -This release has been tested and is believed to operate correctly with: -- SunPro Sparcworks 2.x and 3.0 on SunOS 4.1.x -- SunPro Sparcworks 2.x and 3.0 on Solaris 2.3 -- g++ 2.5.8 on SunOS 4.1.x -- g++ 2.5.8 on Solaris 2.3 - -INSTALLATION - -This release is targetted for Sun workstations running Solaris 2.x. The -process of installing this software is described in detail in the file -INSTALL in this directory. The INSTALL file also describes how to customize -the release for your own environment if it is different. - -KNOWN PROBLEMS - -A list of known deficiencies is provided in the file PROBLEMS in this -directory. If you find a problem which is not mentioned in it, please -report it as described below. Please read this file now to be apprised of -the problems found so far with this release. - -COPYRIGHT - -This copyright notice appears on all files. Please read it! - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/ROADMAP b/TAO/TAO_IDL/docs/ROADMAP deleted file mode 100644 index 5da0d83823c..00000000000 --- a/TAO/TAO_IDL/docs/ROADMAP +++ /dev/null @@ -1,126 +0,0 @@ -INTERFACE DEFINITION LANGUAGE SOURCE TREE ROADMAP --===============================================- - -INTRODUCTION - -This file provides an overview of the directory structure of the sources -for the compiler front end for OMG Interface Definition Language. This will -be of use in understanding the source structure and will aid developers of -BEs. - -DIRECTORIES - -The following directories are present: - -- idl_specs: Contains many examples of IDL specifications, including the - IDL specifications of several Object Services, and several - files that somewhat exhaustively test features of the IDL - language -- include: Contains all include (".hh") files -- ast: Contains implementations for all classes comprising - the AST internal representation of the input parsed -- fe: Contains the Yacc grammar and Lex specification for - the OMG Interface Definition Language, and some utilities -- driver: Contains the main program which drives the compilation - process -- util: Contains utility classes used throughout the CFE. These - classes may also be of use in writing a BE -- narrow: Contains an implementation of a narrowing mechanism used - in the CFE. Since C++ does not provide compiler support - for narrowing, this is provided as an explicit service -- demo_be: Contains a demonstration back end which subclasses all - the AST classes but adds no functionality - -NAMING CONVENTIONS - -The file names start with two or three characters identifying the component -to which they belong: - -- idl_: This is the prefix for all files which contain global - elements of the CFE -- ast_: This is the prefix for all files containing implementations - or definitions of the AST -- fe_: This is the prefix for all files belonging to the parser -- drv_: This is the prefix for all files belonging to the compiler - driver -- utl_: This prefix is used to identify files belonging to the set of - utlities provided with the CFE -- nr_: This prefix identifies files belonging to the narrowing mechanim -- be_: This is the prefix for all files belonging to the back end - -All C++ files use the ".cc" extension, and all include files have the ".hh" -extension. All make files are named Makefile. Each directory contains a -make file. Lex input files have the ".ll" extension, and Yacc input files -use the ".yy" extension. All files containing IDL specifications have a -name ending with the ".idl" suffix. - -INCLUDE FILE HIERARCHY - -There are two main include files which must be included in all source -files. These are idl.hh and idl_extern.hh. The idl.hh file includes the -definitions for all the facilities provided by the CFE. The idl_extern.hh -file declares globally accessible data and exported application programmer -interface entry points. - -Each component has an include file for its own. Back end writers will want -to modify be.hh and possibly be_extern.hh. - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. diff --git a/TAO/TAO_IDL/docs/WRITING_A_BE b/TAO/TAO_IDL/docs/WRITING_A_BE deleted file mode 100644 index 5c3c069f7a1..00000000000 --- a/TAO/TAO_IDL/docs/WRITING_A_BE +++ /dev/null @@ -1,1350 +0,0 @@ -OMG INTERFACE DEFINITION LANGUAGE COMPILER FRONT END PROTOCOLS -============================================================== - -INTRODUCTION ------------- - -Welcome to the publicly available source release of SunSoft's -implementation of the compiler front end (CFE) for OMG Interface Definition -Language! - -This document explains how to use the release to create a fully functional -OMG Interface Definition Language to target language compiler for your -selected target system configuration. The section OVERVIEW explains this -document's structure. - -CONTEXT -------- - -The implementation has three parts: - -1. A main program driving the compilation process -2. A parser and attendant utilities for converting the IDL input into - an internal form -3. One or more back ends which take as input the internal form representing - the IDL input, and which produce output in a target language and target - format - -The release contains components 1 and 2, and a demonstration implementation -of component 3. To use this release, you - -- write a back end which takes the internal representation of the parsed input - and translates it to the target language and format. You may replace or - modify the demonstration back end provided. -- link the back end with the provided main program and parser sources - to produce a complete compiler. - -OVERVIEW --------- - -This document does not explain IDL nor does it introduce IDL features. -For this information, refer to the OMG CORBA specification, available by -anonymous FTP from omg.org. - -This document does not explain C++, except to demonstrate how it is -used to construct the CFE. The ARM by Stroustrup and Ellis provides a -thorough explanation of C++. - -This document consists of two independent parts. The first part -s all CFE supported protocols and the required -application programmer's interface entry points that a conformant -BE must provide. The second part steps through the process of -constructing a working BE. - -The first part describes: - -- The compilation process -- The Abstract Syntax Tree (AST) internal representation of parsed IDL - input -- How access to member data fields is managed -- How the AST is generated from the IDL input (Generator protocol) -- How definition scopes are nested and how name lookup works -- The narrowing mechanism -- How definition scopes are managed and how nodes are added to scopes -- How BEs get control during the AST construction process (Add protocol) -- The inheritance scheme used by the AST and how it affects BEs -- How errors are handled and reported -- How the CFE is initialized -- How the command line arguments are parsed -- What global variables and functions are provided -- What API is required to be supported by a BE in order to link - with the CFE -- What files must be included in each BE file - -The second part describes - -- The API to be supplied by each BE -- How to subclass from the AST to add BE specific functionality -- How to subclass from the Generator protocol to create BE specific - extended AST nodes -- How to write constructors for the derived BE classes -- How to use the Add protocol to store BE specific information -- How to maintain BE specific information which applies to the entire - AST generated from the IDL input -- How to use data members in your BE -- How to build a complete compiler - -PART I. FEATURES OF THE CFE --=========================- - -THE COMPILATION PROCESS ------------------------ - -The OMG IDL compiler operates as follows: - -- Parses command line arguments. If an option is directed at a - BE, an appropriate operation provided by the BE is invoked to process - the option. -- Performs global initialization. -- Forks a copy of the compiler for each file specified as input. -- An ANSI-compatible preprocessor preprocesses the IDL input. -- Parses the file using the CFE parser, and constructs an AST describing the - IDL input. -- Prints the AST for verification, if requested. -- Invokes the BE to process the AST and produce the output - characteristic of that BE. - -ABSTRACT SYNTAX TREE --------------------- - -The AST (Abstract Syntax Tree) is the primary mechanism for communication -between a BE and the CFE. It consists of a tree of instances of classes -defined in the CFE or refinements of those classes as defined in a BE. -The class hierarchy of the AST closely resembles the structure of the IDL -syntax. Most AST classes have direct equivalents in IDL constructs. - -The UTL_Scope class defines common functionality for definition scope -management and name lookup. This is explained in a following section. -UTL_Scope is defined in include/utl_scope.hh and implemented in -util/utl_scope.cc. - -The AST provides the following classes: - -AST_Decl Base of the AST class hierarchy. Each class in the AST - inherits from AST_Decl. Defined in include/ast_decl.hh - and implemented in ast/ast_decl.cc - -AST_Type Common base class for all classes which represent IDL - type constructs. Defined in include/ast_type.hh and - implemented in ast/ast_type.cc. Inherits from AST_Decl. - -AST_ConcreteType Common base class for all classes which represent IDL - types other than interfaces. Defined in the file - include/ast_concrete_type.hh and implemented in - ast/ast_concrete_type.cc. Inherits from AST_Type. - -AST_PredefinedType Instances of this class represent all predefined types - such as long, char and so forth. Defined in the file - include/ast_predefined_type.hh and implemented in - ast/ast_predefined_type.cc. Inherits from - AST_ConcreteType. - -AST_Module Represents the IDL module construct. Defined in the - file include/ast_module.hh and implemented in - ast/ast_module.cc. Inherits from AST_Decl and - UTL_Scope. - -AST_Root Represents the root of the abstract syntax tree being - constructed. Is a subclass of AST_Module. Can be - subclassed in BEs to store information associated with - the entire AST. Defined in the file include/ast_root.hh - and implemented in ast/ast_root.cc. Inherits from - AST_Module. - -AST_Interface Represents the IDL interface construct. Defined in - include/ast_interface.hh and implemented in the file - ast/ast_interface.cc. Inherits from AST_Type and - UTL_Scope. - -AST_InterfaceFwd Represents a forward declaration of an IDL interface. - Defined in include/ast_interface_fwd.hh and implemented - in ast/ast_interface_fwd.cc. Inherits from AST_Decl. - -AST_Attribute Represents an IDL attribute construct. Defined in - include/ast_attribute.hh and implemented in the file - ast/ast_attribute.cc. Inherits from AST_Decl. - -AST_Exception Represents an IDL exception construct. Defined in - include/ast_exception.hh and implemented in the file - ast/ast_exception.cc. Inherits from AST_Decl. - -AST_Structure Represents an IDL struct construct. Defined in the file - include/ast_structure.hh and implemented in the file - ast/ast_structure.cc. Inherits from AST_ConcreteType - and UTL_Scope. - -AST_Field Represents a field in an IDL struct or exception - construct. Defined in include/ast_field.hh and - implemented in ast/ast_field.cc. Inherits from - AST_Decl. - -AST_Operation Represents an IDL operation construct. Defined in the - file include/ast_operation.hh and implemented in - ast/ast_operation.cc. Inherits from AST_Decl and - UTL_Scope. - -AST_Argument Represents an argument to an IDL operation construct. - Defined in include/ast_argument.hh and implemented in - ast/ast_argument.cc. Inherits from AST_Field. - -AST_Union Represents an IDL union construct. Defined in - include/ast_union.hh and implemented in - ast/ast_union.cc. Inherits from AST_ConcreteType and - from UTL_Scope. - -AST_UnionBranch Represents an individual branch in an IDL union - construct. Defined in include/ast_union_branch.hh and - implemented in ast/ast_union_branch.cc. Inherits from - AST_Field. - -AST_UnionLabel Represents the label of an individual branch in an IDL - union construct. Defined in include/ast_union_label.hh - and implemented in ast/ast_union_label.cc - -AST_Constant Represents an IDL constant construct. Defined in - include/ast_constant.hh and implemented in the file - ast/ast_constant.cc. Inherits from AST_Decl. - -AST_Enum Represents an IDL enum construct. Defined in the file - include/ast_enum.hh and implemented in ast/ast_enum.cc. - Inherits from AST_ConcreteType and UTL_Scope. - -AST_EnumVal Represents an enumerator in an IDL enum construct. - Defined in include/ast_enum_val.hh and implemented in - ast/ast_enum_val.cc. Inherits from AST_Constant. - -AST_Sequence Represents an IDL sequence construct. Defined in - include/ast_sequence.hh and implemented in - ast/ast_sequence.cc. Inherits from AST_Decl. - -AST_String Represents an IDL string construct. Defined in the file - include/ast_string.hh and implemented in - ast/ast_string.cc. Inherits from AST_Decl. - -AST_Array Represents an array modifier to the type of an IDL - field or typedef declaration. Defined in the file - include/ast_array.hh and implemented in - ast/ast_array.cc. Inherits from AST_Decl. - -AST_Typedef Represents an IDL typedef construct. Defined in the file - include/ast_typedef.hh and implemented in - ast/ast_typedef.cc. Inherits from AST_Decl. - -AST_Expression Represents an IDL expression. Defined in the file - include/ast_expression.hh and implemented in - ast/ast_expression.cc. - -AST_Root A subclass of AST_Module, an instance of this class - is used to represent the distinguished root node of - the AST. Defined in include/ast_root.hh and implemented - in ast/ast_root.cc. Inherits from AST_Module. - - -USING INSTANCE DATA -------------------- - -The AST classes define member data fields in addition to defining -operations on instances. These member data fields are all private, to allow -only the instance in which they are stored direct access. Other objects -(including other instances of the same class) can obtain access to the -member data fields of an instance through accessor functions. These -accessor functions allow retrieval of the data, and in some cases update -functions are also provided to store new values. - -There are several reasons why this approach is taken. First, it hides the -actual implementation of the member data fields from outside the class. For -example, a Thermometer class would not expose whether its temperature -reading is stored in Farenheit or Celsius units, and it could allow access -through either unit method. - -Second, protecting access to member data in this manner restricts the -ability to update it to the instance itself, save where update functions -are explicitly provided. This makes for more reliable implementations, -since the manipulation of the data is isolated in the class implementation -itself. - -Third, wrapping a function call around access to member data allows such -access and update operations to be protected in a multithreaded -environment. While the CFE itself is not multithreaded and the access -operations as currently defined do no special work to protect against -mutliple conflicting access operations, this may be changed in a future -version. Moving the CFE to a multithreaded environment without protecting -access to member data in this manner would be extremely difficult. - -The protocol defined in the CFE is that member data fields are all private -and have names which start with the prefix "pd_" (denoting Private Data). -The access functions have names which are the same as the name of the field -sans the prefix. For example, AST_Decl has a field pd_defined_in and an -access function defined_in(). - -The update functions have names starting with "set_" followed by the name -of the corresponding access function. Thus, AST_Decl defines a function -set_in_main_file(boolean) which sets the pd_in_main_file data member's -value to the boolean provided. - -GENERATION OF THE AST ---------------------- - -The CFE generates the abstract syntax tree after parsing IDL -input. The nodes of the AST are defined by classes introduced in the -previous section, or by subclasses thereof as defined by each BE. In -writing the CFE, we were faced with the following problem: how to generate -the AST containing nodes of the derived classes as defined in each BE -without knowledge of the types and conventions of these BE classes. - -One alternative was to define a naming scheme which predetermines the names -of each subclass a BE can define. The AST would then be generated by -calling an appropriate constructor on the BE derived class. This scheme -suffers from some shortcomings: - -- It breaks the modularity of the compiler and imports knowledge about - types defined in a BE into the CFE, where this information does not belong. -- It restricts a compiler to having only one BE loaded at a time because the - names of these classes can be in use in only one BE at a time. -- It requires a BE to provide derived classes for all AST classes, even for - those classes where the BE adds no functionality. - -The mechanism we chose is different. We define the AST_Generator class -which has an operation for each constructor defined on each AST class. The -operation takes arguments appropriate to the constructor, invokes it and -returns the created AST node, using the type known to the CFE. All such -operations on the generator are declared virtual. The names of all -operations start with "create_" and contain the name of the construct. -Thus, an operation which invokes a constructor of an AST_Module is named -create_module. AST_Generator is defined in include/ast_generator.hh and -implemented in ast/ast_generator.cc. - -If a BE derives from any AST class, it must also derive from the -AST_Generator class and redefine the relevant operations to invoke -constructors of the BE provided class instead of the AST provided class. -For example, if BE_Module is a subclass of AST_Module in a BE, the BE would -also define BE_Generator and redefine create_module to call the constructor -of BE_Module instead of that provided by AST_Module. - -During initialization, the CFE causes an instance of the BE derived -generator to be created and saved. This is explained in the section on -REQUIRED ENTRY POINTS SUPPLIED BY A BE. During parsing, actions in the Yacc -grammar invoke operations on the saved instance to create new nodes for the -AST as it is being built. These operations invoke constructors for BE -derived classes or for AST provided classes if they were not overridden. - -DEFINITION SCOPES ------------------ - -IDL is a nested scoped language. The scoping rules are defined by the CORBA -spec and closely follow those of C++. - -Scope management is implemented in two classes provided in the utilities -library, UTL_Scope and UTL_Stack. UTL_Scope manages associations between -names and AST nodes, and UTL_Stack manages scope nesting and entry and exit -from definition scopes as the parse is proceeding. UTL_Scope is defined in -include/utl_scope.hh and implemented in util/utl_scope.cc. UTL_Stack is -defined in include/utl_stack.hh and implemented in util/utl_stack.cc. - -During initialization, the CFE creates an instance of UTL_Stack and saves -it. During parsing, as definition scopes are entered and exited, AST nodes -are pushed onto, or popped from, the stack represented by the saved -instances. Nodes on the stack are stored as instances of UTL_Scope. Section -THE NARROWING MECHANISM explains how to obtain the real type of a node -retrieved from the stack. - -All definition scopes are linked in a tree rooted in the distinguished AST -root node. This linkage is implemented by UTL_Scope and AST_Decl. The -linkage is a permanent record of the scope nesting while the stack is a -dynamic record which at each instant represents the current state of the -parse. - -The nesting information is used to do name lookup. IDL uses scoped names -which are concatenations of definition scope names ending with individual -construct names. For example, in - - interface a { - struct b { - long c; - }; - const long k = 23; - struct s { - long ar[k]; - }; - }; - -the name a::b::c represents the long field in the struct b inside the -interface a. - -Lookup is performed by searching down the linkage chain for the first component -of the name, then, when found, recursively resolving the remaining -components in the scope defined by the first component. Lookup is relative -to the scope of use; in the above example, k could also have been referred to -as a::k within the struct s. - -Nodes are stored in a definition scope as instances of AST_Decl. Thus, name -lookup returns instances of AST_Decl. The next section, THE NARROWING -MECHANISM, explains how to obtain the real type of a node retrieved from a -definition scope. - -THE NARROWING MECHANISM ------------------------ - -Here we give only a cursory explanation of how narrowing works. We -concentrate on defining the problem and showing how to use our narrowing -mechanism. The narrowing mechanism is defined in include/idl_narrow.hh. - -As explained above, nodes are stored on the scope stack as instances of -UTL_Scope, and inside definition scopes as instances of AST_Decl. Also, -nodes are linked in a nesting tree as instances of AST_Decl. Given a node -retrieved from the stack or a definition scope, one is faced with the task -of obtaining its real class. C++ does not currently provide an implicit -mechanism for narrowing to a derived class, so the CFE defines its own -mechanism. This mechanism requires some work on your part as BE implementor -and requires some explicit code to be written when it is to be used. - -The class AST_Decl defines an enum whose members encode specific AST node -classes. AST_Decl provides an accessor function, node_type(), which -retrieves a member of the enum representing the AST type of the node. Thus, -if an instance of AST_Decl really is an instance of AST_Module, the -node_type() accessor returns AST_Decl::NT_module. - -The class UTL_Scope also provides an accessor function, scope_node_type(), -which returns a member of the enum encoding the actual type of the node. -Thus, given an UTL_Scope instance which is really an instance of -AST_Operation, scope_node_type() would return AST_Decl::NT_op. - -Perusing the header files for classes provided by the AST, you will note -the use of some macros defined in include/idl_narrow.hh. These macros -define the explicit narrowing mechanism: - -DEF_NARROW_METHODSx(,) for x equal to 0,1,2 or 3, -defines a narrowing method for the specified class which has 0,1,2 or 3 -immediate base classes from which it inherits. For example, ast_module.hh -which defines AST_Module contains the following line: - - DEF_NARROW_METHODS2(AST_Module, AST_Decl, UTL_Scope) - -This is because AST_Module inherits directly from AST_Decl and UTL_Scope. - -DEF_NARROW_FROM_DECL() appears in class definitions for classes -which are derived from AST_Decl and which can be stored in a definition -scope. This macro declares a static operation narrow_from_decl(AST_Decl *) -on the class in which it appears. The operation returns the provided -instance as an instance of if it can be narrowed, or NULL. - -DEF_NARROW_FROM_SCOPE() appears in class definitions of classes -which are derived from UTL_Scope and which can be stored on the scope -stack. This macro declares a static operation narrow_from_scope(UTL_Scope *) -on the class in which it appears. The operation returns the provided -instance as an instance of if it can be narrowed, or NULL. - -Now look in the files implementing these classes. You will note occurrences -of the following macros: - -IMPL_NARROW_METHODSx(,) for x equal to 0,1,2 or 3, -implements a narrowing method for the specified class which has 0,1,2 or 3 -immediate base classes from which it inherits. For example, ast_module.cc -which implements AST_Module contains the following line: - - IMPL_NARROW_METHODS2(AST_Module, AST_Decl, UTL_Scope) - -IMPL_NARROW_FROM_DECL() implements a method to narrow from an -instance of AST_Decl to an instance of as defined above. - -IMPL_NARROW_FROM_SCOPE() implements a method to narrow from an -instance of UTL_Scope to an instance of as defined above. - -To put it all together: In the file ast_module.hh, you will find: - - // Narrowing - DEF_NARROW_METHODS2(AST_Module, AST_Decl, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Module); - DEF_NARROW_FROM_SCOPE(AST_Module); - -In the file ast_module.cc, you will see: - -/* - * Narrowing methods - */ -IMPL_NARROW_METHODS2(AST_Module, AST_Decl, UTL_Scope) -IMPL_NARROW_FROM_DECL(AST_Module) -IMPL_NARROW_FROM_SCOPE(AST_Module) - -The CFE uses narrowing internally to obtain the correct type of nodes in -the AST. The CFE contains many code fragments such as the following: - - AST_Decl *d = get_an_AST_Decl_from_somewhere(); - AST_Module *m; - ... - if (d->node_type() == AST_Decl::NT_module) { - m = AST_Module::narrow(d); - if (m == NULL) { // Narrow failed - ... - } else { // Success, do normal processing - ... - } - } - ... - -Similar code implements narrowing instances of UTL_Scope to their actual -types. - -In your BE classes which derive from UTL_Scope you must include a line -defining how to narrow from a scope, so: - - DEF_NARROW_FROM_SCOPE() - -and similarly for your BE classes which derive from AST_Decl. - -The narrowing mechanism is defined only for narrowing from AST_Decl and -UTL_Scope. If your BE class inherits directly from one or more classes -which themselves are derived from AST_Decl and/or UTL_Scope, you must -include a line - - DEF_NARROW_METHODSx(,,) - -To make this concrete, here is what you'd write in a definition of BE_union -which inherits from AST_Union: - - DEF_NARROW_METHODS1(BE_Union, AST_Union); - DEF_NARROW_FROM_DECL(BE_Union); - DEF_NARROW_FROM_SCOPE(BE_Union); - -and in the implementation file of BE_Union: - -/* - * Narrowing methods: - */ -IMPL_NARROW_METHODS1(BE_Union, AST_Union) -IMPL_NARROW_FROM_DECL(BE_Union) -IMPL_NARROW_FROM_SCOPE(BE_Union) - -Then, in BE code which expects to see an instance of your derived BE_Union -class, you will write: - - AST_Decl *d = get_an_AST_Decl_from_somewhere(); - BE_Union *u; - ... - if (d->node_type() == AST_Decl::NT_union) { - u = BE_Union::narrow_from_decl(d); - if (u == NULL) { // Narrow failed - ... - } else { // Success, do normal processing - ... - } - } - ... - - -SCOPE MANAGEMENT ----------------- - -Instances of classes which are derived from UTL_Scope implement definition -scopes. A definition scope can contain any kind of AST node as long as it -is derived from AST_Decl. However, specific kinds of definition scopes such -as interfaces and unions can contain only a restricted subset of all AST -node types. - -UTL_Scope provides operations to add instances of each AST provided class -to a definition scope. The names of these operations are constructed by -prepending the string "add_" to the name of the IDL construct. So, to add -an interface to a definition scope, invoke the operation add_interface. -The operations are all defined virtual and are intended to be overridden in -classes derived from UTL_Scope. - -If the node was successfully added to the definition scope, the node is -returned as the result. Otherwise the node is not added to the definition -scope and NULL is returned. - -All add operation implementations in UTL_Scope return NULL. Thus, -only the operations which implement legal additions to a specific kind of -definition scope must be overridden in the implementation of that -definition scope. For example, in AST_Module the add_interface operation is -overridden to add the provided instance of AST_Interface to the scope and -to return the provided instance if the addition was successful. Operations -which were not overridden return NULL to indicate that the addition is -illegal in this context. For example, in AST_Operation the definition of -add_interface is not overridden since it is illegal to store an interface -inside an operation definition scope. - -The add operations are invoked in the actions in the Yacc grammar. The -following fragment is a representative example of code using the add -operations: - - AST_Constant *d = construct_a_new_constant(); - ... - if (current_scope->add_constant(d) == NULL) { // Failed - ... - } else { // Succeeded - ... - } - -BE INTERACTION DURING THE PARSING PROCESS ------------------------------------------ - -The add operations can be overridden in BE derived classes to let the BE -perform additional house-keeping work during the process of constructing -the AST. For example, a BE could keep separate lists of interfaces as they -are being added to a module. - -If you override an add operation in your BE, you must invoke the overridden -operation in the superclass of your derived class to allow the CFE to -perform its own house-keeping tasks. A good rule is to invoke the operation -on the superclass before you do your own processing; then, if the -superclass operation returns NULL, this indicates that the addition failed -and your own code should immediately return NULL. An example explains this: - -AST_Interface * -BE_Module::add_interface(AST_Interface *i) -{ - if (AST_Module::add_interface(i) == NULL) // Failed, bail out! - return NULL; - ... // Do your own work here - return i; // Return success indication -} - -We strongly advise you to only define add operations that override add -operations provided by the AST classes. Add operations which -do not override equivalent operations in the AST in effect -extend the semantics of the language accepted by the compiler. For -example, the CFE does not have an add_interface operation on -AST_Operation. If you were to define one in your BE_Operation class, -the resulting compiler would allow an interface to be -stored in an operation definition scope. The current CORBA specification -does not allow this. - -AST INHERITANCE SCHEME ----------------------- - -The AST classes all use public virtual inheritance to construct the -inheritance tree. This ensures that a class may appear several times in the -inheritance tree through different paths and the derived class's instances -will have only one copy of the inherited class's data. - -The use of public virtual inheritance has several important effects on how -a BE is constructed. We explain those effects below. - -First, you must define a default constructor for your BE class, since -your class may be used as a virtual base class of some other class. In this -case the compiler may want to call a default constructor for your class. It -is a good idea to have a default constructor anyway, even if you do not -plan to subclass your BE class, since for most C++ compilers this causes -the code to be smaller. Your default constructor should initialize all -constant data members. Additionally, it may initialize any non-constant -data member whose value must be set before the first time the instance is -used. - -Second, the constructor of your BE derived class must explicitly call all -constructors of virtual base classes which perform useful work. For -example, if a class in the AST from which your BE class inherits has an -initializer for a data member, you must call that constructor. This rule is -discussed in detail in the C++ ARM. An example may help here. - -Suppose you define a class BE_attribute which inherits from AST_Attribute. -Its constructor should be as follows: - - BE_Attribute::BE_Attribute(boolean ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Attribute(ro, ft, n, p), - AST_Field(ft, n, p), - AST_Decl(AST_Decl::NT_attr, n, p) - { - } - -The calls to the constructors of AST_Attribute, AST_Field and AST_Decl are -needed because these constructors do useful initializations on their -classes. - -Note that there is some redundancy in the data passed to these -constructors. We chose to preserve this redundancy since it should be -possible to create BEs which subclass only some of the classes supplied by -the AST. This means that the constructors on each class provided by the AST -should take arguments which are sufficient to construct the instance if -the AST class is the most derived one. - -The code supplied with this release contains a demonstration BE which -subclasses all the AST provided classes. The constructors for each class -provided by the BE are found in the file be/be_classes.cc. - -INITIALIZATION --------------- - -The following steps take place at initialization: - -- The global data instance is created, stored in idl_global and filled with - default values (in driver/drv_init.cc). -- The command line arguments are parsed (in driver/drv_args.cc). -- For each IDL input file, a copy of the compiler process is forked (in - driver/drv_fork.cc). -- The IDL input is preprocessed (in driver/drv_preproc.cc). -- FE initialization stage 1 is done: the scopes stack is created and stored - in the global data variable idl_global->scopes() field (in fe/fe_init.cc). -- BE_init is called to create the generator instance and the returned - instance is stored in the global data variable idl_global->gen() field. -- FE initialization stage 2 is done: the global scope is created, pushed on - the scopes stack and populated with predefined types (in fe/fe_init.cc). - -GLOBAL STATE AND ENTRY POINTS ------------------------------ - -The CFE has one global variable named idl_global, which stores an instance -of a class IDL_GlobalData as explained below: - -The CFE defines a class IDL_GlobalData which defines the global -information used in a specific run of the compiler. IDL_GlobalData is -defined in include/idl_global.hh and implemented in the file -util/utl_global.cc. - -Initialization creates an instance of this class and stores it in the value -of the global variable idl_global. Thus, the individual pieces of -information stored in the instance are accessible everywhere. - -ERROR HANDLING --------------- - -All error handling is defined by a class provided by the CFE, UTL_Error. -This class is defined in include/utl_error.hh and implemented in the file -util/utl_error.cc. The class provides several methods for reporting -specific errors as well as generic error reporting methods taking zero to -three arguments. - -The CFE instantiates the class and stores the instance as part of the -global state, accessible as idl_global->err(). Thus, to cause an error -report, you would write code similar to the following: - - if (error condition found) - idl_global->err()->specific_error_message(arg1, ..); - -or - - if (error condition found) - idl_global->err()->generic_error_message(flag, arg1, ..); - -The flag argument is one of the predefined error conditions found in the -enum at the head of the UTL_Error class definition. The arguments to the -specific error message routine are defined by the signature of that -routine. The arguments to a generic error message routine are always -instances of AST_Decl. - -The running count of errors is accessible as idl_global->err_count(). If -the value returned by this operation is non-zero after the IDL input has -been parsed, the BE is not invoked. - -HANDLING OF COMMAND LINE ARGUMENTS ----------------------------------- - -Defined command line arguments are specified in the document CLI, in this -directory. The CFE calls the required BE API entry point BE_prep_arg to -process arguments passed within a -Wb flag. - -REQUIRED ENTRY POINTS SUPPLIED BY A BE --------------------------------------- - -The following API entry points must be supplied by a BE in order to -successfully link with the CFE: - -extern "C" AST_Generator *BE_init(); - - Creates an instance of the generator object and returns it. Note - that the global scope is not yet set up and the scopes stack is - empty when this routine is called. - -extern "C" void BE_produce(); - - Called by the compiler main program after the IDL input has been - successfully parsed and processed. The job of this routine is to - carry out the specific function of the BE. The AST is accessible as - the value of idl_global->root(). - -extern "C" void BE_prep_arg(char *, idl_bool); - - Called to process an argument passed in with a -Wb flag. The boolean - will always be FALSE. - -extern "C" void BE_abort(); - - Called when the CFE decides to abort the compilation. Can be used in - a BE to clean up after itself, e.g. remove temporary files or - directories it created while the parse was in progress. - -extern "C" void BE_version(); - - Called when a -V argument is processed. This should produce a - message for the user identifying the BE that is loaded and its - version information. - -PART II. WRITING A BACK END --=========================- - -REQUIRED API THAT EACH BE MUST SUPPORT --------------------------------------- - -Below are the API entry points that each BE must supply in order to use the -CFE framework. This is a repeat of the BE API section: - -extern "C" AST_Generator *BE_init(); - - Creates an instance of the generator object and returns it. Note - that the scopes stack is still not set up at the time this routine - is called. - -extern "C" void BE_produce(); - - Called by the compiler main program after the IDL input has been - successfully parsed and processed. The job of this routine is to - carry out the specific function of the BE. The AST is accessible as - the value of idl_global->root(). - -extern "C" void BE_prep_arg(char *, boolean); - - Called to process an argument passed in with a -Wb flag. The boolean - will always be FALSE. - -extern "C" void BE_abort(); - - Called when the CFE decides to abort the compilation. Can be used in - a BE to clean up after itself, e.g. remove temporary files or - directories it created while the parse was in progress. - -extern "C" void BE_version(); - - Called when a -V argument is processed. This should produce a - message for the user identifying the BE that is loaded and its - version information. - -WHAT FILES TO INCLUDE ---------------------- - -To use the CFE, each implementation file of your BE must include the -following two header files: - -#include -#include - -Following this, you can include any header files needed by your BE. - -HOW TO SUBCLASS THE AST ------------------------ - -Your BE may subclass from any of the classes provided by the AST. Your -class should use public virtual inheritance to ensure that only one copy of -the class's data members is present in each instance. Read the section on -HOW TO WRITE CONSTRUCTORS to learn about additional considerations that you -must take into account when writing constructors for your BE classes. - -HOW TO SUBCLASS THE GENERATOR TO CREATE BE ENHANCED AST NODES -------------------------------------------------------------- - -Your BE subclasses from classes provided by the AST. To ensure that -instances of these classes are constructed when the AST is built, you must -also subclass AST_Generator and return an instance of your subclass from -the call to BE_init. - -The AST_Generator class provides operations to create instances of all -classes defined in the AST. For example, the operation to create an -AST_Attribute node is as follows: - - AST_Attribute * - AST_Generator::create_attribute(...) - { - return new AST_Attribute(...); - } - -In your BE_Generator subclass of AST_Generator, you will override methods -for creation of nodes of all AST classes which you have subclassed. Thus, -if your BE has a class BE_Attribute which is a subclass of AST_Attribute, -your BE_Generator class definition has to override the create_attribute -method to ensure that instances of BE_Attribute are created. - -The definition of the overriden operations should call the constructor of -the derived class and return the new node as an instance of the inherited -class. Thus, the implementation of create_attribute is as follows: - - AST_Attribute * - BE_Generator::create_attribute(...) - { - return new BE_Attribute(...); - } - -The Yacc grammar actions call create_xxx operations on the generator -instance stored in the global variable idl_global->gen() field. By storing -an instance of your derived generator class BE_Generator you ensure that -instances of the BE classes you defined will be created. - -HOW TO WRITE CONSTRUCTORS FOR BE CLASSES ----------------------------------------- - -As mentioned above, the AST uses public virtual inheritance to derive the -AST class hierarchy. This has two important effects on how you write a BE, -specifically how you write constructors for derived BE classes. - -First, you must define a default constructor for your BE class, since -your class may be used as a virtual base class of some other class. In that -case the compiler may want to call a default constructor for your class. It -is a good idea to have a default constructor anyway, even if you do not -plan to subclass your BE class, since for most C++ compilers this causes -the code to be smaller. Your default constructor should initialize all -constant data members. Additionally, it may initialize any non-constant -data member whose value must be set before the first time the instance is -used. - -Second, the constructor for your BE class must explicitly call all -constructors of virtual base classes which do some useful work. For -example, if a class in the AST from which your BE class inherits, directly -or indirectly, has an initializer for a data member, your BE class's -constructor must call the AST class's constructor. This is discussed -extensively in the C++ ARM. - -Below is a list showing how to write constructors for subclasses of each -class provided by the BE. For each AST class we show a definition of a -constructor for a derived class which calls all neccessary constructors on -AST classes: - -AST_Argument: - - BE_Argument::BE_Argument(AST_Argument::Direction d, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Argument(d, ft, n, p), - AST_Field(AST_Decl::NT_argument, ft, n, p), - AST_Decl(AST_Decl::NT_argument, n, p) - { - } - -AST_Array: - - BE_Array::BE_Array(UTL_ScopedName *n, - unsigned long nd, - UTL_ExprList *ds) - : AST_Array(n, nd, ds), - AST_Decl(AST_Decl::NT_array, n, NULL) - - { - } - -AST_Attribute: - - BE_Attribute::BE_Attribute(boolean ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Attribute(ro, ft, n, p), - AST_Field(AST_Decl::NT_attr, ft, n, p), - AST_Decl(AST_Decl::NT_attr, n, p) - { - } - -AST_ConcreteType: - - BE_ConcreteType::BE_ConcreteType(AST_Decl::NodeType nt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(nt, n, p) - { - } - -AST_Constant: - - BE_Constant::BE_Constant(AST_Expression::ExprType t, - AST_Expression *v, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Constant(t, v, n, p), - AST_Decl(AST_Decl::NT_const, n, p) - { - } - -AST_Decl: - - BE_Decl::BE_Decl(AST_Decl::NodeType nt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(nt, n, p) - { - } - -AST_Enum: - - BE_Enum::BE_Enum(UTL_ScopedName *n, - UTL_StrList *p) - : AST_Enum(n, p), - AST_Decl(AST_Decl::NT_enum, n, p), - UTL_Scope(AST_Decl::NT_enum) - { - } - -AST_EnumVal: - - BE_EnumVal::BE_EnumVal(unsigned long v, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_EnumVal(v, n, p), - AST_Constant(AST_Expression::EV_ulong, - AST_Decl::NT_enum_val, - new AST_Expression(v), - n, - p), - AST_Decl(AST_Decl::NT_enum_val, n, p) - { - } - -AST_Exception: - - BE_Exception::BE_Exception(UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(AST_Decl::NT_except, n, p), - AST_Structure(AST_Decl::NT_except, n, p), - UTL_Scope(AST_Decl::NT_except) - { - } - -AST_Field: - - BE_Field::BE_Field(AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Field(ft, n, p), - AST_Decl(AST_Decl::NT_field, n, p) - { - } - -AST_Interface: - - BE_Interface::BE_Interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p) - : AST_Interface(n, ih, nih, p), - AST_Decl(AST_Decl::NT_interface, n, p), - UTL_Scope(AST_Decl::NT_interface) - { - } - -AST_InterfaceFwd: - - BE_InterfaceFwd::BE_InterfaceFwd(UTL_ScopedName *n, - UTL_StrList *p) - : AST_InterfaceFwd(n, p), - AST_Decl(AST_Decl::NT_interface_fwd, n, p) - { - } - -AST_Module: - - BE_Module::BE_Module(UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(AST_Decl::NT_module, n, p), - UTL_Scope(AST_Decl::NT_module) - { - } - -AST_Operation: - - BE_Operation::BE_Operation(AST_Type *rt, - AST_Operation::Flags fl, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Operation(rt, fl, n, p), - AST_Decl(AST_Decl::NT_op, n, p), - UTL_Scope(AST_Decl::NT_op) - { - } - -AST_PredefinedType: - - BE_PredefinedType::BE_PredefinedType( - AST_PredefinedType::PredefinedType *pt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_PredefinedType(pt, n, p), - AST_Decl(AST_Decl::NT_pre_defined, n, p) - { - } - -AST_Root: - - BE_Root::BE_Root(UTL_ScopedName *n, UTL_StrList *p) - : AST_Module(n, p), - AST_Decl(AST_Decl::NT_module, n, p), - UTL_Scope(AST_Decl::NT_module) - { - } - - -AST_Sequence: - - BE_Sequence::BE_Sequence(AST_Expression *ms, AST_Type *bt) - : AST_Sequence(ms, bt), - AST_Decl(AST_Decl::NT_sequence, - new UTL_ScopedName(new String("sequence"), NULL), - NULL) - { - } - -AST_String: - - BE_String::BE_String(AST_Expression *ms) - : AST_String(ms), - AST_Decl(AST_Decl::NT_string, - new UTL_ScopedName(new String("string"), NULL), - NULL) - { - } - -AST_Structure: - - BE_Structure::BE_Structure(UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(AST_Decl::NT_struct, n, p), - UTL_Scope(AST_Decl::NT_struct) - { - } - -AST_Type: - - BE_Type::BE_Type(AST_Decl::NodeType nt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Decl(nt, n, p) - { - } - -AST_Typedef: - - BE_Typedef::BE_Typedef(AST_Type *bt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Typedef(bt, n, p), - AST_Decl(AST_Decl::NT_typedef, n, p) - { - } - -AST_Union: - - BE_Union::BE_Union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_Union(dt, n, p), - AST_Structure(AST_Decl::NT_union, n, p), - AST_Decl(AST_Decl::NT_union, n, p), - UTL_Scope(AST_Decl::NT_union) - { - } - -AST_UnionBranch: - - BE_UnionBranch::BE_UnionBranch(AST_UnionLabel *fl, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p) - : AST_UnionBranch(fl, ft, n, p), - AST_Field(ft, n, p), - AST_Decl(AST_Decl::NT_union_branch, n, p) - { - } - -AST_UnionLabel: - - BE_UnionLabel::BE_UnionLabel(AST_UnionLabel::UnionLabel lk, - AST_Expression *lv) - : AST_UnionLabel(lk, lv) - { - } - -HOW TO USE THE ADD PROTOCOL ---------------------------- - -As explained the section SCOPE MANAGEMENT, the CFE manages scopes by -calling type-specific functions to add new nodes to the scope to be -augmented. These functions can be overridden in your BE classes to do work -specific to your BE class. For example, in a BE_module class, you might -override add_interface to do additional work. - -The protocol defined by the "add_" functions is that they return NULL to -indicate failure. They return the node that was added (and which was given -as an argument) if the operation succeeded. Your functions in your BE class -should follow the same protocol. - -The "add_" functions defined in the BE must call the overridden function in -the base class defind in the CFE in order for the CFE scope management -mechanism to work. Otherwise, the CFE does not get an opportunity to -augment its scopes with the new node to be added. It is good practice to -call the overridden "add_" function as the first action in your BE -function, because the success or failure of the CFE operation indicates -whether your function should complete its task or abort early. - -Here is an example. Suppose you have defined a class BE_module which -inherits from AST_Module. You may wish to override the add_interface -function as follows: - - class BE_Module : public virtual AST_Module - { - .... - /* - * ADD protocol - */ - virtual AST_Interface *add_interface(AST_Interface *); - ... - }; - -The implementation of this function would look something like the following: - - AST_Interface * - BE_Module::add_interface(AST_Interface *new_in) - { - /* - * Check that the CFE operation succeeds. If it returns - * NULL, stop any further work - */ - if (AST_Module::add_interface(new_in) == NULL) - return NULL; - /* - * OK, non-NULL, this means the BE can do its own work here - */ - ... - /* - * Finally, don't forget to return the argument to indicate - * success - */ - return new_in; - } - -HOW TO MAINTAIN BE SPECIFIC INFORMATION ---------------------------------------- - -The CFE provides a special class AST_Root, a subclass of AST_Module. An -instance of the AST_Root class is used as the distinguished root of the -abstract syntax tree built during a parse. - -Your BE can subclass BE_Root from AST_Root and override the create_root -operation in your BE_Generator class derived from AST_Generator. This will -cause the CFE to create an instance of your BE_Root class as the root of -the tree being constructed. - -You can use the instance of the BE_Root class as a convenient place to -store information specific to an individual tree. For example, you could -add operations on the BE_Root class to count how many nodes of each class -are created. - -HOW TO USE MEMBER DATA ----------------------- - -As explained above, the AST classes provide access and update functions for -manipulating data members. Your BE classes must use these functions when -they require access to data members defined in the AST classes, since the -data members themselves are private. - -It is good practice to follow the same scheme in your BE classes. Make all -data members private. Prepend the names of all such fields with "pd_". -Define access functions with names equal to the name of the field without the -prefix. Define update functions according to need by prepending the name of -the access function with the prefix "set_". - -Using these techniques will allow your BE to enjoy the same benefits that -are imparted onto the CFE. Your BE will be easier to move to a -multithreaded environment and its data members will be better protected and -hidden. - -HOW TO BUILD A COMPLETE COMPILER --------------------------------- - -We now have all information needed to write a BE and to link it in with the -CFE, to produce a complete IDL compiler. - -The following assumes that your BE will be stored in the "be" directory -under the "release" directory. See the document ROADMAP for an explanation -of the directory structure of the source release. If you decide to use a -different directory to store your BE, you may have to modify the CPP_FLAGS in -"idl_make_vars" in the top-level directory to allow your BE to find the -include files it needs. You will also need to modify several targets in -the Makefile in the top-level directory to correctly compile your BE into a -library and to correctly link it in with the CFE to produce a complete -compiler. - -You can get started quickly on writing your BE by modifying the sources -found in the "demo_be" directory. The Makefile supports all the the targets -that are needed to build a complete system and the maintenance target -"clean" which assists in keeping the files and directories tidy. The files -provided in the "demo_be" directory also provide all the API entry points -that are mandated by this document. - -To build a complete compiler, invoke "make" or "make all" in the top-level -directory. This will compile your BE and all the CFE sources, if this is -the first invocation. On subsequent invocations this will recompile only -the modified files. You will rarely if at all modify the CFE sources, so -the overhead of compiling the CFE is incurred only the first time. To build -just your BE, you can invoke "make all" or "make" in the "demo_be" -directory. You can also, from the top-level directory, invoke "make -demo_be/libbe.a". - -HOW TO OBTAIN ASSISTANCE ------------------------- - -First, read all the documents provided. If you have unanswered questions, -mail them to - - idl-cfe@sun.com - -Sun does not promise to support the IDL CFE source release in any manner. -However, we will attempt to answer questions and correct problems as time -allows. - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - -COPYRIGHT NOTICE ----------------- - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 diff --git a/TAO/TAO_IDL/driver/Makefile b/TAO/TAO_IDL/driver/Makefile deleted file mode 100644 index f7d541968ad..00000000000 --- a/TAO/TAO_IDL/driver/Makefile +++ /dev/null @@ -1,361 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for libdrv -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -LIBNAME = libdrv -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) -IDL_CFE_VERSION = \"1.3.0\" - -# These are components that are sources of -DRIVER_FILES = \ - drv_init \ - drv_private \ - drv_args \ - drv_fork \ - drv_link \ - drv_preproc - -FILES = $(DRIVER_FILES) - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - - -LDLIBS = -lACE -LIBS = -lACE -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VSHLIB) #$(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 (and local hacks) -#---------------------------------------------------------------------------- - -# Need the following. But we should be able to handle this using ACE's functionality -CPPFLAGS += -I../include -I. -DCPP_LOCATION=\"$(CXX)\" -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) - -$(LOBJS): $(LHDRS) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/drv_init.o .obj/drv_init.so .shobj/drv_init.o .shobj/drv_init.so: drv_init.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h \ - ../include/drv_link.h -.obj/drv_private.o .obj/drv_private.so .shobj/drv_private.o .shobj/drv_private.so: drv_private.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h -.obj/drv_args.o .obj/drv_args.so .shobj/drv_args.o .shobj/drv_args.so: drv_args.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h \ - ../include/drv_link.h -.obj/drv_fork.o .obj/drv_fork.so .shobj/drv_fork.o .shobj/drv_fork.so: drv_fork.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h \ - $(ACE_ROOT)/ace/Process_Manager.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(ACE_ROOT)/ace/Process_Manager.i -.obj/drv_link.o .obj/drv_link.so .shobj/drv_link.o .shobj/drv_link.so: drv_link.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h \ - ../include/drv_link.h -.obj/drv_preproc.o .obj/drv_preproc.so .shobj/drv_preproc.o .shobj/drv_preproc.so: drv_preproc.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/drv_private.h \ - ../include/drv_link.h \ - $(ACE_ROOT)/ace/Process_Manager.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(ACE_ROOT)/ace/Process_Manager.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/TAO_IDL/driver/drv_args.cpp b/TAO/TAO_IDL/driver/drv_args.cpp deleted file mode 100644 index acb4db7622e..00000000000 --- a/TAO/TAO_IDL/driver/drv_args.cpp +++ /dev/null @@ -1,273 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// drv_args.c - Argument parsing for IDL compiler main driver - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" -#include "drv_link.h" - -#include - -/* - * Push a file into the list of files to be processed - */ -static void -DRV_push_file(char *s) -{ - DRV_files[DRV_nfiles++] = s; -} - -/* - * Prepare a CPP argument - */ -static void -DRV_prep_cpp_arg(char *s) -{ - char *newarg = new char[512]; - char *farg; - - newarg[0] = '\0'; - for (farg = strtok(s, ","); farg != NULL; farg = strtok(NULL, ",")) - strcat(newarg,farg); - DRV_cpp_putarg(newarg); -} - -/* - * Print a usage message and exit - */ -void -DRV_usage() -{ - cerr << idl_global->prog_name() - << GTDEVEL(": usage: ") - << idl_global->prog_name() - << GTDEVEL(" [flag | file]*\n"); - cerr << GTDEVEL("Legal flags:\n"); - cerr << GTDEVEL(" -A...\t\t\tlocal implementation-specific escape\n"); - cerr << GTDEVEL(" -Dname[=value]\t\tdefines name for preprocessor\n"); - cerr << GTDEVEL(" -E\t\t\truns preprocessor only, prints on stdout\n"); - cerr << GTDEVEL(" -Idir\t\t\tincludes dir in search path for preprocessor\n"); - cerr << GTDEVEL(" -Uname\t\t\tundefines name for preprocessor\n"); - cerr << GTDEVEL(" -V\t\t\tprints version info then exits\n"); - cerr << GTDEVEL(" -W[p|b],arg1,argn\tpasses args to preprocessor or BE\n"); - cerr << GTDEVEL(" -Yp,path\t\tdefines location of preprocessor\n"); - cerr << GTDEVEL(" -bback_end\t\tcauses specified back end to be used\n"); - cerr << GTDEVEL(" -u\t\t\tprints usage message and exits\n"); - cerr << GTDEVEL(" -v\t\t\ttraces compilation stages\n"); - cerr << GTDEVEL(" -w\t\t\tsuppresses IDL compiler warning messages\n"); -} - -/* - * Parse arguments on command line - */ -void -DRV_parse_args(long ac, char **av) -{ - char *buffer; - char *s; - long i; - - DRV_cpp_init(); - idl_global->set_prog_name(av[0]); - for (i = 1; i < ac; i++) { - if (av[i][0] == '-') { - switch (av[i][1]) { - case 0: - DRV_push_file("standard input"); - break; - case 'A': - if (av[i][2] == '\0') { - if (i < ac - 1) { - i++; - s = av[i]; - } else - exit(99); - } else - s = av[i] + 2; - strcat(idl_global->local_escapes(), s); - strcat(idl_global->local_escapes(), " "); - break; - case 'D': - case 'U': - case 'I': - if (av[i][2] == '\0') { - if (i < ac - 1) { - buffer = new char[strlen(av[i]) + strlen(av[i + 1]) + 2]; - sprintf(buffer, "%s%s", av[i], av[i+1]); - DRV_cpp_putarg(buffer); - i++; - } else { - cerr << GTDEVEL("IDL: missing argument after '") - << av[i] - << GTDEVEL("' flag\n"); - exit(99); - } - } else - DRV_cpp_putarg(av[i]); - break; - case 'E': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_ONLY_PREPROC); - break; - case 'V': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_VERSION); - break; - case 'W': - if (av[i][2] == '\0') { - if (i < ac - 1) { - i++; - s = av[i]; - } else { - cerr << GTDEVEL("IDL: missing argument after '") - << av[i] - << GTDEVEL("' flag\n"); - exit(99); - } - } else - s = av[i] + 2; - switch (*s) { - default: - cerr << GTDEVEL("IDL: -W must be followed by 'p' or 'b'\n"); - exit(99); - case 'p': - if (*(s + 1) == ',') - DRV_prep_cpp_arg(s + 2); - break; - case 'b': - if (*(s + 1) == ',') - (*DRV_BE_prep_arg)(s + 2, I_TRUE); - break; - } - break; - case 'Y': - if (av[i][2] == '\0') { - if (i < ac - 1) { - i++; - s = av[i]; - } else { - cerr << GTDEVEL("IDL: missing argument after '") - << av[i] - << GTDEVEL("' flag\n"); - exit(99); - } - } else - s = av[i] + 2; - switch (*s) { - case 'p': - if (*(s + 1) == ',') { - idl_global->set_cpp_location(s + 2); - DRV_cpp_new_location(s + 2); - } - break; - default: - break; - } - break; - case 'b': - if (av[i][2] == '\0') { - if (i < ac - 1) { - i++; - s = av[i]; - } else { - cerr << GTDEVEL("IDL: missing argument after '") - << av[i] - << GTDEVEL("' flag\n"); - exit(99); - } - } else - s = av[i] + 2; - idl_global->set_be(s); - break; - case 'd': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_DUMP_AST); - break; - case 'u': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_ONLY_USAGE); - break; - case 'v': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_INFORMATIVE); - break; - case 'w': - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_NOWARNINGS); - break; - default: - cerr << GTDEVEL("IDL: Illegal option '") << av[i] << "'\n"; - idl_global->set_compile_flags(idl_global->compile_flags() | - IDL_CF_ONLY_USAGE); - break; - } - } else - DRV_push_file(av[i]); - } -} diff --git a/TAO/TAO_IDL/driver/drv_fork.cpp b/TAO/TAO_IDL/driver/drv_fork.cpp deleted file mode 100644 index 963da3a9dac..00000000000 --- a/TAO/TAO_IDL/driver/drv_fork.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * DRV_fork.cc - Fork a process for each file to be processed, wait for - * status from the child process - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" - -#include "ace/Process_Manager.h" - -/* - * Fork off a process, wait for it to die - */ -void -DRV_fork() -{ - // This will not work on NT, but I can hardly think of some way to - // make it work. - // The idea is to make it compile, and always use the compiler with - // just one file, that works because then there is no fork - // involved. - for (DRV_file_index = 0; - DRV_file_index < DRV_nfiles; - ++DRV_file_index) - { - ACE_Process_Options options; - options.creation_flags (ACE_Process_Options::NO_EXEC); - - ACE_Process_Manager manager; - pid_t child_pid = manager.spawn (options); - if (child_pid == 0) - { - /* - * OK, do it to this file (in the child) - */ - DRV_drive(DRV_files[DRV_file_index]); - ACE_OS::exit(0); - } - - if (child_pid == -1) - { - cerr << GTDEVEL("IDL: spawn failed\n"); - ACE_OS::exit (99); - /*NOTREACHED*/ - } - - // child_pid is the process id of something at this point. - if (manager.wait () == -1) - { - cerr << GTDEVEL("IDL: wait failed\n"); - ACE_OS::exit (99); - /*NOTREACHED*/ - } - } - /* - * Now the parent process can exit - */ - exit(0); -} diff --git a/TAO/TAO_IDL/driver/drv_init.cpp b/TAO/TAO_IDL/driver/drv_init.cpp deleted file mode 100644 index c34c2c923ed..00000000000 --- a/TAO/TAO_IDL/driver/drv_init.cpp +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// DRV_init.cc - Initialization for IDL compiler driver program - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" -#include "drv_link.h" - -void -DRV_init() -{ - // Initialize global data - - idl_global = new IDL_GlobalData(); - - idl_global->set_scopes(NULL); - idl_global->set_root(NULL); - idl_global->set_gen(NULL); - idl_global->set_err((*DRV_FE_new_UTL_Error)()); - idl_global->set_err_count(0); - idl_global->set_indent((*DRV_FE_new_UTL_Indenter)()); - - idl_global->set_filename(NULL); - idl_global->set_main_filename(NULL); - idl_global->set_real_filename(NULL); - idl_global->set_stripped_filename(NULL); - idl_global->set_import(I_TRUE); - idl_global->set_in_main_file(I_FALSE); - idl_global->set_lineno(-1); - - idl_global->set_prog_name(NULL); - - idl_global->set_cpp_location(CPP_LOCATION); - - idl_global->set_be(""); - - idl_global->set_local_escapes(new char[1024]); - - idl_global->set_pragmas(NULL); - - idl_global->set_compile_flags(0); - - idl_global->set_read_from_stdin(I_FALSE); - - idl_global->set_include_file_names(NULL); - idl_global->set_n_include_file_names(0); - - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - - // Initialize driver private data - - DRV_nfiles = 0; - DRV_file_index = 0; -} - diff --git a/TAO/TAO_IDL/driver/drv_link.cpp b/TAO/TAO_IDL/driver/drv_link.cpp deleted file mode 100644 index b142b67a3f3..00000000000 --- a/TAO/TAO_IDL/driver/drv_link.cpp +++ /dev/null @@ -1,138 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* -** drv_link.cc - routines for programatic linking -** -** This file is set up so that you can easily convert the CFE to do -** dynamic loading of either the front end (parser) or BEs. Since no -** portable dynamic loading mechanism exists, we have removed the specific -** one which is in Sunsoft\'s version and which uses Solaris dlopen. -*/ - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" -#include "drv_link.h" - -DRV_PF_FE_init_stage1 DRV_FE_init_stage1; -DRV_PF_FE_init_stage2 DRV_FE_init_stage2; -DRV_PF_FE_yyparse DRV_FE_yyparse; -DRV_PF_FE_set_yyin DRV_FE_set_yyin; -DRV_PF_FE_new_UTL_Error DRV_FE_new_UTL_Error; -DRV_PF_FE_new_UTL_Indenter DRV_FE_new_UTL_Indenter; -DRV_PF_FE_new_UTL_String DRV_FE_new_UTL_String; - -DRV_PF_BE_init DRV_BE_init; -DRV_PF_BE_produce DRV_BE_produce; -DRV_PF_BE_abort DRV_BE_abort; -DRV_PF_BE_prep_arg DRV_BE_prep_arg; -DRV_PF_BE_version DRV_BE_version; - -void -DRV_FE_open() -{ - DRV_FE_init_stage1 = &FE_init_stage1; - DRV_FE_init_stage2 = &FE_init_stage2; - DRV_FE_yyparse = &FE_yyparse; - DRV_FE_set_yyin = &FE_set_yyin; - DRV_FE_new_UTL_Error = &FE_new_UTL_Error; - DRV_FE_new_UTL_Indenter = &FE_new_UTL_Indenter; - DRV_FE_new_UTL_String = &FE_new_UTL_String; -} - -void -DRV_FE_close() -{ - DRV_FE_init_stage1 = 0; - DRV_FE_init_stage2 = 0; - DRV_FE_yyparse = 0; - DRV_FE_set_yyin = 0; - DRV_FE_new_UTL_Error = 0; - DRV_FE_new_UTL_Indenter = 0; - DRV_FE_new_UTL_String = 0; -} - -void -DRV_BE_open() -{ - DRV_BE_init = &BE_init; - DRV_BE_produce = &BE_produce; - DRV_BE_abort = &BE_abort; - DRV_BE_prep_arg = &BE_prep_arg; - DRV_BE_version = &BE_version; -} - -void -DRV_BE_close() -{ - DRV_BE_init = 0; - DRV_BE_produce = 0; - DRV_BE_abort = 0; - DRV_BE_prep_arg = 0; - DRV_BE_version = 0; -} diff --git a/TAO/TAO_IDL/driver/drv_preproc.cpp b/TAO/TAO_IDL/driver/drv_preproc.cpp deleted file mode 100644 index 69c92c911ee..00000000000 --- a/TAO/TAO_IDL/driver/drv_preproc.cpp +++ /dev/null @@ -1,356 +0,0 @@ -/* $Id$ */ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * DRV_pre_proc.cc - pass an IDL file through the C preprocessor - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" -#include "drv_link.h" - -#include "ace/Process_Manager.h" -#include "ace/Env_Value_T.h" - -#undef MAX_ARGLIST -#define MAX_ARGLIST 128 - -static char *arglist[MAX_ARGLIST]; -static long argcount = 0; - -/* - * Push the new CPP location if we got a -Yp argument - */ -void -DRV_cpp_new_location(char *new_loc) -{ - arglist[0] = new_loc; -} - -/* - * Push an argument into the arglist - */ -void -DRV_cpp_putarg(char *str) -{ - if (argcount >= MAX_ARGLIST) { - cerr << idl_global->prog_name() - << GTDEVEL(": More than ") - << MAX_ARGLIST - << GTDEVEL(" arguments to preprocessor\n"); - exit (99); - } - arglist[argcount++] = str; -} - -/* - * Initialize the cpp argument list - */ -void -DRV_cpp_init() -{ - - char *cpp_loc; - - // DRV_cpp_putarg("\\cygnus\\H-i386-cygwin32\\bin\\echo"); - ACE_Env_Value cpp_path ("CPP_LOCATION", (char *) 0); - - if (cpp_path != 0) - cpp_loc = cpp_path; - else - cpp_loc = idl_global->cpp_location(); - DRV_cpp_putarg(cpp_loc); - DRV_cpp_putarg("-E"); - DRV_cpp_putarg("-DIDL"); - DRV_cpp_putarg("-I."); -} - -/* - * lines can be 1024 chars long - */ -#define LINEBUF_SIZE 1024 -static char drv_line[LINEBUF_SIZE + 1]; - -/* - * Get a line from stdin - */ -static long -DRV_get_line(FILE *f) -{ - char *l = fgets(drv_line, LINEBUF_SIZE, f); - long i; - - if (l == NULL) - return I_FALSE; - if (*l == '\0' && feof(f)) - return I_FALSE; - if (*l == '\0') - return I_TRUE; - i = strlen(l) - 1; - if (l[i] == '\n') - l[i] = '\0'; - return I_TRUE; -} - -/* - * Copy from stdin to a file - */ -static void -DRV_copy_input(FILE *fin, char *fn) -{ - FILE *f = fopen(fn, "w"); - - if (f == NULL) { - cerr << idl_global->prog_name() - << GTDEVEL(": cannot open temp file ") - << fn - << GTDEVEL(" for writing\n"); - exit(99); - } - if (fin == NULL) { - cerr << idl_global->prog_name() - << GTDEVEL(": cannot open input file\n"); - exit(99); - } - while (DRV_get_line(fin)) - fprintf(f, "%s\n", drv_line); - fclose(f); -} - -/* - * Strip down a name to the last component, i.e. everything after the last - * '/' character - */ -static char * -DRV_stripped_name(char *fn) -{ - char *n = fn; - long l; - - if (n == NULL) - return NULL; - l = strlen(n); - for (n += l; l > 0 && *n != '/'; l--, n--); - if (*n == '/') n++; - return n; -} - -/* - * File names - */ -static char tmp_file[128]; -static char tmp_ifile[128]; - -/* - * Pass input through preprocessor - */ -void -DRV_pre_proc(char *myfile) -{ - long readfromstdin = I_FALSE; - char catbuf[512]; - - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (readfromstdin); - - const char* tmpdir = getenv("TMP"); - if (tmpdir != 0) - { - ACE_OS::strcpy (tmp_file, tmpdir); - ACE_OS::strcpy (tmp_ifile, tmpdir); - } - else - { - ACE_OS::strcpy (tmp_file, ACE_DIRECTORY_SEPARATOR_STR_A); - ACE_OS::strcat (tmp_file, "tmp"); - ACE_OS::strcpy (tmp_ifile, ACE_DIRECTORY_SEPARATOR_STR_A); - ACE_OS::strcat (tmp_ifile, "tmp"); - } - - ACE_OS::strcat (tmp_file, ACE_DIRECTORY_SEPARATOR_STR_A); - ACE_OS::strcat (tmp_file, "idlf_XXXXXX"); - - ACE_OS::strcat (tmp_ifile, ACE_DIRECTORY_SEPARATOR_STR_A); - ACE_OS::strcat (tmp_ifile, "idli_XXXXXX"); - - (void) ACE_OS::mktemp (tmp_file); ACE_OS::strcat (tmp_file, ".cc"); - (void) ACE_OS::mktemp (tmp_ifile); ACE_OS::strcat (tmp_ifile, ".cc"); - if (strcmp(myfile, "standard input") == 0) { - idl_global->set_filename((*DRV_FE_new_UTL_String)(tmp_ifile)); - idl_global->set_main_filename((*DRV_FE_new_UTL_String)(tmp_ifile)); - idl_global-> - set_stripped_filename( - (*DRV_FE_new_UTL_String)(DRV_stripped_name(tmp_ifile)) - ); - idl_global->set_real_filename((*DRV_FE_new_UTL_String)(tmp_ifile)); - DRV_copy_input(stdin, tmp_ifile); - idl_global->set_read_from_stdin(I_TRUE); - } else { - FILE *fd = fopen(myfile, "r"); - DRV_copy_input(fd, tmp_ifile); - fclose(fd); - idl_global->set_read_from_stdin(I_FALSE); - idl_global->set_filename((*DRV_FE_new_UTL_String)(myfile)); - idl_global->set_main_filename((*DRV_FE_new_UTL_String)(myfile)); - idl_global-> - set_stripped_filename( - (*DRV_FE_new_UTL_String)(DRV_stripped_name(myfile)) - ); - idl_global->set_real_filename((*DRV_FE_new_UTL_String)(tmp_ifile)); - } - - // We use ACE instead of the (low level) fork facilities, this also - // work on NT. - ACE_Process manager; - ACE_Process_Options cpp_options; - DRV_cpp_putarg (tmp_ifile); - DRV_cpp_putarg (0); // Null terminate the arglist. - cpp_options.command_line (arglist); - ACE_HANDLE fd = ACE_OS::open(tmp_file, O_WRONLY | O_CREAT | O_TRUNC, 0777); - if (fd == ACE_INVALID_HANDLE) { - cerr << idl_global->prog_name() - << GTDEVEL(": cannot open temp file ") - << tmp_file << " for writing\n"; - return; - } - cpp_options.set_handles (ACE_INVALID_HANDLE, fd); - if (manager.spawn (cpp_options) == -1) - { - cerr << idl_global->prog_name() - << GTDEVEL(": spawn of ") - << arglist[0] - << GTDEVEL(" failed\n"); - return; - } - - // Close the output file on the parent process. - if (ACE_OS::close (fd) == -1) - { - cerr << idl_global->prog_name () - << GTDEVEL(": cannot close temp file") - << tmp_file << " on parent\n"; - return; - } - - // Remove the null termination and the input file from the arglist, - // the next file will the previous args. - argcount -= 2; - - if (manager.wait () == -1) - { - cerr << idl_global->prog_name () - << GTDEVEL(": wait for child process failed\n"); - return; - } - // TODO: Manage problems in the pre-processor, in the previous - // version the current process would exit if the pre-processor - // returned with error. - - - FILE * yyin = fopen(tmp_file, "r"); - if (yyin == NULL) { - cerr << idl_global->prog_name() - << GTDEVEL(": Could not open cpp output file ") - << tmp_file - << "\n"; - exit(99); - } - (*DRV_FE_set_yyin)((File *) yyin); - - // @@ TODO: This is not portable, cat(1) is a UNIX tool. - if (idl_global->compile_flags() & IDL_CF_ONLY_PREPROC) { - sprintf(catbuf, "cat < %s", tmp_file); - system(catbuf); - } - - if (ACE_OS::unlink(tmp_ifile) == -1) { - cerr << idl_global->prog_name() - << GTDEVEL(": Could not remove cpp input file ") - << tmp_ifile - << "\n"; - exit(99); - } -#if !defined (ACE_WIN32) - // TODO: This unlink fails every time under NT, it seems that you - // cannot remove an open file under that OS? - if (ACE_OS::unlink(tmp_file) == -1) { - cerr << idl_global->prog_name() - << GTDEVEL(": Could not remove cpp output file ") - << tmp_file - << "\n"; - exit(99); - } -#endif /* !ACE_WIN32 */ - if (idl_global->compile_flags() & IDL_CF_ONLY_PREPROC) - exit(0); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) - template class ACE_Env_Value; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -# pragma instantiate ACE_Env_Value -#endif diff --git a/TAO/TAO_IDL/driver/drv_private.cpp b/TAO/TAO_IDL/driver/drv_private.cpp deleted file mode 100644 index 5766ace1506..00000000000 --- a/TAO/TAO_IDL/driver/drv_private.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// drv_global.cc - Global variables for IDL compiler driver program - -#include "idl.h" -#include "idl_extern.h" - -#include "drv_private.h" - -// Storage for file names - -#define NFILES 1024 - -char *DRV_files[NFILES]; -long DRV_nfiles = 0; -long DRV_file_index = -1; -IDL_GlobalData *idl_global = NULL; diff --git a/TAO/TAO_IDL/fe/Makefile b/TAO/TAO_IDL/fe/Makefile deleted file mode 100644 index 48152fe057f..00000000000 --- a/TAO/TAO_IDL/fe/Makefile +++ /dev/null @@ -1,403 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for libfe -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -LIBNAME = libfe -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) -IDL_CFE_VERSION = \"1.3.0\" - -# These are components that are sources of -FE_FILES = \ - fe_declarator \ - fe_private \ - fe_init \ - fe_extern \ - fe_interface_header - -OTHER_FILES = \ - y.tab \ - lex.yy - -FILES = $(FE_FILES) $(OTHER_FILES) - -LSRC = $(addsuffix .cpp,$(FILES)) -LHDR = $(addsuffix .h,$(HDRS)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - - -LDLIBS = -lACE -LIBS = -lACE -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VSHLIB) #$(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 (and local hacks) -#---------------------------------------------------------------------------- - -CPPFLAGS += -D_REENTRANT -I../include -I. -DCPP_LOCATION=\"$(CXX)\" -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) -YACC = yacc -LEX = flex -YFLAGS = -t -d -LFLAGS = -t - -# Create the parser and lexer -y.tab.h y.tab.cpp: idl.yy - @-$(RM) -f $@ - $(YACC) $(YFLAGS) idl.yy - @sed -e "s/yy/tao_yy/g" \ - -e "s/YY/TAO_YY/g" < y.tab.c > y.tab.cpp - @sed -e "s/yy/tao_yy/g" \ - -e "s/YY/TAO_YY/g" < y.tab.h > /tmp/$@ - @mv /tmp/$@ y.tab.h - @patch < y.tab.cpp.diff - @-$(RM) -f y.tab.cpp.orig y.tab.c - -lex.yy.cpp: idl.ll y.tab.h - $(LEX) $(LFLAGS) idl.ll > /tmp/$@ - @#### Replace #includes of standard headers with #include of ace/OS.h, - @#### so that ace/config.h is #included first. - @sed -e 's%#include.*%#include "ace/OS.h"%g' \ - -e "s/yy/tao_yy/g" \ - -e "s/YY/TAO_YY/g" \ - -e '/#include.*stdlib.h/D' \ - -e '/#include.*unistd.h/D' \ - -e 's/ECHO/TAO_ECHO/g' < /tmp/$@ > $@ - @patch < lex.yy.cpp.diff - @-$(RM) -f /tmp/$@ lex.yy.cpp.orig - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/fe_declarator.o .obj/fe_declarator.so .shobj/fe_declarator.o .shobj/fe_declarator.so: fe_declarator.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/fe_private.o .obj/fe_private.so .shobj/fe_private.o .shobj/fe_private.so: fe_private.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/fe_init.o .obj/fe_init.so .shobj/fe_init.o .shobj/fe_init.so: fe_init.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/fe_extern.o .obj/fe_extern.so .shobj/fe_extern.o .shobj/fe_extern.so: fe_extern.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/fe_interface_header.o .obj/fe_interface_header.so .shobj/fe_interface_header.o .shobj/fe_interface_header.so: fe_interface_header.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/y.tab.o .obj/y.tab.so .shobj/y.tab.o .shobj/y.tab.so: y.tab.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h -.obj/lex.yy.o .obj/lex.yy.so .shobj/lex.yy.o .shobj/lex.yy.so: lex.yy.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h ../include/fe_private.h \ - ../include/fe_interface_header.h ../include/fe_declarator.h y.tab.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/TAO_IDL/fe/fe_declarator.cpp b/TAO/TAO_IDL/fe/fe_declarator.cpp deleted file mode 100644 index 08a6407d7fd..00000000000 --- a/TAO/TAO_IDL/fe/fe_declarator.cpp +++ /dev/null @@ -1,159 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * fe_declarator.cc - Implementation of FE private declaration - * statement class - * - * The FE_Declarator class is used to hold together complex declarations - * until all the components are parsed and before they are composed into - * an AST_Type node. - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "fe_private.h" - -/* - * Constructor(s) and destructor - */ - -FE_Declarator::FE_Declarator(UTL_ScopedName *n, DeclaratorType dt, - AST_Decl *cp) - : pd_complex_part(cp), - pd_name(n), - pd_decl_type(dt) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Compose the type of the complex declarator (if any) with the base -// type supplied in ct -AST_Type * -FE_Declarator::compose(AST_Decl *d) -{ - AST_Array *arr; - AST_Type *ct; - - ct = AST_Type::narrow_from_decl(d); - if (ct == NULL) { - idl_global->err()->not_a_type(d); - return NULL; - } - if (ct->node_type() == AST_Decl::NT_except) { - idl_global->err()->not_a_type(d); - return NULL; - } - if (pd_decl_type == FD_simple || pd_complex_part == NULL) { - return ct; - } - if (pd_complex_part->node_type() == AST_Decl::NT_array) { - arr = AST_Array::narrow_from_decl(pd_complex_part); - arr->set_base_type(ct); - - /* - * Add the new array to the types defined in the global scope - */ - idl_global->root()->fe_add_array(arr); - - return arr; - } - return NULL; // return through this statement should not happen -} - -/* - * Redefinition of inherited virtual operations - */ - -/* - * Data accessors - */ - -AST_Decl * -FE_Declarator::complex_part() -{ - return pd_complex_part; -} - -UTL_ScopedName * -FE_Declarator::name() -{ - return pd_name; -} - -FE_Declarator::DeclaratorType -FE_Declarator::decl_type() -{ - return pd_decl_type; -} diff --git a/TAO/TAO_IDL/fe/fe_extern.cpp b/TAO/TAO_IDL/fe/fe_extern.cpp deleted file mode 100644 index ba16f3357dc..00000000000 --- a/TAO/TAO_IDL/fe/fe_extern.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * fe_extern.cc - export FE interfaces to driver - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "fe_private.h" - -#include "utl_error.h" -#include "utl_indenter.h" -#include "utl_string.h" - -/* - * yacc parser interface - */ - -extern int tao_yyparse(); -extern FILE * tao_yyin; - -int -FE_yyparse() -{ - int result = tao_yyparse(); - if (idl_global->err_count() == 0) { - idl_global->root()->call_add(); - } - return result; -} - -void -FE_set_yyin(File * f) -{ - tao_yyin = (FILE*)f; -} - -/* - * constructor interfaces - */ - -UTL_Error * -FE_new_UTL_Error() -{ - return new UTL_Error(); -} - -UTL_Indenter * -FE_new_UTL_Indenter() -{ - return new UTL_Indenter(); -} - -UTL_String * -FE_new_UTL_String(char * str) -{ - return new UTL_String(str); -} diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp deleted file mode 100644 index 2c16d2e9946..00000000000 --- a/TAO/TAO_IDL/fe/fe_init.cpp +++ /dev/null @@ -1,369 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * fe_init.cc - Initialize the FE - * - * The FE initialization is carried out in two stages, with the BE - * initialization protocol sandwiched between the two stages. - * - * The first stage is responsible for creating the scopes stack. - * The second stage is run after the BE initialization has created - * and returned an instance of AST_Generator (or a subclass). This - * instance is used to create the root node for the AST, and to - * populate it with AST_PredefinedType nodes which represent the - * predefined IDL types. This AST root is then pushed on the scopes - * stack as the outermost scope. - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "fe_private.h" - -/* - * Create a scoped name - */ -static UTL_ScopedName * -create_scoped_name(char *s) -{ - return new UTL_ScopedName(new Identifier(s, 1, 0, I_FALSE), NULL); -} - -/* - * Populate the global scope with all predefined entities - */ -void -fe_populate(AST_Module *m) -{ - AST_PredefinedType *pdt; - - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_long, - create_scoped_name("long"), - NULL); - m->fe_add_predefined_type(pdt); - - pdt = - idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_ulong, - create_scoped_name("unsigned long"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_longlong, - create_scoped_name("long long"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_ulonglong, - create_scoped_name("unsigned long long"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_short, - create_scoped_name("short"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_ushort, - create_scoped_name("unsigned short"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_float, - create_scoped_name("float"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_double, - create_scoped_name("double"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_longdouble, - create_scoped_name("long double"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_char, - create_scoped_name("char"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_wchar, - create_scoped_name("wchar_t"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_octet, - create_scoped_name("octet"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_any, - create_scoped_name("any"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = - idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_boolean, - create_scoped_name("boolean"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen()->create_predefined_type(AST_PredefinedType::PT_void, - create_scoped_name("void"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("Object"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("TypeCode"), - NULL); - m->fe_add_predefined_type(pdt); - - /* - * Add these to make all keywords protected even in different spellings - */ - - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("attribute"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("case"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("const"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("context"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("default"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("enum"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("exception"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("in"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("out"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("inout"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("interface"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("module"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("oneway"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("raises"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("readonly"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("sequence"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("string"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("wstring_t"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("struct"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("switch"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("typedef"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("union"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("unsigned"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("TRUE"), - NULL); - m->fe_add_predefined_type(pdt); - pdt = idl_global->gen() - ->create_predefined_type(AST_PredefinedType::PT_pseudo, - create_scoped_name("FALSE"), - NULL); - m->fe_add_predefined_type(pdt); -} - -/* - * Initialization stage 1: create global scopes stack - */ -void -FE_init_stage1() -{ - idl_global->set_scopes(new UTL_ScopeStack()); - if (idl_global->scopes() == NULL) { - cerr << GTDEVEL("IDL: FE init failed to create scope stack, exiting\n"); - exit(99); - } -} - -/* - * Initialization stage 2: create global scope and populate it - */ -void -FE_init_stage2() -{ - AST_Root *r; - - /* - * Check that the BE init created a generator object - */ - if (idl_global->gen() == NULL) { - cerr << GTDEVEL("IDL: BE did not initialize idl_global->gen(), exiting\n"); - exit(99); - } - /* - * Create a global root for the AST. Note that the AST root has no - * name - */ - r = idl_global->gen()->create_root(create_scoped_name(""), NULL); - idl_global->set_root(r); - if (r == NULL) { - cerr << GTDEVEL("IDL: FE init failed to create AST root, exiting\n"); - exit(99); - } - /* - * Push it on the stack - */ - idl_global->scopes()->push(idl_global->root()); - /* - * Populate it with nodes for predefined types - */ - fe_populate(idl_global->root()); - /* - * Set flag to indicate we are processing the main file now - */ - idl_global->set_in_main_file(I_TRUE); -} diff --git a/TAO/TAO_IDL/fe/fe_interface_header.cpp b/TAO/TAO_IDL/fe/fe_interface_header.cpp deleted file mode 100644 index 7df470f7ffa..00000000000 --- a/TAO/TAO_IDL/fe/fe_interface_header.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * fe_interface_header.cc - Implements the FE private class FE_InterfaceHeader - * - * FE_InterfaceHeader instances are used to store information about an - * interface header as the interface is being parsed and before the - * AST_Interface node used to represent this interface is created. - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "fe_private.h" - -/* - * Constructor(s) and destructor - */ - -FE_InterfaceHeader::FE_InterfaceHeader(UTL_ScopedName *n, UTL_NameList *nl) - : pd_interface_name(n) -{ - compile_inheritance(nl); -} - -/* - * Private operations - */ - -// Compute flattened, non-repeating list of inherited interfaces - -#undef INCREMENT -#define INCREMENT 512 - -/* - * Private storage used to store interfaces seen already in the - * computation of the unique, flattened inheritance list - */ -static AST_Interface **iseen = NULL; -static long iallocated = 0; -static long iused = 0; - -/* - * Add an interface to an inheritance spec - */ -static void -add_inheritance(AST_Interface *i) -{ - long oiallocated; - long k; - AST_Interface **oiseen; - - /* - * Make sure there's space for one more - */ - if (iallocated == iused) { - if (iallocated == 0) { - iallocated = INCREMENT; - iseen = new AST_Interface *[iallocated]; - } else { - oiallocated = iallocated; - oiseen = iseen; - iallocated += INCREMENT; - iseen = new AST_Interface *[iallocated]; - for (k = 0; k < iused; k++) - iseen[k] = oiseen[k]; - delete oiseen; - } - } - /* - * OK, now insert it - */ - iseen[iused] = i; - iused++; -} - -/* - * Have we already seen this interface? - */ -static long -already_seen(AST_Interface *ip) -{ - long i; - - for (i = 0; i < iused; i++) { - if (iseen[i] == ip) - return I_TRUE; - } - return I_FALSE; -} - -/* - * Add this interface to the list of inherited if not already there - */ -void -FE_InterfaceHeader::compile_one_inheritance(AST_Interface *i) -{ - /* - * Check for badly formed interface - */ - if (i == NULL) - return; - /* - * If we've seen it already then don't expand again - */ - if (already_seen(i)) - return; - /* - * OK, add i to the list of inherited interfaces - */ - add_inheritance(i); -} - -/* - * Compute the list of top-level interfaces this one inherits from - */ -void -FE_InterfaceHeader::compile_inheritance(UTL_NameList *nl) -{ - UTL_NamelistActiveIterator *l = new UTL_NamelistActiveIterator(nl); - AST_Decl *d; - AST_Interface *i; - long k; - - iused = 0; - /* - * Compute expanded flattened non-repeating list of interfaces - * which this one inherits from - */ - while (!(l->is_done())) { - /* - * Check that scope stack is valid - */ - if (idl_global->scopes()->top() == NULL) { - idl_global->err()->lookup_error(l->item()); - return; - } - /* - * Look it up - */ - d = idl_global->scopes()->top()->lookup_by_name(l->item(), I_TRUE); - /* - * Not found? - */ - if (d == NULL) { - idl_global->err()->lookup_error(l->item()); - return; - } - /* - * Not an interface? - */ - while(d->node_type() == AST_Decl::NT_typedef) - d = AST_Typedef::narrow_from_decl(d)->base_type(); - if (d->node_type() != AST_Decl::NT_interface) { - idl_global->err()->inheritance_error(pd_interface_name, d); - return; - } - /* - * OK, cast to an interface - */ - i = AST_Interface::narrow_from_decl(d); - if (i == NULL) - idl_global->err()->inheritance_error(pd_interface_name, d); - /* - * Forward declared interface? - */ - if (!i->is_defined()) { - idl_global->err()->inheritance_fwd_error(pd_interface_name, i); - return; - } - /* - * OK, see if we have to add this to the list of interfaces - * inherited from - */ - compile_one_inheritance(i); - - /* - * Next element in header list - */ - l->next(); - } - delete l; - /* - * OK, install in interface header - */ - pd_inherits = new AST_Interface *[iused]; - for (k = 0; k < iused; k++) - pd_inherits[k] = iseen[k]; - pd_n_inherits = iused; -} - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -/* - * Data accessors - */ - -UTL_ScopedName * -FE_InterfaceHeader::interface_name() -{ - return pd_interface_name; -} - -AST_Interface ** -FE_InterfaceHeader::inherits() -{ - return pd_inherits; -} - -long -FE_InterfaceHeader::n_inherits() -{ - return pd_n_inherits; -} diff --git a/TAO/TAO_IDL/fe/fe_private.cpp b/TAO/TAO_IDL/fe/fe_private.cpp deleted file mode 100644 index 90a2ec449f5..00000000000 --- a/TAO/TAO_IDL/fe/fe_private.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * fe_private.cc - Declare global data which are private to the FE - * part - */ - -#include "idl.h" -#include "idl_extern.h" - -#include "fe_private.h" - -/* - * List of pragmas - */ -UTL_StrList *DRV_global_pragmas = NULL; diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll deleted file mode 100644 index 17f11b8fb21..00000000000 --- a/TAO/TAO_IDL/fe/idl.ll +++ /dev/null @@ -1,528 +0,0 @@ - -%{ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF -IDL_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. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY -IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF. - -IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR -IDL_ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL -DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * idl.ll - Lexical scanner for IDL 1.1 - */ - -#include "idl.h" -#include "idl_extern.h" -#include "fe_private.h" -#include "y.tab.h" - -static char idl_escape_reader(char *); -static double idl_atof(char *); -static long idl_atoi(char *, long); -static void idl_parse_line_and_file(char *); -static void idl_store_pragma(char *); - -#if 0 /* defined (HPUX) */ -// HPUX has yytext typed to unsigned char *. We make sure here that -// we'll always use char * static char* __yytext = (char*) yytext; -// NOTE: This will not work under flex(1) were yytext is not a fixed -// buffer, but a dynamically allocated one. This function should do -// the trick for us. -inline char *__yytext() -{ - return (char *) yytext; -} -#define ace_yytext __yytext() -#else -#define ace_yytext yytext -#endif /* 0 */ -%} - -%array - -%% - -any return IDL_ANY; -module return IDL_MODULE; -raises return IDL_RAISES; -readonly return IDL_READONLY; -attribute return IDL_ATTRIBUTE; -exception return IDL_EXCEPTION; -context return IDL_CONTEXT; -interface return IDL_INTERFACE; -const return IDL_CONST; -typedef return IDL_TYPEDEF; -struct return IDL_STRUCT; -enum return IDL_ENUM; -string return IDL_STRING; -wstring_t return IDL_WSTRING; -sequence return IDL_SEQUENCE; -union return IDL_UNION; -switch return IDL_SWITCH; -case return IDL_CASE; -default return IDL_DEFAULT; -float return IDL_FLOAT; -double return IDL_DOUBLE; -long return IDL_LONG; -short return IDL_SHORT; -unsigned return IDL_UNSIGNED; -char return IDL_CHAR; -wchar_t return IDL_WCHAR; -boolean return IDL_BOOLEAN; -octet return IDL_OCTET; -void return IDL_VOID; -native return IDL_NATIVE; - -TRUE return IDL_TRUETOK; -FALSE return IDL_FALSETOK; - -inout return IDL_INOUT; -in return IDL_IN; -out return IDL_OUT; -oneway return IDL_ONEWAY; - -\<\< return IDL_LEFT_SHIFT; -\>\> return IDL_RIGHT_SHIFT; -\:\: { - yylval.strval = "::"; - return IDL_SCOPE_DELIMITOR; - } - -[a-zA-Z][a-zA-Z0-9_]* { - char *z = (char *) malloc(strlen(ace_yytext) + 1); - strcpy(z, ace_yytext); - yylval.strval = z; - return IDENTIFIER; -} - --?[0-9]+"."[0-9]*([eE][+-]?[0-9]+)?[lLfF]? { - yylval.dval = idl_atof(ace_yytext); - return IDL_FLOATING_PT_LITERAL; - } --?[0-9]+[eE][+-]?[0-9]+[lLfF]? { - yylval.dval = idl_atof(ace_yytext); - return IDL_FLOATING_PT_LITERAL; - } - --?[1-9][0-9]* { - yylval.ival = idl_atoi(ace_yytext, 10); - return IDL_INTEGER_LITERAL; - } --?0[xX][a-fA-F0-9]+ { - yylval.ival = idl_atoi(ace_yytext, 16); - return IDL_INTEGER_LITERAL; - } --?0[0-7]* { - yylval.ival = idl_atoi(ace_yytext, 8); - return IDL_INTEGER_LITERAL; - } - -"\""[^\"]*"\"" { - /* Skip the quotes */ - char *tmp = ace_yytext; - tmp[strlen(tmp)-1] = '\0'; - yylval.sval = new String(tmp + 1); - return IDL_STRING_LITERAL; - } -"'"."'" { - yylval.cval = ace_yytext [1]; - return IDL_CHARACTER_LITERAL; - } -"'"\\([0-7]{1,3})"'" { - // octal character constant - yylval.cval = idl_escape_reader(ace_yytext + 1); - return IDL_CHARACTER_LITERAL; - } -"'"\\."'" { - yylval.cval = idl_escape_reader(ace_yytext + 1); - return IDL_CHARACTER_LITERAL; - } -^#[ \t]*pragma[ \t].*\n {/* remember pragma */ - idl_global->set_lineno(idl_global->lineno() + 1); - idl_store_pragma(ace_yytext); - } -^#[ \t]*[0-9]*" ""\""[^\"]*"\""" "[0-9]*\n { - idl_parse_line_and_file(ace_yytext); - } -^#[ \t]*[0-9]*" ""\""[^\"]*"\""\n { - idl_parse_line_and_file(ace_yytext); - } -^#line[ \t]*[0-9]*" ""\""[^\"]*"\""\n { - idl_parse_line_and_file(ace_yytext); - } -^#[ \t]*[0-9]*\n { - idl_parse_line_and_file(ace_yytext); - } -^#[ \t]*ident.*\n { - /* ignore cpp ident */ - idl_global->set_lineno(idl_global->lineno() + 1); - } -\/\/.*\n { - /* ignore comments */ - idl_global->set_lineno(idl_global->lineno() + 1); - } -"/*" { - for(;;) { - char c = yyinput(); - if (c == '*') { - char next = yyinput(); - if (next == '/') - break; - else - yyunput(c, NULL); - if (c == '\n') - idl_global->set_lineno(idl_global->lineno() + 1); - } - } - } -[ \t]* ; -\n { - idl_global->set_lineno(idl_global->lineno() + 1); - } -. return ace_yytext [0]; - -%% - /* subroutines */ - -/* - * Strip down a name to the last component, i.e. everything after the last - * '/' character - */ -static char * -stripped_name(UTL_String *fn) -{ - char *n = fn->get_string(); - long l; - - if (n == NULL) - return NULL; - l = strlen(n); - for (n += l; l > 0 && *n != '/'; l--, n--); - if (*n == '/') n++; - return n; -} - -/* - * Parse a #line statement generated by the C preprocessor - */ -static void -idl_parse_line_and_file(char *buf) -{ - char *r = buf; - char *h; - UTL_String *nm; - - /* Skip initial '#' */ - if (*r != '#') - return; - else - r++; - - /* Check to see if we're running under the screwy Microsoft scheme */ - /* of putting #line num instead of #num. */ - - if (ACE_OS::strncmp (r, "line", 4) == 0) - r += 5; - - /* Find line number */ - while (*r == ' ' || *r == '\t') - r++; - h = r; - for (; *r != '\0' && *r != ' ' && *r != '\t'; r++) - continue; - *r++ = 0; - idl_global->set_lineno(idl_atoi(h, 10)); - - /* Find file name, if present */ - for (; *r != '"'; r++) - if (*r == '\n' || *r == '\0') - return; - - h = ++r; - for (; *r != '"'; r++) - continue; - *r = 0; - if (*h == '\0') - idl_global->set_filename(new String("standard input")); - else - { - long i; - long j; - - // Put Microsoft-style pathnames into a canonical form. - for (i = 0, j = 0; h[j] != '\0'; i++, j++) - { - if (h[j] == '\\' && h[j + 1] == '\\') - j++; - - h[i] = h[j]; - } - h[i] = '\0'; - idl_global->set_filename(new String(h)); - } - idl_global->set_in_main_file( - (idl_global->filename()->compare(idl_global->real_filename())) ? - I_TRUE : - I_FALSE - ); - /* - * If it's an import file store the stripped name for the BE to use - */ - if (!(idl_global->in_main_file()) && idl_global->import()) { - nm = new UTL_String(stripped_name(idl_global->filename())); - idl_global->store_include_file_name(nm); - } -} - -/* - * Store a #pragma line into the list of pragmas - */ -static void -idl_store_pragma(char *buf) -{ - char *cp = buf + 1; - while(*cp != 'p') - cp++; - while(*cp != ' ' && *cp != '\t') - cp++; - while(*cp == ' ' || *cp == '\t') - cp++; - char pragma[80]; - char *pp = pragma; - while(*cp != '\n') { - *pp++ = *cp++; - } - *pp = 0; - if (strcmp(pragma, "import") == 0) { - idl_global->set_import(I_TRUE); - return; - } - if (strcmp(pragma, "include") == 0) { - idl_global->set_import(I_FALSE); - return; - } - UTL_StrList *p = idl_global->pragmas(); - if (p == NULL) - idl_global->set_pragmas(new UTL_StrList(new String(buf), NULL)); - else { - p->nconc(new UTL_StrList(new String(buf), NULL)); - idl_global->set_pragmas(p); - } -} - -/* - * idl_atoi - Convert a string of digits into an integer according to base b - */ -static long -idl_atoi(char *s, long b) -{ - long r = 0; - long negative = 0; - - if (*s == '-') { - negative = 1; - s++; - } - if (b == 8 && *s == '0') - s++; - else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X')) - s += 2; - - for (; *s; s++) - if (*s <= '9' && *s >= '0') - r = (r * b) + (*s - '0'); - else if (b > 10 && *s <= 'f' && *s >= 'a') - r = (r * b) + (*s - 'a' + 10); - else if (b > 10 && *s <= 'F' && *s >= 'A') - r = (r * b) + (*s - 'A' + 10); - else - break; - - if (negative) - r *= -1; - - return r; -} - -/* - * Convert a string to a float; atof doesn't seem to work, always. - */ -static double -idl_atof(char *s) -{ - char *h = s; - double d = 0.0; - double f = 0.0; - double e, k; - long neg = 0, negexp = 0; - - ACE_UNUSED_ARG (f); - ACE_UNUSED_ARG (h); - - if (*s == '-') { - neg = 1; - s++; - } - while (*s >= '0' && *s <= '9') { - d = (d * 10) + *s - '0'; - s++; - } - if (*s == '.') { - s++; - e = 10; - while (*s >= '0' && *s <= '9') { - d += (*s - '0') / (e * 1.0); - e *= 10; - s++; - } - } - if (*s == 'e' || *s == 'E') { - s++; - if (*s == '-') { - negexp = 1; - s++; - } else if (*s == '+') - s++; - e = 0; - while (*s >= '0' && *s <= '9') { - e = (e * 10) + *s - '0'; - s++; - } - if (e > 0) { - for (k = 1; e > 0; k *= 10, e--); - if (negexp) - d /= k; - else - d *= k; - } - } - - if (neg) d *= -1.0; - - return d; -} - -/* - * Convert (some) escaped characters into their ascii values - */ -static char -idl_escape_reader( - char *str -) -{ - if (str[0] != '\\') { - return str[0]; - } - - switch (str[1]) { - case 'n': - return '\n'; - case 't': - return '\t'; - case 'v': - return '\v'; - case 'b': - return '\b'; - case 'r': - return '\r'; - case 'f': - return '\f'; - case 'a': - return '\a'; - case '\\': - return '\\'; - case '\?': - return '?'; - case '\'': - return '\''; - case '"': - return '"'; - case 'x': - { - int i; - // hex value - for (i = 2; str[i] != '\0' && isxdigit(str[i]); i++) { - continue; - } - char save = str[i]; - str[i] = '\0'; - char out = (char)idl_atoi(&str[2], 16); - str[i] = save; - return out; - } - break; - default: - // check for octal value - if (str[1] >= '0' && str[1] <= '7') { - int i; - for (i = 1; str[i] >= '0' && str[i] <= '7'; i++) { - continue; - } - char save = str[i]; - str[i] = '\0'; - char out = (char)idl_atoi(&str[1], 8); - str[i] = save; - return out; - } else { - return str[1] - 'a'; - } - break; - } -} diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy deleted file mode 100644 index 328672ba4b6..00000000000 --- a/TAO/TAO_IDL/fe/idl.yy +++ /dev/null @@ -1,2288 +0,0 @@ - - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF -IDL_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. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY -IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF. - -IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR -IDL_ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL -DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * idl.yy - YACC grammar for IDL 1.1 - */ - -/* Declarations */ - -%{ -#include "idl.h" -#include "idl_extern.h" -#include "fe_private.h" -#include - -#if (defined(apollo) || defined(hpux)) && defined(__cplusplus) -extern "C" int yywrap(); -#endif // (defined(apollo) || defined(hpux)) && defined(__cplusplus) - -void yyerror (char *); -int yylex (void); -extern "C" int yywrap (void); -extern char yytext[]; -extern int yyleng; -#define YYDEBUG_LEXER_TEXT (yytext[yyleng] = '\0', yytext) -// Force the pretty debugging code to compile. -#define YYDEBUG 1 -%} - -/* - * Declare the type of values in the grammar - */ - -%union { - AST_Decl *dcval; /* Decl value */ - UTL_StrList *slval; /* String list */ - UTL_NameList *nlval; /* Name list */ - UTL_ExprList *elval; /* Expression list */ - UTL_LabelList *llval; /* Label list */ - UTL_DeclList *dlval; /* Declaration list */ - FE_InterfaceHeader *ihval; /* Interface header */ - AST_Expression *exval; /* Expression value */ - AST_UnionLabel *ulval; /* Union label */ - AST_Field *ffval; /* Field value */ - AST_Expression::ExprType etval; /* Expression type */ - AST_Argument::Direction dival; /* Argument direction */ - AST_Operation::Flags ofval; /* Operation flags */ - FE_Declarator *deval; /* Declarator value */ - idl_bool bval; /* Boolean value */ - long ival; /* Long value */ - double dval; /* Double value */ - float fval; /* Float value */ - char cval; /* Char value */ - - String *sval; /* String value */ - char *strval; /* char * value */ - Identifier *idval; /* Identifier */ - UTL_IdList *idlist; /* Identifier list */ -} - -/* - * Token types: These are returned by the lexer - */ - -%token IDENTIFIER - -%token IDL_CONST -%token IDL_MODULE -%token IDL_INTERFACE -%token IDL_TYPEDEF -%token IDL_LONG -%token IDL_SHORT -%token IDL_UNSIGNED -%token IDL_DOUBLE -%token IDL_FLOAT -%token IDL_CHAR -%token IDL_WCHAR -%token IDL_OCTET -%token IDL_BOOLEAN -%token IDL_ANY -%token IDL_STRUCT -%token IDL_UNION -%token IDL_SWITCH -%token IDL_ENUM -%token IDL_SEQUENCE -%token IDL_STRING -%token IDL_WSTRING -%token IDL_EXCEPTION -%token IDL_CASE -%token IDL_DEFAULT -%token IDL_READONLY -%token IDL_ATTRIBUTE -%token IDL_ONEWAY -%token IDL_IDEMPOTENT -%token IDL_VOID -%token IDL_IN -%token IDL_OUT -%token IDL_INOUT -%token IDL_RAISES -%token IDL_CONTEXT -%token IDL_NATIVE - -%token IDL_INTEGER_LITERAL -%token IDL_STRING_LITERAL -%token IDL_CHARACTER_LITERAL -%token IDL_FLOATING_PT_LITERAL -%token IDL_TRUETOK -%token IDL_FALSETOK - -%token IDL_SCOPE_DELIMITOR -%token IDL_LEFT_SHIFT -%token IDL_RIGHT_SHIFT - -/* - * These are production names: - */ - -%type type_spec simple_type_spec constructed_type_spec -%type template_type_spec sequence_type_spec string_type_spec -%type struct_type enum_type switch_type_spec union_type -%type array_declarator op_type_spec seq_head wstring_type_spec -%type param_type_spec - -%type scoped_name -%type opt_context at_least_one_string_literal -%type string_literals - -%type at_least_one_scoped_name scoped_names inheritance_spec -%type opt_raises - -%type at_least_one_array_dim array_dims - -%type at_least_one_case_label case_labels - -%type at_least_one_declarator declarators -%type at_least_one_simple_declarator simple_declarators - -%type interface_header - -%type expression const_expr or_expr xor_expr and_expr shift_expr -%type add_expr mult_expr unary_expr primary_expr literal -%type positive_int_expr array_dim - -%type case_label - -%type element_spec - -%type const_type integer_type char_type boolean_type -%type floating_pt_type any_type signed_int -%type unsigned_int base_type_spec octet_type - -%type direction - -%type opt_op_attribute - -%type declarator simple_declarator complex_declarator - -%type opt_readonly - -%type interface_decl id - -%type type_dcl -%% - -/* - * Production starts here - */ -start : definitions ; - -definitions - : definition definitions - | /* empty */ - ; - -definition - : type_dcl - { - idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | const_dcl - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | exception - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | interface_def - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | module - { - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | error - { - idl_global->err()->syntax_error(idl_global->parse_state()); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - yyerrok; - } - ; - -module : IDL_MODULE - { - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen); - } - IDENTIFIER - { - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier($3, 1, 0, I_FALSE), NULL); - AST_Module *m = NULL; - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleIDSeen); - /* - * Make a new module and add it to the enclosing scope - */ - if (s != NULL) { - m = idl_global->gen()->create_module(n, p); - (void) s->fe_add_module(m); - } - /* - * Push it on the stack - */ - idl_global->scopes()->push(m); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen); - } - definitions - { - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen); - /* - * Finished with this module - pop it from the scope stack - */ - idl_global->scopes()->pop(); - } - ; - -interface_def - : interface - | forward - ; - -interface : - interface_header - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Interface *i = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *d = NULL; - AST_Interface *fd = NULL; - - ACE_UNUSED_ARG (v); - - /* - * Make a new interface node and add it to its enclosing scope - */ - if (s != NULL && $1 != NULL) { - i = idl_global->gen()->create_interface($1->interface_name(), - $1->inherits(), - $1->n_inherits(), - p); - if (i != NULL && - (d = s->lookup_by_name(i->name(), I_FALSE)) != NULL) { - /* - * See if we're defining a forward declared interface. - */ - if (d->node_type() == AST_Decl::NT_interface) { - /* - * Narrow to an interface - */ - fd = AST_Interface::narrow_from_decl(d); - /* - * Successful? - */ - if (fd == NULL) { - /* - * Should we give an error here? - */ - } - /* - * If it is a forward declared interface.. - */ - else if (!fd->is_defined()) { - /* - * Check if redefining in same scope - */ - if (fd->defined_in() != s) { - idl_global->err() - ->error3(UTL_Error::EIDL_SCOPE_CONFLICT, - i, - fd, - ScopeAsDecl(s)); - } - /* - * All OK, do the redefinition - */ - else { - fd->set_inherits($1->inherits()); - fd->set_n_inherits($1->n_inherits()); - /* - * Update place of definition - */ - fd->set_imported(idl_global->imported()); - fd->set_in_main_file(idl_global->in_main_file()); - fd->set_line(idl_global->lineno()); - fd->set_file_name(idl_global->filename()); - fd->add_pragmas(p); - /* - * Use full definition node - */ - delete i; - i = fd; - } - } - } - } - /* - * Add the interface to its definition scope - */ - (void) s->fe_add_interface(i); - } - /* - * Push it on the scope stack - */ - idl_global->scopes()->push(i); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); - } - exports - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); - /* - * Done with this interface - pop it off the scopes stack - */ - idl_global->scopes()->pop(); - } - ; - -interface_decl: - IDL_INTERFACE - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen); - } - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen); - $$ = $3; - } - ; - -interface_header : - interface_decl inheritance_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); - /* - * Create an AST representation of the information in the header - * part of an interface - this representation contains a computed - * list of all interfaces which this interface inherits from, - * recursively - */ - $$ = new FE_InterfaceHeader(new UTL_ScopedName($1, NULL), $2); - } - ; - -inheritance_spec - : ':' - { - idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen); - } - at_least_one_scoped_name - { - $$ = $3; - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -exports - : exports export - | /* EMPTY */ - ; - -export - : type_dcl - { - idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | const_dcl - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | exception - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | attribute - { - idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | operation - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } - | error - { - idl_global->err()->syntax_error(idl_global->parse_state()); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - yyerrok; - } - ; - -at_least_one_scoped_name : - scoped_name scoped_names - { - $$ = new UTL_NameList($1, $2); - } - ; - -scoped_names - : scoped_names - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen); - } - scoped_name - { - idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen); - - if ($1 == NULL) - $$ = new UTL_NameList($4, NULL); - else { - $1->nconc(new UTL_NameList($4, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -scoped_name - : id - { - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - $$ = new UTL_IdList($1, NULL); - } - | IDL_SCOPE_DELIMITOR - { - idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); - } - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - $$ = new UTL_IdList(new Identifier($1, 1, 0, I_FALSE), - new UTL_IdList($3, NULL)); - } - | scoped_name - IDL_SCOPE_DELIMITOR - { - idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); - } - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - $1->nconc(new UTL_IdList($4, NULL)); - $$ = $1; - } - ; - -id: IDENTIFIER - { - $$ = new Identifier($1, 1, 0, I_FALSE); - } - ; - -forward : - interface_decl - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName($1, NULL); - AST_InterfaceFwd *f = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); - /* - * Create a node representing a forward declaration of an - * interface. Store it in the enclosing scope - */ - if (s != NULL) { - f = idl_global->gen()->create_interface_fwd(n, p); - (void) s->fe_add_interface_fwd(f); - } - } - ; - -const_dcl : - IDL_CONST - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen); - } - const_type - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen); - } - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen); - } - '=' - { - idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen); - } - expression - { - UTL_ScopedName *n = new UTL_ScopedName($5, NULL); - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Constant *c = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_ConstExprSeen); - /* - * Create a node representing a constant declaration. Store - * it in the enclosing scope - */ - if ($9 != NULL && s != NULL) { - if ($9->coerce($3) == NULL) - idl_global->err()->coercion_error($9, $3); - else { - c = - idl_global->gen()->create_constant($3, $9, n, p); - (void) s->fe_add_constant(c); - } - } - } - ; - -const_type - : integer_type - | char_type - | octet_type - | boolean_type - | floating_pt_type - | string_type_spec - { - $$ = AST_Expression::EV_string; - } - | wstring_type_spec - { - $$ = AST_Expression::EV_wstring; - } - | scoped_name - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - AST_PredefinedType *c = NULL; - AST_Typedef *t = NULL; - - /* - * If the constant's type is a scoped name, it must resolve - * to a scalar constant type - */ - if (s != NULL && (d = s->lookup_by_name($1, I_TRUE)) != NULL) { - /* - * Look through typedefs - */ - while (d->node_type() == AST_Decl::NT_typedef) { - t = AST_Typedef::narrow_from_decl(d); - if (t == NULL) - break; - d = t->base_type(); - } - if (d == NULL) - $$ = AST_Expression::EV_any; - else if (d->node_type() == AST_Decl::NT_pre_defined) { - c = AST_PredefinedType::narrow_from_decl(d); - if (c != NULL) { - $$ = idl_global->PredefinedTypeToExprType(c->pt()); - } else { - $$ = AST_Expression::EV_any; - } - } else - $$ = AST_Expression::EV_any; - } else - $$ = AST_Expression::EV_any; - } - ; - -expression : const_expr ; - -const_expr : or_expr ; - -or_expr : xor_expr - | or_expr '|' xor_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_or, $1, $3); - } - ; - -xor_expr - : and_expr - | xor_expr '^' and_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_xor, $1, $3); - } - ; - -and_expr - : shift_expr - | and_expr '&' shift_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_and, $1, $3); - } - ; - -shift_expr - : add_expr - | shift_expr IDL_LEFT_SHIFT add_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_right,$1,$3); - } - | shift_expr IDL_RIGHT_SHIFT add_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_left,$1,$3); - } - ; - -add_expr - : mult_expr - | add_expr '+' mult_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_add, $1, $3); - } - | add_expr '-' mult_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_minus,$1,$3); - } - ; - -mult_expr - : unary_expr - | mult_expr '*' unary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_mul, $1, $3); - } - | mult_expr '/' unary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_div, $1, $3); - } - | mult_expr '%' unary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_mod, $1, $3); - } - ; - -unary_expr - : primary_expr - | '+' primary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_u_plus, - $2, - NULL); - } - | '-' primary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_u_minus, - $2, - NULL); - } - | '~' primary_expr - { - $$ = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg, - $2, - NULL); - } - ; - -primary_expr - : scoped_name - { - /* - * An expression which is a scoped name is not resolved now, - * but only when it is evaluated (such as when it is assigned - * as a constant value) - */ - $$ = idl_global->gen()->create_expr($1); - } - | literal - | '(' const_expr ')' - { - $$ = $2; - } - ; - -literal - : IDL_INTEGER_LITERAL - { - $$ = idl_global->gen()->create_expr($1); - } - | IDL_STRING_LITERAL - { - $$ = idl_global->gen()->create_expr($1); - } - | IDL_CHARACTER_LITERAL - { - $$ = idl_global->gen()->create_expr($1); - } - | IDL_FLOATING_PT_LITERAL - { - $$ = idl_global->gen()->create_expr($1); - } - | IDL_TRUETOK - { - $$ = idl_global->gen()->create_expr((idl_bool) I_TRUE, - AST_Expression::EV_bool); - } - | IDL_FALSETOK - { - $$ = idl_global->gen()->create_expr((idl_bool) I_FALSE, - AST_Expression::EV_bool); - } - ; - -positive_int_expr : - const_expr - { - $1->evaluate(AST_Expression::EK_const); - $$ = idl_global->gen()->create_expr($1, AST_Expression::EV_ulong); - } - ; - -type_dcl - : IDL_TYPEDEF - { - idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen); - } - type_declarator {$$ = 0;} - | struct_type { $$ = 0;} - | union_type { $$ = 0;} - | enum_type { $$ = 0;} - | IDL_NATIVE simple_declarator - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Native *node = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_NativeSeen); - /* - * Create a node representing a Native and add it to its - * enclosing scope - */ - if (s != NULL) { - node = idl_global->gen()->create_native ($2->name (), p); - /* - * Add it to its defining scope - */ - (void) s->fe_add_native (node); - } - } - ; - -type_declarator : - type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen); - } - at_least_one_declarator - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l; - FE_Declarator *d = NULL; - AST_Typedef *t = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_DeclaratorsSeen); - /* - * Create a list of type renamings. Add them to the - * enclosing scope - */ - if (s != NULL && $1 != NULL && $3 != NULL) { - l = new UTL_DecllistActiveIterator($3); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type * tp = d->compose($1); - if (tp == NULL) - continue; - t = idl_global->gen()->create_typedef(tp, d->name(), p); - (void) s->fe_add_typedef(t); - } - delete l; - } - } - ; - -type_spec - : simple_type_spec - | constructed_type_spec - ; - -simple_type_spec - : base_type_spec - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | template_type_spec - | scoped_name - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - - if (s != NULL) - d = s->lookup_by_name($1, I_TRUE); - if (d == NULL) - idl_global->err()->lookup_error($1); - $$ = d; - } - ; - -base_type_spec - : integer_type - | floating_pt_type - | char_type - | boolean_type - | octet_type - | any_type - ; - -template_type_spec - : sequence_type_spec - | string_type_spec - | wstring_type_spec - ; - -constructed_type_spec - : struct_type - | union_type - | enum_type - ; - -at_least_one_declarator : - declarator declarators - { - $$ = new UTL_DeclList($1, $2); - } - ; - -declarators - : declarators - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); - } - declarator - { - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); - - if ($1 == NULL) - $$ = new UTL_DeclList($4, NULL); - else { - $1->nconc(new UTL_DeclList($4, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -declarator - : simple_declarator - | complex_declarator - ; - -at_least_one_simple_declarator : - simple_declarator simple_declarators - { - $$ = new UTL_DeclList($1, $2); - } - ; - -simple_declarators - : simple_declarators - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); - } - simple_declarator - { - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); - - if ($1 == NULL) - $$ = new UTL_DeclList($4, NULL); - else { - $1->nconc(new UTL_DeclList($4, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -simple_declarator : - id - { - $$ = new FE_Declarator(new UTL_ScopedName($1, NULL), - FE_Declarator::FD_simple, NULL); - } - ; - -complex_declarator : - array_declarator - { - $$ = new FE_Declarator(new UTL_ScopedName($1->local_name(), NULL), - FE_Declarator::FD_complex, - $1); - } - ; - -integer_type - : signed_int - | unsigned_int - ; - -signed_int - : IDL_LONG - { - $$ = AST_Expression::EV_long; - } - | IDL_LONG IDL_LONG - { - $$ = AST_Expression::EV_longlong; - } - | IDL_SHORT - { - $$ = AST_Expression::EV_short; - } - ; - -unsigned_int - : IDL_UNSIGNED IDL_LONG - { - $$ = AST_Expression::EV_ulong; - } - | IDL_UNSIGNED IDL_LONG IDL_LONG - { - $$ = AST_Expression::EV_ulonglong; - } - | IDL_UNSIGNED IDL_SHORT - { - $$ = AST_Expression::EV_ushort; - } - ; - -floating_pt_type - : IDL_DOUBLE - { - $$ = AST_Expression::EV_double; - } - | IDL_FLOAT - { - $$ = AST_Expression::EV_float; - } - | IDL_LONG IDL_DOUBLE - { - $$ = AST_Expression::EV_longdouble; - } - ; - -char_type - : IDL_CHAR - { - $$ = AST_Expression::EV_char; - } - | IDL_WCHAR - { - $$ = AST_Expression::EV_wchar; - } - ; - -octet_type - : IDL_OCTET - { - $$ = AST_Expression::EV_octet; - } - ; - -boolean_type - : IDL_BOOLEAN - { - $$ = AST_Expression::EV_bool; - } - ; - -any_type - : IDL_ANY - { - $$ = AST_Expression::EV_any; - } - ; - -struct_type : - IDL_STRUCT - { - idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen); - } - id - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName($3, NULL); - AST_Structure *d = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_StructIDSeen); - /* - * Create a node representing a struct declaration. Add it - * to the enclosing scope - */ - if (s != NULL) { - d = idl_global->gen()->create_structure(n, p); - (void) s->fe_add_structure(d); - } - /* - * Push the scope of the struct on the scopes stack - */ - idl_global->scopes()->push(d); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen); - } - at_least_one_member - { - idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen); - /* - * Done with this struct. Pop its scope off the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - $$ = NULL; - else { - $$ = - AST_Structure::narrow_from_scope( - idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } - ; - -at_least_one_member : member members ; - -members - : members member - | /* EMPTY */ - ; - -member : - type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen); - } - at_least_one_declarator - { - idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen); - } - ';' - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l = NULL; - FE_Declarator *d = NULL; - AST_Field *f = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsCompleted); - /* - * Check for illegal recursive use of type - */ - if ($1 != NULL && AST_illegal_recursive_type($1)) - idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, $1); - /* - * Create a node representing a struct or exception member - * Add it to the enclosing scope - */ - else if (s != NULL && $1 != NULL && $3 != NULL) { - l = new UTL_DecllistActiveIterator($3); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type *tp = d->compose($1); - if (tp == NULL) - continue; - f = idl_global->gen()->create_field(tp, d->name(), p); - (void) s->fe_add_field(f); - } - delete l; - } - } - | error - { - idl_global->err()->syntax_error(idl_global->parse_state()); - } - ';' - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - yyerrok; - } - ; - -union_type : - IDL_UNION - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen); - } - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen); - } - IDL_SWITCH - { - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen); - } - '(' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen); - } - switch_type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen); - } - ')' - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName($3, NULL); - AST_Union *u = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchCloseParSeen); - /* - * Create a node representing a union. Add it to its enclosing - * scope - */ - if ($9 != NULL && s != NULL) { - AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl($9); - if (tp == NULL) { - idl_global->err()->not_a_type($9); - } else { - u = idl_global->gen()->create_union(tp, n, p); - (void) s->fe_add_union(u); - } - } - /* - * Push the scope of the union on the scopes stack - */ - idl_global->scopes()->push(u); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen); - } - at_least_one_case_branch - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen); - /* - * Done with this union. Pop its scope from the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - $$ = NULL; - else { - $$ = - AST_Union::narrow_from_scope( - idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } - ; - -switch_type_spec : - integer_type - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | char_type - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | octet_type - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | boolean_type - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | enum_type - | scoped_name - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - AST_PredefinedType *p = NULL; - AST_Typedef *t = NULL; - long found = I_FALSE; - - /* - * The discriminator is a scoped name. Try to resolve to - * one of the scalar types or to an enum. Thread through - * typedef's to arrive at the base type at the end of the - * chain - */ - if (s != NULL && (d = s->lookup_by_name($1, I_TRUE)) != NULL) { - while (!found) { - switch (d->node_type()) { - case AST_Decl::NT_enum: - $$ = d; - found = I_TRUE; - break; - case AST_Decl::NT_pre_defined: - p = AST_PredefinedType::narrow_from_decl(d); - if (p != NULL) { - switch (p->pt()) { - case AST_PredefinedType::PT_long: - case AST_PredefinedType::PT_ulong: - case AST_PredefinedType::PT_longlong: - case AST_PredefinedType::PT_ulonglong: - case AST_PredefinedType::PT_short: - case AST_PredefinedType::PT_char: - case AST_PredefinedType::PT_wchar: - case AST_PredefinedType::PT_octet: - case AST_PredefinedType::PT_boolean: - $$ = p; - found = I_TRUE; - break; - default: - $$ = NULL; - found = I_TRUE; - break; - } - } - break; - case AST_Decl::NT_typedef: - t = AST_Typedef::narrow_from_decl(d); - if (t != NULL) d = t->base_type(); - break; - default: - $$ = NULL; - found = I_TRUE; - break; - } - } - } else - $$ = NULL; - - if ($$ == NULL) - idl_global->err()->lookup_error($1); - } - ; - -at_least_one_case_branch : case_branch case_branches ; - -case_branches - : case_branches case_branch - | /* empty */ - ; - -case_branch : - at_least_one_case_label - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen); - } - element_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen); - } - ';' - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_LabellistActiveIterator *l = NULL; - AST_UnionLabel *d = NULL; - AST_UnionBranch *b = NULL; - AST_Field *f = $3; - - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemCompleted); - /* - * Create several nodes representing branches of a union. - * Add them to the enclosing scope (the union scope) - */ - if (s != NULL && $1 != NULL && $3 != NULL) { - l = new UTL_LabellistActiveIterator($1); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - b = idl_global->gen()->create_union_branch(d, - f->field_type(), - f->name(), - f->pragmas()); - (void) s->fe_add_union_branch(b); - } - delete l; - } - } - | error - { - idl_global->err()->syntax_error(idl_global->parse_state()); - } - ';' - - { - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - yyerrok; - } - ; - -at_least_one_case_label : - case_label case_labels - { - $$ = new UTL_LabelList($1, $2); - } - ; - -case_labels - : case_labels case_label - { - if ($1 == NULL) - $$ = new UTL_LabelList($2, NULL); - else { - $1->nconc(new UTL_LabelList($2, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -case_label - : IDL_DEFAULT - { - idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen); - } - ':' - { - idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); - - $$ = idl_global->gen()-> - create_union_label(AST_UnionLabel::UL_default, - NULL); - } - | IDL_CASE - { - idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen); - } - const_expr - { - idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen); - } - ':' - { - idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); - - $$ = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label, - $3); - } - ; - -element_spec : - type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen); - } - declarator - { - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen); - /* - * Check for illegal recursive use of type - */ - if ($1 != NULL && AST_illegal_recursive_type($1)) - idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, $1); - /* - * Create a field in a union branch - */ - else if ($1 == NULL || $3 == NULL) - $$ = NULL; - else { - AST_Type *tp = $3->compose($1); - if (tp == NULL) - $$ = NULL; - else - $$ = idl_global->gen()->create_field(tp, - $3->name(), - idl_global->pragmas()); - } - } - ; - -enum_type : - IDL_ENUM - { - idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen); - } - id - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName($3, NULL); - AST_Enum *e = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_EnumIDSeen); - /* - * Create a node representing an enum and add it to its - * enclosing scope - */ - if (s != NULL) { - e = idl_global->gen()->create_enum(n, p); - /* - * Add it to its defining scope - */ - (void) s->fe_add_enum(e); - } - /* - * Push the enum scope on the scopes stack - */ - idl_global->scopes()->push(e); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen); - } - at_least_one_enumerator - { - idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen); - /* - * Done with this enum. Pop its scope from the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - $$ = NULL; - else { - $$ = AST_Enum::narrow_from_scope(idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } - ; - -at_least_one_enumerator : enumerator enumerators ; - -enumerators - : enumerators - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen); - } - enumerator - | /* EMPTY */ - ; - -enumerator : - IDENTIFIER - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier($1, 1, 0, I_FALSE), NULL); - AST_EnumVal *e = NULL; - AST_Enum *c = NULL; - UTL_StrList *p = idl_global->pragmas(); - - /* - * Create a node representing one enumerator in an enum - * Add it to the enclosing scope (the enum scope) - */ - if (s != NULL && s->scope_node_type() == AST_Decl::NT_enum) { - c = AST_Enum::narrow_from_scope(s); - if (c != NULL) - e = idl_global->gen()->create_enum_val(c->next_enum_val(), n, p); - (void) s->fe_add_enum_val(e); - } - } - ; - -sequence_type_spec - : seq_head - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen); - } - positive_int_expr - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen); - } - '>' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); - /* - * Remove sequence marker from scopes stack - */ - if (idl_global->scopes()->top() == NULL) - idl_global->scopes()->pop(); - /* - * Create a node representing a sequence - */ - if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error($4, AST_Expression::EV_ulong); - $$ = NULL; - } else if ($1 == NULL) { - $$ = NULL; - } else { - AST_Type *tp = AST_Type::narrow_from_decl($1); - if (tp == NULL) - $$ = NULL; - else { - $$ = idl_global->gen()->create_sequence($4, tp); - /* - * Add this AST_Sequence to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_sequence(AST_Sequence::narrow_from_decl($$)); - } - } - } - | seq_head - '>' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); - /* - * Remove sequence marker from scopes stack - */ - if (idl_global->scopes()->top() == NULL) - idl_global->scopes()->pop(); - /* - * Create a node representing a sequence - */ - if ($1 == NULL) - $$ = NULL; - else { - AST_Type *tp = AST_Type::narrow_from_decl($1); - if (tp == NULL) - $$ = NULL; - else { - $$ = - idl_global->gen()->create_sequence( - idl_global->gen()->create_expr((unsigned long) 0), - tp); - /* - * Add this AST_Sequence to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_sequence(AST_Sequence::narrow_from_decl($$)); - } - } - } - ; - -seq_head: - IDL_SEQUENCE - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen); - /* - * Push a sequence marker on scopes stack - */ - idl_global->scopes()->push(NULL); - } - '<' - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen); - } - simple_type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen); - $$ = $5; - } - ; - -string_type_spec - : string_head - '<' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); - } - positive_int_expr - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); - } - '>' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); - /* - * Create a node representing a string - */ - if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error($4, AST_Expression::EV_ulong); - $$ = NULL; - } else { - $$ = idl_global->gen()->create_string($4); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl($$)); - } - } - | string_head - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); - /* - * Create a node representing a string - */ - $$ = - idl_global->gen()->create_string( - idl_global->gen()->create_expr((unsigned long) 0)); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl($$)); - } - ; - -string_head: - IDL_STRING - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); - } - ; - -wstring_type_spec - : wstring_head - '<' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); - } - positive_int_expr - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); - } - '>' - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); - /* - * Create a node representing a string - */ - if ($4 == NULL || $4->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error($4, AST_Expression::EV_ulong); - $$ = NULL; - } else { - $$ = idl_global->gen()->create_wstring($4); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl($$)); - } - } - | wstring_head - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); - /* - * Create a node representing a string - */ - $$ = - idl_global->gen()->create_wstring( - idl_global->gen()->create_expr((unsigned long) 0)); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl($$)); - } - ; - -wstring_head: - IDL_WSTRING - { - idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); - } - ; - -array_declarator : - id - { - idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen); - } - at_least_one_array_dim - { - idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted); - /* - * Create a node representing an array - */ - if ($3 != NULL) { - $$ = idl_global->gen()->create_array(new UTL_ScopedName($1, NULL), - $3->length(), $3); - } - } - ; - -at_least_one_array_dim : - array_dim array_dims - { - $$ = new UTL_ExprList($1, $2); - } - ; - -array_dims - : array_dims array_dim - { - if ($1 == NULL) - $$ = new UTL_ExprList($2, NULL); - else { - $1->nconc(new UTL_ExprList($2, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -array_dim : - '[' - { - idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen); - } - positive_int_expr - { - idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen); - } - ']' - { - idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen); - /* - * Array dimensions are expressions which must be coerced to - * positive integers - */ - if ($3 == NULL || $3->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error($3, AST_Expression::EV_ulong); - $$ = NULL; - } else - $$ = $3; - } - ; - -attribute: - opt_readonly - IDL_ATTRIBUTE - { - idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen); - } - param_type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen); - } - at_least_one_simple_declarator - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l = NULL; - AST_Attribute *a = NULL; - FE_Declarator *d = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_AttrCompleted); - /* - * Create nodes representing attributes and add them to the - * enclosing scope - */ - if (s != NULL && $4 != NULL && $6 != NULL) { - l = new UTL_DecllistActiveIterator($6); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type *tp = d->compose($4); - if (tp == NULL) - continue; - a = idl_global->gen()->create_attribute($1, tp, d->name(), p); - /* - * Add one attribute to the enclosing scope - */ - (void) s->fe_add_attribute(a); - } - delete l; - } - } - ; - -opt_readonly - : IDL_READONLY - { - idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen); - $$ = I_TRUE; - } - | /* EMPTY */ - { - $$ = I_FALSE; - } - ; - -exception : - IDL_EXCEPTION - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen); - } - id - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName($3, NULL); - AST_Exception *e = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptIDSeen); - /* - * Create a node representing an exception and add it to - * the enclosing scope - */ - if (s != NULL) { - e = idl_global->gen()->create_exception(n, p); - (void) s->fe_add_exception(e); - } - /* - * Push the exception scope on the scope stack - */ - idl_global->scopes()->push(e); - } - '{' - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen); - } - members - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen); - } - '}' - { - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen); - /* - * Done with this exception. Pop its scope from the scope stack - */ - idl_global->scopes()->pop(); - } - ; - -operation : - opt_op_attribute - op_type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen); - } - IDENTIFIER - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier($4, 1, 0, I_FALSE), NULL); - AST_Operation *o = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_OpIDSeen); - /* - * Create a node representing an operation on an interface - * and add it to its enclosing scope - */ - if (s != NULL && $2 != NULL) { - AST_Type *tp = AST_Type::narrow_from_decl($2); - if (tp == NULL) { - idl_global->err()->not_a_type($2); - } else if (tp->node_type() == AST_Decl::NT_except) { - idl_global->err()->not_a_type($2); - } else { - o = idl_global->gen()->create_operation(tp, $1, n, p); - (void) s->fe_add_operation(o); - } - } - /* - * Push the operation scope onto the scopes stack - */ - idl_global->scopes()->push(o); - } - parameter_list - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted); - } - opt_raises - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted); - } - opt_context - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Operation *o = NULL; - - idl_global->set_parse_state(IDL_GlobalData::PS_OpCompleted); - /* - * Add exceptions and context to the operation - */ - if (s != NULL && s->scope_node_type() == AST_Decl::NT_op) { - o = AST_Operation::narrow_from_scope(s); - - if ($8 != NULL && o != NULL) - (void) o->fe_add_exceptions($8); - if ($10 != NULL) - (void) o->fe_add_context($10); - } - /* - * Done with this operation. Pop its scope from the scopes stack - */ - idl_global->scopes()->pop(); - } - ; - -opt_op_attribute - : IDL_ONEWAY - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); - $$ = AST_Operation::OP_oneway; - } - | IDL_IDEMPOTENT - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); - $$ = AST_Operation::OP_idempotent; - } - | /* EMPTY */ - { - $$ = AST_Operation::OP_noflags; - } - ; - -op_type_spec - : param_type_spec - | IDL_VOID - { - $$ = - idl_global->scopes()->bottom() - ->lookup_primitive_type(AST_Expression::EV_void); - } - ; - -parameter_list - : '(' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); - } - ')' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); - } - | '(' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); - } - at_least_one_parameter - ')' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); - } - ; - -at_least_one_parameter : parameter parameters ; - -parameters - : parameters - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen); - } - parameter - | /* EMPTY */ - ; - -parameter : - direction - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen); - } - param_type_spec - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen); - } - declarator - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Argument *a = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_OpParDeclSeen); - /* - * Create a node representing an argument to an operation - * Add it to the enclosing scope (the operation scope) - */ - if ($3 != NULL && $5 != NULL && s != NULL) { - AST_Type *tp = $5->compose($3); - if (tp != NULL) { - a = idl_global->gen()->create_argument($1, tp, $5->name(), p); - (void) s->fe_add_argument(a); - } - } - } - ; - -param_type_spec - : base_type_spec - { - $$ = idl_global->scopes()->bottom()->lookup_primitive_type($1); - } - | string_type_spec - | scoped_name - { - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - - if (s != NULL) - d = s->lookup_by_name($1, I_TRUE); - if (d == NULL) - idl_global->err()->lookup_error($1); - $$ = d; - } - ; - -direction - : IDL_IN - { - $$ = AST_Argument::dir_IN; - } - | IDL_OUT - { - $$ = AST_Argument::dir_OUT; - } - | IDL_INOUT - { - $$ = AST_Argument::dir_INOUT; - } - ; - -opt_raises - : IDL_RAISES - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen); - } - '(' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen); - } - at_least_one_scoped_name - ')' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen); - $$ = $5; - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -opt_context - : IDL_CONTEXT - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen); - } - '(' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen); - } - at_least_one_string_literal - ')' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen); - $$ = $5; - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -at_least_one_string_literal : - IDL_STRING_LITERAL string_literals - { - $$ = new UTL_StrList($1, $2); - } - ; - -string_literals - : string_literals - ',' - { - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen); - } - IDL_STRING_LITERAL - { - if ($1 == NULL) - $$ = new UTL_StrList($4, NULL); - else { - $1->nconc(new UTL_StrList($4, NULL)); - $$ = $1; - } - } - | /* EMPTY */ - { - $$ = NULL; - } - ; - -%% -/* programs */ - -/* - * ??? - */ -int -yywrap() -{ - return 1; -} - -/* - * Report an error situation discovered in a production - * - * This does not do anything since we report all error situations through - * idl_global->err() operations - */ -void -yyerror(char *) -{ -} diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp deleted file mode 100644 index 55ca14680cc..00000000000 --- a/TAO/TAO_IDL/fe/lex.yy.cpp +++ /dev/null @@ -1,2197 +0,0 @@ -// $Id$ -/* A lexical scanner generated by flex */ - -/* Scanner skeleton version: - * $Header: /home/daffy/u0/vern/flex/flex-2.4.7/RCS/flex.skl,v 1.2 94/08/03 11:13:24 vern Exp $ - */ - -#define FLEX_SCANNER - -#include "ace/OS.h" - - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - - -/* Use prototypes in function declarations. */ -#define TAO_YY_USE_PROTOS - -/* The "const" storage-class-modifier is valid. */ -#define TAO_YY_USE_CONST - -#else /* ! __cplusplus */ - -#ifdef __STDC__ - -#define TAO_YY_USE_PROTOS -#define TAO_YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - - -#ifdef __TURBOC__ -#define TAO_YY_USE_CONST -#endif - - -#ifndef TAO_YY_USE_CONST -#ifndef const -#define const -#endif -#endif - - -#ifdef TAO_YY_USE_PROTOS -#define TAO_YY_PROTO(proto) proto -#else -#define TAO_YY_PROTO(proto) () -#endif - -/* Returned upon end-of-file. */ -#define TAO_YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define TAO_YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN tao_yy_start = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. - */ -#define TAO_YY_START ((tao_yy_start - 1) / 2) - -/* Action number for EOF rule of a given start state. */ -#define TAO_YY_STATE_EOF(state) (TAO_YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". Now included - * only for backward compatibility with previous versions of flex. - */ -#define TAO_YY_NEW_FILE tao_yyrestart( tao_yyin ) - -#define TAO_YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#define TAO_YY_BUF_SIZE 16384 - -typedef struct tao_yy_buffer_state *TAO_YY_BUFFER_STATE; - -extern int tao_yyleng; -extern FILE *tao_yyin, *tao_yyout; - -#ifdef __cplusplus -extern "C" { -#endif - extern int tao_yywrap TAO_YY_PROTO(( void )); -#ifdef __cplusplus - } -#endif - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * tao_yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the tao_yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - -#define tao_yyless(n) \ - do \ - { \ - /* Undo effects of setting up tao_yytext. */ \ - *tao_yy_cp = tao_yy_hold_char; \ - tao_yy_c_buf_p = tao_yy_cp = tao_yy_bp + n - TAO_YY_MORE_ADJ; \ - TAO_YY_DO_BEFORE_ACTION; /* set up tao_yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) tao_yyunput( c, tao_yytext_ptr ) - - -struct tao_yy_buffer_state - { - FILE *tao_yy_input_file; - - char *tao_yy_ch_buf; /* input buffer */ - char *tao_yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - int tao_yy_buf_size; - - /* Number of characters read into tao_yy_ch_buf, not including EOB - * characters. - */ - int tao_yy_n_chars; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int tao_yy_is_interactive; - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int tao_yy_fill_buffer; - - int tao_yy_buffer_status; -#define TAO_YY_BUFFER_NEW 0 -#define TAO_YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as TAO_YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via tao_yyrestart()), so that the user can continue scanning by - * just pointing tao_yyin at a new input file. - */ -#define TAO_YY_BUFFER_EOF_PENDING 2 - }; - -static TAO_YY_BUFFER_STATE tao_yy_current_buffer = 0; - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - */ -#define TAO_YY_CURRENT_BUFFER tao_yy_current_buffer - - -/* tao_yy_hold_char holds the character lost when tao_yytext is formed. */ -static char tao_yy_hold_char; - -static int tao_yy_n_chars; /* number of characters read into tao_yy_ch_buf */ - - -int tao_yyleng; - -/* Points to current character in buffer. */ -static char *tao_yy_c_buf_p = (char *) 0; -static int tao_yy_init = 1; /* whether we need to initialize */ -static int tao_yy_start = 0; /* start state number */ - -/* Flag which is used to allow tao_yywrap()'s to do buffer switches - * instead of setting up a fresh tao_yyin. A bit of a hack ... - */ -static int tao_yy_did_buffer_switch_on_eof; - -static void tao_yyunput TAO_YY_PROTO(( int c, char *buf_ptr )); -void tao_yyrestart TAO_YY_PROTO(( FILE *input_file )); -void tao_yy_switch_to_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE new_buffer )); -void tao_yy_load_buffer_state TAO_YY_PROTO(( void )); -TAO_YY_BUFFER_STATE tao_yy_create_buffer TAO_YY_PROTO(( FILE *file, int size )); -void tao_yy_delete_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b )); -void tao_yy_init_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b, FILE *file )); - -#if 0 -static int tao_yy_start_stack_ptr = 0; -static int tao_yy_start_stack_depth = 0; -static int *tao_yy_start_stack = 0; -static void tao_yy_push_state TAO_YY_PROTO(( int new_state )); -static void tao_yy_pop_state TAO_YY_PROTO(( void )); -static int tao_yy_top_state TAO_YY_PROTO(( void )); -#endif /* 0 */ - -static void *tao_yy_flex_alloc TAO_YY_PROTO(( unsigned int )); -static void *tao_yy_flex_realloc TAO_YY_PROTO(( void *, unsigned int )); -static void tao_yy_flex_free TAO_YY_PROTO(( void * )); - -#define tao_yy_new_buffer tao_yy_create_buffer - -#define INITIAL 0 -typedef unsigned char TAO_YY_CHAR; -typedef int tao_yy_state_type; -FILE *tao_yyin = (FILE *) 0, *tao_yyout = (FILE *) 0; -extern char tao_yytext[]; - - -#ifndef tao_yytext_ptr -static void tao_yy_flex_strncpy TAO_YY_PROTO(( char *, const char *, int )); -#endif - -#ifdef __cplusplus -static int tao_yyinput TAO_YY_PROTO(( void )); -#else -static int input TAO_YY_PROTO(( void )); -#endif - -static tao_yy_state_type tao_yy_get_previous_state TAO_YY_PROTO(( void )); -static tao_yy_state_type tao_yy_try_NUL_trans TAO_YY_PROTO(( tao_yy_state_type current_state )); -static int tao_yy_get_next_buffer TAO_YY_PROTO(( void )); -static void tao_yy_fatal_error TAO_YY_PROTO(( const char msg[] )); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up tao_yytext. - */ -#define TAO_YY_DO_BEFORE_ACTION \ - tao_yytext_ptr = tao_yy_bp; \ - tao_yyleng = tao_yy_cp - tao_yy_bp; \ - tao_yy_hold_char = *tao_yy_cp; \ - *tao_yy_cp = '\0'; \ - if ( tao_yyleng >= TAO_YYLMAX ) \ - TAO_YY_FATAL_ERROR( "token too large, exceeds TAO_YYLMAX" ); \ - tao_yy_flex_strncpy( tao_yytext, tao_yytext_ptr, tao_yyleng + 1 ); \ - tao_yy_c_buf_p = tao_yy_cp; - -#define TAO_YY_END_OF_BUFFER 62 -static const short int tao_yy_accept[284] = - { 0, - 58, 58, 62, 60, 58, 59, 60, 60, 60, 60, - 45, 43, 60, 60, 60, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 60, 58, 0, 46, 0, - 0, 45, 43, 57, 0, 41, 45, 0, 0, 0, - 43, 39, 37, 38, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 34, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 0, 54, 0, 0, - 0, 0, 0, 47, 0, 47, 0, 0, 56, 41, - - 0, 41, 0, 42, 44, 40, 40, 1, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 35, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, - 0, 0, 0, 49, 48, 0, 0, 41, 42, 40, - 31, 40, 40, 18, 25, 40, 40, 40, 40, 12, - 40, 40, 40, 40, 22, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 29, - 40, 40, 0, 0, 0, 0, 0, 48, 0, 32, - 40, 40, 9, 40, 40, 40, 40, 20, 33, 40, - - 40, 40, 28, 40, 40, 40, 40, 23, 40, 40, - 40, 40, 16, 40, 40, 40, 52, 0, 0, 0, - 0, 40, 40, 40, 40, 21, 40, 40, 2, 30, - 36, 3, 40, 40, 13, 11, 17, 40, 40, 40, - 40, 51, 0, 0, 0, 0, 0, 0, 40, 27, - 7, 19, 40, 40, 40, 40, 10, 40, 26, 40, - 0, 55, 0, 0, 0, 40, 40, 40, 4, 15, - 24, 40, 0, 0, 0, 5, 6, 8, 14, 53, - 0, 50, 0 - } ; - -static const int tao_yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 1, 5, 6, 1, 1, 1, 7, 1, - 1, 8, 9, 1, 10, 11, 12, 13, 14, 14, - 14, 14, 14, 14, 14, 15, 15, 16, 1, 17, - 1, 18, 1, 1, 19, 20, 20, 20, 21, 22, - 23, 23, 23, 23, 23, 24, 23, 23, 23, 23, - 23, 25, 26, 27, 28, 23, 23, 29, 23, 23, - 1, 30, 1, 1, 31, 1, 32, 33, 34, 35, - - 36, 37, 38, 39, 40, 23, 23, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 23, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static const int tao_yy_meta[55] = - { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 3, 3, 3, 1, 1, 1, 3, 3, - 3, 3, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 3, 3, 3, 3, 3, 3, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4 - } ; - -static const short int tao_yy_base[294] = - { 0, - 0, 444, 449, 451, 53, 451, 443, 417, 45, 53, - 53, 58, 430, 428, 426, 0, 424, 417, 13, 397, - 31, 40, 34, 399, 396, 394, 393, 404, 47, 56, - 44, 381, 391, 389, 51, 105, 96, 427, 451, 424, - 88, 100, 111, 451, 427, 141, 128, 155, 170, 0, - 160, 451, 451, 451, 0, 405, 400, 373, 377, 381, - 376, 391, 379, 384, 370, 369, 384, 373, 42, 373, - 380, 365, 364, 376, 362, 370, 377, 362, 363, 359, - 365, 359, 64, 363, 363, 352, 184, 451, 111, 189, - 365, 359, 351, 451, 390, 389, 120, 392, 451, 0, - - 196, 451, 144, 199, 0, 368, 372, 0, 345, 350, - 354, 342, 82, 356, 354, 344, 349, 352, 333, 346, - 343, 330, 339, 342, 325, 0, 328, 340, 324, 326, - 88, 323, 335, 326, 329, 333, 335, 319, 360, 359, - 327, 319, 329, 451, 451, 187, 202, 213, 451, 339, - 0, 319, 322, 0, 0, 308, 320, 305, 313, 0, - 308, 303, 302, 303, 0, 308, 297, 298, 314, 309, - 300, 307, 293, 298, 306, 305, 303, 294, 298, 0, - 288, 294, 328, 157, 289, 295, 292, 451, 322, 0, - 295, 295, 0, 273, 284, 288, 274, 0, 0, 285, - - 285, 284, 0, 265, 270, 274, 273, 0, 277, 265, - 274, 276, 0, 268, 279, 266, 451, 205, 259, 228, - 265, 256, 262, 255, 254, 0, 262, 269, 0, 0, - 0, 0, 237, 238, 0, 0, 0, 220, 215, 199, - 201, 451, 231, 235, 245, 251, 248, 201, 182, 0, - 0, 0, 181, 188, 153, 159, 0, 155, 0, 158, - 169, 451, 162, 146, 101, 112, 101, 104, 0, 0, - 0, 88, 130, 120, 114, 0, 0, 0, 0, 451, - 107, 451, 451, 266, 270, 272, 276, 280, 75, 284, - 288, 292, 296 - - } ; - -static const short int tao_yy_def[294] = - { 0, - 283, 1, 283, 283, 283, 283, 284, 285, 283, 283, - 283, 283, 283, 283, 283, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 283, 283, 284, 283, 283, - 287, 283, 283, 283, 288, 283, 283, 283, 283, 289, - 283, 283, 283, 283, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 283, 283, 36, 283, - 283, 283, 283, 283, 283, 283, 283, 288, 283, 46, - - 283, 283, 283, 283, 289, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 290, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 290, 283, 283, 283, 283, 283, 283, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 283, 283, 283, 283, - 283, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 286, 283, 283, 291, 283, 283, 283, 283, 286, 286, - 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, - 291, 283, 292, 283, 283, 286, 286, 286, 286, 286, - 286, 286, 292, 283, 293, 286, 286, 286, 286, 283, - 293, 283, 0, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283 - - } ; - -static const short int tao_yy_nxt[506] = - { 0, - 4, 5, 6, 5, 7, 4, 8, 4, 4, 9, - 4, 10, 11, 12, 12, 13, 14, 15, 16, 16, - 16, 17, 16, 16, 16, 16, 18, 16, 16, 4, - 4, 19, 20, 21, 22, 23, 24, 16, 16, 25, - 26, 27, 28, 29, 16, 16, 30, 31, 32, 33, - 34, 35, 16, 16, 37, 58, 37, 42, 43, 43, - 44, 59, 61, 46, 45, 47, 47, 48, 46, 62, - 51, 51, 51, 49, 63, 64, 66, 105, 49, 78, - 73, 50, 79, 65, 85, 119, 67, 76, 49, 74, - 120, 77, 80, 49, 96, 81, 75, 37, 86, 37, - - 97, 97, 275, 134, 275, 50, 87, 88, 89, 282, - 46, 135, 47, 47, 48, 139, 282, 90, 90, 90, - 49, 46, 280, 51, 51, 51, 145, 174, 50, 156, - 157, 49, 146, 146, 274, 49, 279, 175, 46, 278, - 47, 47, 48, 277, 91, 92, 49, 276, 49, 93, - 263, 283, 50, 100, 100, 100, 104, 104, 104, 217, - 218, 101, 102, 49, 102, 46, 274, 48, 48, 48, - 46, 262, 51, 51, 51, 49, 101, 102, 103, 103, - 49, 102, 104, 104, 104, 87, 88, 89, 272, 271, - 49, 88, 140, 188, 270, 49, 90, 90, 90, 189, - - 189, 90, 90, 90, 147, 147, 269, 242, 148, 148, - 148, 104, 104, 104, 148, 148, 148, 243, 243, 243, - 149, 268, 149, 91, 267, 148, 148, 148, 93, 245, - 266, 246, 265, 242, 102, 149, 102, 262, 260, 149, - 247, 247, 247, 243, 243, 243, 245, 259, 246, 102, - 258, 264, 245, 102, 246, 263, 257, 247, 247, 247, - 247, 247, 247, 247, 247, 247, 38, 38, 38, 38, - 40, 256, 40, 40, 55, 55, 95, 255, 95, 95, - 98, 98, 98, 98, 183, 183, 183, 183, 261, 261, - 261, 261, 273, 273, 273, 273, 281, 281, 281, 281, - - 254, 253, 252, 251, 250, 249, 248, 244, 241, 240, - 239, 238, 237, 236, 235, 234, 233, 232, 231, 230, - 229, 228, 227, 226, 225, 224, 223, 222, 188, 221, - 220, 219, 184, 216, 215, 214, 213, 212, 211, 210, - 209, 208, 207, 206, 205, 204, 203, 202, 201, 200, - 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, - 187, 186, 185, 139, 184, 182, 181, 180, 179, 178, - 177, 176, 173, 172, 171, 170, 169, 168, 167, 166, - 165, 164, 163, 162, 161, 160, 159, 158, 155, 154, - 153, 152, 151, 150, 99, 144, 144, 143, 142, 141, - - 138, 137, 136, 133, 132, 131, 130, 129, 128, 127, - 126, 125, 124, 123, 122, 121, 118, 117, 116, 115, - 114, 113, 112, 111, 110, 109, 108, 107, 106, 99, - 94, 39, 84, 83, 82, 72, 71, 70, 69, 68, - 60, 57, 56, 54, 53, 52, 41, 39, 283, 36, - 3, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283 - } ; - -static const short int tao_yy_chk[506] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 5, 19, 5, 9, 9, 9, - 10, 19, 21, 11, 10, 11, 11, 11, 12, 21, - 12, 12, 12, 11, 21, 22, 23, 289, 12, 31, - 29, 11, 31, 22, 35, 69, 23, 30, 11, 29, - 69, 30, 31, 12, 41, 31, 29, 37, 35, 37, - - 41, 41, 265, 83, 265, 11, 36, 36, 36, 281, - 42, 83, 42, 42, 42, 89, 275, 36, 36, 36, - 42, 43, 274, 43, 43, 43, 97, 131, 42, 113, - 113, 43, 97, 97, 273, 42, 272, 131, 47, 268, - 47, 47, 47, 267, 36, 36, 43, 266, 47, 36, - 264, 89, 42, 46, 46, 46, 103, 103, 103, 184, - 184, 46, 46, 47, 46, 48, 263, 48, 48, 48, - 51, 261, 51, 51, 51, 48, 46, 46, 49, 49, - 51, 46, 49, 49, 49, 87, 87, 87, 260, 258, - 48, 90, 90, 146, 256, 51, 87, 87, 87, 146, - - 146, 90, 90, 90, 101, 101, 255, 218, 101, 101, - 101, 104, 104, 104, 147, 147, 147, 218, 218, 218, - 104, 254, 104, 87, 253, 148, 148, 148, 87, 220, - 249, 220, 248, 243, 148, 104, 148, 244, 241, 104, - 220, 220, 220, 243, 243, 243, 245, 240, 245, 148, - 239, 247, 246, 148, 246, 246, 238, 245, 245, 245, - 247, 247, 247, 246, 246, 246, 284, 284, 284, 284, - 285, 234, 285, 285, 286, 286, 287, 233, 287, 287, - 288, 288, 288, 288, 290, 290, 290, 290, 291, 291, - 291, 291, 292, 292, 292, 292, 293, 293, 293, 293, - - 228, 227, 225, 224, 223, 222, 221, 219, 216, 215, - 214, 212, 211, 210, 209, 207, 206, 205, 204, 202, - 201, 200, 197, 196, 195, 194, 192, 191, 189, 187, - 186, 185, 183, 182, 181, 179, 178, 177, 176, 175, - 174, 173, 172, 171, 170, 169, 168, 167, 166, 164, - 163, 162, 161, 159, 158, 157, 156, 153, 152, 150, - 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, - 133, 132, 130, 129, 128, 127, 125, 124, 123, 122, - 121, 120, 119, 118, 117, 116, 115, 114, 112, 111, - 110, 109, 107, 106, 98, 96, 95, 93, 92, 91, - - 86, 85, 84, 82, 81, 80, 79, 78, 77, 76, - 75, 74, 73, 72, 71, 70, 68, 67, 66, 65, - 64, 63, 62, 61, 60, 59, 58, 57, 56, 45, - 40, 38, 34, 33, 32, 28, 27, 26, 25, 24, - 20, 18, 17, 15, 14, 13, 8, 7, 3, 2, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - - 283, 283, 283, 283, 283 - } ; - -static tao_yy_state_type tao_yy_last_accepting_state; -static char *tao_yy_last_accepting_cpos; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define tao_yymore() tao_yymore_used_but_not_detected -#define TAO_YY_MORE_ADJ 0 -#ifndef TAO_YYLMAX -#define TAO_YYLMAX 8192 -#endif - -char tao_yytext[TAO_YYLMAX]; -char *tao_yytext_ptr; -# line 1 "idl.ll" -# line 3 "idl.ll" -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF -IDL_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. - -IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY -IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF. - -IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR -IDL_ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL -DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * idl.ll - Lexical scanner for IDL 1.1 - */ - -#include "idl.h" -#include "idl_extern.h" -#include "fe_private.h" -#include "y.tab.h" - -static char idl_escape_reader(char *); -static double idl_atof(char *); -static long idl_atoi(char *, long); -static void idl_parse_line_and_file(char *); -static void idl_store_pragma(char *); - -#if 0 /* defined (HPUX) */ -// HPUX has tao_yytext typed to unsigned char *. We make sure here that -// we'll always use char * static char* __tao_yytext = (char*) tao_yytext; -// NOTE: This will not work under flex(1) were tao_yytext is not a fixed -// buffer, but a dynamically allocated one. This function should do -// the trick for us. -inline char *__tao_yytext() -{ - return (char *) tao_yytext; -} -#define ace_tao_yytext __tao_yytext() -#else -#define ace_tao_yytext tao_yytext -#endif /* 0 */ - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifdef TAO_YY_MALLOC_DECL -TAO_YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef TAO_YY_READ_BUF_SIZE -#define TAO_YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ - -#ifndef TAO_ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define TAO_ECHO (void) fwrite( tao_yytext, tao_yyleng, 1, tao_yyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or TAO_YY_NULL, - * is returned in "result". - */ -#ifndef TAO_YY_INPUT -#define TAO_YY_INPUT(buf,result,max_size) \ - if ( tao_yy_current_buffer->tao_yy_is_interactive ) \ - { \ - int c = getc( tao_yyin ); \ - result = c == EOF ? 0 : 1; \ - buf[0] = (char) c; \ - } \ - else if ( ((result = fread( buf, 1, max_size, tao_yyin )) == 0) \ - && ferror( tao_yyin ) ) \ - TAO_YY_FATAL_ERROR( "input in flex scanner failed" ); -#endif - -/* No semi-colon after return; correct usage is to write "tao_yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef tao_yyterminate -#define tao_yyterminate() return TAO_YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef TAO_YY_START_STACK_INCR -#define TAO_YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef TAO_YY_FATAL_ERROR -#define TAO_YY_FATAL_ERROR(msg) tao_yy_fatal_error( msg ) -#endif - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef TAO_YY_DECL -#define TAO_YY_DECL int tao_yylex TAO_YY_PROTO(( void )) -#endif - -/* Code executed at the beginning of each rule, after tao_yytext and tao_yyleng - * have been set up. - */ -#ifndef TAO_YY_USER_ACTION -#define TAO_YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef TAO_YY_BREAK -#define TAO_YY_BREAK break; -#endif - -TAO_YY_DECL - { - register tao_yy_state_type tao_yy_current_state; - register char *tao_yy_cp, *tao_yy_bp; - register int tao_yy_act; - -# line 100 "idl.ll" - - - - if ( tao_yy_init ) - { -#ifdef TAO_YY_USER_INIT - TAO_YY_USER_INIT; -#endif - - if ( ! tao_yy_start ) - tao_yy_start = 1; /* first start state */ - - if ( ! tao_yyin ) - tao_yyin = stdin; - - if ( ! tao_yyout ) - tao_yyout = stdout; - - if ( tao_yy_current_buffer ) - tao_yy_init_buffer( tao_yy_current_buffer, tao_yyin ); - else - tao_yy_current_buffer = - tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); - - tao_yy_load_buffer_state(); - - tao_yy_init = 0; - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - tao_yy_cp = tao_yy_c_buf_p; - - /* Support of tao_yytext. */ - *tao_yy_cp = tao_yy_hold_char; - - /* tao_yy_bp points to the position in tao_yy_ch_buf of the start of - * the current run. - */ - tao_yy_bp = tao_yy_cp; - - tao_yy_current_state = tao_yy_start; - if ( tao_yy_bp[-1] == '\n' ) - ++tao_yy_current_state; -tao_yy_match: - do - { - register TAO_YY_CHAR tao_yy_c = tao_yy_ec[TAO_YY_SC_TO_UI(*tao_yy_cp)]; - if ( tao_yy_accept[tao_yy_current_state] ) - { - tao_yy_last_accepting_state = tao_yy_current_state; - tao_yy_last_accepting_cpos = tao_yy_cp; - } - while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) - { - tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 284 ) - tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; - } - tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; - ++tao_yy_cp; - } - while ( tao_yy_base[tao_yy_current_state] != 451 ); - -tao_yy_find_action: - tao_yy_act = tao_yy_accept[tao_yy_current_state]; - - TAO_YY_DO_BEFORE_ACTION; - - -do_action: /* This label is used only to access EOF actions. */ - - - switch ( tao_yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of TAO_YY_DO_BEFORE_ACTION */ - *tao_yy_cp = tao_yy_hold_char; - tao_yy_cp = tao_yy_last_accepting_cpos; - tao_yy_current_state = tao_yy_last_accepting_state; - goto tao_yy_find_action; - -case 1: -TAO_YY_USER_ACTION -# line 102 "idl.ll" -return IDL_ANY; - TAO_YY_BREAK -case 2: -TAO_YY_USER_ACTION -# line 103 "idl.ll" -return IDL_MODULE; - TAO_YY_BREAK -case 3: -TAO_YY_USER_ACTION -# line 104 "idl.ll" -return IDL_RAISES; - TAO_YY_BREAK -case 4: -TAO_YY_USER_ACTION -# line 105 "idl.ll" -return IDL_READONLY; - TAO_YY_BREAK -case 5: -TAO_YY_USER_ACTION -# line 106 "idl.ll" -return IDL_ATTRIBUTE; - TAO_YY_BREAK -case 6: -TAO_YY_USER_ACTION -# line 107 "idl.ll" -return IDL_EXCEPTION; - TAO_YY_BREAK -case 7: -TAO_YY_USER_ACTION -# line 108 "idl.ll" -return IDL_CONTEXT; - TAO_YY_BREAK -case 8: -TAO_YY_USER_ACTION -# line 109 "idl.ll" -return IDL_INTERFACE; - TAO_YY_BREAK -case 9: -TAO_YY_USER_ACTION -# line 110 "idl.ll" -return IDL_CONST; - TAO_YY_BREAK -case 10: -TAO_YY_USER_ACTION -# line 111 "idl.ll" -return IDL_TYPEDEF; - TAO_YY_BREAK -case 11: -TAO_YY_USER_ACTION -# line 112 "idl.ll" -return IDL_STRUCT; - TAO_YY_BREAK -case 12: -TAO_YY_USER_ACTION -# line 113 "idl.ll" -return IDL_ENUM; - TAO_YY_BREAK -case 13: -TAO_YY_USER_ACTION -# line 114 "idl.ll" -return IDL_STRING; - TAO_YY_BREAK -case 14: -TAO_YY_USER_ACTION -# line 115 "idl.ll" -return IDL_WSTRING; - TAO_YY_BREAK -case 15: -TAO_YY_USER_ACTION -# line 116 "idl.ll" -return IDL_SEQUENCE; - TAO_YY_BREAK -case 16: -TAO_YY_USER_ACTION -# line 117 "idl.ll" -return IDL_UNION; - TAO_YY_BREAK -case 17: -TAO_YY_USER_ACTION -# line 118 "idl.ll" -return IDL_SWITCH; - TAO_YY_BREAK -case 18: -TAO_YY_USER_ACTION -# line 119 "idl.ll" -return IDL_CASE; - TAO_YY_BREAK -case 19: -TAO_YY_USER_ACTION -# line 120 "idl.ll" -return IDL_DEFAULT; - TAO_YY_BREAK -case 20: -TAO_YY_USER_ACTION -# line 121 "idl.ll" -return IDL_FLOAT; - TAO_YY_BREAK -case 21: -TAO_YY_USER_ACTION -# line 122 "idl.ll" -return IDL_DOUBLE; - TAO_YY_BREAK -case 22: -TAO_YY_USER_ACTION -# line 123 "idl.ll" -return IDL_LONG; - TAO_YY_BREAK -case 23: -TAO_YY_USER_ACTION -# line 124 "idl.ll" -return IDL_SHORT; - TAO_YY_BREAK -case 24: -TAO_YY_USER_ACTION -# line 125 "idl.ll" -return IDL_UNSIGNED; - TAO_YY_BREAK -case 25: -TAO_YY_USER_ACTION -# line 126 "idl.ll" -return IDL_CHAR; - TAO_YY_BREAK -case 26: -TAO_YY_USER_ACTION -# line 127 "idl.ll" -return IDL_WCHAR; - TAO_YY_BREAK -case 27: -TAO_YY_USER_ACTION -# line 128 "idl.ll" -return IDL_BOOLEAN; - TAO_YY_BREAK -case 28: -TAO_YY_USER_ACTION -# line 129 "idl.ll" -return IDL_OCTET; - TAO_YY_BREAK -case 29: -TAO_YY_USER_ACTION -# line 130 "idl.ll" -return IDL_VOID; - TAO_YY_BREAK -case 30: -TAO_YY_USER_ACTION -# line 131 "idl.ll" -return IDL_NATIVE; - TAO_YY_BREAK -case 31: -TAO_YY_USER_ACTION -# line 133 "idl.ll" -return IDL_TRUETOK; - TAO_YY_BREAK -case 32: -TAO_YY_USER_ACTION -# line 134 "idl.ll" -return IDL_FALSETOK; - TAO_YY_BREAK -case 33: -TAO_YY_USER_ACTION -# line 136 "idl.ll" -return IDL_INOUT; - TAO_YY_BREAK -case 34: -TAO_YY_USER_ACTION -# line 137 "idl.ll" -return IDL_IN; - TAO_YY_BREAK -case 35: -TAO_YY_USER_ACTION -# line 138 "idl.ll" -return IDL_OUT; - TAO_YY_BREAK -case 36: -TAO_YY_USER_ACTION -# line 139 "idl.ll" -return IDL_ONEWAY; - TAO_YY_BREAK -case 37: -TAO_YY_USER_ACTION -# line 141 "idl.ll" -return IDL_LEFT_SHIFT; - TAO_YY_BREAK -case 38: -TAO_YY_USER_ACTION -# line 142 "idl.ll" -return IDL_RIGHT_SHIFT; - TAO_YY_BREAK -case 39: -TAO_YY_USER_ACTION -# line 143 "idl.ll" -{ - tao_yylval.strval = "::"; - return IDL_SCOPE_DELIMITOR; - } - TAO_YY_BREAK -case 40: -TAO_YY_USER_ACTION -# line 148 "idl.ll" -{ - char *z = (char *) malloc(strlen(ace_tao_yytext) + 1); - strcpy(z, ace_tao_yytext); - tao_yylval.strval = z; - return IDENTIFIER; -} - TAO_YY_BREAK -case 41: -TAO_YY_USER_ACTION -# line 155 "idl.ll" -{ - tao_yylval.dval = idl_atof(ace_tao_yytext); - return IDL_FLOATING_PT_LITERAL; - } - TAO_YY_BREAK -case 42: -TAO_YY_USER_ACTION -# line 159 "idl.ll" -{ - tao_yylval.dval = idl_atof(ace_tao_yytext); - return IDL_FLOATING_PT_LITERAL; - } - TAO_YY_BREAK -case 43: -TAO_YY_USER_ACTION -# line 164 "idl.ll" -{ - tao_yylval.ival = idl_atoi(ace_tao_yytext, 10); - return IDL_INTEGER_LITERAL; - } - TAO_YY_BREAK -case 44: -TAO_YY_USER_ACTION -# line 168 "idl.ll" -{ - tao_yylval.ival = idl_atoi(ace_tao_yytext, 16); - return IDL_INTEGER_LITERAL; - } - TAO_YY_BREAK -case 45: -TAO_YY_USER_ACTION -# line 172 "idl.ll" -{ - tao_yylval.ival = idl_atoi(ace_tao_yytext, 8); - return IDL_INTEGER_LITERAL; - } - TAO_YY_BREAK -case 46: -TAO_YY_USER_ACTION -# line 177 "idl.ll" -{ - /* Skip the quotes */ - char *tmp = ace_tao_yytext; - tmp[strlen(tmp)-1] = '\0'; - tao_yylval.sval = new String(tmp + 1); - return IDL_STRING_LITERAL; - } - TAO_YY_BREAK -case 47: -TAO_YY_USER_ACTION -# line 184 "idl.ll" -{ - tao_yylval.cval = ace_tao_yytext [1]; - return IDL_CHARACTER_LITERAL; - } - TAO_YY_BREAK -case 48: -TAO_YY_USER_ACTION -# line 188 "idl.ll" -{ - // octal character constant - tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1); - return IDL_CHARACTER_LITERAL; - } - TAO_YY_BREAK -case 49: -TAO_YY_USER_ACTION -# line 193 "idl.ll" -{ - tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1); - return IDL_CHARACTER_LITERAL; - } - TAO_YY_BREAK -case 50: -TAO_YY_USER_ACTION -# line 197 "idl.ll" -{/* remember pragma */ - idl_global->set_lineno(idl_global->lineno() + 1); - idl_store_pragma(ace_tao_yytext); - } - TAO_YY_BREAK -case 51: -TAO_YY_USER_ACTION -# line 201 "idl.ll" -{ - idl_parse_line_and_file(ace_tao_yytext); - } - TAO_YY_BREAK -case 52: -TAO_YY_USER_ACTION -# line 204 "idl.ll" -{ - idl_parse_line_and_file(ace_tao_yytext); - } - TAO_YY_BREAK -case 53: -TAO_YY_USER_ACTION -# line 207 "idl.ll" -{ - idl_parse_line_and_file(ace_tao_yytext); - } - TAO_YY_BREAK -case 54: -TAO_YY_USER_ACTION -# line 210 "idl.ll" -{ - idl_parse_line_and_file(ace_tao_yytext); - } - TAO_YY_BREAK -case 55: -TAO_YY_USER_ACTION -# line 213 "idl.ll" -{ - /* ignore cpp ident */ - idl_global->set_lineno(idl_global->lineno() + 1); - } - TAO_YY_BREAK -case 56: -TAO_YY_USER_ACTION -# line 217 "idl.ll" -{ - /* ignore comments */ - idl_global->set_lineno(idl_global->lineno() + 1); - } - TAO_YY_BREAK -case 57: -TAO_YY_USER_ACTION -# line 221 "idl.ll" -{ - for(;;) { - char c = tao_yyinput(); - if (c == '*') { - char next = tao_yyinput(); - if (next == '/') - break; - else - tao_yyunput(c, NULL); - if (c == '\n') - idl_global->set_lineno(idl_global->lineno() + 1); - } - } - } - TAO_YY_BREAK -case 58: -TAO_YY_USER_ACTION -# line 235 "idl.ll" -; - TAO_YY_BREAK -case 59: -TAO_YY_USER_ACTION -# line 236 "idl.ll" -{ - idl_global->set_lineno(idl_global->lineno() + 1); - } - TAO_YY_BREAK -case 60: -TAO_YY_USER_ACTION -# line 239 "idl.ll" -return ace_tao_yytext [0]; - TAO_YY_BREAK -case 61: -TAO_YY_USER_ACTION -# line 241 "idl.ll" -TAO_ECHO; - TAO_YY_BREAK -case TAO_YY_STATE_EOF(INITIAL): - tao_yyterminate(); - - case TAO_YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int tao_yy_amount_of_matched_text = tao_yy_cp - tao_yytext_ptr - 1; - - /* Undo the effects of TAO_YY_DO_BEFORE_ACTION. */ - *tao_yy_cp = tao_yy_hold_char; - - if ( tao_yy_current_buffer->tao_yy_buffer_status == TAO_YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed tao_yyin at a new source and called - * tao_yylex(). If so, then we have to assure - * consistency between tao_yy_current_buffer and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - tao_yy_n_chars = tao_yy_current_buffer->tao_yy_n_chars; - tao_yy_current_buffer->tao_yy_input_file = tao_yyin; - tao_yy_current_buffer->tao_yy_buffer_status = TAO_YY_BUFFER_NORMAL; - } - - /* Note that here we test for tao_yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since tao_yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( tao_yy_c_buf_p <= &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] ) - { /* This was really a NUL. */ - tao_yy_state_type tao_yy_next_state; - - tao_yy_c_buf_p = tao_yytext_ptr + tao_yy_amount_of_matched_text; - - tao_yy_current_state = tao_yy_get_previous_state(); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * tao_yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - tao_yy_next_state = tao_yy_try_NUL_trans( tao_yy_current_state ); - - tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ; - - if ( tao_yy_next_state ) - { - /* Consume the NUL. */ - tao_yy_cp = ++tao_yy_c_buf_p; - tao_yy_current_state = tao_yy_next_state; - goto tao_yy_match; - } - - else - { - tao_yy_cp = tao_yy_c_buf_p; - goto tao_yy_find_action; - } - } - - else switch ( tao_yy_get_next_buffer() ) - { - case EOB_ACT_END_OF_FILE: - { - tao_yy_did_buffer_switch_on_eof = 0; - - if ( tao_yywrap() ) - { - /* Note: because we've taken care in - * tao_yy_get_next_buffer() to have set up - * tao_yytext, we can now set up - * tao_yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * TAO_YY_NULL, it'll still work - another - * TAO_YY_NULL will get returned. - */ - tao_yy_c_buf_p = tao_yytext_ptr + TAO_YY_MORE_ADJ; - - tao_yy_act = TAO_YY_STATE_EOF(TAO_YY_START); - goto do_action; - } - - else - { - if ( ! tao_yy_did_buffer_switch_on_eof ) - TAO_YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - tao_yy_c_buf_p = - tao_yytext_ptr + tao_yy_amount_of_matched_text; - - tao_yy_current_state = tao_yy_get_previous_state(); - - tao_yy_cp = tao_yy_c_buf_p; - tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ; - goto tao_yy_match; - - case EOB_ACT_LAST_MATCH: - tao_yy_c_buf_p = - &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars]; - - tao_yy_current_state = tao_yy_get_previous_state(); - - tao_yy_cp = tao_yy_c_buf_p; - tao_yy_bp = tao_yytext_ptr + TAO_YY_MORE_ADJ; - goto tao_yy_find_action; - } - break; - } - - default: - TAO_YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of tao_yylex */ - - -/* tao_yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ - -static int tao_yy_get_next_buffer() - { - register char *dest = tao_yy_current_buffer->tao_yy_ch_buf; - register char *source = tao_yytext_ptr - 1; /* copy prev. char, too */ - register int number_to_move, i; - int ret_val; - - if ( tao_yy_c_buf_p > &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars + 1] ) - TAO_YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( tao_yy_current_buffer->tao_yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( tao_yy_c_buf_p - tao_yytext_ptr - TAO_YY_MORE_ADJ == 1 ) - { - /* We matched a singled characater, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = tao_yy_c_buf_p - tao_yytext_ptr; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( tao_yy_current_buffer->tao_yy_buffer_status == TAO_YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - tao_yy_n_chars = 0; - - else - { - int num_to_read = - tao_yy_current_buffer->tao_yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ -#ifdef TAO_YY_USES_REJECT - TAO_YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else - - /* just a shorter name for the current buffer */ - TAO_YY_BUFFER_STATE b = tao_yy_current_buffer; - - int tao_yy_c_buf_p_offset = tao_yy_c_buf_p - b->tao_yy_ch_buf; - - b->tao_yy_buf_size *= 2; - b->tao_yy_ch_buf = (char *) - tao_yy_flex_realloc( (void *) b->tao_yy_ch_buf, - b->tao_yy_buf_size ); - - if ( ! b->tao_yy_ch_buf ) - TAO_YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - tao_yy_c_buf_p = &b->tao_yy_ch_buf[tao_yy_c_buf_p_offset]; - - num_to_read = tao_yy_current_buffer->tao_yy_buf_size - - number_to_move - 1; -#endif - } - - if ( num_to_read > TAO_YY_READ_BUF_SIZE ) - num_to_read = TAO_YY_READ_BUF_SIZE; - - /* Read in more data. */ - TAO_YY_INPUT( (&tao_yy_current_buffer->tao_yy_ch_buf[number_to_move]), - tao_yy_n_chars, num_to_read ); - } - - if ( tao_yy_n_chars == 0 ) - { - if ( number_to_move - TAO_YY_MORE_ADJ == 1 ) - { - ret_val = EOB_ACT_END_OF_FILE; - tao_yyrestart( tao_yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - tao_yy_current_buffer->tao_yy_buffer_status = - TAO_YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - tao_yy_n_chars += number_to_move; - tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] = TAO_YY_END_OF_BUFFER_CHAR; - tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars + 1] = TAO_YY_END_OF_BUFFER_CHAR; - - /* tao_yytext begins at the second character in tao_yy_ch_buf; the first - * character is the one which preceded it before reading in the latest - * buffer; it needs to be kept around in case it's a newline, so - * tao_yy_get_previous_state() will have with '^' rules active. - */ - - tao_yytext_ptr = &tao_yy_current_buffer->tao_yy_ch_buf[1]; - - return ret_val; - } - - -/* tao_yy_get_previous_state - get the state just before the EOB char was reached */ - -static tao_yy_state_type tao_yy_get_previous_state() - { - register tao_yy_state_type tao_yy_current_state; - register char *tao_yy_cp; - - register char *tao_yy_bp = tao_yytext_ptr; - - tao_yy_current_state = tao_yy_start; - if ( tao_yy_bp[-1] == '\n' ) - ++tao_yy_current_state; - - for ( tao_yy_cp = tao_yytext_ptr + TAO_YY_MORE_ADJ; tao_yy_cp < tao_yy_c_buf_p; ++tao_yy_cp ) - { - register TAO_YY_CHAR tao_yy_c = (*tao_yy_cp ? tao_yy_ec[TAO_YY_SC_TO_UI(*tao_yy_cp)] : 1); - if ( tao_yy_accept[tao_yy_current_state] ) - { - tao_yy_last_accepting_state = tao_yy_current_state; - tao_yy_last_accepting_cpos = tao_yy_cp; - } - while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) - { - tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 284 ) - tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; - } - tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; - } - - return tao_yy_current_state; - } - - -/* tao_yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = tao_yy_try_NUL_trans( current_state ); - */ - -#ifdef TAO_YY_USE_PROTOS -static tao_yy_state_type tao_yy_try_NUL_trans( tao_yy_state_type tao_yy_current_state ) -#else -static tao_yy_state_type tao_yy_try_NUL_trans( tao_yy_current_state ) -tao_yy_state_type tao_yy_current_state; -#endif - { - register int tao_yy_is_jam; - register char *tao_yy_cp = tao_yy_c_buf_p; - - register TAO_YY_CHAR tao_yy_c = 1; - if ( tao_yy_accept[tao_yy_current_state] ) - { - tao_yy_last_accepting_state = tao_yy_current_state; - tao_yy_last_accepting_cpos = tao_yy_cp; - } - while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state ) - { - tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state]; - if ( tao_yy_current_state >= 284 ) - tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c]; - } - tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c]; - tao_yy_is_jam = (tao_yy_current_state == 283); - - return tao_yy_is_jam ? 0 : tao_yy_current_state; - } - - -#ifdef TAO_YY_USE_PROTOS -static void tao_yyunput( int c, register char *tao_yy_bp ) -#else -static void tao_yyunput( c, tao_yy_bp ) -int c; -register char *tao_yy_bp; -#endif - { - register char *tao_yy_cp = tao_yy_c_buf_p; - - /* undo effects of setting up tao_yytext */ - *tao_yy_cp = tao_yy_hold_char; - - if ( tao_yy_cp < tao_yy_current_buffer->tao_yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = tao_yy_n_chars + 2; - register char *dest = &tao_yy_current_buffer->tao_yy_ch_buf[ - tao_yy_current_buffer->tao_yy_buf_size + 2]; - register char *source = - &tao_yy_current_buffer->tao_yy_ch_buf[number_to_move]; - - while ( source > tao_yy_current_buffer->tao_yy_ch_buf ) - *--dest = *--source; - - tao_yy_cp += dest - source; - tao_yy_bp += dest - source; - tao_yy_n_chars = tao_yy_current_buffer->tao_yy_buf_size; - - if ( tao_yy_cp < tao_yy_current_buffer->tao_yy_ch_buf + 2 ) - TAO_YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - if ( tao_yy_cp > tao_yy_bp && tao_yy_cp[-1] == '\n' ) - tao_yy_cp[-2] = '\n'; - - *--tao_yy_cp = (char) c; - - - /* Note: the formal parameter *must* be called "tao_yy_bp" for this - * macro to now work correctly. - */ - TAO_YY_DO_BEFORE_ACTION; /* set up tao_yytext again */ - } - - -#ifdef __cplusplus -static int tao_yyinput() -#else -static int input() -#endif - { - int c; - - *tao_yy_c_buf_p = tao_yy_hold_char; - - if ( *tao_yy_c_buf_p == TAO_YY_END_OF_BUFFER_CHAR ) - { - /* tao_yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( tao_yy_c_buf_p < &tao_yy_current_buffer->tao_yy_ch_buf[tao_yy_n_chars] ) - /* This was really a NUL. */ - *tao_yy_c_buf_p = '\0'; - - else - { /* need more input */ - tao_yytext_ptr = tao_yy_c_buf_p; - ++tao_yy_c_buf_p; - - switch ( tao_yy_get_next_buffer() ) - { - case EOB_ACT_END_OF_FILE: - { - if ( tao_yywrap() ) - { - tao_yy_c_buf_p = - tao_yytext_ptr + TAO_YY_MORE_ADJ; - return EOF; - } - - TAO_YY_NEW_FILE; -#ifdef __cplusplus - return tao_yyinput(); -#else - return input(); -#endif - } - - case EOB_ACT_CONTINUE_SCAN: - tao_yy_c_buf_p = tao_yytext_ptr + TAO_YY_MORE_ADJ; - break; - - case EOB_ACT_LAST_MATCH: -#ifdef __cplusplus - TAO_YY_FATAL_ERROR( - "unexpected last match in tao_yyinput()" ); -#else - TAO_YY_FATAL_ERROR( - "unexpected last match in input()" ); -#endif - } - } - } - - c = *(unsigned char *) tao_yy_c_buf_p; /* cast for 8-bit char's */ - *tao_yy_c_buf_p = '\0'; /* preserve tao_yytext */ - tao_yy_hold_char = *++tao_yy_c_buf_p; - - return c; - } - - -#ifdef TAO_YY_USE_PROTOS -void tao_yyrestart( FILE *input_file ) -#else -void tao_yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! tao_yy_current_buffer ) - tao_yy_current_buffer = tao_yy_create_buffer( tao_yyin, TAO_YY_BUF_SIZE ); - - tao_yy_init_buffer( tao_yy_current_buffer, input_file ); - tao_yy_load_buffer_state(); - } - - -#ifdef TAO_YY_USE_PROTOS -void tao_yy_switch_to_buffer( TAO_YY_BUFFER_STATE new_buffer ) -#else -void tao_yy_switch_to_buffer( new_buffer ) -TAO_YY_BUFFER_STATE new_buffer; -#endif - { - if ( tao_yy_current_buffer == new_buffer ) - return; - - if ( tao_yy_current_buffer ) - { - /* Flush out information for old buffer. */ - *tao_yy_c_buf_p = tao_yy_hold_char; - tao_yy_current_buffer->tao_yy_buf_pos = tao_yy_c_buf_p; - tao_yy_current_buffer->tao_yy_n_chars = tao_yy_n_chars; - } - - tao_yy_current_buffer = new_buffer; - tao_yy_load_buffer_state(); - - /* We don't actually know whether we did this switch during - * EOF (tao_yywrap()) processing, but the only time this flag - * is looked at is after tao_yywrap() is called, so it's safe - * to go ahead and always set it. - */ - tao_yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef TAO_YY_USE_PROTOS -void tao_yy_load_buffer_state( void ) -#else -void tao_yy_load_buffer_state() -#endif - { - tao_yy_n_chars = tao_yy_current_buffer->tao_yy_n_chars; - tao_yytext_ptr = tao_yy_c_buf_p = tao_yy_current_buffer->tao_yy_buf_pos; - tao_yyin = tao_yy_current_buffer->tao_yy_input_file; - tao_yy_hold_char = *tao_yy_c_buf_p; - } - - -#ifdef TAO_YY_USE_PROTOS -TAO_YY_BUFFER_STATE tao_yy_create_buffer( FILE *file, int size ) -#else -TAO_YY_BUFFER_STATE tao_yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { - TAO_YY_BUFFER_STATE b; - - b = (TAO_YY_BUFFER_STATE) tao_yy_flex_alloc( sizeof( struct tao_yy_buffer_state ) ); - - if ( ! b ) - TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_create_buffer()" ); - - b->tao_yy_buf_size = size; - - /* tao_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->tao_yy_ch_buf = (char *) tao_yy_flex_alloc( b->tao_yy_buf_size + 2 ); - - if ( ! b->tao_yy_ch_buf ) - TAO_YY_FATAL_ERROR( "out of dynamic memory in tao_yy_create_buffer()" ); - - tao_yy_init_buffer( b, file ); - - return b; - } - - -#ifdef TAO_YY_USE_PROTOS -void tao_yy_delete_buffer( TAO_YY_BUFFER_STATE b ) -#else -void tao_yy_delete_buffer( b ) -TAO_YY_BUFFER_STATE b; -#endif - { - if ( b == tao_yy_current_buffer ) - tao_yy_current_buffer = (TAO_YY_BUFFER_STATE) 0; - - tao_yy_flex_free( (void *) b->tao_yy_ch_buf ); - tao_yy_flex_free( (void *) b ); - } - - -#ifdef TAO_YY_USE_PROTOS -void tao_yy_init_buffer( TAO_YY_BUFFER_STATE b, FILE *file ) -#else -void tao_yy_init_buffer( b, file ) -TAO_YY_BUFFER_STATE b; -FILE *file; -#endif - { - b->tao_yy_input_file = file; - - /* We put in the '\n' and start reading from [1] so that an - * initial match-at-newline will be true. - */ - - b->tao_yy_ch_buf[0] = '\n'; - b->tao_yy_n_chars = 1; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->tao_yy_ch_buf[1] = TAO_YY_END_OF_BUFFER_CHAR; - b->tao_yy_ch_buf[2] = TAO_YY_END_OF_BUFFER_CHAR; - - b->tao_yy_buf_pos = &b->tao_yy_ch_buf[1]; - - b->tao_yy_is_interactive = file ? isatty( fileno(file) ) : 0; - - b->tao_yy_fill_buffer = 1; - - b->tao_yy_buffer_status = TAO_YY_BUFFER_NEW; - } - - -#if 0 -#ifdef TAO_YY_USE_PROTOS -static void tao_yy_push_state( int new_state ) -#else -static void tao_yy_push_state( new_state ) -int new_state; -#endif - { - if ( tao_yy_start_stack_ptr >= tao_yy_start_stack_depth ) - { - int new_size; - - tao_yy_start_stack_depth += TAO_YY_START_STACK_INCR; - new_size = tao_yy_start_stack_depth * sizeof( int ); - - if ( ! tao_yy_start_stack ) - tao_yy_start_stack = (int *) tao_yy_flex_alloc( new_size ); - - else - tao_yy_start_stack = (int *) tao_yy_flex_realloc( - (void *) tao_yy_start_stack, new_size ); - - if ( ! tao_yy_start_stack ) - TAO_YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - tao_yy_start_stack[tao_yy_start_stack_ptr++] = TAO_YY_START; - - BEGIN(new_state); - } - - -static void tao_yy_pop_state() - { - if ( --tao_yy_start_stack_ptr < 0 ) - TAO_YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN(tao_yy_start_stack[tao_yy_start_stack_ptr]); - } - - -static int tao_yy_top_state() - { - return tao_yy_start_stack[tao_yy_start_stack_ptr - 1]; - } -#endif /* 0 */ - -#ifdef TAO_YY_USE_PROTOS -static void tao_yy_fatal_error( const char msg[] ) -#else -static void tao_yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( 1 ); - } - - - -/* Redefine tao_yyless() so it works in section 3 code. */ - -#undef tao_yyless -#define tao_yyless(n) \ - do \ - { \ - /* Undo effects of setting up tao_yytext. */ \ - tao_yytext[tao_yyleng] = tao_yy_hold_char; \ - tao_yy_c_buf_p = tao_yytext + n - TAO_YY_MORE_ADJ; \ - tao_yy_hold_char = *tao_yy_c_buf_p; \ - *tao_yy_c_buf_p = '\0'; \ - tao_yyleng = n; \ - } \ - while ( 0 ) - - -/* Internal utility routines. */ - -#ifndef tao_yytext_ptr -#ifdef TAO_YY_USE_PROTOS -static void tao_yy_flex_strncpy( char *s1, const char *s2, int n ) -#else -static void tao_yy_flex_strncpy( s1, s2, n ) -char *s1; -const char *s2; -int n; -#endif - { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; - } -#endif - - -#ifdef TAO_YY_USE_PROTOS -static void *tao_yy_flex_alloc( unsigned int size ) -#else -static void *tao_yy_flex_alloc( size ) -unsigned int size; -#endif - { - return (void *) malloc( size ); - } - -#ifdef TAO_YY_USE_PROTOS -static void *tao_yy_flex_realloc( void *ptr, unsigned int size ) -#else -static void *tao_yy_flex_realloc( ptr, size ) -void *ptr; -unsigned int size; -#endif - { - return (void *) realloc( ptr, size ); - } - -#ifdef TAO_YY_USE_PROTOS -static void tao_yy_flex_free( void *ptr ) -#else -static void tao_yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ptr ); - } -# line 241 "idl.ll" - - /* subroutines */ - -/* - * Strip down a name to the last component, i.e. everything after the last - * '/' character - */ -static char * -stripped_name(UTL_String *fn) -{ - char *n = fn->get_string(); - long l; - - if (n == NULL) - return NULL; - l = strlen(n); - for (n += l; l > 0 && *n != '/'; l--, n--); - if (*n == '/') n++; - return n; -} - -/* - * Parse a #line statement generated by the C preprocessor - */ -static void -idl_parse_line_and_file(char *buf) -{ - char *r = buf; - char *h; - UTL_String *nm; - - /* Skip initial '#' */ - if (*r != '#') - return; - else - r++; - - /* Check to see if we're running under the screwy Microsoft scheme */ - /* of putting #line num instead of #num. */ - - if (ACE_OS::strncmp (r, "line", 4) == 0) - r += 5; - - /* Find line number */ - while (*r == ' ' || *r == '\t') - r++; - h = r; - for (; *r != '\0' && *r != ' ' && *r != '\t'; r++) - continue; - *r++ = 0; - idl_global->set_lineno(idl_atoi(h, 10)); - - /* Find file name, if present */ - for (; *r != '"'; r++) - if (*r == '\n' || *r == '\0') - return; - - h = ++r; - for (; *r != '"'; r++) - continue; - *r = 0; - if (*h == '\0') - idl_global->set_filename(new String("standard input")); - else - { - long i; - long j; - - // Put Microsoft-style pathnames into a canonical form. - for (i = 0, j = 0; h[j] != '\0'; i++, j++) - { - if (h[j] == '\\' && h[j + 1] == '\\') - j++; - - h[i] = h[j]; - } - h[i] = '\0'; - idl_global->set_filename(new String(h)); - } - idl_global->set_in_main_file( - (idl_global->filename()->compare(idl_global->real_filename())) ? - I_TRUE : - I_FALSE - ); - /* - * If it's an import file store the stripped name for the BE to use - */ - if (!(idl_global->in_main_file()) && idl_global->import()) { - nm = new UTL_String(stripped_name(idl_global->filename())); - idl_global->store_include_file_name(nm); - } -} - -/* - * Store a #pragma line into the list of pragmas - */ -static void -idl_store_pragma(char *buf) -{ - char *cp = buf + 1; - while(*cp != 'p') - cp++; - while(*cp != ' ' && *cp != '\t') - cp++; - while(*cp == ' ' || *cp == '\t') - cp++; - char pragma[80]; - char *pp = pragma; - while(*cp != '\n') { - *pp++ = *cp++; - } - *pp = 0; - if (strcmp(pragma, "import") == 0) { - idl_global->set_import(I_TRUE); - return; - } - if (strcmp(pragma, "include") == 0) { - idl_global->set_import(I_FALSE); - return; - } - UTL_StrList *p = idl_global->pragmas(); - if (p == NULL) - idl_global->set_pragmas(new UTL_StrList(new String(buf), NULL)); - else { - p->nconc(new UTL_StrList(new String(buf), NULL)); - idl_global->set_pragmas(p); - } -} - -/* - * idl_atoi - Convert a string of digits into an integer according to base b - */ -static long -idl_atoi(char *s, long b) -{ - long r = 0; - long negative = 0; - - if (*s == '-') { - negative = 1; - s++; - } - if (b == 8 && *s == '0') - s++; - else if (b == 16 && *s == '0' && (*(s + 1) == 'x' || *(s + 1) == 'X')) - s += 2; - - for (; *s; s++) - if (*s <= '9' && *s >= '0') - r = (r * b) + (*s - '0'); - else if (b > 10 && *s <= 'f' && *s >= 'a') - r = (r * b) + (*s - 'a' + 10); - else if (b > 10 && *s <= 'F' && *s >= 'A') - r = (r * b) + (*s - 'A' + 10); - else - break; - - if (negative) - r *= -1; - - return r; -} - -/* - * Convert a string to a float; atof doesn't seem to work, always. - */ -static double -idl_atof(char *s) -{ - char *h = s; - double d = 0.0; - double f = 0.0; - double e, k; - long neg = 0, negexp = 0; - - ACE_UNUSED_ARG (f); - ACE_UNUSED_ARG (h); - - if (*s == '-') { - neg = 1; - s++; - } - while (*s >= '0' && *s <= '9') { - d = (d * 10) + *s - '0'; - s++; - } - if (*s == '.') { - s++; - e = 10; - while (*s >= '0' && *s <= '9') { - d += (*s - '0') / (e * 1.0); - e *= 10; - s++; - } - } - if (*s == 'e' || *s == 'E') { - s++; - if (*s == '-') { - negexp = 1; - s++; - } else if (*s == '+') - s++; - e = 0; - while (*s >= '0' && *s <= '9') { - e = (e * 10) + *s - '0'; - s++; - } - if (e > 0) { - for (k = 1; e > 0; k *= 10, e--); - if (negexp) - d /= k; - else - d *= k; - } - } - - if (neg) d *= -1.0; - - return d; -} - -/* - * Convert (some) escaped characters into their ascii values - */ -static char -idl_escape_reader( - char *str -) -{ - if (str[0] != '\\') { - return str[0]; - } - - switch (str[1]) { - case 'n': - return '\n'; - case 't': - return '\t'; - case 'v': - return '\v'; - case 'b': - return '\b'; - case 'r': - return '\r'; - case 'f': - return '\f'; - case 'a': - return '\a'; - case '\\': - return '\\'; - case '\?': - return '?'; - case '\'': - return '\''; - case '"': - return '"'; - case 'x': - { - int i; - // hex value - for (i = 2; str[i] != '\0' && isxdigit(str[i]); i++) { - continue; - } - char save = str[i]; - str[i] = '\0'; - char out = (char)idl_atoi(&str[2], 16); - str[i] = save; - return out; - } - break; - default: - // check for octal value - if (str[1] >= '0' && str[1] <= '7') { - int i; - for (i = 1; str[i] >= '0' && str[i] <= '7'; i++) { - continue; - } - char save = str[i]; - str[i] = '\0'; - char out = (char)idl_atoi(&str[1], 8); - str[i] = save; - return out; - } else { - return str[1] - 'a'; - } - break; - } -} diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp.diff b/TAO/TAO_IDL/fe/lex.yy.cpp.diff deleted file mode 100644 index 755fc736937..00000000000 --- a/TAO/TAO_IDL/fe/lex.yy.cpp.diff +++ /dev/null @@ -1,34 +0,0 @@ ---- lex.yy.cpp.orig Mon Mar 23 15:30:42 1998 -+++ lex.yy.cpp Mon Mar 23 15:30:42 1998 -@@ -215,12 +215,14 @@ - void tao_yy_delete_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b )); - void tao_yy_init_buffer TAO_YY_PROTO(( TAO_YY_BUFFER_STATE b, FILE *file )); - -+#if 0 - static int tao_yy_start_stack_ptr = 0; - static int tao_yy_start_stack_depth = 0; - static int *tao_yy_start_stack = 0; - static void tao_yy_push_state TAO_YY_PROTO(( int new_state )); - static void tao_yy_pop_state TAO_YY_PROTO(( void )); - static int tao_yy_top_state TAO_YY_PROTO(( void )); -+#endif /* 0 */ - - static void *tao_yy_flex_alloc TAO_YY_PROTO(( unsigned int )); - static void *tao_yy_flex_realloc TAO_YY_PROTO(( void *, unsigned int )); -@@ -1777,6 +1779,7 @@ - } - - -+#if 0 - #ifdef TAO_YY_USE_PROTOS - static void tao_yy_push_state( int new_state ) - #else -@@ -1822,7 +1825,7 @@ - { - return tao_yy_start_stack[tao_yy_start_stack_ptr - 1]; - } -- -+#endif /* 0 */ - - #ifdef TAO_YY_USE_PROTOS - static void tao_yy_fatal_error( const char msg[] ) diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp deleted file mode 100644 index e44b16d50bc..00000000000 --- a/TAO/TAO_IDL/fe/y.tab.cpp +++ /dev/null @@ -1,3300 +0,0 @@ -// $Id$ -# line 74 "idl.tao_yy" -#include "idl.h" -#include "idl_extern.h" -#include "fe_private.h" -#include - -#if (defined(apollo) || defined(hpux)) && defined(__cplusplus) -extern "C" int tao_yywrap(); -#endif // (defined(apollo) || defined(hpux)) && defined(__cplusplus) - -void tao_yyerror (char *); -int tao_yylex (void); -extern "C" int tao_yywrap (void); -extern char tao_yytext[]; -extern int tao_yyleng; -#define TAO_YYDEBUG_LEXER_TEXT (tao_yytext[tao_yyleng] = '\0', tao_yytext) -// Force the pretty debugging code to compile. -#define TAO_YYDEBUG 1 - -# line 97 "idl.tao_yy" -typedef union -#ifdef __cplusplus - TAO_YYSTYPE -#endif - { - AST_Decl *dcval; /* Decl value */ - UTL_StrList *slval; /* String list */ - UTL_NameList *nlval; /* Name list */ - UTL_ExprList *elval; /* Expression list */ - UTL_LabelList *llval; /* Label list */ - UTL_DeclList *dlval; /* Declaration list */ - FE_InterfaceHeader *ihval; /* Interface header */ - AST_Expression *exval; /* Expression value */ - AST_UnionLabel *ulval; /* Union label */ - AST_Field *ffval; /* Field value */ - AST_Expression::ExprType etval; /* Expression type */ - AST_Argument::Direction dival; /* Argument direction */ - AST_Operation::Flags ofval; /* Operation flags */ - FE_Declarator *deval; /* Declarator value */ - idl_bool bval; /* Boolean value */ - long ival; /* Long value */ - double dval; /* Double value */ - float fval; /* Float value */ - char cval; /* Char value */ - - String *sval; /* String value */ - char *strval; /* char * value */ - Identifier *idval; /* Identifier */ - UTL_IdList *idlist; /* Identifier list */ -} TAO_YYSTYPE; -# define IDENTIFIER 257 -# define IDL_CONST 258 -# define IDL_MODULE 259 -# define IDL_INTERFACE 260 -# define IDL_TYPEDEF 261 -# define IDL_LONG 262 -# define IDL_SHORT 263 -# define IDL_UNSIGNED 264 -# define IDL_DOUBLE 265 -# define IDL_FLOAT 266 -# define IDL_CHAR 267 -# define IDL_WCHAR 268 -# define IDL_OCTET 269 -# define IDL_BOOLEAN 270 -# define IDL_ANY 271 -# define IDL_STRUCT 272 -# define IDL_UNION 273 -# define IDL_SWITCH 274 -# define IDL_ENUM 275 -# define IDL_SEQUENCE 276 -# define IDL_STRING 277 -# define IDL_WSTRING 278 -# define IDL_EXCEPTION 279 -# define IDL_CASE 280 -# define IDL_DEFAULT 281 -# define IDL_READONLY 282 -# define IDL_ATTRIBUTE 283 -# define IDL_ONEWAY 284 -# define IDL_IDEMPOTENT 285 -# define IDL_VOID 286 -# define IDL_IN 287 -# define IDL_OUT 288 -# define IDL_INOUT 289 -# define IDL_RAISES 290 -# define IDL_CONTEXT 291 -# define IDL_NATIVE 292 -# define IDL_INTEGER_LITERAL 293 -# define IDL_STRING_LITERAL 294 -# define IDL_CHARACTER_LITERAL 295 -# define IDL_FLOATING_PT_LITERAL 296 -# define IDL_TRUETOK 297 -# define IDL_FALSETOK 298 -# define IDL_SCOPE_DELIMITOR 299 -# define IDL_LEFT_SHIFT 300 -# define IDL_RIGHT_SHIFT 301 - -#ifdef __STDC__ -#include -// #include -#else -#include -#include -#endif - -// #include - -#ifdef __cplusplus - -#ifndef tao_yyerror - void tao_yyerror(const char *); -#endif - -#ifndef tao_yylex -#ifdef __EXTERN_C__ - extern "C" { int tao_yylex(void); } -#else - int tao_yylex(void); -#endif -#endif - int tao_yyparse(void); - -#endif -#define tao_yyclearin tao_yychar = -1 -#define tao_yyerrok tao_yyerrflag = 0 -extern int tao_yychar; -extern int tao_yyerrflag; -TAO_YYSTYPE tao_yylval; -TAO_YYSTYPE tao_yyval; -typedef int tao_yytabelem; -#ifndef TAO_YYMAXDEPTH -#define TAO_YYMAXDEPTH 150 -#endif -#if TAO_YYMAXDEPTH > 0 -int tao_yy_tao_yys[TAO_YYMAXDEPTH], *tao_yys = tao_yy_tao_yys; -TAO_YYSTYPE tao_yy_tao_yyv[TAO_YYMAXDEPTH], *tao_yyv = tao_yy_tao_yyv; -#else /* user does initial allocation */ -int *tao_yys; -TAO_YYSTYPE *tao_yyv; -#endif -static int tao_yymaxdepth = TAO_YYMAXDEPTH; -# define TAO_YYERRCODE 256 - -# line 2267 "idl.tao_yy" - -/* programs */ - -/* - * ??? - */ -int -tao_yywrap() -{ - return 1; -} - -/* - * Report an error situation discovered in a production - * - * This does not do anything since we report all error situations through - * idl_global->err() operations - */ -void -tao_yyerror(char *) -{ -} -tao_yytabelem tao_yyexca[] ={ --1, 0, - 0, 3, - -2, 0, --1, 1, - 0, -1, - -2, 0, --1, 3, - 0, 3, - 125, 3, - -2, 0, --1, 24, - 123, 32, - -2, 57, --1, 134, - 91, 229, - -2, 138, --1, 149, - 257, 254, - 262, 254, - 263, 254, - 264, 254, - 265, 254, - 266, 254, - 267, 254, - 268, 254, - 269, 254, - 270, 254, - 271, 254, - 277, 254, - 283, 241, - 286, 254, - 299, 254, - 125, 25, - -2, 0, --1, 181, - 125, 3, - -2, 0, --1, 222, - 125, 245, - -2, 0, --1, 269, - 125, 161, - -2, 0, --1, 319, - 41, 257, - -2, 259, --1, 357, - 125, 184, - -2, 0, - }; -# define TAO_YYNPROD 286 -# define TAO_YYLAST 528 -tao_yytabelem tao_yyact[]={ - - 72, 131, 347, 331, 344, 57, 167, 155, 128, 241, - 70, 230, 132, 207, 208, 35, 226, 110, 393, 388, - 333, 334, 335, 352, 328, 239, 147, 34, 349, 348, - 130, 112, 118, 119, 113, 112, 141, 36, 36, 101, - 59, 103, 104, 105, 100, 227, 36, 108, 98, 169, - 54, 78, 87, 88, 76, 77, 79, 80, 82, 81, - 83, 20, 21, 36, 22, 89, 90, 91, 78, 87, - 88, 76, 77, 79, 80, 82, 81, 83, 20, 21, - 73, 22, 89, 90, 91, 231, 305, 36, 73, 102, - 201, 346, 78, 87, 88, 76, 77, 79, 80, 82, - 81, 83, 162, 222, 160, 73, 89, 90, 91, 161, - 134, 154, 137, 36, 129, 349, 348, 159, 301, 87, - 88, 67, 143, 79, 80, 82, 81, 158, 2, 73, - 157, 22, 26, 36, 265, 6, 5, 153, 78, 87, - 88, 76, 77, 79, 80, 82, 81, 83, 55, 169, - 66, 367, 164, 90, 165, 73, 302, 291, 290, 95, - 36, 289, 242, 232, 204, 78, 87, 88, 76, 77, - 79, 80, 82, 81, 83, 73, 65, 217, 62, 13, - 90, 63, 13, 325, 4, 59, 36, 148, 96, 59, - 163, 78, 87, 88, 76, 77, 79, 80, 82, 81, - 243, 245, 73, 146, 145, 244, 90, 91, 192, 144, - 15, 106, 205, 10, 94, 312, 202, 263, 262, 93, - 250, 114, 221, 142, 20, 21, 117, 22, 73, 59, - 116, 16, 384, 371, 195, 166, 196, 197, 9, 115, - 15, 19, 25, 10, 14, 313, 61, 12, 134, 284, - 12, 176, 177, 283, 20, 21, 293, 22, 280, 60, - 11, 16, 279, 11, 278, 277, 36, 276, 275, 52, - 51, 134, 288, 50, 14, 49, 59, 48, 47, 300, - 386, 373, 45, 391, 213, 189, 188, 243, 245, 211, - 354, 304, 244, 209, 212, 210, 326, 303, 199, 198, - 389, 292, 170, 171, 172, 173, 174, 175, 73, 383, - 223, 35, 254, 255, 258, 259, 260, 225, 340, 256, - 257, 315, 329, 317, 253, 314, 261, 220, 13, 269, - 375, 353, 319, 252, 187, 251, 228, 206, 35, 285, - 64, 71, 392, 382, 363, 364, 339, 366, 243, 245, - 350, 342, 355, 244, 365, 214, 215, 216, 341, 330, - 13, 286, 368, 372, 324, 59, 36, 134, 378, 377, - 374, 129, 323, 376, 338, 370, 322, 318, 97, 99, - 311, 134, 385, 282, 266, 180, 122, 38, 310, 281, - 306, 249, 152, 219, 297, 140, 12, 86, 218, 139, - 85, 178, 170, 171, 172, 173, 174, 175, 73, 11, - 120, 203, 138, 309, 274, 273, 229, 184, 126, 42, - 380, 381, 362, 298, 361, 359, 379, 358, 12, 357, - 356, 343, 336, 320, 308, 272, 183, 125, 41, 271, - 307, 11, 270, 268, 224, 182, 124, 40, 337, 296, - 247, 299, 109, 53, 295, 33, 264, 179, 121, 37, - 136, 111, 246, 238, 237, 191, 236, 190, 235, 234, - 233, 186, 107, 46, 185, 149, 127, 43, 18, 17, - 267, 181, 123, 39, 32, 31, 8, 30, 7, 29, - 28, 27, 3, 1, 24, 193, 133, 194, 332, 75, - 74, 68, 92, 369, 168, 156, 287, 23, 321, 316, - 151, 360, 345, 248, 200, 327, 44, 150, 390, 387, - 351, 84, 240, 135, 294, 69, 58, 56 }; -tao_yytabelem tao_yypact[]={ - - -18,-10000000,-10000000, -18,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, 224,-10000000,-10000000, 219, 218, 216, - 214, 211, 210, -194,-10000000,-10000000,-10000000, -71, -220, -168, - -220, -220, -220, 88,-10000000,-10000000, -220,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -282, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -231,-10000000, --10000000,-10000000,-10000000,-10000000, 177, 170, 166,-10000000, -230,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -219,-10000000, -220, --10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -226,-10000000, - 163, -220, 86, 81, 80, -248, 64,-10000000,-10000000, -282, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -220,-10000000, 109, 109, - 109,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -48, - 255, 254, 125,-10000000,-10000000,-10000000, 40, 118, 299, -287, - 250, 247,-10000000,-10000000, 9, 9, 9, -282,-10000000, 109, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -170, 161, --10000000, -18, -211, 296, -172, 38,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000, -258, -124,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000, 158, 109, 109, 109, 109, 109, 109, - 109, 109, 109, 109,-10000000,-10000000,-10000000, 285, 156, 155, --10000000,-10000000, -211,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000, 209, 208, 206, 205, 203, 199,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000, -282, -219, -220, 125, 109, --10000000, 118, 299, -287, 250, 250, 247, 247,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, 109,-10000000, 36, 33, 32, -211, - -220, 197, -144, 31, 253,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000, -97, -171, -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - -282, -227,-10000000,-10000000,-10000000,-10000000, 122, 186, 284, -172, - -220, 292,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - 60, 252, -266, 281, -267,-10000000,-10000000,-10000000,-10000000,-10000000, - 277,-10000000,-10000000,-10000000,-10000000,-10000000, -165, -220, -268, 291, --10000000, 246, -97,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 26, -165, -194, 174, - -252, 223, 109, 290, -219, -267, -220,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 268,-10000000,-10000000, 173, - -220, 222, -275,-10000000,-10000000,-10000000,-10000000, 259,-10000000,-10000000, - 239,-10000000, -276,-10000000 }; -tao_yytabelem tao_yypgo[]={ - - 0, 16, 148, 527, 526, 525, 10, 259, 178, 524, - 246, 523, 522, 521, 341, 9, 6, 520, 519, 518, - 8, 517, 516, 515, 514, 513, 512, 511, 30, 510, - 509, 508, 507, 506, 7, 505, 130, 127, 117, 104, - 109, 102, 190, 504, 111, 90, 2, 503, 502, 181, - 176, 150, 340, 501, 500, 499, 5, 121, 498, 497, - 1, 12, 496, 495, 494, 0, 184, 493, 128, 492, - 491, 136, 490, 135, 489, 488, 487, 486, 485, 484, - 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, - 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, - 463, 462, 461, 460, 459, 458, 457, 456, 455, 453, - 452, 450, 448, 447, 446, 445, 444, 443, 134, 103, - 442, 440, 439, 438, 437, 436, 435, 434, 433, 432, - 431, 430, 4, 429, 427, 426, 425, 424, 422, 421, - 420, 419, 418, 417, 416, 415, 11, 414, 413, 412, - 411, 410, 401, 400, 399, 398, 397, 395, 393, 392, - 391, 390, 389, 388, 387, 386, 385, 384, 383, 380, - 377, 376, 374, 372, 364, 359, 3, 358, 354, 351, - 347, 346, 345, 344, 343, 342 }; -tao_yytabelem tao_yyr1[]={ - - 0, 67, 68, 68, 70, 69, 72, 69, 74, 69, - 76, 69, 78, 69, 79, 69, 80, 81, 82, 83, - 77, 75, 75, 86, 87, 89, 84, 90, 64, 32, - 91, 22, 22, 88, 88, 93, 92, 94, 92, 95, - 92, 97, 92, 99, 92, 100, 92, 20, 101, 21, - 21, 16, 102, 16, 103, 16, 65, 85, 104, 105, - 106, 107, 71, 48, 48, 48, 48, 48, 48, 48, - 48, 33, 34, 35, 35, 36, 36, 37, 37, 38, - 38, 38, 39, 39, 39, 40, 40, 40, 40, 41, - 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, - 43, 43, 44, 108, 66, 66, 66, 66, 66, 110, - 109, 1, 1, 2, 2, 2, 56, 56, 56, 56, - 56, 56, 4, 4, 4, 3, 3, 3, 28, 111, - 29, 29, 60, 60, 30, 112, 31, 31, 61, 62, - 49, 49, 54, 54, 54, 55, 55, 55, 52, 52, - 52, 50, 50, 57, 51, 53, 113, 114, 115, 117, - 7, 116, 119, 119, 120, 121, 118, 122, 118, 123, - 124, 125, 126, 127, 128, 129, 131, 10, 9, 9, - 9, 9, 9, 9, 130, 133, 133, 134, 135, 132, - 136, 132, 26, 27, 27, 137, 46, 138, 139, 46, - 140, 47, 141, 142, 143, 145, 8, 144, 148, 147, - 147, 146, 149, 150, 5, 5, 151, 152, 13, 154, - 155, 6, 6, 153, 157, 158, 14, 14, 156, 159, - 11, 24, 25, 25, 160, 161, 45, 162, 163, 96, - 63, 63, 164, 165, 166, 167, 73, 168, 169, 171, - 172, 98, 59, 59, 59, 12, 12, 173, 170, 174, - 170, 175, 178, 177, 177, 179, 180, 176, 15, 15, - 15, 58, 58, 58, 181, 182, 23, 23, 183, 184, - 17, 17, 18, 185, 19, 19 }; -tao_yytabelem tao_yyr2[]={ - - 0, 2, 4, 0, 1, 7, 1, 7, 1, 7, - 1, 7, 1, 7, 1, 7, 1, 1, 1, 1, - 19, 2, 2, 1, 1, 1, 15, 1, 7, 5, - 1, 7, 1, 4, 0, 1, 7, 1, 7, 1, - 7, 1, 7, 1, 7, 1, 7, 5, 1, 9, - 1, 3, 1, 7, 1, 9, 3, 3, 1, 1, - 1, 1, 19, 2, 2, 2, 2, 2, 3, 3, - 3, 2, 2, 2, 7, 2, 7, 2, 7, 2, - 7, 7, 2, 7, 7, 2, 7, 7, 7, 2, - 5, 5, 5, 3, 2, 7, 3, 3, 3, 3, - 3, 3, 3, 1, 7, 3, 3, 3, 5, 1, - 7, 2, 2, 3, 2, 3, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, - 9, 1, 2, 2, 5, 1, 9, 1, 3, 3, - 2, 2, 3, 5, 3, 5, 7, 5, 3, 3, - 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, - 19, 4, 4, 0, 1, 1, 11, 1, 7, 1, - 1, 1, 1, 1, 1, 1, 1, 35, 3, 3, - 3, 3, 2, 3, 4, 4, 0, 1, 1, 11, - 1, 7, 5, 5, 1, 1, 7, 1, 1, 11, - 1, 7, 1, 1, 1, 1, 19, 4, 1, 8, - 0, 3, 1, 1, 13, 5, 1, 1, 11, 1, - 1, 13, 3, 3, 1, 1, 13, 3, 3, 1, - 7, 5, 5, 1, 1, 1, 11, 1, 1, 13, - 3, 1, 1, 1, 1, 1, 19, 1, 1, 1, - 1, 21, 3, 3, 1, 2, 3, 1, 7, 1, - 9, 4, 1, 8, 0, 1, 1, 11, 3, 2, - 3, 3, 3, 3, 1, 1, 13, 1, 1, 1, - 13, 1, 5, 1, 9, 1 }; -tao_yytabelem tao_yychk[]={ - --10000000, -67, -68, -69, -66, -71, -73, -75, -77, 256, - 261, -7, -10, -8, 292, 258, 279, -84, -85, 259, - 272, 273, 275, -32, -64, 260, -68, -70, -72, -74, - -76, -78, -79, -108, -61, -65, 257, -104, -164, -80, - -113, -123, -141, -86, -22, 58, -90, 59, 59, 59, - 59, 59, 59, -109, -1, -2, -3, -56, -4, -16, - -7, -10, -8, -49, -52, -50, -51, -57, -53, -5, - -6, -14, -65, 299, -54, -55, 265, 266, 262, 267, - 268, 270, 269, 271, -13, -153, -156, 263, 264, 276, - 277, 278, -48, -49, -50, -57, -51, -52, -6, -14, - -16, -65, 257, -65, -65, -65, 123, -91, -65, -110, - 299, -102, 262, 265, 44, 62, 60, 60, 262, 263, - -151, -105, -165, -81, -114, -124, -142, -87, -20, -16, - -28, -60, -61, -62, -65, -11, -103, -65, -149, -154, - -157, 262, 60, -65, 123, 123, 123, 274, 123, -88, - -21, -29, -159, -65, -44, -34, -35, -36, -37, -38, - -39, -40, -41, -42, 43, 45, 126, -16, -43, 40, - 293, 294, 295, 296, 297, 298, -44, -44, -152, -106, - -166, -82, -115, -125, -143, -89, -92, -66, -71, -73, - -96, -98, 256, -63, -59, 282, 284, 285, 44, 44, - -24, -45, 91, -150, 124, 94, 38, 300, 301, 43, - 45, 42, 47, 37, -42, -42, -42, -34, -155, -158, - -2, 61, -119, -68, -116, -118, -1, 256, 40, -144, - -146, 257, 125, -93, -94, -95, -97, -99, -100, 283, - -12, -15, 286, -56, -6, -16, -101, -111, -25, -160, - 62, -36, -37, -38, -39, -39, -40, -40, -41, -41, - -41, 41, 62, 62, -107, -118, -167, -83, -117, -119, - -120, -122, -126, -145, -147, 59, 59, 59, 59, 59, - 59, -162, -168, -16, -60, -45, -44, -33, -34, 125, - 125, 125, -28, 59, -9, -49, -50, -57, -51, -8, - -16, 262, 125, 44, -15, 257, -161, -121, -127, -148, - -163, -169, 93, 59, 41, -146, -30, -61, -170, 40, - -128, -31, -171, -173, -174, 123, 44, -23, 290, 41, - -175, -176, -58, 287, 288, 289, -129, -112, -172, -181, - 41, -177, -179, -130, -132, -26, 256, -46, 281, 280, - -61, -17, 291, 40, 44, -15, -131, -133, -134, -136, - -27, -137, -138, -183, -182, -178, -180, 125, -132, -47, - -1, 59, -46, 58, -34, 40, -20, -176, -60, -135, - -140, -139, -184, 41, 59, -60, 58, -18, 294, 41, - -19, 44, -185, 294 }; -tao_yytabelem tao_yydef[]={ - - -2, -2, 1, -2, 4, 6, 8, 10, 12, 14, - 103, 105, 106, 107, 0, 58, 242, 21, 22, 16, - 156, 169, 202, 23, -2, 27, 2, 0, 0, 0, - 0, 0, 0, 0, 108, 138, 56, 0, 0, 0, - 0, 0, 0, 0, 29, 30, 0, 5, 7, 9, - 11, 13, 15, 104, 109, 111, 112, 113, 114, 115, - 125, 126, 127, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 51, 52, 140, 141, 148, 149, 142, 151, - 152, 154, 153, 155, 0, 222, 227, 144, 0, 216, - 223, 228, 59, 63, 64, 65, 66, 67, 68, 69, - 70, 243, 17, 157, 170, 203, 24, 0, 28, 0, - 54, 0, 143, 150, 212, 215, 219, 224, 145, 147, - 0, 0, 0, 0, 0, 0, 0, 34, 31, 50, - 110, 131, 132, 133, -2, 139, 0, 53, 0, 0, - 0, 146, 217, 60, 244, 18, 158, 171, 204, -2, - 47, 128, 0, 55, 213, 102, 72, 73, 75, 77, - 79, 82, 85, 89, 0, 0, 0, 93, 94, 0, - 96, 97, 98, 99, 100, 101, 220, 225, 0, 0, - 163, -2, 0, 0, 0, 0, 33, 35, 37, 39, - 41, 43, 45, 0, 0, 240, 252, 253, 48, 129, - 230, 233, 234, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 90, 91, 92, 0, 0, 0, - 218, 61, -2, 19, 159, 163, 164, 167, 172, 205, - 210, 211, 26, 0, 0, 0, 0, 0, 0, 237, - 247, 255, 256, 268, 269, 270, 0, 0, 231, 0, - 214, 74, 76, 78, 80, 81, 83, 84, 86, 87, - 88, 95, 221, 226, 0, 162, 0, 0, 0, -2, - 0, 0, 0, 0, 207, 36, 38, 40, 42, 44, - 46, 0, 0, 49, 130, 232, 235, 62, 71, 246, - 20, 160, 165, 168, 173, 178, 179, 180, 181, 182, - 183, 142, 206, 208, 238, 248, 0, 0, 0, 0, - 0, 0, 236, 166, 174, 209, 239, 137, 249, -2, - 0, 134, 277, 0, 0, 175, 135, 250, 274, 258, - 0, 264, 265, 271, 272, 273, 0, 0, 281, 0, - 260, 261, 0, 176, 186, 187, 190, 194, 195, 197, - 136, 251, 278, 275, 262, 266, 0, -2, 0, 0, - 192, 0, 0, 0, 0, 0, 0, 177, 185, 188, - 200, 191, 193, 196, 198, 279, 0, 263, 267, 0, - 0, 0, 0, 276, 189, 201, 199, 0, 285, 280, - 282, 283, 0, 284 }; -typedef struct -#ifdef __cplusplus - tao_yytoktype -#endif -{ char *t_name; int t_val; } tao_yytoktype; -#ifndef TAO_YYDEBUG -# define TAO_YYDEBUG 1 /* allow debugging */ -#endif - -#if TAO_YYDEBUG - -tao_yytoktype tao_yytoks[] = -{ - {"IDENTIFIER", 257}, - {"IDL_CONST", 258}, - {"IDL_MODULE", 259}, - {"IDL_INTERFACE", 260}, - {"IDL_TYPEDEF", 261}, - {"IDL_LONG", 262}, - {"IDL_SHORT", 263}, - {"IDL_UNSIGNED", 264}, - {"IDL_DOUBLE", 265}, - {"IDL_FLOAT", 266}, - {"IDL_CHAR", 267}, - {"IDL_WCHAR", 268}, - {"IDL_OCTET", 269}, - {"IDL_BOOLEAN", 270}, - {"IDL_ANY", 271}, - {"IDL_STRUCT", 272}, - {"IDL_UNION", 273}, - {"IDL_SWITCH", 274}, - {"IDL_ENUM", 275}, - {"IDL_SEQUENCE", 276}, - {"IDL_STRING", 277}, - {"IDL_WSTRING", 278}, - {"IDL_EXCEPTION", 279}, - {"IDL_CASE", 280}, - {"IDL_DEFAULT", 281}, - {"IDL_READONLY", 282}, - {"IDL_ATTRIBUTE", 283}, - {"IDL_ONEWAY", 284}, - {"IDL_IDEMPOTENT", 285}, - {"IDL_VOID", 286}, - {"IDL_IN", 287}, - {"IDL_OUT", 288}, - {"IDL_INOUT", 289}, - {"IDL_RAISES", 290}, - {"IDL_CONTEXT", 291}, - {"IDL_NATIVE", 292}, - {"IDL_INTEGER_LITERAL", 293}, - {"IDL_STRING_LITERAL", 294}, - {"IDL_CHARACTER_LITERAL", 295}, - {"IDL_FLOATING_PT_LITERAL", 296}, - {"IDL_TRUETOK", 297}, - {"IDL_FALSETOK", 298}, - {"IDL_SCOPE_DELIMITOR", 299}, - {"IDL_LEFT_SHIFT", 300}, - {"IDL_RIGHT_SHIFT", 301}, - {"-unknown-", -1} /* ends search */ -}; - -char * tao_yyreds[] = -{ - "-no such reduction-", - "start : definitions", - "definitions : definition definitions", - "definitions : /* empty */", - "definition : type_dcl", - "definition : type_dcl ';'", - "definition : const_dcl", - "definition : const_dcl ';'", - "definition : exception", - "definition : exception ';'", - "definition : interface_def", - "definition : interface_def ';'", - "definition : module", - "definition : module ';'", - "definition : error", - "definition : error ';'", - "module : IDL_MODULE", - "module : IDL_MODULE IDENTIFIER", - "module : IDL_MODULE IDENTIFIER '{'", - "module : IDL_MODULE IDENTIFIER '{' definitions", - "module : IDL_MODULE IDENTIFIER '{' definitions '}'", - "interface_def : interface", - "interface_def : forward", - "interface : interface_header", - "interface : interface_header '{'", - "interface : interface_header '{' exports", - "interface : interface_header '{' exports '}'", - "interface_decl : IDL_INTERFACE", - "interface_decl : IDL_INTERFACE id", - "interface_header : interface_decl inheritance_spec", - "inheritance_spec : ':'", - "inheritance_spec : ':' at_least_one_scoped_name", - "inheritance_spec : /* empty */", - "exports : exports export", - "exports : /* empty */", - "export : type_dcl", - "export : type_dcl ';'", - "export : const_dcl", - "export : const_dcl ';'", - "export : exception", - "export : exception ';'", - "export : attribute", - "export : attribute ';'", - "export : operation", - "export : operation ';'", - "export : error", - "export : error ';'", - "at_least_one_scoped_name : scoped_name scoped_names", - "scoped_names : scoped_names ','", - "scoped_names : scoped_names ',' scoped_name", - "scoped_names : /* empty */", - "scoped_name : id", - "scoped_name : IDL_SCOPE_DELIMITOR", - "scoped_name : IDL_SCOPE_DELIMITOR id", - "scoped_name : scoped_name IDL_SCOPE_DELIMITOR", - "scoped_name : scoped_name IDL_SCOPE_DELIMITOR id", - "id : IDENTIFIER", - "forward : interface_decl", - "const_dcl : IDL_CONST", - "const_dcl : IDL_CONST const_type", - "const_dcl : IDL_CONST const_type id", - "const_dcl : IDL_CONST const_type id '='", - "const_dcl : IDL_CONST const_type id '=' expression", - "const_type : integer_type", - "const_type : char_type", - "const_type : octet_type", - "const_type : boolean_type", - "const_type : floating_pt_type", - "const_type : string_type_spec", - "const_type : wstring_type_spec", - "const_type : scoped_name", - "expression : const_expr", - "const_expr : or_expr", - "or_expr : xor_expr", - "or_expr : or_expr '|' xor_expr", - "xor_expr : and_expr", - "xor_expr : xor_expr '^' and_expr", - "and_expr : shift_expr", - "and_expr : and_expr '&' shift_expr", - "shift_expr : add_expr", - "shift_expr : shift_expr IDL_LEFT_SHIFT add_expr", - "shift_expr : shift_expr IDL_RIGHT_SHIFT add_expr", - "add_expr : mult_expr", - "add_expr : add_expr '+' mult_expr", - "add_expr : add_expr '-' mult_expr", - "mult_expr : unary_expr", - "mult_expr : mult_expr '*' unary_expr", - "mult_expr : mult_expr '/' unary_expr", - "mult_expr : mult_expr '%' unary_expr", - "unary_expr : primary_expr", - "unary_expr : '+' primary_expr", - "unary_expr : '-' primary_expr", - "unary_expr : '~' primary_expr", - "primary_expr : scoped_name", - "primary_expr : literal", - "primary_expr : '(' const_expr ')'", - "literal : IDL_INTEGER_LITERAL", - "literal : IDL_STRING_LITERAL", - "literal : IDL_CHARACTER_LITERAL", - "literal : IDL_FLOATING_PT_LITERAL", - "literal : IDL_TRUETOK", - "literal : IDL_FALSETOK", - "positive_int_expr : const_expr", - "type_dcl : IDL_TYPEDEF", - "type_dcl : IDL_TYPEDEF type_declarator", - "type_dcl : struct_type", - "type_dcl : union_type", - "type_dcl : enum_type", - "type_dcl : IDL_NATIVE simple_declarator", - "type_declarator : type_spec", - "type_declarator : type_spec at_least_one_declarator", - "type_spec : simple_type_spec", - "type_spec : constructed_type_spec", - "simple_type_spec : base_type_spec", - "simple_type_spec : template_type_spec", - "simple_type_spec : scoped_name", - "base_type_spec : integer_type", - "base_type_spec : floating_pt_type", - "base_type_spec : char_type", - "base_type_spec : boolean_type", - "base_type_spec : octet_type", - "base_type_spec : any_type", - "template_type_spec : sequence_type_spec", - "template_type_spec : string_type_spec", - "template_type_spec : wstring_type_spec", - "constructed_type_spec : struct_type", - "constructed_type_spec : union_type", - "constructed_type_spec : enum_type", - "at_least_one_declarator : declarator declarators", - "declarators : declarators ','", - "declarators : declarators ',' declarator", - "declarators : /* empty */", - "declarator : simple_declarator", - "declarator : complex_declarator", - "at_least_one_simple_declarator : simple_declarator simple_declarators", - "simple_declarators : simple_declarators ','", - "simple_declarators : simple_declarators ',' simple_declarator", - "simple_declarators : /* empty */", - "simple_declarator : id", - "complex_declarator : array_declarator", - "integer_type : signed_int", - "integer_type : unsigned_int", - "signed_int : IDL_LONG", - "signed_int : IDL_LONG IDL_LONG", - "signed_int : IDL_SHORT", - "unsigned_int : IDL_UNSIGNED IDL_LONG", - "unsigned_int : IDL_UNSIGNED IDL_LONG IDL_LONG", - "unsigned_int : IDL_UNSIGNED IDL_SHORT", - "floating_pt_type : IDL_DOUBLE", - "floating_pt_type : IDL_FLOAT", - "floating_pt_type : IDL_LONG IDL_DOUBLE", - "char_type : IDL_CHAR", - "char_type : IDL_WCHAR", - "octet_type : IDL_OCTET", - "boolean_type : IDL_BOOLEAN", - "any_type : IDL_ANY", - "struct_type : IDL_STRUCT", - "struct_type : IDL_STRUCT id", - "struct_type : IDL_STRUCT id '{'", - "struct_type : IDL_STRUCT id '{' at_least_one_member", - "struct_type : IDL_STRUCT id '{' at_least_one_member '}'", - "at_least_one_member : member members", - "members : members member", - "members : /* empty */", - "member : type_spec", - "member : type_spec at_least_one_declarator", - "member : type_spec at_least_one_declarator ';'", - "member : error", - "member : error ';'", - "union_type : IDL_UNION", - "union_type : IDL_UNION id", - "union_type : IDL_UNION id IDL_SWITCH", - "union_type : IDL_UNION id IDL_SWITCH '('", - "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec", - "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')'", - "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{'", - "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{' at_least_one_case_branch", - "union_type : IDL_UNION id IDL_SWITCH '(' switch_type_spec ')' '{' at_least_one_case_branch '}'", - "switch_type_spec : integer_type", - "switch_type_spec : char_type", - "switch_type_spec : octet_type", - "switch_type_spec : boolean_type", - "switch_type_spec : enum_type", - "switch_type_spec : scoped_name", - "at_least_one_case_branch : case_branch case_branches", - "case_branches : case_branches case_branch", - "case_branches : /* empty */", - "case_branch : at_least_one_case_label", - "case_branch : at_least_one_case_label element_spec", - "case_branch : at_least_one_case_label element_spec ';'", - "case_branch : error", - "case_branch : error ';'", - "at_least_one_case_label : case_label case_labels", - "case_labels : case_labels case_label", - "case_labels : /* empty */", - "case_label : IDL_DEFAULT", - "case_label : IDL_DEFAULT ':'", - "case_label : IDL_CASE", - "case_label : IDL_CASE const_expr", - "case_label : IDL_CASE const_expr ':'", - "element_spec : type_spec", - "element_spec : type_spec declarator", - "enum_type : IDL_ENUM", - "enum_type : IDL_ENUM id", - "enum_type : IDL_ENUM id '{'", - "enum_type : IDL_ENUM id '{' at_least_one_enumerator", - "enum_type : IDL_ENUM id '{' at_least_one_enumerator '}'", - "at_least_one_enumerator : enumerator enumerators", - "enumerators : enumerators ','", - "enumerators : enumerators ',' enumerator", - "enumerators : /* empty */", - "enumerator : IDENTIFIER", - "sequence_type_spec : seq_head ','", - "sequence_type_spec : seq_head ',' positive_int_expr", - "sequence_type_spec : seq_head ',' positive_int_expr '>'", - "sequence_type_spec : seq_head '>'", - "seq_head : IDL_SEQUENCE", - "seq_head : IDL_SEQUENCE '<'", - "seq_head : IDL_SEQUENCE '<' simple_type_spec", - "string_type_spec : string_head '<'", - "string_type_spec : string_head '<' positive_int_expr", - "string_type_spec : string_head '<' positive_int_expr '>'", - "string_type_spec : string_head", - "string_head : IDL_STRING", - "wstring_type_spec : wstring_head '<'", - "wstring_type_spec : wstring_head '<' positive_int_expr", - "wstring_type_spec : wstring_head '<' positive_int_expr '>'", - "wstring_type_spec : wstring_head", - "wstring_head : IDL_WSTRING", - "array_declarator : id", - "array_declarator : id at_least_one_array_dim", - "at_least_one_array_dim : array_dim array_dims", - "array_dims : array_dims array_dim", - "array_dims : /* empty */", - "array_dim : '['", - "array_dim : '[' positive_int_expr", - "array_dim : '[' positive_int_expr ']'", - "attribute : opt_readonly IDL_ATTRIBUTE", - "attribute : opt_readonly IDL_ATTRIBUTE param_type_spec", - "attribute : opt_readonly IDL_ATTRIBUTE param_type_spec at_least_one_simple_declarator", - "opt_readonly : IDL_READONLY", - "opt_readonly : /* empty */", - "exception : IDL_EXCEPTION", - "exception : IDL_EXCEPTION id", - "exception : IDL_EXCEPTION id '{'", - "exception : IDL_EXCEPTION id '{' members", - "exception : IDL_EXCEPTION id '{' members '}'", - "operation : opt_op_attribute op_type_spec", - "operation : opt_op_attribute op_type_spec IDENTIFIER", - "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list", - "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list opt_raises", - "operation : opt_op_attribute op_type_spec IDENTIFIER parameter_list opt_raises opt_context", - "opt_op_attribute : IDL_ONEWAY", - "opt_op_attribute : IDL_IDEMPOTENT", - "opt_op_attribute : /* empty */", - "op_type_spec : param_type_spec", - "op_type_spec : IDL_VOID", - "parameter_list : '('", - "parameter_list : '(' ')'", - "parameter_list : '('", - "parameter_list : '(' at_least_one_parameter ')'", - "at_least_one_parameter : parameter parameters", - "parameters : parameters ','", - "parameters : parameters ',' parameter", - "parameters : /* empty */", - "parameter : direction", - "parameter : direction param_type_spec", - "parameter : direction param_type_spec declarator", - "param_type_spec : base_type_spec", - "param_type_spec : string_type_spec", - "param_type_spec : scoped_name", - "direction : IDL_IN", - "direction : IDL_OUT", - "direction : IDL_INOUT", - "opt_raises : IDL_RAISES", - "opt_raises : IDL_RAISES '('", - "opt_raises : IDL_RAISES '(' at_least_one_scoped_name ')'", - "opt_raises : /* empty */", - "opt_context : IDL_CONTEXT", - "opt_context : IDL_CONTEXT '('", - "opt_context : IDL_CONTEXT '(' at_least_one_string_literal ')'", - "opt_context : /* empty */", - "at_least_one_string_literal : IDL_STRING_LITERAL string_literals", - "string_literals : string_literals ','", - "string_literals : string_literals ',' IDL_STRING_LITERAL", - "string_literals : /* empty */", -}; -#endif /* TAO_YYDEBUG */ -# line 1 "/usr/ccs/bin/yaccpar" -/* - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - -#if !defined (ACE_WIN32) -#pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" -#endif /* ACE_WIN32 */ - -/* -** Skeleton parser driver for yacc output -*/ - -/* -** yacc user known macros and defines -*/ -#define TAO_YYERROR goto tao_yyerrlab -#define TAO_YYACCEPT return(0) -#define TAO_YYABORT return(1) -#define TAO_YYBACKUP( newtoken, newvalue )\ -{\ - if ( tao_yychar >= 0 || ( tao_yyr2[ tao_yytmp ] >> 1 ) != 1 )\ - {\ - tao_yyerror( "syntax error - cannot backup" );\ - goto tao_yyerrlab;\ - }\ - tao_yychar = newtoken;\ - tao_yystate = *tao_yyps;\ - tao_yylval = newvalue;\ - goto tao_yynewstate;\ -} -#define TAO_YYRECOVERING() (!!tao_yyerrflag) -#define TAO_YYNEW(type) malloc(sizeof(type) * tao_yynewmax) -#define TAO_YYCOPY(to, from, type) \ - (type *) memcpy(to, (char *) from, tao_yynewmax * sizeof(type)) -#define TAO_YYENLARGE( from, type) \ - (type *) realloc((char *) from, tao_yynewmax * sizeof(type)) -#ifndef TAO_YYDEBUG -# define TAO_YYDEBUG 1 /* make debugging available */ -#endif - -/* -** user known globals -*/ -int tao_yydebug; /* set to 1 to get debugging */ - -/* -** driver internal defines -*/ -#define TAO_YYFLAG (-10000000) - -/* -** global variables used by the parser -*/ -TAO_YYSTYPE *tao_yypv; /* top of value stack */ -int *tao_yyps; /* top of state stack */ - -int tao_yystate; /* current state */ -int tao_yytmp; /* extra var (lasts between blocks) */ - -int tao_yynerrs; /* number of errors */ -int tao_yyerrflag; /* error recovery flag */ -int tao_yychar; /* current input token number */ - - - -#ifdef TAO_YYNMBCHARS -#define TAO_YYLEX() tao_yycvtok(tao_yylex()) -/* -** tao_yycvtok - return a token if i is a wchar_t value that exceeds 255. -** If i<255, i itself is the token. If i>255 but the neither -** of the 30th or 31st bit is on, i is already a token. -*/ -#if defined(__STDC__) || defined(__cplusplus) -int tao_yycvtok(int i) -#else -int tao_yycvtok(i) int i; -#endif -{ - int first = 0; - int last = TAO_YYNMBCHARS - 1; - int mid; - wchar_t j; - - if(i&0x60000000){/*Must convert to a token. */ - if( tao_yymbchars[last].character < i ){ - return i;/*Giving up*/ - } - while ((last>=first)&&(first>=0)) {/*Binary search loop*/ - mid = (first+last)/2; - j = tao_yymbchars[mid].character; - if( j==i ){/*Found*/ - return tao_yymbchars[mid].tvalue; - }else if( j= 0; - tao_yy_i++ ) - { - if ( tao_yytoks[tao_yy_i].t_val == tao_yychar ) - break; - } - printf( "%s\n", tao_yytoks[tao_yy_i].t_name ); - } - } -#endif /* TAO_YYDEBUG */ - if ( ++tao_yy_ps >= &tao_yys[ tao_yymaxdepth ] ) /* room on stack? */ - { - /* - ** reallocate and recover. Note that pointers - ** have to be reset, or bad things will happen - */ - int tao_yyps_index = (tao_yy_ps - tao_yys); - int tao_yypv_index = (tao_yy_pv - tao_yyv); - int tao_yypvt_index = (tao_yypvt - tao_yyv); - int tao_yynewmax; -#ifdef TAO_YYEXPAND - tao_yynewmax = TAO_YYEXPAND(tao_yymaxdepth); -#else - tao_yynewmax = 2 * tao_yymaxdepth; /* double table size */ - if (tao_yymaxdepth == TAO_YYMAXDEPTH) /* first time growth */ - { - char *newtao_yys = (char *)TAO_YYNEW(int); - char *newtao_yyv = (char *)TAO_YYNEW(TAO_YYSTYPE); - if (newtao_yys != 0 && newtao_yyv != 0) - { - tao_yys = TAO_YYCOPY(newtao_yys, tao_yys, int); - tao_yyv = TAO_YYCOPY(newtao_yyv, tao_yyv, TAO_YYSTYPE); - } - else - tao_yynewmax = 0; /* failed */ - } - else /* not first time */ - { - tao_yys = TAO_YYENLARGE(tao_yys, int); - tao_yyv = TAO_YYENLARGE(tao_yyv, TAO_YYSTYPE); - if (tao_yys == 0 || tao_yyv == 0) - tao_yynewmax = 0; /* failed */ - } -#endif - if (tao_yynewmax <= tao_yymaxdepth) /* tables not expanded */ - { - tao_yyerror( "yacc stack overflow" ); - TAO_YYABORT; - } - tao_yymaxdepth = tao_yynewmax; - - tao_yy_ps = tao_yys + tao_yyps_index; - tao_yy_pv = tao_yyv + tao_yypv_index; - tao_yypvt = tao_yyv + tao_yypvt_index; - } - *tao_yy_ps = tao_yy_state; - *++tao_yy_pv = tao_yyval; - - /* - ** we have a new state - find out what to do - */ - tao_yy_newstate: - if ( ( tao_yy_n = tao_yypact[ tao_yy_state ] ) <= TAO_YYFLAG ) - goto tao_yydefault; /* simple state */ -#if TAO_YYDEBUG - /* - ** if debugging, need to mark whether new token grabbed - */ - tao_yytmp = tao_yychar < 0; -#endif - if ( ( tao_yychar < 0 ) && ( ( tao_yychar = TAO_YYLEX() ) < 0 ) ) - tao_yychar = 0; /* reached EOF */ -#if TAO_YYDEBUG - if ( tao_yydebug && tao_yytmp ) - { - register int tao_yy_i; - - printf( "Received token " ); - if ( tao_yychar == 0 ) - printf( "end-of-file\n" ); - else if ( tao_yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( tao_yy_i = 0; tao_yytoks[tao_yy_i].t_val >= 0; - tao_yy_i++ ) - { - if ( tao_yytoks[tao_yy_i].t_val == tao_yychar ) - break; - } - printf( "%s\n", tao_yytoks[tao_yy_i].t_name ); - } - } -#endif /* TAO_YYDEBUG */ - if ( ( ( tao_yy_n += tao_yychar ) < 0 ) || ( tao_yy_n >= TAO_YYLAST ) ) - goto tao_yydefault; - if ( tao_yychk[ tao_yy_n = tao_yyact[ tao_yy_n ] ] == tao_yychar ) /*valid shift*/ - { - tao_yychar = -1; - tao_yyval = tao_yylval; - tao_yy_state = tao_yy_n; - if ( tao_yyerrflag > 0 ) - tao_yyerrflag--; - goto tao_yy_stack; - } - - tao_yydefault: - if ( ( tao_yy_n = tao_yydef[ tao_yy_state ] ) == -2 ) - { -#if TAO_YYDEBUG - tao_yytmp = tao_yychar < 0; -#endif - if ( ( tao_yychar < 0 ) && ( ( tao_yychar = TAO_YYLEX() ) < 0 ) ) - tao_yychar = 0; /* reached EOF */ -#if TAO_YYDEBUG - if ( tao_yydebug && tao_yytmp ) - { - register int tao_yy_i; - - printf( "Received token " ); - if ( tao_yychar == 0 ) - printf( "end-of-file\n" ); - else if ( tao_yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( tao_yy_i = 0; - tao_yytoks[tao_yy_i].t_val >= 0; - tao_yy_i++ ) - { - if ( tao_yytoks[tao_yy_i].t_val - == tao_yychar ) - { - break; - } - } - printf( "%s\n", tao_yytoks[tao_yy_i].t_name ); - } - } -#endif /* TAO_YYDEBUG */ - /* - ** look through exception table - */ - { - register int *tao_yyxi = tao_yyexca; - - while ( ( *tao_yyxi != -1 ) || - ( tao_yyxi[1] != tao_yy_state ) ) - { - tao_yyxi += 2; - } - while ( ( *(tao_yyxi += 2) >= 0 ) && - ( *tao_yyxi != tao_yychar ) ) - ; - if ( ( tao_yy_n = tao_yyxi[1] ) < 0 ) - TAO_YYACCEPT; - } - } - - /* - ** check for syntax error - */ - if ( tao_yy_n == 0 ) /* have an error */ - { - /* no worry about speed here! */ - switch ( tao_yyerrflag ) - { - case 0: /* new error */ - tao_yyerror( "syntax error" ); - goto skip_init; - tao_yyerrlab: - /* - ** get globals into registers. - ** we have a user generated syntax type error - */ - tao_yy_pv = tao_yypv; - tao_yy_ps = tao_yyps; - tao_yy_state = tao_yystate; - skip_init: - tao_yynerrs++; - /* FALLTHRU */ - case 1: - case 2: /* incompletely recovered error */ - /* try again... */ - tao_yyerrflag = 3; - /* - ** find state where "error" is a legal - ** shift action - */ - while ( tao_yy_ps >= tao_yys ) - { - tao_yy_n = tao_yypact[ *tao_yy_ps ] + TAO_YYERRCODE; - if ( tao_yy_n >= 0 && tao_yy_n < TAO_YYLAST && - tao_yychk[tao_yyact[tao_yy_n]] == TAO_YYERRCODE) { - /* - ** simulate shift of "error" - */ - tao_yy_state = tao_yyact[ tao_yy_n ]; - goto tao_yy_stack; - } - /* - ** current state has no shift on - ** "error", pop stack - */ -#if TAO_YYDEBUG -# define _POP_ "Error recovery pops state %d, uncovers state %d\n" - if ( tao_yydebug ) - printf( _POP_, *tao_yy_ps, - tao_yy_ps[-1] ); -# undef _POP_ -#endif - tao_yy_ps--; - tao_yy_pv--; - } - /* - ** there is no state on stack with "error" as - ** a valid shift. give up. - */ - TAO_YYABORT; - case 3: /* no shift yet; eat a token */ -#if TAO_YYDEBUG - /* - ** if debugging, look up token in list of - ** pairs. 0 and negative shouldn't occur, - ** but since timing doesn't matter when - ** debugging, it doesn't hurt to leave the - ** tests here. - */ - if ( tao_yydebug ) - { - register int tao_yy_i; - - printf( "Error recovery discards " ); - if ( tao_yychar == 0 ) - printf( "token end-of-file\n" ); - else if ( tao_yychar < 0 ) - printf( "token -none-\n" ); - else - { - for ( tao_yy_i = 0; - tao_yytoks[tao_yy_i].t_val >= 0; - tao_yy_i++ ) - { - if ( tao_yytoks[tao_yy_i].t_val - == tao_yychar ) - { - break; - } - } - printf( "token %s\n", - tao_yytoks[tao_yy_i].t_name ); - } - } -#endif /* TAO_YYDEBUG */ - if ( tao_yychar == 0 ) /* reached EOF. quit */ - TAO_YYABORT; - tao_yychar = -1; - goto tao_yy_newstate; - } - }/* end if ( tao_yy_n == 0 ) */ - /* - ** reduction by production tao_yy_n - ** put stack tops, etc. so things right after switch - */ -#if TAO_YYDEBUG - /* - ** if debugging, print the string that is the user's - ** specification of the reduction which is just about - ** to be done. - */ - if ( tao_yydebug ) - printf( "Reduce by (%d) \"%s\"\n", - tao_yy_n, tao_yyreds[ tao_yy_n ] ); -#endif - tao_yytmp = tao_yy_n; /* value to switch over */ - tao_yypvt = tao_yy_pv; /* $vars top of value stack */ - /* - ** Look in goto table for next state - ** Sorry about using tao_yy_state here as temporary - ** register variable, but why not, if it works... - ** If tao_yyr2[ tao_yy_n ] doesn't have the low order bit - ** set, then there is no action to be done for - ** this reduction. So, no saving & unsaving of - ** registers done. The only difference between the - ** code just after the if and the body of the if is - ** the goto tao_yy_stack in the body. This way the test - ** can be made before the choice of what to do is needed. - */ - { - /* length of production doubled with extra bit */ - register int tao_yy_len = tao_yyr2[ tao_yy_n ]; - - if ( !( tao_yy_len & 01 ) ) - { - tao_yy_len >>= 1; - tao_yyval = ( tao_yy_pv -= tao_yy_len )[1]; /* $$ = $1 */ - tao_yy_state = tao_yypgo[ tao_yy_n = tao_yyr1[ tao_yy_n ] ] + - *( tao_yy_ps -= tao_yy_len ) + 1; - if ( tao_yy_state >= TAO_YYLAST || - tao_yychk[ tao_yy_state = - tao_yyact[ tao_yy_state ] ] != -tao_yy_n ) - { - tao_yy_state = tao_yyact[ tao_yypgo[ tao_yy_n ] ]; - } - goto tao_yy_stack; - } - tao_yy_len >>= 1; - tao_yyval = ( tao_yy_pv -= tao_yy_len )[1]; /* $$ = $1 */ - tao_yy_state = tao_yypgo[ tao_yy_n = tao_yyr1[ tao_yy_n ] ] + - *( tao_yy_ps -= tao_yy_len ) + 1; - if ( tao_yy_state >= TAO_YYLAST || - tao_yychk[ tao_yy_state = tao_yyact[ tao_yy_state ] ] != -tao_yy_n ) - { - tao_yy_state = tao_yyact[ tao_yypgo[ tao_yy_n ] ]; - } - } - /* save until reenter driver code */ - tao_yystate = tao_yy_state; - tao_yyps = tao_yy_ps; - tao_yypv = tao_yy_pv; - } - /* - ** code supplied by user is placed in this switch - */ - switch( tao_yytmp ) - { - -case 4: -# line 240 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); - } break; -case 5: -# line 244 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 6: -# line 248 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); - } break; -case 7: -# line 252 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 8: -# line 256 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); - } break; -case 9: -# line 260 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 10: -# line 264 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen); - } break; -case 11: -# line 268 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 12: -# line 272 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen); - } break; -case 13: -# line 276 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 14: -# line 280 "idl.tao_yy" -{ - idl_global->err()->syntax_error(idl_global->parse_state()); - } break; -case 15: -# line 284 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - tao_yyerrok; - } break; -case 16: -# line 291 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen); - } break; -case 17: -# line 295 "idl.tao_yy" -{ - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL); - AST_Module *m = NULL; - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleIDSeen); - /* - * Make a new module and add it to the enclosing scope - */ - if (s != NULL) { - m = idl_global->gen()->create_module(n, p); - (void) s->fe_add_module(m); - } - /* - * Push it on the stack - */ - idl_global->scopes()->push(m); - } break; -case 18: -# line 316 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen); - } break; -case 19: -# line 320 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen); - } break; -case 20: -# line 324 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen); - /* - * Finished with this module - pop it from the scope stack - */ - idl_global->scopes()->pop(); - } break; -case 23: -# line 340 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Interface *i = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *d = NULL; - AST_Interface *fd = NULL; - - ACE_UNUSED_ARG (v); - - /* - * Make a new interface node and add it to its enclosing scope - */ - if (s != NULL && tao_yypvt[-0].ihval != NULL) { - i = idl_global->gen()->create_interface(tao_yypvt[-0].ihval->interface_name(), - tao_yypvt[-0].ihval->inherits(), - tao_yypvt[-0].ihval->n_inherits(), - p); - if (i != NULL && - (d = s->lookup_by_name(i->name(), I_FALSE)) != NULL) { - /* - * See if we're defining a forward declared interface. - */ - if (d->node_type() == AST_Decl::NT_interface) { - /* - * Narrow to an interface - */ - fd = AST_Interface::narrow_from_decl(d); - /* - * Successful? - */ - if (fd == NULL) { - /* - * Should we give an error here? - */ - } - /* - * If it is a forward declared interface.. - */ - else if (!fd->is_defined()) { - /* - * Check if redefining in same scope - */ - if (fd->defined_in() != s) { - idl_global->err() - ->error3(UTL_Error::EIDL_SCOPE_CONFLICT, - i, - fd, - ScopeAsDecl(s)); - } - /* - * All OK, do the redefinition - */ - else { - fd->set_inherits(tao_yypvt[-0].ihval->inherits()); - fd->set_n_inherits(tao_yypvt[-0].ihval->n_inherits()); - /* - * Update place of definition - */ - fd->set_imported(idl_global->imported()); - fd->set_in_main_file(idl_global->in_main_file()); - fd->set_line(idl_global->lineno()); - fd->set_file_name(idl_global->filename()); - fd->add_pragmas(p); - /* - * Use full definition node - */ - delete i; - i = fd; - } - } - } - } - /* - * Add the interface to its definition scope - */ - (void) s->fe_add_interface(i); - } - /* - * Push it on the scope stack - */ - idl_global->scopes()->push(i); - } break; -case 24: -# line 424 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); - } break; -case 25: -# line 428 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); - } break; -case 26: -# line 432 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); - /* - * Done with this interface - pop it off the scopes stack - */ - idl_global->scopes()->pop(); - } break; -case 27: -# line 443 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen); - } break; -case 28: -# line 447 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen); - tao_yyval.idval = tao_yypvt[-0].idval; - } break; -case 29: -# line 455 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); - /* - * Create an AST representation of the information in the header - * part of an interface - this representation contains a computed - * list of all interfaces which this interface inherits from, - * recursively - */ - tao_yyval.ihval = new FE_InterfaceHeader(new UTL_ScopedName(tao_yypvt[-1].idval, NULL), tao_yypvt[-0].nlval); - } break; -case 30: -# line 469 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen); - } break; -case 31: -# line 473 "idl.tao_yy" -{ - tao_yyval.nlval = tao_yypvt[-0].nlval; - } break; -case 32: -# line 477 "idl.tao_yy" -{ - tao_yyval.nlval = NULL; - } break; -case 35: -# line 489 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); - } break; -case 36: -# line 493 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 37: -# line 497 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); - } break; -case 38: -# line 501 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 39: -# line 505 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); - } break; -case 40: -# line 509 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 41: -# line 513 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen); - } break; -case 42: -# line 517 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 43: -# line 521 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen); - } break; -case 44: -# line 525 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - } break; -case 45: -# line 529 "idl.tao_yy" -{ - idl_global->err()->syntax_error(idl_global->parse_state()); - } break; -case 46: -# line 533 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - tao_yyerrok; - } break; -case 47: -# line 541 "idl.tao_yy" -{ - tao_yyval.nlval = new UTL_NameList(tao_yypvt[-1].idlist, tao_yypvt[-0].nlval); - } break; -case 48: -# line 549 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen); - } break; -case 49: -# line 553 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen); - - if (tao_yypvt[-3].nlval == NULL) - tao_yyval.nlval = new UTL_NameList(tao_yypvt[-0].idlist, NULL); - else { - tao_yypvt[-3].nlval->nconc(new UTL_NameList(tao_yypvt[-0].idlist, NULL)); - tao_yyval.nlval = tao_yypvt[-3].nlval; - } - } break; -case 50: -# line 564 "idl.tao_yy" -{ - tao_yyval.nlval = NULL; - } break; -case 51: -# line 571 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - tao_yyval.idlist = new UTL_IdList(tao_yypvt[-0].idval, NULL); - } break; -case 52: -# line 577 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); - } break; -case 53: -# line 581 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - tao_yyval.idlist = new UTL_IdList(new Identifier(tao_yypvt[-2].strval, 1, 0, I_FALSE), - new UTL_IdList(tao_yypvt[-0].idval, NULL)); - } break; -case 54: -# line 589 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); - } break; -case 55: -# line 593 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); - - tao_yypvt[-3].idlist->nconc(new UTL_IdList(tao_yypvt[-0].idval, NULL)); - tao_yyval.idlist = tao_yypvt[-3].idlist; - } break; -case 56: -# line 602 "idl.tao_yy" -{ - tao_yyval.idval = new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE); - } break; -case 57: -# line 609 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL); - AST_InterfaceFwd *f = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_ForwardDeclSeen); - /* - * Create a node representing a forward declaration of an - * interface. Store it in the enclosing scope - */ - if (s != NULL) { - f = idl_global->gen()->create_interface_fwd(n, p); - (void) s->fe_add_interface_fwd(f); - } - } break; -case 58: -# line 629 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen); - } break; -case 59: -# line 633 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen); - } break; -case 60: -# line 637 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen); - } break; -case 61: -# line 641 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen); - } break; -case 62: -# line 645 "idl.tao_yy" -{ - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-4].idval, NULL); - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Constant *c = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_ConstExprSeen); - /* - * Create a node representing a constant declaration. Store - * it in the enclosing scope - */ - if (tao_yypvt[-0].exval != NULL && s != NULL) { - if (tao_yypvt[-0].exval->coerce(tao_yypvt[-6].etval) == NULL) - idl_global->err()->coercion_error(tao_yypvt[-0].exval, tao_yypvt[-6].etval); - else { - c = - idl_global->gen()->create_constant(tao_yypvt[-6].etval, tao_yypvt[-0].exval, n, p); - (void) s->fe_add_constant(c); - } - } - } break; -case 68: -# line 678 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_string; - } break; -case 69: -# line 682 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_wstring; - } break; -case 70: -# line 686 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - AST_PredefinedType *c = NULL; - AST_Typedef *t = NULL; - - /* - * If the constant's type is a scoped name, it must resolve - * to a scalar constant type - */ - if (s != NULL && (d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE)) != NULL) { - /* - * Look through typedefs - */ - while (d->node_type() == AST_Decl::NT_typedef) { - t = AST_Typedef::narrow_from_decl(d); - if (t == NULL) - break; - d = t->base_type(); - } - if (d == NULL) - tao_yyval.etval = AST_Expression::EV_any; - else if (d->node_type() == AST_Decl::NT_pre_defined) { - c = AST_PredefinedType::narrow_from_decl(d); - if (c != NULL) { - tao_yyval.etval = idl_global->PredefinedTypeToExprType(c->pt()); - } else { - tao_yyval.etval = AST_Expression::EV_any; - } - } else - tao_yyval.etval = AST_Expression::EV_any; - } else - tao_yyval.etval = AST_Expression::EV_any; - } break; -case 74: -# line 728 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 76: -# line 736 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 78: -# line 744 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 80: -# line 752 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,tao_yypvt[-2].exval,tao_yypvt[-0].exval); - } break; -case 81: -# line 756 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,tao_yypvt[-2].exval,tao_yypvt[-0].exval); - } break; -case 83: -# line 764 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 84: -# line 768 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,tao_yypvt[-2].exval,tao_yypvt[-0].exval); - } break; -case 86: -# line 776 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 87: -# line 780 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 88: -# line 784 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, tao_yypvt[-2].exval, tao_yypvt[-0].exval); - } break; -case 90: -# line 792 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus, - tao_yypvt[-0].exval, - NULL); - } break; -case 91: -# line 798 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus, - tao_yypvt[-0].exval, - NULL); - } break; -case 92: -# line 804 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg, - tao_yypvt[-0].exval, - NULL); - } break; -case 93: -# line 813 "idl.tao_yy" -{ - /* - * An expression which is a scoped name is not resolved now, - * but only when it is evaluated (such as when it is assigned - * as a constant value) - */ - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].idlist); - } break; -case 95: -# line 823 "idl.tao_yy" -{ - tao_yyval.exval = tao_yypvt[-1].exval; - } break; -case 96: -# line 830 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].ival); - } break; -case 97: -# line 834 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].sval); - } break; -case 98: -# line 838 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].cval); - } break; -case 99: -# line 842 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].dval); - } break; -case 100: -# line 846 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE, - AST_Expression::EV_bool); - } break; -case 101: -# line 851 "idl.tao_yy" -{ - tao_yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE, - AST_Expression::EV_bool); - } break; -case 102: -# line 859 "idl.tao_yy" -{ - tao_yypvt[-0].exval->evaluate(AST_Expression::EK_const); - tao_yyval.exval = idl_global->gen()->create_expr(tao_yypvt[-0].exval, AST_Expression::EV_ulong); - } break; -case 103: -# line 867 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen); - } break; -case 104: -# line 870 "idl.tao_yy" -{tao_yyval.ival = 0;} break; -case 105: -# line 871 "idl.tao_yy" -{ tao_yyval.ival = 0;} break; -case 106: -# line 872 "idl.tao_yy" -{ tao_yyval.ival = 0;} break; -case 107: -# line 873 "idl.tao_yy" -{ tao_yyval.ival = 0;} break; -case 108: -# line 875 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Native *node = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_NativeSeen); - /* - * Create a node representing a Native and add it to its - * enclosing scope - */ - if (s != NULL) { - node = idl_global->gen()->create_native (tao_yypvt[-0].deval->name (), p); - /* - * Add it to its defining scope - */ - (void) s->fe_add_native (node); - } - } break; -case 109: -# line 900 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen); - } break; -case 110: -# line 904 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l; - FE_Declarator *d = NULL; - AST_Typedef *t = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_DeclaratorsSeen); - /* - * Create a list of type renamings. Add them to the - * enclosing scope - */ - if (s != NULL && tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].dlval != NULL) { - l = new UTL_DecllistActiveIterator(tao_yypvt[-0].dlval); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type * tp = d->compose(tao_yypvt[-2].dcval); - if (tp == NULL) - continue; - t = idl_global->gen()->create_typedef(tp, d->name(), p); - (void) s->fe_add_typedef(t); - } - delete l; - } - } break; -case 113: -# line 943 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 115: -# line 948 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - - if (s != NULL) - d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE); - if (d == NULL) - idl_global->err()->lookup_error(tao_yypvt[-0].idlist); - tao_yyval.dcval = d; - } break; -case 128: -# line 983 "idl.tao_yy" -{ - tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-1].deval, tao_yypvt[-0].dlval); - } break; -case 129: -# line 991 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); - } break; -case 130: -# line 995 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); - - if (tao_yypvt[-3].dlval == NULL) - tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-0].deval, NULL); - else { - tao_yypvt[-3].dlval->nconc(new UTL_DeclList(tao_yypvt[-0].deval, NULL)); - tao_yyval.dlval = tao_yypvt[-3].dlval; - } - } break; -case 131: -# line 1006 "idl.tao_yy" -{ - tao_yyval.dlval = NULL; - } break; -case 134: -# line 1018 "idl.tao_yy" -{ - tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-1].deval, tao_yypvt[-0].dlval); - } break; -case 135: -# line 1026 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); - } break; -case 136: -# line 1030 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); - - if (tao_yypvt[-3].dlval == NULL) - tao_yyval.dlval = new UTL_DeclList(tao_yypvt[-0].deval, NULL); - else { - tao_yypvt[-3].dlval->nconc(new UTL_DeclList(tao_yypvt[-0].deval, NULL)); - tao_yyval.dlval = tao_yypvt[-3].dlval; - } - } break; -case 137: -# line 1041 "idl.tao_yy" -{ - tao_yyval.dlval = NULL; - } break; -case 138: -# line 1048 "idl.tao_yy" -{ - tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yypvt[-0].idval, NULL), - FE_Declarator::FD_simple, NULL); - } break; -case 139: -# line 1056 "idl.tao_yy" -{ - tao_yyval.deval = new FE_Declarator(new UTL_ScopedName(tao_yypvt[-0].dcval->local_name(), NULL), - FE_Declarator::FD_complex, - tao_yypvt[-0].dcval); - } break; -case 142: -# line 1070 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_long; - } break; -case 143: -# line 1074 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_longlong; - } break; -case 144: -# line 1078 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_short; - } break; -case 145: -# line 1085 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_ulong; - } break; -case 146: -# line 1089 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_ulonglong; - } break; -case 147: -# line 1093 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_ushort; - } break; -case 148: -# line 1100 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_double; - } break; -case 149: -# line 1104 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_float; - } break; -case 150: -# line 1108 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_longdouble; - } break; -case 151: -# line 1115 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_char; - } break; -case 152: -# line 1119 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_wchar; - } break; -case 153: -# line 1126 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_octet; - } break; -case 154: -# line 1133 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_bool; - } break; -case 155: -# line 1140 "idl.tao_yy" -{ - tao_yyval.etval = AST_Expression::EV_any; - } break; -case 156: -# line 1147 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen); - } break; -case 157: -# line 1151 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL); - AST_Structure *d = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_StructIDSeen); - /* - * Create a node representing a struct declaration. Add it - * to the enclosing scope - */ - if (s != NULL) { - d = idl_global->gen()->create_structure(n, p); - (void) s->fe_add_structure(d); - } - /* - * Push the scope of the struct on the scopes stack - */ - idl_global->scopes()->push(d); - } break; -case 158: -# line 1175 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen); - } break; -case 159: -# line 1179 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen); - } break; -case 160: -# line 1183 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen); - /* - * Done with this struct. Pop its scope off the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - tao_yyval.dcval = NULL; - else { - tao_yyval.dcval = - AST_Structure::narrow_from_scope( - idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } break; -case 164: -# line 1208 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen); - } break; -case 165: -# line 1212 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen); - } break; -case 166: -# line 1216 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l = NULL; - FE_Declarator *d = NULL; - AST_Field *f = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsCompleted); - /* - * Check for illegal recursive use of type - */ - if (tao_yypvt[-4].dcval != NULL && AST_illegal_recursive_type(tao_yypvt[-4].dcval)) - idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yypvt[-4].dcval); - /* - * Create a node representing a struct or exception member - * Add it to the enclosing scope - */ - else if (s != NULL && tao_yypvt[-4].dcval != NULL && tao_yypvt[-2].dlval != NULL) { - l = new UTL_DecllistActiveIterator(tao_yypvt[-2].dlval); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type *tp = d->compose(tao_yypvt[-4].dcval); - if (tp == NULL) - continue; - f = idl_global->gen()->create_field(tp, d->name(), p); - (void) s->fe_add_field(f); - } - delete l; - } - } break; -case 167: -# line 1249 "idl.tao_yy" -{ - idl_global->err()->syntax_error(idl_global->parse_state()); - } break; -case 168: -# line 1253 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - tao_yyerrok; - } break; -case 169: -# line 1261 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen); - } break; -case 170: -# line 1265 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen); - } break; -case 171: -# line 1269 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen); - } break; -case 172: -# line 1273 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen); - } break; -case 173: -# line 1277 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen); - } break; -case 174: -# line 1281 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-8].idval, NULL); - AST_Union *u = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_SwitchCloseParSeen); - /* - * Create a node representing a union. Add it to its enclosing - * scope - */ - if (tao_yypvt[-2].dcval != NULL && s != NULL) { - AST_ConcreteType *tp = AST_ConcreteType::narrow_from_decl(tao_yypvt[-2].dcval); - if (tp == NULL) { - idl_global->err()->not_a_type(tao_yypvt[-2].dcval); - } else { - u = idl_global->gen()->create_union(tp, n, p); - (void) s->fe_add_union(u); - } - } - /* - * Push the scope of the union on the scopes stack - */ - idl_global->scopes()->push(u); - } break; -case 175: -# line 1310 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen); - } break; -case 176: -# line 1314 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen); - } break; -case 177: -# line 1318 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen); - /* - * Done with this union. Pop its scope from the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - tao_yyval.dcval = NULL; - else { - tao_yyval.dcval = - AST_Union::narrow_from_scope( - idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } break; -case 178: -# line 1336 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 179: -# line 1340 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 180: -# line 1344 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 181: -# line 1348 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 183: -# line 1353 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - AST_PredefinedType *p = NULL; - AST_Typedef *t = NULL; - long found = I_FALSE; - - /* - * The discriminator is a scoped name. Try to resolve to - * one of the scalar types or to an enum. Thread through - * typedef's to arrive at the base type at the end of the - * chain - */ - if (s != NULL && (d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE)) != NULL) { - while (!found) { - switch (d->node_type()) { - case AST_Decl::NT_enum: - tao_yyval.dcval = d; - found = I_TRUE; - break; - case AST_Decl::NT_pre_defined: - p = AST_PredefinedType::narrow_from_decl(d); - if (p != NULL) { - switch (p->pt()) { - case AST_PredefinedType::PT_long: - case AST_PredefinedType::PT_ulong: - case AST_PredefinedType::PT_longlong: - case AST_PredefinedType::PT_ulonglong: - case AST_PredefinedType::PT_short: - case AST_PredefinedType::PT_char: - case AST_PredefinedType::PT_wchar: - case AST_PredefinedType::PT_octet: - case AST_PredefinedType::PT_boolean: - tao_yyval.dcval = p; - found = I_TRUE; - break; - default: - tao_yyval.dcval = NULL; - found = I_TRUE; - break; - } - } - break; - case AST_Decl::NT_typedef: - t = AST_Typedef::narrow_from_decl(d); - if (t != NULL) d = t->base_type(); - break; - default: - tao_yyval.dcval = NULL; - found = I_TRUE; - break; - } - } - } else - tao_yyval.dcval = NULL; - - if (tao_yyval.dcval == NULL) - idl_global->err()->lookup_error(tao_yypvt[-0].idlist); - } break; -case 187: -# line 1423 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen); - } break; -case 188: -# line 1427 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen); - } break; -case 189: -# line 1431 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_LabellistActiveIterator *l = NULL; - AST_UnionLabel *d = NULL; - AST_UnionBranch *b = NULL; - AST_Field *f = tao_yypvt[-2].ffval; - - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemCompleted); - /* - * Create several nodes representing branches of a union. - * Add them to the enclosing scope (the union scope) - */ - if (s != NULL && tao_yypvt[-4].llval != NULL && tao_yypvt[-2].ffval != NULL) { - l = new UTL_LabellistActiveIterator(tao_yypvt[-4].llval); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - b = idl_global->gen()->create_union_branch(d, - f->field_type(), - f->name(), - f->pragmas()); - (void) s->fe_add_union_branch(b); - } - delete l; - } - } break; -case 190: -# line 1459 "idl.tao_yy" -{ - idl_global->err()->syntax_error(idl_global->parse_state()); - } break; -case 191: -# line 1464 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_NoState); - tao_yyerrok; - } break; -case 192: -# line 1472 "idl.tao_yy" -{ - tao_yyval.llval = new UTL_LabelList(tao_yypvt[-1].ulval, tao_yypvt[-0].llval); - } break; -case 193: -# line 1479 "idl.tao_yy" -{ - if (tao_yypvt[-1].llval == NULL) - tao_yyval.llval = new UTL_LabelList(tao_yypvt[-0].ulval, NULL); - else { - tao_yypvt[-1].llval->nconc(new UTL_LabelList(tao_yypvt[-0].ulval, NULL)); - tao_yyval.llval = tao_yypvt[-1].llval; - } - } break; -case 194: -# line 1488 "idl.tao_yy" -{ - tao_yyval.llval = NULL; - } break; -case 195: -# line 1495 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen); - } break; -case 196: -# line 1499 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); - - tao_yyval.ulval = idl_global->gen()-> - create_union_label(AST_UnionLabel::UL_default, - NULL); - } break; -case 197: -# line 1507 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen); - } break; -case 198: -# line 1511 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen); - } break; -case 199: -# line 1515 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); - - tao_yyval.ulval = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label, - tao_yypvt[-2].exval); - } break; -case 200: -# line 1525 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen); - } break; -case 201: -# line 1529 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen); - /* - * Check for illegal recursive use of type - */ - if (tao_yypvt[-2].dcval != NULL && AST_illegal_recursive_type(tao_yypvt[-2].dcval)) - idl_global->err()->error1(UTL_Error::EIDL_RECURSIVE_TYPE, tao_yypvt[-2].dcval); - /* - * Create a field in a union branch - */ - else if (tao_yypvt[-2].dcval == NULL || tao_yypvt[-0].deval == NULL) - tao_yyval.ffval = NULL; - else { - AST_Type *tp = tao_yypvt[-0].deval->compose(tao_yypvt[-2].dcval); - if (tp == NULL) - tao_yyval.ffval = NULL; - else - tao_yyval.ffval = idl_global->gen()->create_field(tp, - tao_yypvt[-0].deval->name(), - idl_global->pragmas()); - } - } break; -case 202: -# line 1555 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen); - } break; -case 203: -# line 1559 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL); - AST_Enum *e = NULL; - AST_Decl *v = NULL; - UTL_StrList *p = idl_global->pragmas(); - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_EnumIDSeen); - /* - * Create a node representing an enum and add it to its - * enclosing scope - */ - if (s != NULL) { - e = idl_global->gen()->create_enum(n, p); - /* - * Add it to its defining scope - */ - (void) s->fe_add_enum(e); - } - /* - * Push the enum scope on the scopes stack - */ - idl_global->scopes()->push(e); - } break; -case 204: -# line 1586 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen); - } break; -case 205: -# line 1590 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen); - } break; -case 206: -# line 1594 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen); - /* - * Done with this enum. Pop its scope from the scopes stack - */ - if (idl_global->scopes()->top() == NULL) - tao_yyval.dcval = NULL; - else { - tao_yyval.dcval = AST_Enum::narrow_from_scope(idl_global->scopes()->top_non_null()); - idl_global->scopes()->pop(); - } - } break; -case 208: -# line 1613 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen); - } break; -case 211: -# line 1622 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL); - AST_EnumVal *e = NULL; - AST_Enum *c = NULL; - UTL_StrList *p = idl_global->pragmas(); - - /* - * Create a node representing one enumerator in an enum - * Add it to the enclosing scope (the enum scope) - */ - if (s != NULL && s->scope_node_type() == AST_Decl::NT_enum) { - c = AST_Enum::narrow_from_scope(s); - if (c != NULL) - e = idl_global->gen()->create_enum_val(c->next_enum_val(), n, p); - (void) s->fe_add_enum_val(e); - } - } break; -case 212: -# line 1646 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen); - } break; -case 213: -# line 1650 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen); - } break; -case 214: -# line 1654 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); - /* - * Remove sequence marker from scopes stack - */ - if (idl_global->scopes()->top() == NULL) - idl_global->scopes()->pop(); - /* - * Create a node representing a sequence - */ - if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong); - tao_yyval.dcval = NULL; - } else if (tao_yypvt[-5].dcval == NULL) { - tao_yyval.dcval = NULL; - } else { - AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-5].dcval); - if (tp == NULL) - tao_yyval.dcval = NULL; - else { - tao_yyval.dcval = idl_global->gen()->create_sequence(tao_yypvt[-2].exval, tp); - /* - * Add this AST_Sequence to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_sequence(AST_Sequence::narrow_from_decl(tao_yyval.dcval)); - } - } - } break; -case 215: -# line 1685 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); - /* - * Remove sequence marker from scopes stack - */ - if (idl_global->scopes()->top() == NULL) - idl_global->scopes()->pop(); - /* - * Create a node representing a sequence - */ - if (tao_yypvt[-1].dcval == NULL) - tao_yyval.dcval = NULL; - else { - AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-1].dcval); - if (tp == NULL) - tao_yyval.dcval = NULL; - else { - tao_yyval.dcval = - idl_global->gen()->create_sequence( - idl_global->gen()->create_expr((unsigned long) 0), - tp); - /* - * Add this AST_Sequence to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_sequence(AST_Sequence::narrow_from_decl(tao_yyval.dcval)); - } - } - } break; -case 216: -# line 1718 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen); - /* - * Push a sequence marker on scopes stack - */ - idl_global->scopes()->push(NULL); - } break; -case 217: -# line 1726 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen); - } break; -case 218: -# line 1730 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen); - tao_yyval.dcval = tao_yypvt[-0].dcval; - } break; -case 219: -# line 1739 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); - } break; -case 220: -# line 1743 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); - } break; -case 221: -# line 1747 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); - /* - * Create a node representing a string - */ - if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong); - tao_yyval.dcval = NULL; - } else { - tao_yyval.dcval = idl_global->gen()->create_string(tao_yypvt[-2].exval); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); - } - } break; -case 222: -# line 1765 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); - /* - * Create a node representing a string - */ - tao_yyval.dcval = - idl_global->gen()->create_string( - idl_global->gen()->create_expr((unsigned long) 0)); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); - } break; -case 223: -# line 1783 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); - } break; -case 224: -# line 1791 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); - } break; -case 225: -# line 1795 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); - } break; -case 226: -# line 1799 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); - /* - * Create a node representing a string - */ - if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong); - tao_yyval.dcval = NULL; - } else { - tao_yyval.dcval = idl_global->gen()->create_wstring(tao_yypvt[-2].exval); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); - } - } break; -case 227: -# line 1817 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); - /* - * Create a node representing a string - */ - tao_yyval.dcval = - idl_global->gen()->create_wstring( - idl_global->gen()->create_expr((unsigned long) 0)); - /* - * Add this AST_String to the types defined in the global scope - */ - (void) idl_global->root() - ->fe_add_string(AST_String::narrow_from_decl(tao_yyval.dcval)); - } break; -case 228: -# line 1835 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); - } break; -case 229: -# line 1842 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen); - } break; -case 230: -# line 1846 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted); - /* - * Create a node representing an array - */ - if (tao_yypvt[-0].elval != NULL) { - tao_yyval.dcval = idl_global->gen()->create_array(new UTL_ScopedName(tao_yypvt[-2].idval, NULL), - tao_yypvt[-0].elval->length(), tao_yypvt[-0].elval); - } - } break; -case 231: -# line 1860 "idl.tao_yy" -{ - tao_yyval.elval = new UTL_ExprList(tao_yypvt[-1].exval, tao_yypvt[-0].elval); - } break; -case 232: -# line 1867 "idl.tao_yy" -{ - if (tao_yypvt[-1].elval == NULL) - tao_yyval.elval = new UTL_ExprList(tao_yypvt[-0].exval, NULL); - else { - tao_yypvt[-1].elval->nconc(new UTL_ExprList(tao_yypvt[-0].exval, NULL)); - tao_yyval.elval = tao_yypvt[-1].elval; - } - } break; -case 233: -# line 1876 "idl.tao_yy" -{ - tao_yyval.elval = NULL; - } break; -case 234: -# line 1883 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen); - } break; -case 235: -# line 1887 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen); - } break; -case 236: -# line 1891 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen); - /* - * Array dimensions are expressions which must be coerced to - * positive integers - */ - if (tao_yypvt[-2].exval == NULL || tao_yypvt[-2].exval->coerce(AST_Expression::EV_ulong) == NULL) { - idl_global->err()->coercion_error(tao_yypvt[-2].exval, AST_Expression::EV_ulong); - tao_yyval.exval = NULL; - } else - tao_yyval.exval = tao_yypvt[-2].exval; - } break; -case 237: -# line 1908 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen); - } break; -case 238: -# line 1912 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen); - } break; -case 239: -# line 1916 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_DecllistActiveIterator *l = NULL; - AST_Attribute *a = NULL; - FE_Declarator *d = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_AttrCompleted); - /* - * Create nodes representing attributes and add them to the - * enclosing scope - */ - if (s != NULL && tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].dlval != NULL) { - l = new UTL_DecllistActiveIterator(tao_yypvt[-0].dlval); - for (;!(l->is_done()); l->next()) { - d = l->item(); - if (d == NULL) - continue; - AST_Type *tp = d->compose(tao_yypvt[-2].dcval); - if (tp == NULL) - continue; - a = idl_global->gen()->create_attribute(tao_yypvt[-5].bval, tp, d->name(), p); - /* - * Add one attribute to the enclosing scope - */ - (void) s->fe_add_attribute(a); - } - delete l; - } - } break; -case 240: -# line 1950 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen); - tao_yyval.bval = I_TRUE; - } break; -case 241: -# line 1955 "idl.tao_yy" -{ - tao_yyval.bval = I_FALSE; - } break; -case 242: -# line 1962 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen); - } break; -case 243: -# line 1966 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = new UTL_ScopedName(tao_yypvt[-0].idval, NULL); - AST_Exception *e = NULL; - UTL_StrList *p = idl_global->pragmas(); - AST_Decl *v = NULL; - - ACE_UNUSED_ARG (v); - - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptIDSeen); - /* - * Create a node representing an exception and add it to - * the enclosing scope - */ - if (s != NULL) { - e = idl_global->gen()->create_exception(n, p); - (void) s->fe_add_exception(e); - } - /* - * Push the exception scope on the scope stack - */ - idl_global->scopes()->push(e); - } break; -case 244: -# line 1990 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen); - } break; -case 245: -# line 1994 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen); - } break; -case 246: -# line 1998 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen); - /* - * Done with this exception. Pop its scope from the scope stack - */ - idl_global->scopes()->pop(); - } break; -case 247: -# line 2010 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen); - } break; -case 248: -# line 2014 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - UTL_ScopedName *n = - new UTL_ScopedName(new Identifier(tao_yypvt[-0].strval, 1, 0, I_FALSE), NULL); - AST_Operation *o = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_OpIDSeen); - /* - * Create a node representing an operation on an interface - * and add it to its enclosing scope - */ - if (s != NULL && tao_yypvt[-2].dcval != NULL) { - AST_Type *tp = AST_Type::narrow_from_decl(tao_yypvt[-2].dcval); - if (tp == NULL) { - idl_global->err()->not_a_type(tao_yypvt[-2].dcval); - } else if (tp->node_type() == AST_Decl::NT_except) { - idl_global->err()->not_a_type(tao_yypvt[-2].dcval); - } else { - o = idl_global->gen()->create_operation(tp, tao_yypvt[-3].ofval, n, p); - (void) s->fe_add_operation(o); - } - } - /* - * Push the operation scope onto the scopes stack - */ - idl_global->scopes()->push(o); - } break; -case 249: -# line 2043 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted); - } break; -case 250: -# line 2047 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted); - } break; -case 251: -# line 2051 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Operation *o = NULL; - - idl_global->set_parse_state(IDL_GlobalData::PS_OpCompleted); - /* - * Add exceptions and context to the operation - */ - if (s != NULL && s->scope_node_type() == AST_Decl::NT_op) { - o = AST_Operation::narrow_from_scope(s); - - if (tao_yypvt[-2].nlval != NULL && o != NULL) - (void) o->fe_add_exceptions(tao_yypvt[-2].nlval); - if (tao_yypvt[-0].slval != NULL) - (void) o->fe_add_context(tao_yypvt[-0].slval); - } - /* - * Done with this operation. Pop its scope from the scopes stack - */ - idl_global->scopes()->pop(); - } break; -case 252: -# line 2076 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); - tao_yyval.ofval = AST_Operation::OP_oneway; - } break; -case 253: -# line 2081 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); - tao_yyval.ofval = AST_Operation::OP_idempotent; - } break; -case 254: -# line 2086 "idl.tao_yy" -{ - tao_yyval.ofval = AST_Operation::OP_noflags; - } break; -case 256: -# line 2094 "idl.tao_yy" -{ - tao_yyval.dcval = - idl_global->scopes()->bottom() - ->lookup_primitive_type(AST_Expression::EV_void); - } break; -case 257: -# line 2103 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); - } break; -case 258: -# line 2107 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); - } break; -case 259: -# line 2111 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); - } break; -case 260: -# line 2116 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); - } break; -case 262: -# line 2126 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen); - } break; -case 265: -# line 2135 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen); - } break; -case 266: -# line 2139 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen); - } break; -case 267: -# line 2143 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Argument *a = NULL; - UTL_StrList *p = idl_global->pragmas(); - - idl_global->set_parse_state(IDL_GlobalData::PS_OpParDeclSeen); - /* - * Create a node representing an argument to an operation - * Add it to the enclosing scope (the operation scope) - */ - if (tao_yypvt[-2].dcval != NULL && tao_yypvt[-0].deval != NULL && s != NULL) { - AST_Type *tp = tao_yypvt[-0].deval->compose(tao_yypvt[-2].dcval); - if (tp != NULL) { - a = idl_global->gen()->create_argument(tao_yypvt[-4].dival, tp, tao_yypvt[-0].deval->name(), p); - (void) s->fe_add_argument(a); - } - } - } break; -case 268: -# line 2165 "idl.tao_yy" -{ - tao_yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(tao_yypvt[-0].etval); - } break; -case 270: -# line 2170 "idl.tao_yy" -{ - UTL_Scope *s = idl_global->scopes()->top_non_null(); - AST_Decl *d = NULL; - - if (s != NULL) - d = s->lookup_by_name(tao_yypvt[-0].idlist, I_TRUE); - if (d == NULL) - idl_global->err()->lookup_error(tao_yypvt[-0].idlist); - tao_yyval.dcval = d; - } break; -case 271: -# line 2184 "idl.tao_yy" -{ - tao_yyval.dival = AST_Argument::dir_IN; - } break; -case 272: -# line 2188 "idl.tao_yy" -{ - tao_yyval.dival = AST_Argument::dir_OUT; - } break; -case 273: -# line 2192 "idl.tao_yy" -{ - tao_yyval.dival = AST_Argument::dir_INOUT; - } break; -case 274: -# line 2199 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen); - } break; -case 275: -# line 2203 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen); - } break; -case 276: -# line 2208 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen); - tao_yyval.nlval = tao_yypvt[-1].nlval; - } break; -case 277: -# line 2213 "idl.tao_yy" -{ - tao_yyval.nlval = NULL; - } break; -case 278: -# line 2220 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen); - } break; -case 279: -# line 2224 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen); - } break; -case 280: -# line 2229 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen); - tao_yyval.slval = tao_yypvt[-1].slval; - } break; -case 281: -# line 2234 "idl.tao_yy" -{ - tao_yyval.slval = NULL; - } break; -case 282: -# line 2241 "idl.tao_yy" -{ - tao_yyval.slval = new UTL_StrList(tao_yypvt[-1].sval, tao_yypvt[-0].slval); - } break; -case 283: -# line 2249 "idl.tao_yy" -{ - idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen); - } break; -case 284: -# line 2253 "idl.tao_yy" -{ - if (tao_yypvt[-3].slval == NULL) - tao_yyval.slval = new UTL_StrList(tao_yypvt[-0].sval, NULL); - else { - tao_yypvt[-3].slval->nconc(new UTL_StrList(tao_yypvt[-0].sval, NULL)); - tao_yyval.slval = tao_yypvt[-3].slval; - } - } break; -case 285: -# line 2262 "idl.tao_yy" -{ - tao_yyval.slval = NULL; - } break; -# line 532 "/usr/ccs/bin/yaccpar" - } - goto tao_yystack; /* reset registers in driver code */ -} diff --git a/TAO/TAO_IDL/fe/y.tab.cpp.diff b/TAO/TAO_IDL/fe/y.tab.cpp.diff deleted file mode 100644 index 8f29bff9c8b..00000000000 --- a/TAO/TAO_IDL/fe/y.tab.cpp.diff +++ /dev/null @@ -1,127 +0,0 @@ ---- y.tab.cpp.orig Fri Jan 23 11:09:05 1998 -+++ y.tab.cpp Fri Jan 23 11:08:33 1998 -@@ -97,13 +97,13 @@ - - #ifdef __STDC__ - #include --#include -+// #include - #else - #include - #include - #endif - --#include -+// #include - - #ifdef __cplusplus - -@@ -494,52 +494,52 @@ - - yytoktype yytoks[] = - { -- "IDENTIFIER", 257, -- "IDL_CONST", 258, -- "IDL_MODULE", 259, -- "IDL_INTERFACE", 260, -- "IDL_TYPEDEF", 261, -- "IDL_LONG", 262, -- "IDL_SHORT", 263, -- "IDL_UNSIGNED", 264, -- "IDL_DOUBLE", 265, -- "IDL_FLOAT", 266, -- "IDL_CHAR", 267, -- "IDL_WCHAR", 268, -- "IDL_OCTET", 269, -- "IDL_BOOLEAN", 270, -- "IDL_ANY", 271, -- "IDL_STRUCT", 272, -- "IDL_UNION", 273, -- "IDL_SWITCH", 274, -- "IDL_ENUM", 275, -- "IDL_SEQUENCE", 276, -- "IDL_STRING", 277, -- "IDL_WSTRING", 278, -- "IDL_EXCEPTION", 279, -- "IDL_CASE", 280, -- "IDL_DEFAULT", 281, -- "IDL_READONLY", 282, -- "IDL_ATTRIBUTE", 283, -- "IDL_ONEWAY", 284, -- "IDL_IDEMPOTENT", 285, -- "IDL_VOID", 286, -- "IDL_IN", 287, -- "IDL_OUT", 288, -- "IDL_INOUT", 289, -- "IDL_RAISES", 290, -- "IDL_CONTEXT", 291, -- "IDL_NATIVE", 292, -- "IDL_INTEGER_LITERAL", 293, -- "IDL_STRING_LITERAL", 294, -- "IDL_CHARACTER_LITERAL", 295, -- "IDL_FLOATING_PT_LITERAL", 296, -- "IDL_TRUETOK", 297, -- "IDL_FALSETOK", 298, -- "IDL_SCOPE_DELIMITOR", 299, -- "IDL_LEFT_SHIFT", 300, -- "IDL_RIGHT_SHIFT", 301, -- "-unknown-", -1 /* ends search */ -+ {"IDENTIFIER", 257}, -+ {"IDL_CONST", 258}, -+ {"IDL_MODULE", 259}, -+ {"IDL_INTERFACE", 260}, -+ {"IDL_TYPEDEF", 261}, -+ {"IDL_LONG", 262}, -+ {"IDL_SHORT", 263}, -+ {"IDL_UNSIGNED", 264}, -+ {"IDL_DOUBLE", 265}, -+ {"IDL_FLOAT", 266}, -+ {"IDL_CHAR", 267}, -+ {"IDL_WCHAR", 268}, -+ {"IDL_OCTET", 269}, -+ {"IDL_BOOLEAN", 270}, -+ {"IDL_ANY", 271}, -+ {"IDL_STRUCT", 272}, -+ {"IDL_UNION", 273}, -+ {"IDL_SWITCH", 274}, -+ {"IDL_ENUM", 275}, -+ {"IDL_SEQUENCE", 276}, -+ {"IDL_STRING", 277}, -+ {"IDL_WSTRING", 278}, -+ {"IDL_EXCEPTION", 279}, -+ {"IDL_CASE", 280}, -+ {"IDL_DEFAULT", 281}, -+ {"IDL_READONLY", 282}, -+ {"IDL_ATTRIBUTE", 283}, -+ {"IDL_ONEWAY", 284}, -+ {"IDL_IDEMPOTENT", 285}, -+ {"IDL_VOID", 286}, -+ {"IDL_IN", 287}, -+ {"IDL_OUT", 288}, -+ {"IDL_INOUT", 289}, -+ {"IDL_RAISES", 290}, -+ {"IDL_CONTEXT", 291}, -+ {"IDL_NATIVE", 292}, -+ {"IDL_INTEGER_LITERAL", 293}, -+ {"IDL_STRING_LITERAL", 294}, -+ {"IDL_CHARACTER_LITERAL", 295}, -+ {"IDL_FLOATING_PT_LITERAL", 296}, -+ {"IDL_TRUETOK", 297}, -+ {"IDL_FALSETOK", 298}, -+ {"IDL_SCOPE_DELIMITOR", 299}, -+ {"IDL_LEFT_SHIFT", 300}, -+ {"IDL_RIGHT_SHIFT", 301}, -+ {"-unknown-", -1} /* ends search */ - }; - - char * yyreds[] = -@@ -837,7 +837,9 @@ - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - -+#if !defined (ACE_WIN32) - #pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" -+#endif /* ACE_WIN32 */ - - /* - ** Skeleton parser driver for yacc output diff --git a/TAO/TAO_IDL/fe/y.tab.h b/TAO/TAO_IDL/fe/y.tab.h deleted file mode 100644 index 88a7834e196..00000000000 --- a/TAO/TAO_IDL/fe/y.tab.h +++ /dev/null @@ -1,77 +0,0 @@ -// $Id$ -typedef union -#ifdef __cplusplus - TAO_YYSTYPE -#endif - { - AST_Decl *dcval; /* Decl value */ - UTL_StrList *slval; /* String list */ - UTL_NameList *nlval; /* Name list */ - UTL_ExprList *elval; /* Expression list */ - UTL_LabelList *llval; /* Label list */ - UTL_DeclList *dlval; /* Declaration list */ - FE_InterfaceHeader *ihval; /* Interface header */ - AST_Expression *exval; /* Expression value */ - AST_UnionLabel *ulval; /* Union label */ - AST_Field *ffval; /* Field value */ - AST_Expression::ExprType etval; /* Expression type */ - AST_Argument::Direction dival; /* Argument direction */ - AST_Operation::Flags ofval; /* Operation flags */ - FE_Declarator *deval; /* Declarator value */ - idl_bool bval; /* Boolean value */ - long ival; /* Long value */ - double dval; /* Double value */ - float fval; /* Float value */ - char cval; /* Char value */ - - String *sval; /* String value */ - char *strval; /* char * value */ - Identifier *idval; /* Identifier */ - UTL_IdList *idlist; /* Identifier list */ -} TAO_YYSTYPE; -extern TAO_YYSTYPE tao_yylval; -# define IDENTIFIER 257 -# define IDL_CONST 258 -# define IDL_MODULE 259 -# define IDL_INTERFACE 260 -# define IDL_TYPEDEF 261 -# define IDL_LONG 262 -# define IDL_SHORT 263 -# define IDL_UNSIGNED 264 -# define IDL_DOUBLE 265 -# define IDL_FLOAT 266 -# define IDL_CHAR 267 -# define IDL_WCHAR 268 -# define IDL_OCTET 269 -# define IDL_BOOLEAN 270 -# define IDL_ANY 271 -# define IDL_STRUCT 272 -# define IDL_UNION 273 -# define IDL_SWITCH 274 -# define IDL_ENUM 275 -# define IDL_SEQUENCE 276 -# define IDL_STRING 277 -# define IDL_WSTRING 278 -# define IDL_EXCEPTION 279 -# define IDL_CASE 280 -# define IDL_DEFAULT 281 -# define IDL_READONLY 282 -# define IDL_ATTRIBUTE 283 -# define IDL_ONEWAY 284 -# define IDL_IDEMPOTENT 285 -# define IDL_VOID 286 -# define IDL_IN 287 -# define IDL_OUT 288 -# define IDL_INOUT 289 -# define IDL_RAISES 290 -# define IDL_CONTEXT 291 -# define IDL_NATIVE 292 -# define IDL_INTEGER_LITERAL 293 -# define IDL_STRING_LITERAL 294 -# define IDL_CHARACTER_LITERAL 295 -# define IDL_FLOATING_PT_LITERAL 296 -# define IDL_TRUETOK 297 -# define IDL_FALSETOK 298 -# define IDL_SCOPE_DELIMITOR 299 -# define IDL_LEFT_SHIFT 300 -# define IDL_RIGHT_SHIFT 301 diff --git a/TAO/TAO_IDL/idl_specs/array.idl b/TAO/TAO_IDL/idl_specs/array.idl deleted file mode 100644 index 9a35397c1ba..00000000000 --- a/TAO/TAO_IDL/idl_specs/array.idl +++ /dev/null @@ -1,39 +0,0 @@ -// $Id$ - -typedef sequence vec10; -typedef char str22[22][2]; -typedef boolean boolarray[3][40]; - - -struct A { - long a1; - char a2[17]; - char a3[10][2]; -// vec10 a3; -}; - -struct B { - long b1; - A b2; -}; - -struct C { - long c1; - long c2; -}; - -typedef A A_matrix[2][3][4]; -typedef B B_matrix[2][3][4]; -typedef C C_matrix[2][3][4]; - -typedef A_matrix A_rmatrix[2][3][4][5]; - -interface A_i { - A op(in A a1, inout A a2, out A a3); - str22 op2(in str22 a1, inout str22 a2, out str22 a3); - str22 op3(in short a1[3][4], inout short a2[3][4], out short a3[4][4]); - A_matrix op4(in A a1, inout A a2, out A a3); - attribute str22 attribute_array; - void foo(in any x[3], out any y[4], inout any z[3]); -}; - diff --git a/TAO/TAO_IDL/idl_specs/constant.idl b/TAO/TAO_IDL/idl_specs/constant.idl deleted file mode 100644 index 3ccded681e1..00000000000 --- a/TAO/TAO_IDL/idl_specs/constant.idl +++ /dev/null @@ -1,31 +0,0 @@ -// $Id$ - -const short l = 4; - -enum N { zero, un , deux, trois }; - -exception E { - short cause ; - }; - -module M { - const short l = 4; - - enum N { zero, un , deux, trois }; - - exception E { - short cause ; - }; - - interface A { - const short l = 4; - - enum N { zero, un , deux, trois }; - - exception E { - short cause ; - }; - N foo(in N x, out N y, inout N z); - }; -}; - diff --git a/TAO/TAO_IDL/idl_specs/dif2.idl b/TAO/TAO_IDL/idl_specs/dif2.idl deleted file mode 100644 index b21c65d6d58..00000000000 --- a/TAO/TAO_IDL/idl_specs/dif2.idl +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - -/* A test interface for DIF1 */ - -interface ex1 -{ - void op0(); - float op1(in float f, out double d, inout long l); - double op2(in double d, out long l, inout short s); - long op3(in long l, out short s, inout unsigned long ul); - short op4(in short s, out unsigned long ul, inout unsigned short us); - unsigned long op5(inout unsigned long ul, in unsigned short us, out char c, in boolean b); - unsigned short op6(out unsigned short us, inout char c); -}; - -//interface ex3; - -interface ex2 : ex1 -{ - // operations continued from ex1 - char op7(in char c, out boolean b, inout octet o); - boolean op8(out boolean b, in octet o); - octet op9(inout octet o, out string s, in string <10> ls, inout long l); - string op10(in string s, out string <10> ls); - string <10> op11(inout string <10> ls, out long l); - long op12(in long l); -// ex3 op13(Environment *ev); -}; - -interface ex3 : ex1 -{ - // attributes - readonly attribute float float_attribute; - attribute double double_attribute; - readonly attribute long long_attribute; - attribute short short_attribute; - readonly attribute unsigned long unsigned_long_attribute; - -}; - -interface ex4 : ex2, ex3 -{ - attribute unsigned short unsigned_short_attribute; - readonly attribute char char_attribute; - attribute boolean boolean_attribute; - readonly attribute octet octet_attribute; - attribute string string_attribute; - readonly attribute string <10> limited_string_attribute; - readonly attribute ex4 an_object_attribute; -}; diff --git a/TAO/TAO_IDL/idl_specs/inherit.idl b/TAO/TAO_IDL/idl_specs/inherit.idl deleted file mode 100644 index 390f8d7e98e..00000000000 --- a/TAO/TAO_IDL/idl_specs/inherit.idl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -interface one { - void op_one(); -}; -interface two : one { - void op_two(); -}; -interface three : one { - void op_three(); -}; -interface four : two, three { - void op_four(); -}; - -interface five : four, three, two { - void op_five(); -}; - diff --git a/TAO/TAO_IDL/idl_specs/module.idl b/TAO/TAO_IDL/idl_specs/module.idl deleted file mode 100644 index d40f45963a1..00000000000 --- a/TAO/TAO_IDL/idl_specs/module.idl +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ - -module mod1 -{ - module mod2 - { - interface ex1 - { - attribute long l1; - readonly attribute long l2; - - long m1(in long a); - }; - - interface ex2 : ex1 - { - attribute long l3; - - long m2(in long a, out long b); - }; - }; -}; diff --git a/TAO/TAO_IDL/idl_specs/primtypes.idl b/TAO/TAO_IDL/idl_specs/primtypes.idl deleted file mode 100644 index 63c6a27d809..00000000000 --- a/TAO/TAO_IDL/idl_specs/primtypes.idl +++ /dev/null @@ -1,25 +0,0 @@ -// $Id$ - -interface ex1 -{ - attribute long l1; - long m1(in long a); - ex1 mtypes( - in long a1, inout long a2, out long a3, - in unsigned long b1, inout unsigned long b2, out unsigned long b3, - in short c1,inout short c2, out short c3, - in unsigned short d1, inout unsigned short d2, out unsigned short d3, - in float e1, inout float e2, out float e3, - in double f1, inout double f2, out double f3, - in char g1, inout char g2, out char g3 - ); - -}; - -interface ex2 : ex1 -{ - readonly attribute long l2; - - long m2(in long a, out long b); - void mv(); -}; diff --git a/TAO/TAO_IDL/idl_specs/sequence.idl b/TAO/TAO_IDL/idl_specs/sequence.idl deleted file mode 100644 index 7a86a2cf481..00000000000 --- a/TAO/TAO_IDL/idl_specs/sequence.idl +++ /dev/null @@ -1,27 +0,0 @@ -// $Id$ - -typedef sequence vec10; -typedef sequence c20; -typedef sequence cc23; -typedef sequence c24; -typedef sequence< sequence, 10> c30; -struct TProgram { - string path; - sequence argv; - sequence envp; -}; - -struct foo { - long f1; - char f2; -}; - -typedef foo foo_ar[20]; -typedef sequence f_unbounded; -typedef sequence f_ar_unbounded; - -interface TestSeq { - attribute f_unbounded fattr; - typedef sequence also_vec10; - vec10 op(in also_vec10 a, out vec10 b, inout sequence c); -}; diff --git a/TAO/TAO_IDL/idl_specs/simple.idl b/TAO/TAO_IDL/idl_specs/simple.idl deleted file mode 100644 index b10cdd73668..00000000000 --- a/TAO/TAO_IDL/idl_specs/simple.idl +++ /dev/null @@ -1,18 +0,0 @@ -// $Id$ - -typedef sequence vec10; - -exception simple_error { - long reason; -}; - -interface simple { - long op(in long a, out simple b, inout long c) raises (simple_error); -}; - -interface simple2 : simple { - exception simple2_error { - long reason2; - }; - long op2(in long a, in simple b, out simple2 c) raises (simple2_error); -}; diff --git a/TAO/TAO_IDL/idl_specs/simple2.idl b/TAO/TAO_IDL/idl_specs/simple2.idl deleted file mode 100644 index 8f9202f9485..00000000000 --- a/TAO/TAO_IDL/idl_specs/simple2.idl +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "simple.idl" - - -interface simple3 : simple2 { - exception OVERFLOW { - long a; - string msg; - }; - exception UNDERFLOW { - long b; - string msg; - }; - exception BADNUM { - vec10 c; - }; - exception USERERROR { - any reason; - }; - long op3(in long a, out simple3 b, out simple2 c, out simple d) - raises (OVERFLOW, UNDERFLOW, BADNUM); - any op4(in any x, inout any y, out any z) - raises(UNDERFLOW); - - oneway void op5() - raises(USERERROR); -}; diff --git a/TAO/TAO_IDL/idl_specs/struct.idl b/TAO/TAO_IDL/idl_specs/struct.idl deleted file mode 100644 index a098efd9b12..00000000000 --- a/TAO/TAO_IDL/idl_specs/struct.idl +++ /dev/null @@ -1,54 +0,0 @@ -// $Id$ - -struct bar { - long b1; - long b2; - string<20> b3; -}; - -struct bar2 { - long b3; - bar b4; -}; - -struct bar3 { - long b1; - long b2; - long b3; -}; - -struct bar4 { - long b1; - bar2 b2; - long b3; - bar3 b4; - long b5; -}; - - -interface foo { - long op(in bar a, out bar2 b); -}; -interface foo2 : foo { - bar op2(in bar2 a); - long op3(in long a, out char b); -}; - - -typedef unsigned short Coord; - -struct CellPos { - Coord row; - Coord col; -}; - -struct CellPos2 { - unsigned short row; - unsigned short col; -}; - -struct CellPos3 { - Coord row; - Coord col; - unsigned short col2; -}; diff --git a/TAO/TAO_IDL/idl_specs/union.idl b/TAO/TAO_IDL/idl_specs/union.idl deleted file mode 100644 index 587dae3a9c9..00000000000 --- a/TAO/TAO_IDL/idl_specs/union.idl +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -struct Bar { - long b1; - char b2; -}; - -union Foo switch (long) { -case 1: long x; -case 2: Bar y; -default: char z; -}; - - -union Foo2 switch (char) { - case 'a': long x; - case 'b': Foo y; -}; - -interface a { - struct astruct { - Foo2 a1; - Foo a2; - Bar a3; - }; - Foo2 opA(in astruct b); -}; - diff --git a/TAO/TAO_IDL/idl_specs/union2.idl b/TAO/TAO_IDL/idl_specs/union2.idl deleted file mode 100644 index 843980ac048..00000000000 --- a/TAO/TAO_IDL/idl_specs/union2.idl +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -enum FooDisc { - FOO1, - FOO2 -}; -union Foo switch (FooDisc) { -case FOO1: long x; -case FOO2: string y; -default: char z; -}; - - -struct Bar { - enum BarDisc { - BAR1, - BAR2 - } kind; - union Foo switch (BarDisc) { - case BAR1: long x; - case BAR2: long y; - } addr; -}; diff --git a/TAO/TAO_IDL/include/ast.h b/TAO/TAO_IDL/include/ast.h deleted file mode 100644 index fc05323e075..00000000000 --- a/TAO/TAO_IDL/include/ast.h +++ /dev/null @@ -1,120 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_AST_HH -#define _AST_AST_HH - -// ast.h -// -// Defines the classes which constitute the agreement between the CFE -// and BEs. - -/* -** DEPENDENCIES: NONE -** -** USE: Included from idl.hh -*/ - -#include "utl_scoped_name.h" // Define UTL_ScopedName - -#include "ast_decl.h" // class AST_Decl - -#include "ast_expression.h" // class AST_Expression - -#include "utl_scope.h" // class UTL_Scope - -#include "ast_type.h" // class AST_Type -#include "ast_concrete_type.h" // class AST_ConcreteType -#include "ast_predefined_type.h"// class AST_PredefinedType -#include "ast_module.h" // class AST_Module -#include "ast_root.h" // class AST_Root -#include "ast_interface.h" // class AST_Interface -#include "ast_interface_fwd.h" // class AST_InterfaceFwd -#include "ast_structure.h" // class AST_Structure -#include "ast_exception.h" // class AST_Exception -#include "ast_enum.h" // class AST_Enum -#include "ast_operation.h" // class AST_Operation -#include "ast_field.h" // class AST_Field -#include "ast_argument.h" // class AST_Argument -#include "ast_attribute.h" // class AST_Attribute -#include "ast_union.h" // class AST_Union -#include "ast_union_branch.h" // class AST_UnionBranch -#include "ast_union_label.h" // class AST_UnionLabel -#include "ast_constant.h" // class AST_Constant -#include "ast_enum_val.h" // class AST_EnumVal -#include "ast_array.h" // class AST_Array -#include "ast_sequence.h" // class AST_Sequence -#include "ast_string.h" // class AST_String -#include "ast_typedef.h" // class AST_Typedef -#include "ast_native.h" // class AST_Native - -#include "utl_list.h" // class UTL_List -#include "utl_strlist.h" // class UTL_StrList -#include "utl_exprlist.h" // class UTL_ExprList - -#include "ast_generator.h" // class AST_Generator - -#endif // _AST_AST_HH diff --git a/TAO/TAO_IDL/include/ast_argument.h b/TAO/TAO_IDL/include/ast_argument.h deleted file mode 100644 index 1f65d0ca9ac..00000000000 --- a/TAO/TAO_IDL/include/ast_argument.h +++ /dev/null @@ -1,115 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ARGUMENT_AST_ARGUMENT_HH -#define _AST_ARGUMENT_AST_ARGUMENT_HH - -// Representation of argument to operation: -// -// An argument is a field with a direction attached - -/* -** DEPENDENCIES: ast_field.hh, utl_scoped_name.hh, ast_type.hh -** utl_strlist.hh, ast_decl.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "ast_field.h" - - -class AST_Argument : public virtual AST_Field -{ -public: - // Define enum with values denoting argument passing directions - enum Direction {dir_IN, dir_OUT, dir_INOUT}; - - // Operations - - // Constructor(s) - AST_Argument(); - AST_Argument(Direction direction, AST_Type *ft, UTL_ScopedName *n, - UTL_StrList *p); - virtual ~AST_Argument() {} - - // Data Accessors - Direction direction(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Argument, AST_Field); - DEF_NARROW_FROM_DECL(AST_Argument); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - const Direction pd_direction; // Argument direction -}; - -#endif // _AST_ARGUMENT_AST_ARGUMENT_HH diff --git a/TAO/TAO_IDL/include/ast_array.h b/TAO/TAO_IDL/include/ast_array.h deleted file mode 100644 index 86d2387000b..00000000000 --- a/TAO/TAO_IDL/include/ast_array.h +++ /dev/null @@ -1,117 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ARRAY_AST_ARRAY_HH -#define _AST_ARRAY_AST_ARRAY_HH - -// Representation of array declaration: -// -// An array is a combination of a list of dimensions and a base type - -/* -** DEPENDENCIES: ast_concrete_type.hh, utl_exprlist.hh, ast_type.hh, -** ast_decl.hh -** -** USE: Included from ast.hh -*/ - -class AST_Array : public virtual AST_ConcreteType { -public: - // Operations - - // Constructor(s) - AST_Array(); - AST_Array(UTL_ScopedName *n, unsigned long ndims, UTL_ExprList *dims); - virtual ~AST_Array() {} - - // Data Accessors - unsigned long n_dims(); - AST_Expression **dims(); - void set_dims(AST_Expression **, unsigned long); - AST_Type *base_type(); - void set_base_type(AST_Type *nbt); - - // Narrowing - DEF_NARROW_METHODS1(AST_Array, AST_ConcreteType); - DEF_NARROW_FROM_DECL(AST_Array); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - unsigned long pd_n_dims; // How many dimensions? - AST_Expression **pd_dims; // Their expressions - AST_Type *pd_base_type; // Base type of array - - // Operations - - // Compute how many dimensions - AST_Expression **compute_dims(UTL_ExprList *dims, - unsigned long ndims); -}; - -#endif // _AST_ARRAY_AST_ARRAY_HH diff --git a/TAO/TAO_IDL/include/ast_attribute.h b/TAO/TAO_IDL/include/ast_attribute.h deleted file mode 100644 index 6abc58967d6..00000000000 --- a/TAO/TAO_IDL/include/ast_attribute.h +++ /dev/null @@ -1,109 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ATTRIBUTE_AST_ATTRIBUTE_HH -#define _AST_ATTRIBUTE_AST_ATTRIBUTE_HH - -// Representation of attribute declaration: -// -// An attribute is a field with a readonly property - -/* -** DEPENDENCIES: ast_field.hh, ast_type.hh, utl_scoped_name.hh, -** utl_strlist.hh, ast_decl.hh -** -** USE: Included from ast.h -*/ - -class AST_Attribute : public virtual AST_Field -{ -public: - // Operations - - // Constructor(s) - AST_Attribute(); - AST_Attribute(idl_bool readonly, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual ~AST_Attribute() {} - - // Data Accessors - idl_bool readonly(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Attribute, AST_Field); - DEF_NARROW_FROM_DECL(AST_Attribute); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - const idl_bool pd_readonly; // Is attribute read-only? -}; - -#endif // _AST_ATTRIBUTE_AST_ATTRIBUTE_HH diff --git a/TAO/TAO_IDL/include/ast_concrete_type.h b/TAO/TAO_IDL/include/ast_concrete_type.h deleted file mode 100644 index 410c2eabe16..00000000000 --- a/TAO/TAO_IDL/include/ast_concrete_type.h +++ /dev/null @@ -1,95 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_CONCRETE_TYPE_AST_CONCRETE_TYPE_HH -#define _AST_CONCRETE_TYPE_AST_CONCRETE_TYPE_HH - -// Class for all concrete types -// -// This is useful to group together IDL types other than objects - -/* -** DEPENDENCIES: ast_type.hh, ast_decl.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_ConcreteType : public virtual AST_Type -{ -public: - // Operations - - // Constructor(s) - AST_ConcreteType(); - AST_ConcreteType(AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_ConcreteType() {} - - // Narrowing - DEF_NARROW_METHODS1(AST_ConcreteType, AST_Type); - DEF_NARROW_FROM_DECL(AST_ConcreteType); -}; - -#endif // _AST_CONCRETE_TYPE_AST_CONCRETE_TYPE_HH diff --git a/TAO/TAO_IDL/include/ast_constant.h b/TAO/TAO_IDL/include/ast_constant.h deleted file mode 100644 index 2f663c60a1e..00000000000 --- a/TAO/TAO_IDL/include/ast_constant.h +++ /dev/null @@ -1,117 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_CONSTANT_AST_CONSTANT_HH -#define _AST_CONSTANT_AST_CONSTANT_HH - -// Representation of constant declaration: -// -// NOTE: Part of the job of the constructor is to convert -// the AST_Constant_val it received to the type denoted by -// the ConstantType it received. -// -// NOTE: There are two constructors here, one that gets a NodeType -// parameter. This constructor is used from AST_EnumVal, which is -// just a glorified AST_Constant - -/* -** DEPENDENCIES: ast_decl.hh, ast_expression.hh, utl_scoped_name.hh, -** utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Constant : public virtual AST_Decl -{ -public: - // Operations - - // Constructor(s) - AST_Constant(); - AST_Constant(AST_Expression::ExprType et, AST_Decl::NodeType nt, - AST_Expression *ev, UTL_ScopedName *n, UTL_StrList *p); - AST_Constant(AST_Expression::ExprType et, AST_Expression *ev, - UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Constant() {} - - // Data Accessors - AST_Expression *constant_value(); - AST_Expression::ExprType et(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Constant, AST_Decl); - DEF_NARROW_FROM_DECL(AST_Constant); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Expression *pd_constant_value; // The value - AST_Expression::ExprType pd_et; // Its expr type -}; - -#endif // _AST_CONSTANT_AST_CONSTANT_HH diff --git a/TAO/TAO_IDL/include/ast_decl.h b/TAO/TAO_IDL/include/ast_decl.h deleted file mode 100644 index 1177756ce85..00000000000 --- a/TAO/TAO_IDL/include/ast_decl.h +++ /dev/null @@ -1,190 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_DECL_AST_DECL_HH -#define _AST_DECL_AST_DECL_HH - -// Rock bottom of AST class hierarchy -// -// This class is inherited by all classes which represent named entities -// in IDL. It implements the line and file recording mechanism and also -// records the type of the node. This may be useful for BEs to be able -// to distinguish the real type of a node given only a superclass. - -/* -** DEPENDENCIES: utl_scope.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "idl_bool.h" -#include "utl_scoped_name.h" -#include "utl_string.h" - -// This class is needed (only for g++) to get around a bug in g++ which -// causes virtual operations to not be looked up correctly if an operation -// is defined in more than one virtual public base class. This class makes -// the hierarchy rooted in a single class, thereby eliminating the situation -// that causes the bug to appear - -class COMMON_Base -{ - public: - // Narrowing - DEF_NARROW_METHODS0(COMMON_Base); -}; - -class AST_Decl : public virtual COMMON_Base -{ -public: - // Enum defining the different kinds of AST nodes - enum NodeType { - NT_module // Denotes a module - , NT_root // Denotes the root of AST - , NT_interface // Denotes an interface - , NT_interface_fwd // Fwd declared interface - , NT_const // Denotes a constant - , NT_except // Denotes an exception - , NT_attr // Denotes an attribute - , NT_op // Denotes an operation - , NT_argument // Denotes an op. argument - , NT_union // Denotes a union - , NT_union_branch // Denotes a union branch - , NT_struct // Denotes a structure - , NT_field // Denotes a field in structure - , NT_enum // Denotes an enumeration - , NT_enum_val // Denotes an enum. value - , NT_string // Denotes an IDL string - , NT_array // Denotes an IDL array - , NT_sequence // Denotes an IDL sequence - , NT_typedef // Denotes a typedef - , NT_pre_defined // Denotes a predefined type - , NT_native // Denotes a native type - // dependent on the programming - // language - }; - - // Operations - - // Constructor(s) - AST_Decl(); - AST_Decl(NodeType type, UTL_ScopedName *n, UTL_StrList *pragmas); - virtual ~AST_Decl() {} - - // Data Accessors - idl_bool imported(); - void set_imported(idl_bool is_it); - idl_bool in_main_file(); - void set_in_main_file(idl_bool is_it); - UTL_Scope *defined_in(); - void set_defined_in(UTL_Scope *); - NodeType node_type(); - long line(); - void set_line(long l); - String *file_name(); - void set_file_name(String *s); - UTL_ScopedName *name(); - void set_name(UTL_ScopedName *n); - Identifier *local_name(); - void add_pragmas(UTL_StrList *p); - UTL_StrList *pragmas(); - idl_bool added(); - void set_added(idl_bool is_it); - - // Narrowing - DEF_NARROW_METHODS0(AST_Decl); - DEF_NARROW_FROM_DECL(AST_Decl); - - // AST Dumping - virtual void dump(ostream &o); - - // Other operations - - // Return TRUE if "this" has "s" as an ancestor - idl_bool has_ancestor(AST_Decl *s); - -private: - // Data - idl_bool pd_imported; // Imported? - idl_bool pd_in_main_file; // Defined in main file? - UTL_Scope *pd_defined_in; // Scope - NodeType pd_node_type; // What kind of node - long pd_line; // Line defined in - String *pd_file_name; // What file defined in - UTL_ScopedName *pd_name; // As given - Identifier *pd_local_name; // Name in scope - UTL_StrList *pd_pragmas; // Pragmas - idl_bool pd_added; // already added - - // Operations - - // Compute the full name of an AST node - void compute_full_name(UTL_ScopedName *n); -}; - -#endif // _AST_DECL_AST_DECL_HH diff --git a/TAO/TAO_IDL/include/ast_enum.h b/TAO/TAO_IDL/include/ast_enum.h deleted file mode 100644 index 40189295737..00000000000 --- a/TAO/TAO_IDL/include/ast_enum.h +++ /dev/null @@ -1,115 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ENUM_AST_ENUM_HH -#define _AST_ENUM_AST_ENUM_HH - -// Representation of enum: - -/* -** DEPENDENCIES: ast_concrete_type.hh, utl_scope.hh, ast_enum_val.hh, -** utl_scoped_name.hh, utl_strlist.hh, ast_expression.hh, -** -** USE: Included from ast.hh -*/ - -class AST_Enum : public virtual AST_ConcreteType, public virtual UTL_Scope -{ -public: - // Operations - - // Constructor(s) - AST_Enum(); - AST_Enum(UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Enum() {} - - // Narrowing - DEF_NARROW_METHODS2(AST_Enum, AST_ConcreteType, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Enum); - DEF_NARROW_FROM_SCOPE(AST_Enum); - - // AST Dumping - virtual void dump(ostream &); - - // Other operations - - // Look up an AST_EnumVal by value - virtual AST_EnumVal *lookup_by_value(const AST_Expression *v); - - // Get value to be assigned to next enumerator - virtual unsigned long next_enum_val(); - -private: - // Data - unsigned long pd_enum_counter; // Value for next - // enumerator - // Scope management - friend int tao_yyparse(); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - -}; - -#endif // _AST_ENUM_AST_ENUM_HH diff --git a/TAO/TAO_IDL/include/ast_enum_val.h b/TAO/TAO_IDL/include/ast_enum_val.h deleted file mode 100644 index 6851474b641..00000000000 --- a/TAO/TAO_IDL/include/ast_enum_val.h +++ /dev/null @@ -1,99 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ENUM_VAL_AST_ENUM_VAL_HH -#define _AST_ENUM_VAL_AST_ENUM_VAL_HH - -// Representation of enumerator in enum: -// -// An enumerator is a constant of type unsigned long - -/* -** DEPENDENCIES: ast_constant.hh, utl_scoped_name.hh, utl_strlist.hh, -** ast_decl.hh -** -** USE: Included from ast.hh -*/ - -class AST_EnumVal : public virtual AST_Constant -{ -public: - // Operations - - // Constructor(s) - AST_EnumVal(); - AST_EnumVal(unsigned long v, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_EnumVal() {} - - // Narrowing - DEF_NARROW_METHODS1(AST_EnumVal, AST_Constant); - DEF_NARROW_FROM_DECL(AST_EnumVal); - - // AST Dumping - virtual void dump(ostream &); -}; - -#endif // _AST_ENUM_VAL_AST_ENUM_VAL_HH diff --git a/TAO/TAO_IDL/include/ast_exception.h b/TAO/TAO_IDL/include/ast_exception.h deleted file mode 100644 index f3a667bd8b7..00000000000 --- a/TAO/TAO_IDL/include/ast_exception.h +++ /dev/null @@ -1,118 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_EXCEPTION_AST_EXCEPTION_HH -#define _AST_EXCEPTION_AST_EXCEPTION_HH - -// Representation of exception -// -// NOTE: An exception is not a type according to the CORBAS 1.1 -// -// NOTE: add(AST_ConcreteType *) is defined here because an exception -// can contain locally defined types in addition to fields. -// -// NOTE: add(AST_EnumValue *) is defined here because enums can -// be defined manifest locally; the constants defined in these -// enums are inserted in the enclosing scope. It is unlikely that -// a BE writer will need to overload this function in AST_Exception. - -/* -** DEPENDENCIES: ast_decl.hh, ast_structure.hh, utl_scope.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Exception : public virtual AST_Structure -{ -public: - // Operations - - // Constructor(s) - AST_Exception(); - AST_Exception(UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Exception() {} - - // Narrowing - DEF_NARROW_METHODS1(AST_Exception, AST_Structure); - DEF_NARROW_FROM_DECL(AST_Exception); - DEF_NARROW_FROM_SCOPE(AST_Exception); - - // AST Dumping - virtual void dump(ostream &o); - -private: - friend int tao_yyparse(); - // Scope Management Protocol - - virtual AST_Field *fe_add_field(AST_Field *f); - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - -}; - -#endif // _AST_EXCEPTION_AST_EXCEPTION_HH diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h deleted file mode 100644 index db3bd7abc41..00000000000 --- a/TAO/TAO_IDL/include/ast_expression.h +++ /dev/null @@ -1,231 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_EXPRESSION_AST_EXPRESSION_HH -#define _AST_EXPRESSION_AST_EXPRESSION_HH - -// Representation of expression values - -/* -** DEPENDENCIES: NONE -** -** USE: Included from ast.hh -*/ - -// An expression (and maybe its value, if computed) -class AST_Expression { -public: - // Enum to define all the different operators to combine expressions - enum ExprComb { - EC_add // '+' - , EC_minus // '-' - , EC_mul // '*' - , EC_div // '/' - , EC_mod // '%' - , EC_or // '|' - , EC_xor // '^' - , EC_and // '&' - , EC_left // '<<' - , EC_right // '>>' - , EC_u_plus // unary '+' - , EC_u_minus // unary '-' - , EC_bit_neg // '~' - , EC_none // No operator (missing) - , EC_symbol // a symbol (function or constant name) - }; - - // Enum to define the different kinds of evaluation possible - // Extend this for more kinds of evaluation as required - enum EvalKind { - EK_const // Must evaluate to constant - , EK_positive_int // Must evaluate to positive integer - }; - - // Enum to define expression type - enum ExprType { - EV_short // Expression value is short - , EV_ushort // Expression value is unsigned short - , EV_long // Expression value is long - , EV_ulong // Expression value is unsigned long - , EV_longlong // Expression value is long long - , EV_ulonglong // Expression value is unsigned long long - , EV_float // Expression value is 32-bit float - , EV_double // Expression value is 64-bit float - , EV_longdouble // Expression value is 128-bit float - , EV_char // Expression value is char - , EV_wchar // Expression value is wide char - , EV_octet // Expression value is unsigned char - , EV_bool // Expression value is boolean - , EV_string // Expression value is char * - , EV_wstring // Expression value is wchar_t * - , EV_any // Expression value is any of above - , EV_void // Expression value is void (absent) - , EV_none // Expression value is missing - }; - - // Structure to descrive value of constant expression and its type - struct AST_ExprValue { - union { - short sval; // Contains short expression value - unsigned short usval; // Contains unsigned short expr value - long lval; // Contains long expression value - unsigned long ulval; // Contains unsigned long expr value - unsigned long bval; // Contains boolean expression value - float fval; // Contains 32-bit float expr value - double dval; // Contains 64-bit float expr value - char cval; // Contains char expression value - unsigned char oval; // Contains unsigned char expr value - String *strval; // Contains String * expr value - unsigned long eval; // Contains enumeration value - } u; - ExprType et; - }; - - // Operations - - // Constructor(s) - AST_Expression(AST_Expression *v, ExprType t); - - AST_Expression(ExprComb c, AST_Expression *v1, AST_Expression *v2); - - AST_Expression(short s); - AST_Expression(unsigned short us); - AST_Expression(long l); - AST_Expression(long l, ExprType t); - AST_Expression(unsigned long ul); - AST_Expression(float f); - AST_Expression(double d); - AST_Expression(char c); - AST_Expression(unsigned char uc); - AST_Expression(String *s); - AST_Expression(UTL_ScopedName *n); - virtual ~AST_Expression () {} - - // Data Accessors - UTL_Scope *defined_in(); - void set_defined_in(UTL_Scope *d); - long line(); - void set_line(long l); - String *file_name(); - void set_file_name(String *f); - ExprComb ec(); - void set_ec(ExprComb new_ec); - AST_ExprValue *ev(); - void set_ev(AST_ExprValue *new_ev); - AST_Expression *v1(); - void set_v1(AST_Expression *e); - AST_Expression *v2(); - void set_v2(AST_Expression *e); - UTL_ScopedName *n(); - void set_n(UTL_ScopedName *new_n); - - // AST Dumping - virtual void dump(ostream &o); - - // Other operations - - // Evaluation and value coercion - virtual AST_ExprValue *eval(EvalKind ek); - virtual AST_ExprValue *coerce(ExprType t); - - // Evaluate then store value inside this AST_Expression - virtual void evaluate(EvalKind ek); - - // Compare to AST_Expressions - virtual long operator==(AST_Expression *vc); - virtual long compare(AST_Expression *vc); - -protected: - // Evaluate different sets of operators - virtual AST_ExprValue *eval_bin_op(EvalKind ek); - virtual AST_ExprValue *eval_bit_op(EvalKind ek); - virtual AST_ExprValue *eval_un_op(EvalKind ek); - virtual AST_ExprValue *eval_symbol(EvalKind ek); - -private: - // Data - UTL_Scope *pd_defined_in; // Scope - long pd_line; // Line defined in - String *pd_file_name; // What file defined in - - ExprComb pd_ec; // What combinator - AST_ExprValue *pd_ev; // computed value - AST_Expression *pd_v1; // 1st sub-expression - AST_Expression *pd_v2; // 2nd sub-expression - UTL_ScopedName *pd_n; // symbolic name (if any) - - // Operations - - // Fill out the lineno, filename and definition scope details - void fill_definition_details(); - - // Internal evaluation - virtual AST_ExprValue *eval_internal(EvalKind ek); -}; - -#endif // _AST_EXPR_VAL_AST_EXPR_VAL_HH - - diff --git a/TAO/TAO_IDL/include/ast_extern.h b/TAO/TAO_IDL/include/ast_extern.h deleted file mode 100644 index f344e371b83..00000000000 --- a/TAO/TAO_IDL/include/ast_extern.h +++ /dev/null @@ -1,93 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_EXTERN_AST_EXTERN_HH -#define _AST_EXTERN_AST_EXTERN_HH - -// ast_extern.hh -// -// Declares all global functions for the AST - -/* -** DEPENDENCIES: none -** -** USE: Included from idl_extern.hh -*/ - -// Functions: - -// Two functions are provided for storing AST nodes representing fwd -// declared interfaces, and for checking the stored nodes after parsing -// the entire AST. The check ensures that for each fwd declared interface -// the full definition was also seen. - -extern void AST_record_fwd_interface(AST_InterfaceFwd *i); -extern void AST_check_fwd_interface(); - -extern idl_bool AST_illegal_recursive_type(AST_Decl *t); - -#endif // _AST_EXTERN_AST_EXTERN_HH - diff --git a/TAO/TAO_IDL/include/ast_field.h b/TAO/TAO_IDL/include/ast_field.h deleted file mode 100644 index b3c6f04cd8c..00000000000 --- a/TAO/TAO_IDL/include/ast_field.h +++ /dev/null @@ -1,119 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_FIELD_AST_FIELD_HH -#define _AST_FIELD_AST_FIELD_HH - -// Representation of a generic field -// -// Used as member in structures, exceptions and unions, and as a base -// type for attributes and arguments to operations -// -// NOTE: There are two constructors here, the first is used when field -// is used directly inside a structure, the second when it is used as -// the base type for attributes and operations. - -/* -** DEPENDENCIES: ast_decl.hh, ast_type.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "ast_decl.h" - - -class AST_Field : public virtual AST_Decl -{ -public: - // Operations - - // Constructor(s) - AST_Field(); - AST_Field(AST_Type *field_type, - UTL_ScopedName *n, UTL_StrList *p); - AST_Field(AST_Decl::NodeType nt, AST_Type *field_type, - UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Field() {} - - // Data Accessors - AST_Type *field_type(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Field, AST_Decl); - DEF_NARROW_FROM_DECL(AST_Field); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Type *pd_field_type; // Base type for field - -}; - -#endif // _AST_FIELD_AST_FIELD_HH diff --git a/TAO/TAO_IDL/include/ast_generator.h b/TAO/TAO_IDL/include/ast_generator.h deleted file mode 100644 index 6733bbad3e8..00000000000 --- a/TAO/TAO_IDL/include/ast_generator.h +++ /dev/null @@ -1,219 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_GENERATOR_AST_GENERATOR_HH -#define _AST_GENERATOR_AST_GENERATOR_HH - -// ast_generator.h -// -// Defines base class for generators - -/* -** DEPENDENCIES: ast_predefined_type.hh utl_scoped_name.hh utl_strlist.hh -** ast_module.hh ast_root.hh ast_interface.hh -** ast_interface_fwd.hh ast_exception.hh ast_structure.hh -** ast_enum.hh ast_operation.hh ast_type.hh ast_field.hh -** ast_argument.hh ast_attribute.hh ast_union.hh -** ast_concrete_type.hh ast_union_branch.hh ast_union_label.hh -** ast_expression.hh ast_enum_val.hh ast_array.hh -** ast_sequence.hh ast_string.hh ast_typedef.hh -** -** USE: Included from ast.hh -*/ - -class AST_Generator -{ -public: - // Operations - - // Create a node representing a predefined type - virtual AST_PredefinedType - *create_predefined_type(AST_PredefinedType::PredefinedType t, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a module - virtual AST_Module *create_module(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a module which is the root of an AST - virtual AST_Root *create_root(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an interface - virtual AST_Interface *create_interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p); - - // Create a node representing a forward declaration of an interface - virtual AST_InterfaceFwd *create_interface_fwd(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an exception - virtual AST_Exception *create_exception(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a structure - virtual AST_Structure *create_structure(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an enum - virtual AST_Enum *create_enum(UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an operation on an interface - virtual AST_Operation *create_operation(AST_Type *rt, - AST_Operation::Flags fl, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a field in a structure, exception or - // union - virtual AST_Field *create_field(AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an argument to an operation - virtual AST_Argument *create_argument(AST_Argument::Direction d, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an attribute - virtual AST_Attribute *create_attribute(idl_bool ro, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a union - virtual AST_Union *create_union(AST_ConcreteType *dt, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing one branch in a union - virtual AST_UnionBranch *create_union_branch(AST_UnionLabel *lab, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a label on a union branch - virtual AST_UnionLabel *create_union_label(AST_UnionLabel::UnionLabel ul, - AST_Expression *lv); - - // Create a node representing a constant - virtual AST_Constant *create_constant(AST_Expression::ExprType et, - AST_Expression *ev, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create various kinds of nodes representing expressions - virtual AST_Expression *create_expr(UTL_ScopedName *n); - virtual AST_Expression *create_expr(AST_Expression *v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(AST_Expression::ExprComb c, - AST_Expression *v1, - AST_Expression *v2); - virtual AST_Expression *create_expr(long v); - virtual AST_Expression *create_expr(long v, - AST_Expression::ExprType t); - virtual AST_Expression *create_expr(unsigned long v); - virtual AST_Expression *create_expr(String *s); - virtual AST_Expression *create_expr(char c); - virtual AST_Expression *create_expr(double d); - - // Create a node representing an enumerator - virtual AST_EnumVal *create_enum_val(unsigned long v, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing an array type - virtual AST_Array *create_array(UTL_ScopedName *n, - unsigned long ndims, - UTL_ExprList *dims); - - // Create a node representing a sequence type - virtual AST_Sequence *create_sequence(AST_Expression *v, - AST_Type *bt); - - // Create a node representing a string type - virtual AST_String *create_string(AST_Expression *v); - - // Create a node representing a wide string type - virtual AST_String *create_wstring(AST_Expression *v); - - // Create a node representing a type renaming (typedef) - virtual AST_Typedef *create_typedef(AST_Type *bt, - UTL_ScopedName *n, - UTL_StrList *p); - - // Create a node representing a native - virtual AST_Native *create_native (UTL_ScopedName *n, - UTL_StrList *p); - -}; - -#endif // _AST_GENERATOR_AST_GENERATOR_HH diff --git a/TAO/TAO_IDL/include/ast_interface.h b/TAO/TAO_IDL/include/ast_interface.h deleted file mode 100644 index c41eaf858fd..00000000000 --- a/TAO/TAO_IDL/include/ast_interface.h +++ /dev/null @@ -1,147 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_INTERFACE_AST_INTERFACE_HH -#define _AST_INTERFACE_AST_INTERFACE_HH - -// Representation of interface: -// -// NOTE: add(AST_EnumValue *) is defined here because enums can -// be defined manifest locally; the constants defined in these -// enums are inserted in the enclosing scope. - -/* -** DEPENDENCIES: ast_type.hh, utl_scope.hh, ast_decl.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "ast_type.h" -#include "utl_scope.h" -#include "ast_decl.h" - - -class AST_Interface : public virtual AST_Type, public virtual UTL_Scope -{ -public: - // Operations - - // Constructor(s) - AST_Interface(); - AST_Interface(UTL_ScopedName *n, - AST_Interface **ih, - long nih, - UTL_StrList *p); - virtual ~AST_Interface() {} - - // Data Accessors - AST_Interface **inherits(); - void set_inherits(AST_Interface **i); - long n_inherits(); - void set_n_inherits(long i); - - // Is this interface defined? This predicate returns FALSE when an - // interface was forward declared but not defined yet, and TRUE in - // all other cases. - idl_bool is_defined() - { - return (pd_n_inherits < 0) ? I_FALSE : I_TRUE; - } - - // Narrowing - DEF_NARROW_METHODS2(AST_Interface, AST_Type, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Interface); - DEF_NARROW_FROM_SCOPE(AST_Interface); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Interface **pd_inherits; // Inherited interfaces - // This is an array of pointers - // to the inherited interfaces - long pd_n_inherits; // How many of them? - - // Scope Management Protocol - friend int tao_yyparse(); - - virtual AST_Constant *fe_add_constant(AST_Constant *c); - virtual AST_Exception *fe_add_exception(AST_Exception *e); - virtual AST_Attribute *fe_add_attribute(AST_Attribute *a); - virtual AST_Operation *fe_add_operation(AST_Operation *o); - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - virtual AST_Typedef *fe_add_typedef(AST_Typedef *t); - virtual AST_Native *fe_add_native (AST_Native *n); - -}; - -#endif // _AST_INTERFACE_AST_INTERFACE_HH diff --git a/TAO/TAO_IDL/include/ast_interface_fwd.h b/TAO/TAO_IDL/include/ast_interface_fwd.h deleted file mode 100644 index 72a8f8842aa..00000000000 --- a/TAO/TAO_IDL/include/ast_interface_fwd.h +++ /dev/null @@ -1,106 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_INTERFACE_FWD_AST_INTERFACE_FWD_HH -#define _AST_INTERFACE_FWD_AST_INTERFACE_FWD_HH - -// Representation of a forward interface declaration - -/* -** DEPENDENCIES: ast_decl.hh, ast_interface.hh, utl_scoped_name.hh, -** utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_InterfaceFwd : public virtual AST_Type -{ -public: - // Operations - - // Constructor(s) - AST_InterfaceFwd(); - AST_InterfaceFwd(UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_InterfaceFwd() {} - - // Data Accessors - AST_Interface *full_definition(); - void set_full_definition(AST_Interface *nfd); - - // Narrowing - DEF_NARROW_METHODS1(AST_InterfaceFwd, AST_Type); - DEF_NARROW_FROM_DECL(AST_InterfaceFwd); - - // AST Dumping - virtual void dump(ostream &); - -private: - // Data - AST_Interface *pd_full_definition; // The interface this is a - // forward declaration of -}; - -#endif // _AST_INTERFACE_FWD_AST_INTERFACE_FWD_HH diff --git a/TAO/TAO_IDL/include/ast_module.h b/TAO/TAO_IDL/include/ast_module.h deleted file mode 100644 index 073eb5baa2c..00000000000 --- a/TAO/TAO_IDL/include/ast_module.h +++ /dev/null @@ -1,121 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_MODULE_AST_MODULE_HH -#define _AST_MODULE_AST_MODULE_HH - -// Representation of module -// -// NOTE: add(AST_EnumValue *) is defined here because enums can -// be defined manifest locally; the constants defined in these -// enums are inserted in the enclosing scope. - -/* -** DEPENDENCIES: ast_decl.hh, utl_scope.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Module : public virtual AST_Decl, public virtual UTL_Scope -{ -public: - // Operations - - // Constructor(s) - AST_Module(); - AST_Module(UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Module() {} - - // Narrowing - DEF_NARROW_METHODS2(AST_Module, AST_Decl, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Module); - DEF_NARROW_FROM_SCOPE(AST_Module); - - // AST Dumping - virtual void dump(ostream &o); - -private: - friend void fe_populate(AST_Module *m); - friend int tao_yyparse(); - - // Scope Management Protocol - - virtual AST_PredefinedType *fe_add_predefined_type(AST_PredefinedType *t); - virtual AST_Module *fe_add_module(AST_Module *m); - virtual AST_Interface *fe_add_interface(AST_Interface *i); - virtual AST_InterfaceFwd *fe_add_interface_fwd(AST_InterfaceFwd *i); - virtual AST_Constant *fe_add_constant(AST_Constant *c); - virtual AST_Exception *fe_add_exception(AST_Exception *e); - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - virtual AST_Typedef *fe_add_typedef(AST_Typedef *t); - virtual AST_Native *fe_add_native (AST_Native *n); - -}; - -#endif // _AST_MODULE_AST_MODULE_HH diff --git a/TAO/TAO_IDL/include/ast_native.h b/TAO/TAO_IDL/include/ast_native.h deleted file mode 100644 index d170da542a9..00000000000 --- a/TAO/TAO_IDL/include/ast_native.h +++ /dev/null @@ -1,38 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ - -#if !defined (_AST_NATIVE_H_) -#define _AST_NATIVE_H_ - -// Representation of "native" IDL type added by the POA spec -// -/* -** DEPENDENCIES: ast_decl.h -** -** USE: Included from ast.h -*/ - -class AST_Native : public virtual AST_Type -{ -public: - // =Operations - - // Constructor(s) - AST_Native (void); - // default constructor - - AST_Native(UTL_ScopedName *n, UTL_StrList *p); - // constructor that initializes its scoped name - - virtual ~AST_Native (void) {} - // destructor - - // Narrowing - DEF_NARROW_METHODS1(AST_Native, AST_Type); - DEF_NARROW_FROM_DECL(AST_Native); - - // AST Dumping - virtual void dump(ostream &o); -}; - -#endif /* AST_NATIVE_H */ diff --git a/TAO/TAO_IDL/include/ast_operation.h b/TAO/TAO_IDL/include/ast_operation.h deleted file mode 100644 index 3dcf8a252ef..00000000000 --- a/TAO/TAO_IDL/include/ast_operation.h +++ /dev/null @@ -1,139 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_OPERATION_AST_OPERATION_HH -#define _AST_OPERATION_AST_OPERATION_HH - -// Representation of operation declaration: - -/* -** DEPENDENCIES: ast_decl.hh, utl_scope.hh, ast_type.hh, utl_strlist.hh, -** utl_exceptlist.hh, utl_scoped_name.hh -** -** USE: included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "utl_list.h" -#include "ast_decl.h" -#include "utl_scope.h" -#include "utl_scoped_name.h" - - -class AST_Operation : public virtual AST_Decl, public virtual UTL_Scope -{ -public: - // Define enum with flags for operation attributes - enum Flags { - OP_noflags // No flags present - , OP_oneway // Operation is oneway - , OP_idempotent // Operation is idempotent - }; - - // Operations - - // Constructor(s) - AST_Operation(); - AST_Operation(AST_Type *return_type, - Flags flags, - UTL_ScopedName *n, - UTL_StrList *p); - virtual ~AST_Operation() {} - - // Data Accessors - AST_Type *return_type(); - Flags flags(); - UTL_StrList *context(); - UTL_ExceptList *exceptions(); - - // Narrowing - DEF_NARROW_METHODS2(AST_Operation, AST_Decl, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Operation); - DEF_NARROW_FROM_SCOPE(AST_Operation); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Type *pd_return_type; // Return type - Flags pd_flags; // Operation flags - UTL_StrList *pd_context; // Context - UTL_ExceptList *pd_exceptions; // Exceptions raised - - // Scope Management Protocol - friend int tao_yyparse(); - - virtual AST_Argument *fe_add_argument(AST_Argument *a); - virtual UTL_StrList *fe_add_context(UTL_StrList *c); - // Add context - virtual UTL_NameList *fe_add_exceptions(UTL_NameList *e); - // exceptions - -}; - -#endif // _AST_OPERATION_AST_OPERATION_HH diff --git a/TAO/TAO_IDL/include/ast_predefined_type.h b/TAO/TAO_IDL/include/ast_predefined_type.h deleted file mode 100644 index 7c7ebd953f4..00000000000 --- a/TAO/TAO_IDL/include/ast_predefined_type.h +++ /dev/null @@ -1,127 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_PREDEFINED_TYPE_AST_PREDEFINED_TYPE_HH -#define _AST_PREDEFINED_TYPE_AST_PREDEFINED_TYPE_HH - -// Representation of predefined types: -// -// Instances of this class are inserted into the global context by -// the front end before the start of parsing. - -/* -** DEPENDENCIES: ast_concrete_type.hh, utl_scoped_name.hh, utl_strlist.hh, -** ast_decl.hh -** -** USE: Included from ast.hh -*/ - -class AST_PredefinedType : public virtual AST_ConcreteType -{ -public: - // Enum for all the different predefined types - enum PredefinedType { - PT_long // Predefined type "long" - , PT_ulong // Predefined type "unsigned long" - , PT_longlong // Predefined type "long long" - , PT_ulonglong // Predefined type "unsigned long long" - , PT_short // Predefined type "short" - , PT_ushort // Predefined type "unsigned short" - , PT_float // Predefined type "float" - , PT_double // Predefined type "double" - , PT_longdouble // Predefined type "long double" - , PT_char // Predefined type "char" - , PT_wchar // Predefined type "wchar_t" - , PT_boolean // Predefined type "boolean" - , PT_octet // Predefined type "octet" - , PT_any // Predefined type "any" - , PT_void // Predefined type "void" - , PT_pseudo // Predefined type for pseudo objects - }; - - // Operations - - // Constructor(s) - AST_PredefinedType(); - AST_PredefinedType(PredefinedType t, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_PredefinedType() {} - - // Data Accessors - PredefinedType pt(); - - // Narrowing - DEF_NARROW_METHODS1(AST_PredefinedType, AST_ConcreteType); - DEF_NARROW_FROM_DECL(AST_PredefinedType); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - const PredefinedType pd_pt; // The specific predefined type -}; - -#endif // _AST_PREDEFINED_TYPE_AST_PREDEFINED_TYPE_HH diff --git a/TAO/TAO_IDL/include/ast_root.h b/TAO/TAO_IDL/include/ast_root.h deleted file mode 100644 index e81c87f1fda..00000000000 --- a/TAO/TAO_IDL/include/ast_root.h +++ /dev/null @@ -1,107 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_ROOT_AST_ROOT_HH -#define _AST_ROOT_AST_ROOT_HH - -// Representation of root of AST - -/* -** DEPENDENCIES: ast_module.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Root : public virtual AST_Module -{ -public: - // Operations - - // Constructor(s) - AST_Root(); - AST_Root(UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Root() {} - - // Narrowing - DEF_NARROW_METHODS1(AST_Root, AST_Module); - DEF_NARROW_FROM_DECL(AST_Root); - DEF_NARROW_FROM_SCOPE(AST_Root); - - // AST Dumping - virtual void dump(ostream &o); - -private: - friend class FE_Declarator; - friend int tao_yyparse(); - // Add protocol - - virtual AST_Sequence *fe_add_sequence(AST_Sequence *s); - virtual AST_String *fe_add_string(AST_String *s); - virtual AST_Array *fe_add_array(AST_Array *a); - -}; - -#endif // _AST_ROOT_AST_ROOT_HH diff --git a/TAO/TAO_IDL/include/ast_sequence.h b/TAO/TAO_IDL/include/ast_sequence.h deleted file mode 100644 index 73849d0f02b..00000000000 --- a/TAO/TAO_IDL/include/ast_sequence.h +++ /dev/null @@ -1,108 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_SEQUENCE_AST_SEQUENCE_HH -#define _AST_SEQUENCE_AST_SEQUENCE_HH - -// Representation of sequence declaration: -// -// A sequence is a combination of a maximum size and a base type - -/* -** DEPENDENCIES: ast_concrete_type.hh, ast_type.hh, ast_decl.hh, -** ast_expression.hh -** -** USE: Included from ast.hh -*/ - -class AST_Sequence : public virtual AST_ConcreteType -{ -public: - // Operations - - // Constructor(s) - AST_Sequence(); - AST_Sequence(AST_Expression *max_size, AST_Type *bt); - virtual ~AST_Sequence() {} - - // Data Accessors - AST_Expression *max_size(); - AST_Type *base_type(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Sequence, AST_ConcreteType); - DEF_NARROW_FROM_DECL(AST_Sequence); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Expression *pd_max_size; // Maximum sequence size - AST_Type *pd_base_type; // Sequence base type -}; - -#endif // _AST_SEQUENCE_AST_SEQUENCE_HH diff --git a/TAO/TAO_IDL/include/ast_string.h b/TAO/TAO_IDL/include/ast_string.h deleted file mode 100644 index 9e5874c304c..00000000000 --- a/TAO/TAO_IDL/include/ast_string.h +++ /dev/null @@ -1,108 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_STRING_AST_STRING_HH -#define _AST_STRING_AST_STRING_HH - -// Representation of string declaration -// -// A string type is represented by a maximum size - -/* -** DEPENDENCIES: ast_concrete_type.hh, ast_decl.hh, ast_expression.hh -** -** USE: Included from ast.hh -*/ - -class AST_String : public virtual AST_ConcreteType -{ -public: - // Operations - - // Constructor(s) - AST_String(); - AST_String(AST_Expression *max_size); - AST_String(AST_Expression *max_size, long wide); - virtual ~AST_String() {} - - // Data Accessors - AST_Expression *max_size(); - long width(); - - // Narrowing - DEF_NARROW_METHODS1(AST_String, AST_ConcreteType); - DEF_NARROW_FROM_DECL(AST_String); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Expression *pd_max_size; // String maximum size - long pd_width; // Width of string -}; - -#endif // _AST_STRING_AST_STRING_HH diff --git a/TAO/TAO_IDL/include/ast_structure.h b/TAO/TAO_IDL/include/ast_structure.h deleted file mode 100644 index baa1944bbe6..00000000000 --- a/TAO/TAO_IDL/include/ast_structure.h +++ /dev/null @@ -1,118 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_STRUCTURE_AST_STRUCTURE_HH -#define _AST_STRUCTURE_AST_STRUCTURE_HH - -// Representation of structure: -// -// NOTE: add(AST_ConcreteType *) is defined here because a structure -// can contain locally defined types in addition to fields. -// -// NOTE: add(AST_EnumValue *) is defined here because enums can -// be defined manifest locally; the constants defined in these -// enums are inserted in the enclosing scope. It is unlikely that -// a BE writer will need to overload this function in AST_Structure. - -/* -** DEPENDENCIES: ast_concrete_type.hh, utl_scope.hh, utl_scoped_name.hh, -** utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Structure : public virtual AST_ConcreteType, - public virtual UTL_Scope -{ -public: - // Operations - - // Constructor(s) - AST_Structure(); - AST_Structure(UTL_ScopedName *n, UTL_StrList *p); - AST_Structure(AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Structure() {} - - // Narrowing - DEF_NARROW_METHODS2(AST_Structure, AST_ConcreteType, UTL_Scope); - DEF_NARROW_FROM_DECL(AST_Structure); - DEF_NARROW_FROM_SCOPE(AST_Structure); - - // AST Dumping - virtual void dump(ostream &o); - -private: - friend int tao_yyparse(); - // Scope Management Protocol - - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Field *fe_add_field(AST_Field *f); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); -}; - -#endif // _AST_STRUCTURE_AST_STRUCTURE_HH diff --git a/TAO/TAO_IDL/include/ast_type.h b/TAO/TAO_IDL/include/ast_type.h deleted file mode 100644 index 04a36d8235d..00000000000 --- a/TAO/TAO_IDL/include/ast_type.h +++ /dev/null @@ -1,101 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_TYPE_AST_TYPE_HH -#define _AST_TYPE_AST_TYPE_HH - -// Class for all IDL types -// -// This is useful wherever any IDL type defining construct can appear -// such as the base type for a typedef or array - -/* -** DEPENDENCIES: ast_decl.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "ast_decl.h" - - -class AST_Type : public virtual AST_Decl -{ -public: - // Operations - - // Constructor(s) - AST_Type(); - AST_Type(AST_Decl::NodeType nt, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Type() {} - - // Narrowing - DEF_NARROW_METHODS1(AST_Type, AST_Decl); - DEF_NARROW_FROM_DECL(AST_Type); -}; - -#endif // _AST_TYPE_AST_TYPE_HH diff --git a/TAO/TAO_IDL/include/ast_typedef.h b/TAO/TAO_IDL/include/ast_typedef.h deleted file mode 100644 index c2e13051b54..00000000000 --- a/TAO/TAO_IDL/include/ast_typedef.h +++ /dev/null @@ -1,105 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_TYPEDEF_AST_TYPEDEF_HH -#define _AST_TYPEDEF_AST_TYPEDEF_HH - -// Representation of typedef declaration -// -// A typedef declaration is a renaming of a base type - -/* -** DEPENDENCIES: ast_decl.hh, ast_type.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Typedef : public virtual AST_Type -{ -public: - // Operations - - // Constructor(s) - AST_Typedef(); - AST_Typedef(AST_Type *base_type, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Typedef() {} - - // Data Accessors - AST_Type *base_type(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Typedef, AST_Type); - DEF_NARROW_FROM_DECL(AST_Typedef); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_Type *pd_base_type; // typedef base type -}; - -#endif // _AST_TYPEDEF_AST_TYPEDEF_HH diff --git a/TAO/TAO_IDL/include/ast_union.h b/TAO/TAO_IDL/include/ast_union.h deleted file mode 100644 index 062e540e9a8..00000000000 --- a/TAO/TAO_IDL/include/ast_union.h +++ /dev/null @@ -1,143 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_UNION_AST_UNION_HH -#define _AST_UNION_AST_UNION_HH - -// Representation of union declaration: -// -// NOTE: add(AST_ConcreteType *) is defined here because a union -// can contain locally defined types in addition to fields. -// -// NOTE: add(AST_EnumValue *) is defined here because enums can -// be defined manifest locally; the constants defined in these -// enums are inserted in the enclosing scope. It is unlikely that -// a BE writer will need to overload this function in AST_Union. - -/* -** DEPENDENCIES: ast_concrete_type.hh, utl_scope.hh, ast_union_branch.hh, -** ast_union_label.hh, utl_scoped_name.hh, utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -class AST_Union : public virtual AST_Structure -{ -public: - // Operations - - // Constructor(s) - AST_Union(); - AST_Union(AST_ConcreteType *disc_type, UTL_ScopedName *n, UTL_StrList *p); - virtual ~AST_Union() {} - - // Data Accessors - AST_ConcreteType *disc_type(); - AST_Expression::ExprType udisc_type(); - - // Narrowing - DEF_NARROW_METHODS1(AST_Union, AST_Structure); - DEF_NARROW_FROM_DECL(AST_Union); - DEF_NARROW_FROM_SCOPE(AST_Union); - - // AST Dumping - virtual void dump(ostream &); - -private: - // Data - AST_ConcreteType *pd_disc_type; // Discriminator type - AST_Expression::ExprType pd_udisc_type; // Its expression type - /* Convention: udisc_type == EV_any denotes an enum value */ - - // Operations - - // Look up a branch by node pointer - AST_UnionBranch *lookup_branch(AST_UnionBranch *branch); - - // Look up the branch with the "default" label - AST_UnionBranch *lookup_default(); - - // Look up a branch given a branch with a label. This is used to - // check for duplicate labels - AST_UnionBranch *lookup_label(AST_UnionBranch *b); - - // Look up a union branch given an enumerator. This is used to - // check for duplicate enum labels - AST_UnionBranch *lookup_enum(AST_UnionBranch *b); - -private: - friend int tao_yyparse(); - // Scope Management Protocol - - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_UnionBranch *fe_add_union_branch(AST_UnionBranch *b); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - -}; - -#endif // _AST_UNION_AST_UNION_HH diff --git a/TAO/TAO_IDL/include/ast_union_branch.h b/TAO/TAO_IDL/include/ast_union_branch.h deleted file mode 100644 index 2bfe414452e..00000000000 --- a/TAO/TAO_IDL/include/ast_union_branch.h +++ /dev/null @@ -1,109 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_UNION_BRANCH_AST_UNION_BRAN_HH -#define _AST_UNION_BRANCH_AST_UNION_BRAN_HH - -// Representation of union branch declaration: -// -// A branch of a union is a field with a label - -/* -** DEPEndencies: ast_field.hh, ast_union_label.hh, ast_type.hh, -** utl_scoped_name.hh, utl_strlist.h, ast_decl.h -** -** USE: Included from ast.hh -*/ - -class AST_UnionBranch : public virtual AST_Field -{ -public: - // Operations - - // Constructor(s) - AST_UnionBranch(); - AST_UnionBranch(AST_UnionLabel *label, - AST_Type *ft, - UTL_ScopedName *n, - UTL_StrList *p); - virtual ~AST_UnionBranch() {} - - // Data Accessors - AST_UnionLabel *label(); - - // Narrowing - DEF_NARROW_METHODS1(AST_UnionBranch, AST_Field); - DEF_NARROW_FROM_DECL(AST_UnionBranch); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - AST_UnionLabel *pd_label; // Label of this branch -}; - -#endif // _AST_UNION_BRANCH_AST_UNION_BRAN_HH diff --git a/TAO/TAO_IDL/include/ast_union_label.h b/TAO/TAO_IDL/include/ast_union_label.h deleted file mode 100644 index 7dd124784a4..00000000000 --- a/TAO/TAO_IDL/include/ast_union_label.h +++ /dev/null @@ -1,110 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_UNION_LABEL_AST_UNION_LABEL_HH -#define _AST_UNION_LABEL_AST_UNION_LABEL_HH - -// AST_UnionLabel.h -// -// Defines labels for unions - -/* -** DEPENDENCIES: ast_expression.hh -** -** USE: included from ast.hh -*/ - -class AST_UnionLabel -{ -public: - // Define kind of label - enum UnionLabel { - UL_default // Label is "default" - , UL_label // Regular label - }; - - // Operations - - // Constructor(s) - AST_UnionLabel(); - AST_UnionLabel(UnionLabel lk, AST_Expression *lv); - virtual ~AST_UnionLabel() {} - - // Data Accessors - UnionLabel label_kind(); - AST_Expression *label_val(); - - // AST Dumping - virtual void dump(ostream &o); - -private: - // Data - UnionLabel pd_label_kind; // Label kind - AST_Expression *pd_label_val; // Label expression - -}; - -#endif // _AST_UNION_LABEL_AST_UNION_LABEL_HH diff --git a/TAO/TAO_IDL/include/be_extern.h b/TAO/TAO_IDL/include/be_extern.h deleted file mode 100644 index 253599b76f1..00000000000 --- a/TAO/TAO_IDL/include/be_extern.h +++ /dev/null @@ -1,82 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _BE_EXTERN_BE_EXTERN_HH -#define _BE_EXTERN_BE_EXTERN_HH - -// be_extern.h - Defines the BE part of the BE<->FE protocol - -// Functions: - -extern "C" AST_Generator *BE_init(); - -extern "C" void BE_produce(); -extern "C" void BE_abort(); -extern "C" void BE_prep_arg(char *, idl_bool); - -extern "C" void BE_version(); - -#endif // _BE_EXTERN_BE_EXTERN_HH diff --git a/TAO/TAO_IDL/include/drv_extern.h b/TAO/TAO_IDL/include/drv_extern.h deleted file mode 100644 index f50a38e0cd6..00000000000 --- a/TAO/TAO_IDL/include/drv_extern.h +++ /dev/null @@ -1,86 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _DRV_EXTERN_DRV_EXTERN_HH -#define _DRV_EXTERN_DRV_EXTERN_HH - -// drv_extern.h - External functions for the IDL compiler driver program - -// Functions - -extern void DRV_init(); -extern void DRV_parse_args(long, char **); -extern void DRV_usage(); - -extern void DRV_pre_proc(char *myfile); - -extern void DRV_cpp_init(); -extern void DRV_cpp_putarg(char *str); -extern void DRV_cpp_new_location(char *new_loc); - -extern void DRV_fork(); - -#endif // _DRV_EXTERN_DRV_EXTERN_HH diff --git a/TAO/TAO_IDL/include/drv_link.h b/TAO/TAO_IDL/include/drv_link.h deleted file mode 100644 index fa154436c25..00000000000 --- a/TAO/TAO_IDL/include/drv_link.h +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _DRV_LINK_DRV_LINK_HH -#define _DRV_LINK_DRV_LINK_HH - -// drv_link.hh - Define data and functions which are used to -// link in the back end functions - -/* - * Front end interface - */ - -class File; -typedef void (* DRV_PF_FE_init_stage1)(); -typedef void (* DRV_PF_FE_init_stage2)(); -typedef int (* DRV_PF_FE_yyparse)(); -typedef void (* DRV_PF_FE_set_yyin)(File *); - -class UTL_Error; -class UTL_Indenter; -class UTL_String; -typedef UTL_Error * (* DRV_PF_FE_new_UTL_Error)(); -typedef UTL_Indenter * (* DRV_PF_FE_new_UTL_Indenter)(); -typedef UTL_String * (* DRV_PF_FE_new_UTL_String)(char *); - -extern DRV_PF_FE_init_stage1 DRV_FE_init_stage1; -extern DRV_PF_FE_init_stage2 DRV_FE_init_stage2; -extern DRV_PF_FE_yyparse DRV_FE_yyparse; -extern DRV_PF_FE_set_yyin DRV_FE_set_yyin; - -extern DRV_PF_FE_new_UTL_Error DRV_FE_new_UTL_Error; -extern DRV_PF_FE_new_UTL_Indenter DRV_FE_new_UTL_Indenter; -extern DRV_PF_FE_new_UTL_String DRV_FE_new_UTL_String; - -/* - * Back end interface - */ - -class AST_Generator; -typedef AST_Generator * (* DRV_PF_BE_init)(); -typedef void (* DRV_PF_BE_produce)(); -typedef void (* DRV_PF_BE_abort)(); -typedef void (* DRV_PF_BE_prep_arg)(char *, idl_bool); -typedef void (* DRV_PF_BE_version)(); - -extern DRV_PF_BE_init DRV_BE_init; -extern DRV_PF_BE_produce DRV_BE_produce; -extern DRV_PF_BE_abort DRV_BE_abort; -extern DRV_PF_BE_prep_arg DRV_BE_prep_arg; -extern DRV_PF_BE_version DRV_BE_version; - -// Functions - -extern void DRV_FE_open(); -extern void DRV_FE_close(); - -extern void DRV_BE_open(); -extern void DRV_BE_close(); - -#endif // _DRV_LINK_DRV_LINK_HH diff --git a/TAO/TAO_IDL/include/drv_private.h b/TAO/TAO_IDL/include/drv_private.h deleted file mode 100644 index 6b18ea8df74..00000000000 --- a/TAO/TAO_IDL/include/drv_private.h +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _DRV_PRIVATE_DRV_PRIVATE_HH -#define _DRV_PRIVATE_DRV_PRIVATE_HH - -// drv_private.hh - Define data and functions which are private to -// the DRV but which must be accessible througout the DRV - -// Data - -extern char *DRV_files[]; // All files to be processed -extern long DRV_nfiles; // How many are there? -extern long DRV_file_index; // What's the file I am responsible - // for? - -// Functions -extern void DRV_drive(char *);// Compiler driver for single file - -#endif // _DRV_PRIVATE_DRV_PRIVATE_HH diff --git a/TAO/TAO_IDL/include/fe_declarator.h b/TAO/TAO_IDL/include/fe_declarator.h deleted file mode 100644 index 00840836a90..00000000000 --- a/TAO/TAO_IDL/include/fe_declarator.h +++ /dev/null @@ -1,113 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _FE_DECLARATOR_FE_DECLARATOR_HH -#define _FE_DECLARATOR_FE_DECLARATOR_HH - -// FE_Declarator.h -// -// FE internal class for storing interim declaration statements - -/* -** DEPENDENCIES: utl_scoped_name.hh, ast_decl.hh -** -** USE: Included from fe.hh -*/ - -class FE_Declarator -{ -public: - // Enum to denote types of declarators - enum DeclaratorType { - FD_simple // Simple declarator - , FD_complex // Complex declarator (complex_part field used) - }; - - // Operations - - // Constructor(s) - FE_Declarator(UTL_ScopedName *n, DeclaratorType dt, AST_Decl *cp); - virtual ~FE_Declarator() {} - - // Data Accessors - AST_Decl *complex_part(); - UTL_ScopedName *name(); - DeclaratorType decl_type(); - - // Other Operations - - // Compose an FE_Declarator into an AST_Type once all the needed information - // is available - AST_Type *compose(AST_Decl* tc); - -private: - // Data - AST_Decl *pd_complex_part; // If a complex declarator - UTL_ScopedName *pd_name; // The name if complex - DeclaratorType pd_decl_type; // Whether complex or simple -}; - -#endif // _FE_DECLARATOR_FE_DECLARATOR_HH diff --git a/TAO/TAO_IDL/include/fe_extern.h b/TAO/TAO_IDL/include/fe_extern.h deleted file mode 100644 index 87ec38c5b55..00000000000 --- a/TAO/TAO_IDL/include/fe_extern.h +++ /dev/null @@ -1,109 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _FE_EXTERN_FE_EXTERN_HH -#define _FE_EXTERN_FE_EXTERN_HH - -// fe_extern.hh -// -// Declares all global functions for the FE - -/* -** DEPENDENCIES: none -** -** USE: Included from idl_extern.hh -*/ - -// Functions: - -// Initialization: -// -// FE initialization is done in two stages, with the BE initialization -// occurring in between. The first stage is responsible for creating -// the sope stack. The BE initialization creates the generator object -// which is then used in the second stage to create the global scope -// and to populate it with nodes for the predefined types - -extern "C" void FE_init_stage1(); // Initialize stage 1 -extern "C" void FE_init_stage2(); // Initialize stage 2 - -// Interface to Yacc parser - -class File; -extern "C" int FE_yyparse(); // Invode yyparse -extern "C" void FE_set_yyin(File *); // Set yyin - -// Interface to constructors for objects need by the driver - -class UTL_Error; -class UTL_Indenter; -class UTL_String; - -extern "C" UTL_Error * FE_new_UTL_Error(); -extern "C" UTL_Indenter * FE_new_UTL_Indenter(); -extern "C" UTL_String * FE_new_UTL_String(char *); - -#endif // _FE_EXTERN_FE_EXTERN_HH diff --git a/TAO/TAO_IDL/include/fe_interface_header.h b/TAO/TAO_IDL/include/fe_interface_header.h deleted file mode 100644 index f9b9d5bbf45..00000000000 --- a/TAO/TAO_IDL/include/fe_interface_header.h +++ /dev/null @@ -1,109 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _FE_INTERFACE_HEADER_FE_INTERFACE_HH -#define _FE_INTERFACE_HEADER_FE_INTERFACE_HH - -// FE_InterfaceHeader -// -// Internal class for FE to describe interface headers - -/* -** DEPENDENCIES: utl_scoped_name.hh, ast_interface.hh, utl_scope.hh, -** ast_decl.hh -** -** USE: Included from fe.hh -*/ - -class FE_InterfaceHeader -{ -public: - // Operations - - // Constructor(s) - FE_InterfaceHeader(UTL_ScopedName *n, UTL_NameList *l); - virtual ~FE_InterfaceHeader() {} - - // Data Accessors - UTL_ScopedName *interface_name(); - AST_Interface **inherits(); - long n_inherits(); - -private: - // Data - UTL_ScopedName *pd_interface_name; // Interface name - AST_Interface **pd_inherits; // Inherited interfaces - long pd_n_inherits; // How many - - // Operations - - // Compile the flattened unique list of interfaces which this - // interface inherits from - void compile_one_inheritance(AST_Interface *i); - void compile_inheritance(UTL_NameList *l); -}; - -#endif // _FE_INTERFACE_HEADER_FE_INTERFACE_HH diff --git a/TAO/TAO_IDL/include/fe_private.h b/TAO/TAO_IDL/include/fe_private.h deleted file mode 100644 index 8edf1e6971d..00000000000 --- a/TAO/TAO_IDL/include/fe_private.h +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _FE_FE_HH -#define _FE_FE_HH - -// fe_private.hh - Defines data which is private to the FE but -// which must be accessible throughout the FE - -/* -** DEPENDENCIES: NONE -** -** USE: Included from source files -*/ - -/* - * FE includes - */ - -#include "fe_interface_header.h"// class FE_InterfaceHeader -#include "fe_declarator.h" // class FE_Declarator - -/* - * FE Operations - */ - -#endif // _FE_FE_HH diff --git a/TAO/TAO_IDL/include/global_extern.h b/TAO/TAO_IDL/include/global_extern.h deleted file mode 100644 index c28a733f785..00000000000 --- a/TAO/TAO_IDL/include/global_extern.h +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _GLOBAL_EXTERN_GLOBAL_EXTERN_HH -#define _GLOBAL_EXTERN_GLOBAL_EXTERN_HH - -// global_extern.hh - Global data for the IDL compiler - -extern IDL_GlobalData *idl_global; // Contains all "global" data - -// Global functions for the IDL compiler - -// Return TRUE when the name of this AST_Decl can be reused in -// a definition in this scope -extern idl_bool can_be_redefined(AST_Decl *); - -#endif // _GLOBAL_EXTERN_GLOBAL_EXTERN_HH diff --git a/TAO/TAO_IDL/include/idl.h b/TAO/TAO_IDL/include/idl.h deleted file mode 100644 index 14592970752..00000000000 --- a/TAO/TAO_IDL/include/idl.h +++ /dev/null @@ -1,96 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_IDL_HH -#define _IDL_IDL_HH - -// idl.hh -// -// Main include file for IDL compiler. Includes the rest of the -// files defining the different units of the compiler - -#include "ace/ACE.h" // Most important ACE include file -#include "ace/streams.h" // iostreams -#include "intlmacros.h" // Define macros for intl'ion - -#include // POSIX standard defns -#include // External functions - -#include // POSIX standard types - -#include "idl_narrow.h" // IDL Narrowing mechanism - -#include "idl_defines.h" // Constants for IDL compiler -#include "idl_fwd.h" // Forward decls of classes - -#include "idl_bool.h" // Defines boolean for IDL - -#include "utl_string.h" // Defines utility string class -#include "utl_identifier.h" // Defines utility identifier class -#include "ast.h" // AST classes -#include "util.h" // Utility classes - -#endif // _IDL_IDL_HH diff --git a/TAO/TAO_IDL/include/idl_bool.h b/TAO/TAO_IDL/include/idl_bool.h deleted file mode 100644 index c0741684896..00000000000 --- a/TAO/TAO_IDL/include/idl_bool.h +++ /dev/null @@ -1,94 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_BOOL_IDL_BOOL_HH -#define _IDL_BOOL_IDL_BOOL_HH - -/* - * idl_bool.hh - Boolean definitions for IDL CFE - * - * This is interim. When porting to a new platform, this file will be - * modified to incorporate definitions for the boolean type suitable - * for the new platform. - */ - -/* -** DEPENDENCIES: NONE -** -** USE: Included from idl.hh -*/ - -#ifndef I_TRUE -#define I_TRUE 1 -#endif - -#ifndef I_FALSE -#define I_FALSE 0 -#endif - -typedef long idl_bool; - -#endif // _IDL_BOOL_IDL_BOOL_HH diff --git a/TAO/TAO_IDL/include/idl_defines.h b/TAO/TAO_IDL/include/idl_defines.h deleted file mode 100644 index 6cf062ee212..00000000000 --- a/TAO/TAO_IDL/include/idl_defines.h +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_DEFINES_IDL_DEFINES_HH -#define _IDL_DEFINES_IDL_DEFINES_HH - -/* - * idl_defines.hh - Defines global compiler flags - */ - -// This cannot be an enum since more than one value may be active at -// a given time, hence bitflags are #define'd instead - -#define IDL_CF_VERSION (1 << 0) -#define IDL_CF_DUMP_AST (1 << 1) -#define IDL_CF_ONLY_PREPROC (1 << 2) -#define IDL_CF_ONLY_USAGE (1 << 3) -#define IDL_CF_INFORMATIVE (1 << 4) -#define IDL_CF_NOWARNINGS (1 << 5) - -#endif // _IDL_DEFINES_IDL_DEFINES_HH diff --git a/TAO/TAO_IDL/include/idl_extern.h b/TAO/TAO_IDL/include/idl_extern.h deleted file mode 100644 index efbe0ccdeb5..00000000000 --- a/TAO/TAO_IDL/include/idl_extern.h +++ /dev/null @@ -1,81 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_EXTERN_IDL_EXTERN_HH -#define _IDL_EXTERN_IDL_EXTERN_HH - -// idl_extern.hh -// -// Global variables and functions for IDL compiler - -#include "fe_extern.h" // External API of FE -#include "be_extern.h" // External API of BE -#include "drv_extern.h" // External API of DRV -#include "ast_extern.h" // External API of AST -#include "nr_extern.h" // External API of NR -#include "global_extern.h" // Global data - -#endif // _IDL_EXTERN_IDL_EXTERN_HH diff --git a/TAO/TAO_IDL/include/idl_fwd.h b/TAO/TAO_IDL/include/idl_fwd.h deleted file mode 100644 index 7b9761418b4..00000000000 --- a/TAO/TAO_IDL/include/idl_fwd.h +++ /dev/null @@ -1,148 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_FWD_IDL_FWD_HH -#define _IDL_FWD_IDL_FWD_HH - -// idl_fwd.hh -// -// Forward declaration of all class names in CFE-BEs contract - -/* -** DEPENDENCIES: NONE -** -** USE: Included from idl.hh -*/ - -// Class for global data representation: - -class IDL_GlobalData; // Global data is stored in an - // instance of this - -// Classes for utility of the IDL compiler: - -class UTL_ScopeStack; // Stack of scopes -class UTL_Scope; // A definition scope (mixin) - -class UTL_LongList; // List of longs -class UTL_StrList; // List of strings -class UTL_StrlistActiveIterator; // Active iterator for list of strings -class UTL_IdList; // List of identifiers -class UTL_IdListActiveIterator; // Active iterator for list of id's -class UTL_ExceptList; // List of exceptions -class UTL_NameList; // List of scoped names -class UTL_ExprList; // List of expressions -class UTL_InterfList; // List of interfaces -class UTL_LabelList; // List of union branch labels -class UTL_DeclList; // List of declarators -class UTL_String; // String class -class UTL_Identifier; // Identifier class - -class UTL_Error; // Error class -class UTL_Indenter; // Indenter class - -// Classes for utility of the FE. These classes are used only -// by the FE but their forward declaration is needed because lists -// of them are constructed by classes in UTL - -class FE_InterfaceHeader; // Interface header -class FE_Declarator; // Declarator - -// Generator class for the AST - -class AST_Generator; // Generate nodes of various types - -// Classes for AST: - -class AST_Decl; // The rock bottom base class - -class AST_PredefinedType; // A predefined type -class AST_Type; // An IDL type -class AST_ConcreteType; // An IDL concrete type -class AST_Module; // A module -class AST_Root; // The root of an AST (a module) -class AST_Interface; // An interface -class AST_InterfaceFwd; // A forward interface decl -class AST_Constant; // A constant declaration -class AST_Expression; // Value of an expression -class AST_Exception; // An exception declaration -class AST_Attribute; // An attribute declaration -class AST_Operation; // An operation declaration -class AST_Argument; // An argument to an operation -class AST_Union; // A union declaration -class AST_UnionBranch; // A branch in a union -class AST_UnionLabel; // A union branch label -class AST_Structure; // A structure declaration -class AST_Field; // A field in a structure or union -class AST_Enum; // An enum declaration -class AST_EnumVal; // An enumerator in an enum -class AST_Sequence; // A sequence declaration -class AST_String; // A string declaration -class AST_Array; // An array declaration -class AST_Typedef; // A typedef declaration -class AST_Native; // A native declaration - -#endif // _IDL_FWD_IDL_FWD_HH diff --git a/TAO/TAO_IDL/include/idl_global.h b/TAO/TAO_IDL/include/idl_global.h deleted file mode 100644 index 07e114b3814..00000000000 --- a/TAO/TAO_IDL/include/idl_global.h +++ /dev/null @@ -1,374 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_IDL_GLOBAL_HH -#define _IDL_IDL_GLOBAL_HH - -// idl_global.hh -// -// Defines a class containing all global data for the compiler. -// Can be subclassed in BEs to store more data - -class IDL_GlobalData -{ -public: - // Types - - // The ParseState type encodes the state of the Yacc parser so that - // better error messages can be produced, and for use by BEs in situations - // where context sensitive behavior is required - enum ParseState { - PS_NoState // No state - , PS_TypeDeclSeen // Seen complete typedef declaration - , PS_ConstDeclSeen // Seen complete const declaration - , PS_ExceptDeclSeen // Seen complete exception declaration - , PS_InterfaceDeclSeen // Seen complete interface declaration - , PS_ModuleDeclSeen // Seen complete module declaration - , PS_AttrDeclSeen // Seen complete attribute declaration - , PS_OpDeclSeen // Seen complete operation declaration - , PS_ModuleSeen // Seen a MODULE keyword - , PS_ModuleIDSeen // Seen the module ID - , PS_ModuleSqSeen // '{' seen for module - , PS_ModuleQsSeen // '}' seen for module - , PS_ModuleBodySeen // Seen complete module body - , PS_InterfaceSeen // Seen an INTERFACE keyword - , PS_InterfaceIDSeen // Seen the interface ID - , PS_InheritSpecSeen // Seen a complete inheritance spec - , PS_ForwardDeclSeen // Forward interface decl seen - , PS_InterfaceSqSeen // '{' seen for interface - , PS_InterfaceQsSeen // '}' seen for interface - , PS_InterfaceBodySeen // Seen an interface body - , PS_InheritColonSeen // Seen ':' in inheritance list - , PS_SNListCommaSeen // Seen ',' in list of scoped names - , PS_ScopedNameSeen // Seen a complete scoped name - , PS_SN_IDSeen // Seen an identifier as part of a scoped name - , PS_ScopeDelimSeen // Seen a scope delim as party of a scoped name - , PS_ConstSeen // Seen a CONST keyword - , PS_ConstTypeSeen // Parsed the type of a constant - , PS_ConstIDSeen // Seen the constant ID - , PS_ConstAssignSeen // Seen the '=' - , PS_ConstExprSeen // Seen the constant value expression - , PS_TypedefSeen // Seen a TYPEDEF keyword - , PS_TypeSpecSeen // Seen a complete type specification - , PS_DeclaratorsSeen // Seen a complete list of declarators - , PS_StructSeen // Seen a STRUCT keyword - , PS_StructIDSeen // Seen the struct ID - , PS_StructSqSeen // '{' seen for struct - , PS_StructQsSeen // '}' seen for struct - , PS_StructBodySeen // Seen complete body of struct decl - , PS_MemberTypeSeen // Seen type of struct or except member - , PS_MemberDeclsSeen // Seen decls of struct or except members - , PS_MemberDeclsCompleted // Completed one struct or except member to ';' - , PS_UnionSeen // Seen a UNION keyword - , PS_UnionIDSeen // Seen the union ID - , PS_SwitchSeen // Seen the SWITCH keyword - , PS_SwitchOpenParSeen // Seen the switch open par. - , PS_SwitchTypeSeen // Seen the switch type spec - , PS_SwitchCloseParSeen // Seen the switch close par. - , PS_UnionSqSeen // '{' seen for union - , PS_UnionQsSeen // '}' seen for union - , PS_DefaultSeen // Seen DEFAULT keyword - , PS_UnionLabelSeen // Seen label of union element - , PS_LabelColonSeen // Seen ':' of union branch label - , PS_LabelExprSeen // Seen expression of union branch label - , PS_UnionElemSeen // Seen a union element - , PS_UnionElemCompleted // Completed one union member up to ';' - , PS_CaseSeen // Seen a CASE keyword - , PS_UnionElemTypeSeen // Seen type spec for union element - , PS_UnionElemDeclSeen // Seen declarator for union element - , PS_UnionBodySeen // Seen completed union body - , PS_EnumSeen // Seen an ENUM keyword - , PS_EnumIDSeen // Seen the enum ID - , PS_EnumSqSeen // Seen '{' for enum - , PS_EnumQsSeen // Seen '}' for enum - , PS_EnumBodySeen // Seen complete enum body - , PS_EnumCommaSeen // Seen ',' in list of enumerators - , PS_SequenceSeen // Seen a SEQUENCE keyword - , PS_SequenceSqSeen // Seen '<' for sequence - , PS_SequenceQsSeen // Seen '>' for sequence - , PS_SequenceTypeSeen // Seen type decl for sequence - , PS_SequenceCommaSeen // Seen comma for sequence - , PS_SequenceExprSeen // Seen size expression for sequence - , PS_StringSeen // Seen a STRING keyword - , PS_StringSqSeen // Seen '<' for string - , PS_StringQsSeen // Seen '>' for string - , PS_StringExprSeen // Seen size expression for string - , PS_StringCompleted // Seen a string decl without size spec - , PS_ArrayIDSeen // Seen array ID - , PS_ArrayCompleted // Seen completed array declaration - , PS_DimSqSeen // Seen '[' for array dimension - , PS_DimQsSeen // Seen ']' for array dimension - , PS_DimExprSeen // Seen size expression for array dimension - , PS_AttrROSeen // Seen READONLY keyword - , PS_AttrSeen // Seen ATTRIBUTE keyword - , PS_AttrTypeSeen // Seen type decl for attribute - , PS_AttrDeclsSeen // Seen declarators for attribute - , PS_AttrCompleted // Seen complete attribute declaration - , PS_ExceptSeen // Seen EXCEPTION keyword - , PS_ExceptIDSeen // Seen exception identifier - , PS_ExceptSqSeen // Seen '{' for exception - , PS_ExceptQsSeen // Seen '}' for exception - , PS_ExceptBodySeen // Seen complete exception body - , PS_OpAttrSeen // Seen operation attribute - , PS_OpTypeSeen // Seen operation return type - , PS_OpIDSeen // Seen operation ID - , PS_OpParsCompleted // Completed operation param list - , PS_OpRaiseCompleted // Completed operation except list - , PS_OpContextCompleted // Completed operation context spec - , PS_OpCompleted // Completed operation statement - , PS_OpSqSeen // Seen '(' for operation - , PS_OpQsSeen // Seen ')' for operation - , PS_OpParCommaSeen // Seen ',' in list of op params - , PS_OpParDirSeen // Seen parameter direction - , PS_OpParTypeSeen // Seen parameter type - , PS_OpParDeclSeen // Seen parameter declaration - , PS_OpRaiseSeen // Seen RAISES keyword - , PS_OpRaiseSqSeen // Seen '(' for RAISES - , PS_OpRaiseQsSeen // Seen ')' for RAISES - , PS_OpContextSeen // Seen CONTEXT keyword - , PS_OpContextSqSeen // Seen '(' for CONTEXT - , PS_OpContextQsSeen // Seen ')' for CONTEXT - , PS_OpContextCommaSeen // Seen ',' for CONTEXT - , PS_DeclsCommaSeen // Seen ',' in declarators list - , PS_DeclsDeclSeen // Seen complete decl in decls list - , PS_NativeSeen // Seen a native declaration - }; - - // Constructor - IDL_GlobalData(); - virtual ~IDL_GlobalData() {} - - // Operations - virtual UTL_ScopeStack *scopes(); // Scopes stack - virtual void set_scopes(UTL_ScopeStack *); - // Set it - - virtual AST_Root *root(); // Root of AST - virtual void set_root(AST_Root *); // Set it - - virtual AST_Generator *gen(); // Generator - virtual void set_gen(AST_Generator *);// Set it - - virtual UTL_Error *err(); // Error reporter - virtual void set_err(UTL_Error *); // Set it - - virtual long err_count(); // How many errors? - virtual void set_err_count(long); // Set it - - virtual long lineno(); // Where in file? - virtual void set_lineno(long); // Set it - - virtual String *filename(); // What file? - virtual void set_filename(String *); // Set it - - virtual String *main_filename(); // What's the main - // file name? - virtual void set_main_filename(String *); - // Set it - - virtual String *real_filename(); // What's the real - // file name? - virtual void set_real_filename(String *); - // Set it - - virtual String *stripped_filename(); // Stripped filename - virtual void set_stripped_filename(String *); - // Set it - - virtual idl_bool imported(); // Are we imported? - virtual idl_bool import(); // Is import on? - virtual void set_import(idl_bool); // Set it - - virtual idl_bool in_main_file(); // Are we? - virtual void set_in_main_file(idl_bool); // Set it - - virtual char *prog_name(); // Invoked as.. - virtual void set_prog_name(char *); // Set it - - virtual char *cpp_location(); // Where's CPP? - virtual void set_cpp_location(char *);// Set it - - virtual long compile_flags(); // What flags are on? - virtual void set_compile_flags(long);// Turn some on or off - - virtual char *be(); // Get BE to use - virtual void set_be(char *); // Set it - - virtual char *local_escapes(); // Get local escapes - virtual void set_local_escapes(char *);// Set it - - virtual UTL_Indenter *indent(); // Get indenter - virtual void set_indent(UTL_Indenter *); - // Set it - - virtual UTL_StrList *pragmas(); // Get pragmas - virtual void set_pragmas(UTL_StrList *);// Set it - - virtual idl_bool read_from_stdin(); // Reading from stdin? - virtual void set_read_from_stdin(idl_bool); // Set it - - virtual void store_include_file_name(String *); - - virtual String **include_file_names(); // Array of file names - virtual void set_include_file_names(String **); // Set it - - virtual unsigned long n_include_file_names(); // How many - virtual void set_n_include_file_names(unsigned long n); - - virtual ParseState parse_state(); // What state we're in - virtual void set_parse_state(ParseState s); // Set it - - // Convert from a predefined type to an expression type - virtual AST_Expression::ExprType - PredefinedTypeToExprType( - AST_PredefinedType::PredefinedType - ); - - /**************** Added to serve the back end *************/ - virtual String *idl_src_file(); - // returns the IDL source file being copiled - - virtual void idl_src_file(String *); - // set the source IDL file that is being parsed - - // helper functions that generate the file names for the C++ mapping - // generated code - static const char *be_get_client_hdr_fname (); - static const char *be_get_client_stub_fname (); - static const char *be_get_client_inline_fname (); - static const char *be_get_server_hdr_fname (); - static const char *be_get_server_template_hdr_fname (); - static const char *be_get_server_skeleton_fname (); - static const char *be_get_server_template_skeleton_fname (); - static const char *be_get_server_inline_fname (); - static const char *be_get_server_template_inline_fname (); - - // Helper functions: obtain the names of each generated file given - // the IDL file name. - static const char *be_get_client_hdr (String *idl_file_name); - static const char *be_get_client_stub (String *idl_file_name); - static const char *be_get_client_inline (String *idl_file_name); - static const char *be_get_server_hdr (String *idl_file_name); - static const char *be_get_server_template_hdr (String *idl_file_name); - static const char *be_get_server_skeleton (String *idl_file_name); - static const char *be_get_server_template_skeleton (String *idl_file_name); - static const char *be_get_server_inline (String *idl_file_name); - static const char *be_get_server_template_inline (String *idl_file_name); - - virtual const char* export_macro (void) const; - // returns the macro name for exporting classes in Win32 DLL. - - virtual void export_macro (const char* s); - // set the macro name for export classes in Win32 DLL. - - virtual const char* export_include (void) const; - // returns the name of the include file that contains the export - // macro definition. - - virtual void export_include (const char* s); - // set the name of the include file that contains the export - // macro definition. - -private: - // Data - UTL_ScopeStack *pd_scopes; // Store scopes stack - AST_Root *pd_root; // Store AST root - AST_Generator *pd_gen; // Store generator - UTL_Error *pd_err; // Error object - long pd_err_count; // Count of errors - long pd_lineno; // What line # - String *pd_filename; // What file - String *pd_main_filename; // What main filename - String *pd_real_filename; // What real filename - String *pd_stripped_filename; // Stripped filename - idl_bool pd_import; // Is import on? - idl_bool pd_in_main_file; // Are we in it? - char *pd_prog_name; // Argv[0] - char *pd_cpp_location; // Where to find CPP - long pd_compile_flags; // Compile flags - char *pd_be; // BE name to use - char *pd_local_escapes; // Trapdoor argument - UTL_Indenter *pd_indent; // Indent object - UTL_StrList *pd_pragmas; // List of pragmas - // as its being built - idl_bool pd_read_from_stdin; // Reading from stdin? - String **pd_include_file_names;// Array of file names - unsigned long pd_n_include_file_names;// How many - unsigned long pd_n_alloced_file_names;// How many alloced - - ParseState pd_parse_state; // Parse state we're in - - // Operations - long seen_include_file_before(String *); - // Seen this include - // before? - String *pd_idl_src_file; // IDL source file - - char* export_macro_; - char* export_include_; -}; - -#endif //_IDL_IDL_GLOBAL_HH diff --git a/TAO/TAO_IDL/include/idl_narrow.h b/TAO/TAO_IDL/include/idl_narrow.h deleted file mode 100644 index 7b770612682..00000000000 --- a/TAO/TAO_IDL/include/idl_narrow.h +++ /dev/null @@ -1,264 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_NARROW_IDL_NARROW_HH -#define _IDL_NARROW_IDL_NARROW_HH - -// idl_narrow.hh -// -// Implement IDL narrowing mechanism. Not intended to be read by humans.. -// -// Logic: -// -// The DEF_xxx macros are used in class declarations. -// The IMPL_xxx macros are used in class implementations. -// -// The DEF_xxx macros come in two flavors. The first one, DEF_NARROW_METHODSn, -// defines the narrowing mechanism. It declares a static class function whose -// address is used as the class identifier. Then, it declares a narrow op -// with an implementation suitable for narrowing from exactly 'n' superclasses. -// The names of the superclass types are given as arguments. The second flavor -// implements specific narrowing mechanisms from AST_decl and from UTL_scope. -// These macros are named DEF_NARROW_FROM_DECL and DEF_NARROW_FROM_SCOPE -// respectively. -// -// The IMPL_xxx macros also come in two flavors, corresponding to the two -// flavors of DEF_xxx macros. The IMPL_NARROW_METHODSn macros implement the -// narrowing mechanism for classes which must be narrowed from 'n' ancestors. -// The IMPL_NARROW_FROM_DECL and IMPL_NARROW_FROM_SCOPE macros implement -// the narrowing mechanisms for narrowing from instances of AST_decl and -// UTL_scope. -// -// IMPL_NARROW_METHODSn where n is 0,1,2 and 3 are provided. -// DEF_NARROW_METHODSn where n is 0,1,2 and 3 are provided. - -extern char *type_id_to_string(long); - -#define DEF_NARROW_METHODS0(TYPE)\ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS0(TYPE)\ -int \ -TYPE::type_id()\ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) {\ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - return rval; \ -} - -#define DEF_NARROW_METHODS1(TYPE,PARENT) \ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS1(TYPE,PARENT) \ -int \ -TYPE::type_id() \ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) {\ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - if (rval == NULL) \ - rval = PARENT::narrow(type_const);\ - return rval;\ -} - -#define DEF_NARROW_METHODS2(TYPE,PARENT1,PARENT2) \ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS2(TYPE,PARENT1,PARENT2) \ -int \ -TYPE::type_id() \ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) { \ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - if (rval == NULL) \ - rval = PARENT1::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT2::narrow(type_const);\ - return rval;\ -} - -#define DEF_NARROW_METHODS3(TYPE,PARENT1,PARENT2,PARENT3) \ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS3(TYPE,PARENT1,PARENT2,PARENT3) \ -int \ -TYPE::type_id() \ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) {\ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - if (rval == NULL) \ - rval = PARENT1::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT2::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT3::narrow(type_const);\ - return rval;\ -} - -#define DEF_NARROW_METHODS4(TYPE,PARENT1,PARENT2,PARENT3,PARENT4) \ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS4(TYPE,PARENT1,PARENT2,PARENT3,PARENT4) \ -int \ -TYPE::type_id() \ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) {\ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - if (rval == NULL) \ - rval = PARENT1::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT2::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT3::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT4::narrow(type_const);\ - return rval;\ -} - -#define DEF_NARROW_METHODS5(TYPE,PARENT1,PARENT2,PARENT3,PARENT4,PARENT5) \ -static int type_id(); \ -virtual void *narrow(long type_const) - - -#define IMPL_NARROW_METHODS5(TYPE,PARENT1,PARENT2,PARENT3,PARENT4,PARENT5) \ -int \ -TYPE::type_id() \ -{\ - return 0;\ -}\ -void * \ -TYPE::narrow(long type_const) {\ - void *rval = NULL; \ - if (type_const == (long)&TYPE::type_id) \ - rval = this; \ - if (rval == NULL) \ - rval = PARENT1::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT2::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT3::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT4::narrow(type_const);\ - if (rval == NULL) \ - rval = PARENT5::narrow(type_const);\ - return rval;\ -} - -#define DEF_NARROW_FROM_DECL(TYPE)\ -static TYPE *narrow_from_decl(AST_Decl *t) - - -#define IMPL_NARROW_FROM_DECL(TYPE)\ -TYPE * \ -TYPE::narrow_from_decl(AST_Decl *t) { \ - return (TYPE *)t->narrow((long)&TYPE::type_id);\ -} - -#define DEF_NARROW_FROM_SCOPE(TYPE)\ -static TYPE *narrow_from_scope(UTL_Scope *t) - - -#define IMPL_NARROW_FROM_SCOPE(TYPE)\ -TYPE * \ -TYPE::narrow_from_scope(UTL_Scope *t) { \ - return (TYPE *)t->narrow((long)&TYPE::type_id);\ -} - -#endif // _IDL_NARROW_IDL_NARROW_HH diff --git a/TAO/TAO_IDL/include/intlmacros.h b/TAO/TAO_IDL/include/intlmacros.h deleted file mode 100644 index a3a8c8c5cf0..00000000000 --- a/TAO/TAO_IDL/include/intlmacros.h +++ /dev/null @@ -1,87 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _IDL_INTLMACROS_HH -#define _IDL_INTLMACROS_HH - -// intlmacros.hh -// -// Define macros which conditionalize string internationalization - -#ifndef DOMF_TEXT_DEVEL_DOMAIN -#define DOMF_TEXT_DEVEL_DOMAIN "SUNW_DOE_DOMF_DEVEL" -#endif // DOMF_TEXT_DEVEL_DOMAIN - -#define GTDEVEL(s) s - -#if defined(__STDC__) -#define CONV(p) #p -#define MKSTR(p) CONV(p) -#else -#define MKSTR(p) "p" -#endif - -#endif // _IDL_INTLMACROS_HH diff --git a/TAO/TAO_IDL/include/nr_extern.h b/TAO/TAO_IDL/include/nr_extern.h deleted file mode 100644 index efa8be05209..00000000000 --- a/TAO/TAO_IDL/include/nr_extern.h +++ /dev/null @@ -1,76 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _NR_EXTERN_NR_EXTERN_HH -#define _NR_EXTERN_NR_EXTERN_HH - -// nr_extern.hh - Defines entry points provided by narrowing - -// Convert between an UTL_Scope and an AST_Decl -extern AST_Decl *ScopeAsDecl(UTL_Scope *s); -extern UTL_Scope *DeclAsScope(AST_Decl *d); - -#endif // _NR_EXTERN_NR_EXTERN_HH diff --git a/TAO/TAO_IDL/include/util.h b/TAO/TAO_IDL/include/util.h deleted file mode 100644 index fa8d871e721..00000000000 --- a/TAO/TAO_IDL/include/util.h +++ /dev/null @@ -1,87 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTIL_UTIL_HH -#define _UTIL_UTIL_HH - -// util.hh - Includes commonly used things defined in the util directory - -#include "utl_stack.h" // class fe_stack -#include "utl_exprlist.h" // class UTL_ExprList -#include "utl_strlist.h" // class UTL_StrList -#include "utl_idlist.h" // class UTL_IdList -#include "utl_exceptlist.h" // class UTL_ExceptList -#include "utl_namelist.h" // class UTL_NameList -#include "utl_labellist.h" // class UTL_LabelList -#include "utl_decllist.h" // class UTL_DeclList - -#include "idl_global.h" // Class IDL_GlobalData - -#include "utl_error.h" // class UTL_Error - -#include "utl_indenter.h" // class UTL_Indenter - -#endif // _UTIL_UTIL_HH diff --git a/TAO/TAO_IDL/include/utl_decllist.h b/TAO/TAO_IDL/include/utl_decllist.h deleted file mode 100644 index 4a33e154ac2..00000000000 --- a/TAO/TAO_IDL/include/utl_decllist.h +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_DECLLIST_UTL_DECLLIST_HH -#define _UTL_DECLLIST_UTL_DECLLIST_HH - -// utl_decllist.hh -// -// List of FE_Declarator nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, fe_declarator.hh -** -** USE: Included from util.hh -*/ - -class UTL_DeclList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_DeclList(FE_Declarator *s, UTL_DeclList *cdr); - - // Get element - FE_Declarator *head(); - -private: - // Data - FE_Declarator *pd_car_data; // The element this list stores -}; - -// Active iterator fooor UTL_DeclList -class UTL_DecllistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_DecllistActiveIterator(UTL_DeclList *s); - - // Get current item - FE_Declarator *item(); -}; - -#endif // _UTL_DECLLIST_UTL_DECLLIST_HH diff --git a/TAO/TAO_IDL/include/utl_err.h b/TAO/TAO_IDL/include/utl_err.h deleted file mode 100644 index 199e20d927f..00000000000 --- a/TAO/TAO_IDL/include/utl_err.h +++ /dev/null @@ -1,183 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_ERROR_UTL_ERROR_HH -#define _UTL_ERROR_UTL_ERROR_HH - -// utl_error.hh -// -// Defines error codes and error handling class for UTL -// This will change as a result of internationalization - -/* -** DEPENDENCIES: ast.hh -** -** USE: Included from util.hh -*/ - -class UTL_Error -{ -public: - enum ErrorCode { - EIDL_SYNTAX_ERROR, // Syntax error in IDL input - // More details will be gleaned from examining - // idl_global->parse_state() - EIDL_REDEF, // Redefinition - EIDL_REDEF_SCOPE, // Redefinition inside defining scope - EIDL_DEF_USE, // Definition after use - EIDL_MULTIPLE_BRANCH, // More than one union branch with this - // label - EIDL_COERCION_FAILURE, // Coercion failure - EIDL_SCOPE_CONFLICT, // Between fwd declare and full declare - EIDL_ONEWAY_CONFLICT, // Between op decl and argument direction - EIDL_DISC_TYPE, // Illegal discriminator type in union - EIDL_LABEL_TYPE, // Mismatch with discriminator type in union - EIDL_ILLEGAL_ADD, // Illegal add action - EIDL_ILLEGAL_USE, // Illegal type used in expression - EIDL_ILLEGAL_RAISES, // Error in "raises" clause - EIDL_ILLEGAL_CONTEXT, // Error in "context" clause - EIDL_CANT_INHERIT, // Cannot inherit from non-interface - EIDL_LOOKUP_ERROR, // Identifier not found - EIDL_INHERIT_FWD_ERROR, // Cannot inherit from fwd decl interface - EIDL_CONSTANT_EXPECTED, // We got something else.. - EIDL_NAME_CASE_ERROR, // Spelling differences found - EIDL_ENUM_VAL_EXPECTED, // Expected an enumerator - EIDL_ENUM_VAL_NOT_FOUND, // Didnt find an enumerator with that name - EIDL_EVAL_ERROR, // Error in evaluating expression - EIDL_AMBIGUOUS, // Ambiguous name definition - EIDL_DECL_NOT_DEFINED, // Forward declared but never defined - EIDL_FWD_DECL_LOOKUP, // Tried to lookup in fwd declared intf - EIDL_RECURSIVE_TYPE, // Illegal recursive use of type - EIDL_NONVOID_ONEWAY, // Non-void return type in oneway operation - EIDL_NOT_A_TYPE, // Not a type - EIDL_BACK_END, // Back end error - EIDL_OK // No error - }; - - // Operations - - // Report errors with varying numbers of arguments - void error0(ErrorCode e); - void error1(ErrorCode e, AST_Decl *t); - void error2(ErrorCode e, AST_Decl *t1, AST_Decl *t2); - void error3(ErrorCode e, AST_Decl *t1, AST_Decl *t2, AST_Decl *t3); - - // Report a syntax error in IDL input - void syntax_error(IDL_GlobalData::ParseState ps); - - // Report a name being used with different spellings - void name_case_error(char *n, char *t); - - // Report an unsuccesful coercion attempt - void coercion_error(AST_Expression *v, AST_Expression::ExprType t); - - // Report a failed name lookup attempt - void lookup_error(UTL_ScopedName *n); - - // Report an attempt to use a forward declared interface which - // hasn't been defined yet in an inheritance spec - void inheritance_fwd_error(UTL_ScopedName *n, AST_Interface *f); - - // Report an attempt to inherit from something other than an interface - void inheritance_error(UTL_ScopedName *n, AST_Decl *d); - - // Report an error while evaluating an expression (division by zero, etc.) - void eval_error(AST_Expression *d); - - // Report a situation where a constant was expected but we got - // something else instead. This most likely is a case where a union - // label did not evaluate to a constant - void constant_expected(UTL_ScopedName *n, AST_Decl *d); - - // Report a situation where an enumerator was expected but we got - // something else instead. This occurs when a union with an enum - // discriminator is being parsed and one of the branch labels is - // not an enumerator in that enum - void enum_val_expected(AST_Union *t, AST_UnionLabel *l); - - // Report a failed enumerator lookup in an enum - void enum_val_lookup_failure(AST_Union *t, AST_Enum *e, UTL_ScopedName *n); - - // Report an ambiguous name definition - void ambiguous(UTL_Scope *s, AST_Decl *l, AST_Decl *d); - - // Report a forward declared interface which was never defined - void fwd_decl_not_defined(AST_Interface *d); - - // Report attempt to lookup in forward declared interface - void fwd_decl_lookup(AST_Interface *d, UTL_ScopedName *n); - - // Report a redefinition in scope - void redefinition_in_scope(AST_Decl *t, AST_Decl *s); - - // Report not a type error - void not_a_type(AST_Decl *d); - - // Report back-end error - void back_end(long lineno, String *s); -}; - -#endif // _UTL_ERROR_UTL_ERROR_HH diff --git a/TAO/TAO_IDL/include/utl_error.h b/TAO/TAO_IDL/include/utl_error.h deleted file mode 100644 index 199e20d927f..00000000000 --- a/TAO/TAO_IDL/include/utl_error.h +++ /dev/null @@ -1,183 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_ERROR_UTL_ERROR_HH -#define _UTL_ERROR_UTL_ERROR_HH - -// utl_error.hh -// -// Defines error codes and error handling class for UTL -// This will change as a result of internationalization - -/* -** DEPENDENCIES: ast.hh -** -** USE: Included from util.hh -*/ - -class UTL_Error -{ -public: - enum ErrorCode { - EIDL_SYNTAX_ERROR, // Syntax error in IDL input - // More details will be gleaned from examining - // idl_global->parse_state() - EIDL_REDEF, // Redefinition - EIDL_REDEF_SCOPE, // Redefinition inside defining scope - EIDL_DEF_USE, // Definition after use - EIDL_MULTIPLE_BRANCH, // More than one union branch with this - // label - EIDL_COERCION_FAILURE, // Coercion failure - EIDL_SCOPE_CONFLICT, // Between fwd declare and full declare - EIDL_ONEWAY_CONFLICT, // Between op decl and argument direction - EIDL_DISC_TYPE, // Illegal discriminator type in union - EIDL_LABEL_TYPE, // Mismatch with discriminator type in union - EIDL_ILLEGAL_ADD, // Illegal add action - EIDL_ILLEGAL_USE, // Illegal type used in expression - EIDL_ILLEGAL_RAISES, // Error in "raises" clause - EIDL_ILLEGAL_CONTEXT, // Error in "context" clause - EIDL_CANT_INHERIT, // Cannot inherit from non-interface - EIDL_LOOKUP_ERROR, // Identifier not found - EIDL_INHERIT_FWD_ERROR, // Cannot inherit from fwd decl interface - EIDL_CONSTANT_EXPECTED, // We got something else.. - EIDL_NAME_CASE_ERROR, // Spelling differences found - EIDL_ENUM_VAL_EXPECTED, // Expected an enumerator - EIDL_ENUM_VAL_NOT_FOUND, // Didnt find an enumerator with that name - EIDL_EVAL_ERROR, // Error in evaluating expression - EIDL_AMBIGUOUS, // Ambiguous name definition - EIDL_DECL_NOT_DEFINED, // Forward declared but never defined - EIDL_FWD_DECL_LOOKUP, // Tried to lookup in fwd declared intf - EIDL_RECURSIVE_TYPE, // Illegal recursive use of type - EIDL_NONVOID_ONEWAY, // Non-void return type in oneway operation - EIDL_NOT_A_TYPE, // Not a type - EIDL_BACK_END, // Back end error - EIDL_OK // No error - }; - - // Operations - - // Report errors with varying numbers of arguments - void error0(ErrorCode e); - void error1(ErrorCode e, AST_Decl *t); - void error2(ErrorCode e, AST_Decl *t1, AST_Decl *t2); - void error3(ErrorCode e, AST_Decl *t1, AST_Decl *t2, AST_Decl *t3); - - // Report a syntax error in IDL input - void syntax_error(IDL_GlobalData::ParseState ps); - - // Report a name being used with different spellings - void name_case_error(char *n, char *t); - - // Report an unsuccesful coercion attempt - void coercion_error(AST_Expression *v, AST_Expression::ExprType t); - - // Report a failed name lookup attempt - void lookup_error(UTL_ScopedName *n); - - // Report an attempt to use a forward declared interface which - // hasn't been defined yet in an inheritance spec - void inheritance_fwd_error(UTL_ScopedName *n, AST_Interface *f); - - // Report an attempt to inherit from something other than an interface - void inheritance_error(UTL_ScopedName *n, AST_Decl *d); - - // Report an error while evaluating an expression (division by zero, etc.) - void eval_error(AST_Expression *d); - - // Report a situation where a constant was expected but we got - // something else instead. This most likely is a case where a union - // label did not evaluate to a constant - void constant_expected(UTL_ScopedName *n, AST_Decl *d); - - // Report a situation where an enumerator was expected but we got - // something else instead. This occurs when a union with an enum - // discriminator is being parsed and one of the branch labels is - // not an enumerator in that enum - void enum_val_expected(AST_Union *t, AST_UnionLabel *l); - - // Report a failed enumerator lookup in an enum - void enum_val_lookup_failure(AST_Union *t, AST_Enum *e, UTL_ScopedName *n); - - // Report an ambiguous name definition - void ambiguous(UTL_Scope *s, AST_Decl *l, AST_Decl *d); - - // Report a forward declared interface which was never defined - void fwd_decl_not_defined(AST_Interface *d); - - // Report attempt to lookup in forward declared interface - void fwd_decl_lookup(AST_Interface *d, UTL_ScopedName *n); - - // Report a redefinition in scope - void redefinition_in_scope(AST_Decl *t, AST_Decl *s); - - // Report not a type error - void not_a_type(AST_Decl *d); - - // Report back-end error - void back_end(long lineno, String *s); -}; - -#endif // _UTL_ERROR_UTL_ERROR_HH diff --git a/TAO/TAO_IDL/include/utl_exceptlist.h b/TAO/TAO_IDL/include/utl_exceptlist.h deleted file mode 100644 index 821efe648d2..00000000000 --- a/TAO/TAO_IDL/include/utl_exceptlist.h +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH -#define _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH - -// utl_exceptlist.hh -// -// List of AST_Exception nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, ast_exception.hh -** -** USE: Included from util.hh -*/ - -class UTL_ExceptList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_ExceptList(AST_Exception *s, UTL_ExceptList *cdr); - - // Get list item - AST_Exception *head(); - -private: - // Data - AST_Exception *pd_car_data; // Item of this list -}; - -// Active iterator for UTL_ExceptList -class UTL_ExceptlistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ExceptlistActiveIterator(UTL_ExceptList *s); - - // Get current item - AST_Exception *item(); -}; - -#endif // _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH diff --git a/TAO/TAO_IDL/include/utl_exprlist.h b/TAO/TAO_IDL/include/utl_exprlist.h deleted file mode 100644 index d113b23109e..00000000000 --- a/TAO/TAO_IDL/include/utl_exprlist.h +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_EXPRLIST_UTL_EXPRLIST_HH -#define _UTL_EXPRLIST_UTL_EXPRLIST_HH - -// utl_exprlist.hh -// -// List of strings - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: ast_expression.hh, utl_list.hh -** -** USE: Included from util.hh -*/ - -class UTL_ExprList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_ExprList(AST_Expression *s, UTL_ExprList *cdr); - - // Get list item - AST_Expression *head(); - -private: - // Data - AST_Expression *pd_car_data; // List item -}; - -// Active iterator for UTL_ExprList -class UTL_ExprlistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ExprlistActiveIterator(UTL_ExprList *s); - - // Get current item - AST_Expression *item(); -}; - -#endif // _UTL_EXPRLIST_UTL_EXPRLIST_HH diff --git a/TAO/TAO_IDL/include/utl_identifier.h b/TAO/TAO_IDL/include/utl_identifier.h deleted file mode 100644 index 392ee7e58e5..00000000000 --- a/TAO/TAO_IDL/include/utl_identifier.h +++ /dev/null @@ -1,113 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_IDENTIFIER_UTL_IDENTIFIER_HH -#define _UTL_IDENTIFIER_UTL_IDENTIFIER_HH - -// utl_identifier.hh -// -// Identifier - -/* -** DEPENDENCIES: utl_string.hh -** -** USE: Included from util.hh -*/ - -#include "idl_fwd.h" -#include "utl_string.h" - -class Identifier -{ -public: - Identifier (); - // Default Constructor(s) - - Identifier (char *s, long x=1, long y=0, long z=I_FALSE); - // constructor - - virtual ~Identifier (); - // destructor - - // =Operations - - char *get_string (); - // get the underlying string - - long compare (Identifier *other); - // compare with other Identifier - - // =Dumping - - virtual void dump (ostream &o); - // dump to an ostream - - private: - // Storage for data - char *pv_string; -}; - -#endif // _UTL_IDENTIFIER_UTL_IDENTIFIER_HH diff --git a/TAO/TAO_IDL/include/utl_idlist.h b/TAO/TAO_IDL/include/utl_idlist.h deleted file mode 100644 index 211836af42e..00000000000 --- a/TAO/TAO_IDL/include/utl_idlist.h +++ /dev/null @@ -1,147 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_IDLIST_UTL_IDLIST_HH -#define _UTL_IDLIST_UTL_IDLIST_HH - -// utl_idlist.hh -// -// List of Identifiers - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, utl_identifier.hh -** -** USE: Included from util.hh -*/ - -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_identifier.h" -#include "utl_string.h" - -class UTL_IdList : public UTL_List -{ - // =TITLE - // UTL_IdList - // =DESCRIPTION - // Used to maintain a list of identifiers. The primary usage of this class - // is to maintain a scoped name. -public: - UTL_IdList (Identifier *car, UTL_IdList *cdr); - // Constructor(s) - - virtual ~UTL_IdList() {} - // destructor - - // =AST Dumping - - virtual void dump (ostream &o); - // dump to ostream - - // Other operations - - UTL_List *copy (); - // Copy the list - - Identifier *head (); - // get element - - Identifier *last_component (); - // Get last element in this list -private: - Identifier *pd_car_data; -}; - -// Active iterator for UTL_IdList - -class UTL_IdListActiveIterator : - public UTL_ListActiveIterator -{ - // =TITLE - // UTL_IdListActiveIterator - // =DESCRIPTION - // Iterator for the IDList -public: - UTL_IdListActiveIterator (UTL_IdList *s); - // Constructor(s) - - Identifier *item (); - // retrieves the next item -}; - -#endif // _UTL_IDLIST_UTL_IDLIST_HH diff --git a/TAO/TAO_IDL/include/utl_indenter.h b/TAO/TAO_IDL/include/utl_indenter.h deleted file mode 100644 index 29c8c587f00..00000000000 --- a/TAO/TAO_IDL/include/utl_indenter.h +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_INDENTER_UTL_INDENTER_HH -#define _UTL_INDENTER_UTL_INDENTER_HH - -// UTL indenter: -// -// Utility class for control of indentation level during dumping -// May also be useful for BEs that want to produce nicely formatted -// output - -/* -** DEPENDENCIES: NONE -** -** USE: in CFE in dumping the AST -*/ - -class UTL_Indenter -{ - // =TITLE - // UTL_Indenter - // =DESCRIPTION - // useful in generating indented output -public: - // Operations - - UTL_Indenter(); // constructor - // Constructor(s) - - virtual ~UTL_Indenter() {} - // destructor - - void reset(); - // Reset indentation level to 0 - - void increase(); - // Increase indentation level - - void decrease(); - // Decrease indentation level - - void skip_to (ostream &o); - // Skip to indentation level stop - - void skip_to (FILE *fp); - // skip to indentation level stop - -private: - // Data - long pd_indent_level; // How far to indent -}; - -#endif // _UTL_INDENTER_UTL_INDENTER_HH diff --git a/TAO/TAO_IDL/include/utl_labellist.h b/TAO/TAO_IDL/include/utl_labellist.h deleted file mode 100644 index e3410e34623..00000000000 --- a/TAO/TAO_IDL/include/utl_labellist.h +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_LABELLIST_UTL_LABELLIST_HH -#define _UTL_LABELLIST_UTL_LABELLIST_HH - -// utl_labellist.hh -// -// List of AST_UnionBranch nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, ast_union_label.hh -** -** USE: Included from util.hh -*/ - -class UTL_LabelList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_LabelList(AST_UnionLabel *s, UTL_LabelList *cdr); - - // Get list item - AST_UnionLabel *head(); - -private: - // Data - AST_UnionLabel *pd_car_data; // List item -}; - -// Active iterator for UTL_LabelList -class UTL_LabellistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_LabellistActiveIterator(UTL_LabelList *source); - - // Get current item - AST_UnionLabel *item(); -}; - -#endif // _UTL_LABELLIST_UTL_LABELLIST_HH diff --git a/TAO/TAO_IDL/include/utl_list.h b/TAO/TAO_IDL/include/utl_list.h deleted file mode 100644 index 0c113ab9fbc..00000000000 --- a/TAO/TAO_IDL/include/utl_list.h +++ /dev/null @@ -1,150 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_LIST_UTL_LIST_HH -#define _UTL_LIST_UTL_LIST_HH - -// utl_list.hh -// -// General single-linked lists - -/* -** DEPENDENCIES: NONE -** -** USE: Included from util.hh -*/ - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -// Forward declare active iterator for UTL_List -class UTL_ListActiveIterator; - -class UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_List(UTL_List *c); - - // Smash last cdr pointer in "this" with l - void nconc(UTL_List *l); - - // Copy the list starting at "this" - virtual UTL_List *copy(); - - // Get next list - UTL_List *tail(); - - // Set next list - void set_tail(UTL_List *l); - - // How long is this list? - long length(); - -private: - // Data - UTL_List *pd_cdr_data; // The next list - - // Operations - long list_length(long n); // How long is it? - - // Friend class - friend class UTL_ListActiveIterator; // Friend class - -}; - -// Active iterator for lists -class UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ListActiveIterator(UTL_List *s); - - // Get next list - virtual void next(); - - // Are we at the end of this list? - virtual long is_done(); - -protected: - // Data - UTL_List *source; // On what to iterate? -}; - -#endif // _UTL_LIST_UTL_LIST_HH diff --git a/TAO/TAO_IDL/include/utl_namelist.h b/TAO/TAO_IDL/include/utl_namelist.h deleted file mode 100644 index 3b9be0bc45a..00000000000 --- a/TAO/TAO_IDL/include/utl_namelist.h +++ /dev/null @@ -1,121 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_NAMELIST_UTL_NAMELIST_HH -#define _UTL_NAMELIST_UTL_NAMELIST_HH - -// utl_namelist.hh -// -// List of UTL_ScopedName nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, utl_scoped_name.hh -** -** USE: Included from util.hh -*/ - -class UTL_NameList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_NameList(UTL_ScopedName *s, UTL_NameList *cdr); - - // Get list item - UTL_ScopedName *head(); - -private: - // Data - UTL_ScopedName *pd_car_data; // List item -}; - -// Active iterator for UTL_NameList -class UTL_NamelistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_NamelistActiveIterator(UTL_NameList *source); - - // Get current item - UTL_ScopedName *item(); -}; - -#endif // _UTL_NAMELIST_UTL_NAMELIST_HH diff --git a/TAO/TAO_IDL/include/utl_scope.h b/TAO/TAO_IDL/include/utl_scope.h deleted file mode 100644 index ce94d12574f..00000000000 --- a/TAO/TAO_IDL/include/utl_scope.h +++ /dev/null @@ -1,292 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- -// $Id$ -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_SCOPE_UTL_SCOPE_HH -#define _UTL_SCOPE_UTL_SCOPE_HH - -// UTL_Scope - Provide scoping mechanism -// -// This is the base class for name scoping. Each entity which can -// be directly contained in a naming scope has an add() function -// defined for it. The functions defined on the base scoping class -// all return FALSE. Each subclass of UTL_Scope should -// define its own add() functions for those types which are legal -// in that context. Then, for those types for which no local functions -// have been defined the function on the base class will be called to -// return FALSE. -// -// The "AST_" classes may redefine add() functions to implement any -// name binding mechanisms needed for their own functionality. It is -// the responsibility of those functions then to call the add() -// function defined in the parent "AST_" class. - -/* -** DEPENDENCIES: ast_decl.hh, utl_scoped_name.hh -** -** USE: Included from ast.hh -*/ - -#include "idl_fwd.h" -#include "idl_narrow.h" -#include "ast_decl.h" -#include "ast_expression.h" -#include "utl_scoped_name.h" - -// Forward declaration of active iterator for UTL_Scope -class UTL_ScopeActiveIterator; - -class UTL_Scope : public virtual COMMON_Base -{ -public: - // Enum to denote the kind of iteration desired - enum ScopeIterationKind { - IK_both // Iterate through both decls and local types - , IK_decls // Iterate only through decls - , IK_localtypes // Iterate only through local types - }; - - // Operations - - // Constructor(s) - UTL_Scope(); - UTL_Scope(AST_Decl::NodeType nt); - virtual ~UTL_Scope() {} - - // Scope Management Protocol - virtual AST_PredefinedType *add_predefined_type(AST_PredefinedType *t); - virtual AST_Module *add_module(AST_Module *m); - virtual AST_Interface *add_interface(AST_Interface *i); - virtual AST_InterfaceFwd *add_interface_fwd(AST_InterfaceFwd *i); - virtual AST_Constant *add_constant(AST_Constant *c); - virtual AST_Exception *add_exception(AST_Exception *e); - virtual AST_Attribute *add_attribute(AST_Attribute *a); - virtual AST_Operation *add_operation(AST_Operation *o); - virtual AST_Argument *add_argument(AST_Argument *a); - virtual AST_Union *add_union(AST_Union *u); - virtual AST_UnionBranch *add_union_branch(AST_UnionBranch *b); - virtual AST_Structure *add_structure(AST_Structure *s); - virtual AST_Field *add_field(AST_Field *f); - virtual AST_Enum *add_enum(AST_Enum *e); - virtual AST_EnumVal *add_enum_val(AST_EnumVal *v); - virtual AST_Typedef *add_typedef(AST_Typedef *t); - virtual UTL_StrList *add_context(UTL_StrList *c); - virtual UTL_NameList *add_exceptions(UTL_NameList *e); - virtual AST_Sequence *add_sequence(AST_Sequence *s); - virtual AST_String *add_string(AST_String *s); - virtual AST_Array *add_array(AST_Array *a); - virtual AST_Native *add_native (AST_Native *n); - - // Call back end add_XXX functions for this scope - virtual AST_Decl *call_add(); - - // Data Accessors - AST_Decl::NodeType scope_node_type() - { - return pd_scope_node_type; - } - - // Narrowing - DEF_NARROW_METHODS0(UTL_Scope); - DEF_NARROW_FROM_SCOPE(UTL_Scope); - - // AST Dumping - virtual void dump(ostream &o); - - // Other Operations - - // Name Lookup Mechanism - virtual AST_Decl *lookup_by_name(UTL_ScopedName *, - idl_bool treat_as_ref); - - // Look up the Identifier * specified only in the local scope - virtual AST_Decl *lookup_by_name_local(Identifier *, - idl_bool treat_as_ref); - - // Look up a predefined type by its ExprType - virtual AST_Decl - *lookup_primitive_type(AST_Expression::ExprType); - - // How many entries are used? - virtual unsigned long nmembers(); - -protected: - // UTL_Scope protected addition protocol. This protocol is - // used from sub-classes of UTL_Scope to insert nodes directly - // into the specified node table (either decls or local_types) - // Additionally, UTL_Scope also maintains a record of what nodes - // defined elsewhere were referenced in this scope - - // Add to decls. Node represents a local declaration - void add_to_scope(AST_Decl *e); - - // Add to local types. Node represents a local manifest type - void add_to_local_types(AST_Decl *e); - - // Add to referenced nodes set. - void add_to_referenced(AST_Decl *e, - idl_bool recursive); - - // Has this node been referenced here already? - idl_bool referenced(AST_Decl *e); - - // Look up a scoped name in the inherited interfaces of an - // interface - virtual AST_Decl *look_in_inherited(UTL_ScopedName *, - idl_bool treat_as_ref); -protected: - // Operations - - // Lookup based on the local name - virtual AST_Decl *lookup_for_add(AST_Decl *d, - idl_bool treat_as_ref); - -private: - // Data - - // What type is this node? This is a cache of the information - // in AST_Decl - const AST_Decl::NodeType pd_scope_node_type; - - // Storage for declarations in this scope: - AST_Decl **pd_decls; // Store declarations - long pd_decls_allocated; // How many allocated? - long pd_decls_used; // How many used? - - // Storage for local manifest types in this scope: - AST_Decl **pd_local_types; // Store types - long pd_locals_allocated; // How many allocated? - long pd_locals_used; // How many used? - - // Storage for referenced nodes in this scope: - AST_Decl **pd_referenced; // Store references - long pd_referenced_allocated;// How many allocated? - long pd_referenced_used; // How many used? - - // Friend class UTL_ScopeActiveIterator defines active iterator for - // UTL_Scope. Definition follows below. - friend class UTL_ScopeActiveIterator; - -private: - friend int tao_yyparse(); - friend class AST_Enum; - - // Scope Management Protocol - virtual AST_PredefinedType *fe_add_predefined_type(AST_PredefinedType *t); - virtual AST_Module *fe_add_module(AST_Module *m); - virtual AST_Interface *fe_add_interface(AST_Interface *i); - virtual AST_InterfaceFwd *fe_add_interface_fwd(AST_InterfaceFwd *i); - virtual AST_Constant *fe_add_constant(AST_Constant *c); - virtual AST_Exception *fe_add_exception(AST_Exception *e); - virtual AST_Attribute *fe_add_attribute(AST_Attribute *a); - virtual AST_Operation *fe_add_operation(AST_Operation *o); - virtual AST_Argument *fe_add_argument(AST_Argument *a); - virtual AST_Union *fe_add_union(AST_Union *u); - virtual AST_UnionBranch *fe_add_union_branch(AST_UnionBranch *b); - virtual AST_Structure *fe_add_structure(AST_Structure *s); - virtual AST_Field *fe_add_field(AST_Field *f); - virtual AST_Enum *fe_add_enum(AST_Enum *e); - virtual AST_EnumVal *fe_add_enum_val(AST_EnumVal *v); - virtual AST_Typedef *fe_add_typedef(AST_Typedef *t); - virtual UTL_StrList *fe_add_context(UTL_StrList *c); - virtual UTL_NameList *fe_add_exceptions(UTL_NameList *e); - virtual AST_Sequence *fe_add_sequence(AST_Sequence *s); - virtual AST_String *fe_add_string(AST_String *s); - virtual AST_Array *fe_add_array(AST_Array *a); - virtual AST_Native *fe_add_native (AST_Native *n); -}; - -// Active iterator for a UTL_Scope node -class UTL_ScopeActiveIterator { -public: - // Operations - - // Constructor(s) - UTL_ScopeActiveIterator(UTL_Scope *s, UTL_Scope::ScopeIterationKind ik); - - // Advance to next item - virtual void next(); - - // Get current item - virtual AST_Decl *item(); - - // Have we iterated over entire scope? - virtual idl_bool is_done(); - - // What kind of iterator is this? - virtual UTL_Scope::ScopeIterationKind iteration_kind(); - - // What stage are we in with this iterator? - virtual UTL_Scope::ScopeIterationKind iteration_stage(); - -private: - // Data - UTL_Scope *iter_source; // Scope to iterate over - UTL_Scope::ScopeIterationKind ik; // What kind of iteration - UTL_Scope::ScopeIterationKind stage; // What stage - long il; // What location in stage -}; - -#endif // _UTL_SCOPE_UTL_SCOPE_HH diff --git a/TAO/TAO_IDL/include/utl_scoped_name.h b/TAO/TAO_IDL/include/utl_scoped_name.h deleted file mode 100644 index 5a3145e669b..00000000000 --- a/TAO/TAO_IDL/include/utl_scoped_name.h +++ /dev/null @@ -1,82 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _AST_SCOPED_NAME_AST_SCOPED_NAME_HH -#define _AST_SCOPED_NAME_AST_SCOPED_NAME_HH - -// Define UTL_ScopedName as a list of strings - -/* -** DEPENDENCIES: utl_strlist.hh -** -** USE: Included from ast.hh -*/ - -typedef UTL_IdList UTL_ScopedName; - -typedef UTL_IdListActiveIterator UTL_ScopedNameActiveIterator; - -#endif // _AST_SCOPED_NAME_AST_SCOPED_NAME_HH diff --git a/TAO/TAO_IDL/include/utl_stack.h b/TAO/TAO_IDL/include/utl_stack.h deleted file mode 100644 index 9d4224cde4c..00000000000 --- a/TAO/TAO_IDL/include/utl_stack.h +++ /dev/null @@ -1,150 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_STACK_UTL_STACK_HH -#define _UTL_STACK_UTL_STACK_HH - -// utl_stack.hh - Defines the UTL_ScopeStack class - a stack of scopes -// -// UTL_ScopeStack implements scope nesting - -/* -** DEPENDENCIES: utl_scope.hh -** -** USE: Included from util.hh -*/ - -// Forward declaration of active iterator for UTL_ScopeStack -class UTL_ScopeStackActiveIterator; - -class UTL_ScopeStack -{ -public: - // Operations - - // Constructor and destructor - UTL_ScopeStack(); - virtual ~UTL_ScopeStack(); - - // Return top element - virtual UTL_Scope *top(); - - // Pop top element - virtual void pop(); - - // Clear entire stack - virtual void clear(); - - // Push an element on the stack and return stack - virtual UTL_ScopeStack *push(UTL_Scope *el); - - // How deep is the stack now? - virtual unsigned long depth(); - - // Return bottom element - virtual UTL_Scope *bottom(); - - // Return (top - 1) element - virtual UTL_Scope *next_to_top(); - - // return topmost non-NULL element - virtual UTL_Scope *top_non_null(); - -private: - // Data - UTL_Scope **pd_stack_data; // Store scopes stack - unsigned long pd_stack_data_nalloced; // How many allocated? - unsigned long pd_stack_top; // How many used? - - // Friend active iterator class for UTL_ScopeStack - friend class UTL_ScopeStackActiveIterator; -}; - -// Active iterator for UTL_ScopeStack -class UTL_ScopeStackActiveIterator -{ -public: - // Operations - - // Constructor - UTL_ScopeStackActiveIterator(UTL_ScopeStack *s); - - // Advance to next element - virtual void next(); - - // Get current item - virtual UTL_Scope *item(); - - // Is the iteration finished? - virtual long is_done(); - -private: - // Data - UTL_ScopeStack *source; // On what to iterate? - long il; // Where are we in iteration? -}; - -#endif // _UTL_STACK_UTL_STACK_HH diff --git a/TAO/TAO_IDL/include/utl_string.h b/TAO/TAO_IDL/include/utl_string.h deleted file mode 100644 index 0db31bd2bf6..00000000000 --- a/TAO/TAO_IDL/include/utl_string.h +++ /dev/null @@ -1,143 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _STRING_STRING_HH -#define _STRING_STRING_HH - -// utl_string.hh - contains a quick and dirty TEMPORARY string implementation - -/* -** DEPENDENCIES: NONE -** -** USE: Included from util.hh -*/ - -#ifndef String -#define String UTL_String -#endif // String - -class UTL_String -{ - // =TITLE - // UTL_String - // =DESCRIPTION - // string class to store identifiers -public: - // =Operations - - UTL_String (void); - // default constructor - - UTL_String (char *str); - // construct from a char * - - UTL_String (unsigned long maxlen); - // constructor with an initial string length - - UTL_String (UTL_String *s); - // construct using a pointer to UTL_String - - virtual ~UTL_String (void) {} - // destructor - - // =AST Dumping - - virtual void dump (ostream &o); - // dump to the ostream - - // =Other Operations - - char *get_string (void); - // Get contents of utl_string - - char *get_canonical_rep (void); - // Get canonical representation. This is (implemented as) the all upper - // case corresponding string - - virtual long compare (UTL_String *s); - // Compare two String * - -private: - // Data - char *p_str; - // Storage for characters - - char *c_str; - // Canonicalized string - - unsigned long len; - // How long is string - - unsigned long alloced; - // How much allocated - - // =Private helper operations - - void canonicalize (void); - // Compute canonical representation -}; - -#endif // _STRING_STRING_HH diff --git a/TAO/TAO_IDL/include/utl_strlist.h b/TAO/TAO_IDL/include/utl_strlist.h deleted file mode 100644 index 5806cb57785..00000000000 --- a/TAO/TAO_IDL/include/utl_strlist.h +++ /dev/null @@ -1,135 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#ifndef _UTL_STRLIST_UTL_STRLIST_HH -#define _UTL_STRLIST_UTL_STRLIST_HH - -// utl_strlist.hh -// -// List of String nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -/* -** DEPENDENCIES: utl_list.hh, utl_string.hh -** -** USE: Included from util.hh -*/ - -class UTL_StrList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_StrList(String *s, UTL_StrList *cdr); - - // AST Dumping - virtual void dump(ostream &o); - - // Other Operations - - // Copy a list of strings - virtual UTL_List *copy(); - - // Get list element - String *head(); - - // Set the list element - void set_head(String *); - - // Get last element in this list - String *last_component(); - -private: - // Data - String *pd_car_data; // The list item -}; - -// Active iterator for UTL_StrList -class UTL_StrlistActiveIterator : public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_StrlistActiveIterator(UTL_StrList *s); - - // Get current item - String *item(); -}; - -#endif // _UTL_STRLIST_UTL_STRLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h deleted file mode 100644 index 63247a10df2..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_decllist.h +++ /dev/null @@ -1,100 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_DECLLIST_UTL_DECLLIST_HH -#define _UTL_DECLLIST_UTL_DECLLIST_HH - -// utl_decllist.hh -// -// List of FE_Declarator nodes - -/* -** DEPENDENCIES: utl_list.hh, fe_declarator.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_idlist.h" -#include "utl_scoped_name.h" -#include "utl_identifier.h" -#include "utl_string.h" -#include "fe_declarator.h" - - -class UTL_DeclList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_DeclList(FE_Declarator *s, UTL_DeclList *cdr); - virtual ~UTL_DeclList() {} -}; - -// Active iterator for UTL_DeclList -class UTL_DecllistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_DecllistActiveIterator(UTL_DeclList *s); - virtual ~UTL_DecllistActiveIterator() {} -}; - -#endif // _UTL_DECLLIST_UTL_DECLLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h deleted file mode 100644 index a709776a875..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_exceptlist.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH -#define _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH - -// utl_exceptlist.hh -// -// List of AST_Exception nodes - -/* -** DEPENDENCIES: utl_list.hh, ast_exception.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_strlist.h" -#include "utl_idlist.h" -#include "utl_scoped_name.h" -#include "utl_identifier.h" -#include "utl_string.h" -#include "ast_expression.h" -#include "idl_bool.h" -#include "utl_scope.h" -#include "ast_decl.h" -#include "ast_type.h" -#include "ast_concrete_type.h" -#include "ast_structure.h" -#include "ast_exception.h" - - -class UTL_ExceptList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_ExceptList(AST_Exception *s, UTL_ExceptList *cdr); - virtual ~UTL_ExceptList() {} -}; - -// Active iterator for UTL_ExceptList -class UTL_ExceptlistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ExceptlistActiveIterator(UTL_ExceptList *s); - virtual ~UTL_ExceptlistActiveIterator() {} -}; - -#endif // _UTL_EXCEPTLIST_UTL_EXCEPTLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h deleted file mode 100644 index 5215ae18362..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_exprlist.h +++ /dev/null @@ -1,101 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_EXPRLIST_UTL_EXPRLIST_HH -#define _UTL_EXPRLIST_UTL_EXPRLIST_HH - -// utl_exprlist.hh -// -// List of strings - -/* -** DEPENDENCIES: ast_expression.hh, utl_list.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_strlist.h" -#include "utl_idlist.h" -#include "utl_scoped_name.h" -#include "utl_identifier.h" -#include "utl_string.h" -#include "ast_expression.h" - - -class UTL_ExprList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_ExprList(AST_Expression *s, UTL_ExprList *cdr); - virtual ~UTL_ExprList() {} -}; - -// Active iterator for UTL_ExprList -class UTL_ExprlistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ExprlistActiveIterator(UTL_ExprList *s); - virtual ~UTL_ExprlistActiveIterator() {} -}; - -#endif // _UTL_EXPRLIST_UTL_EXPRLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h deleted file mode 100644 index a08bac915b6..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_idlist.h +++ /dev/null @@ -1,100 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_IDLIST_UTL_IDLIST_HH -#define _UTL_IDLIST_UTL_IDLIST_HH - -// utl_idlist.hh -// -// List of Identifiers - -/* -** DEPENDENCIES: utl_list.hh, utl_identifier.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_identifier.h" -#include "utl_string.h" - -class UTL_IdList : public UTL_List -{ - public: - // Constructor(s) - UTL_IdList(Identifier *car, UTL_IdList *cdr); - virtual ~UTL_IdList() {} - - // AST Dumping - virtual void dump(ostream &o); - - // Other operations - - // Get last element in this list - Identifier *last_component(); -}; - -// Active iterator for UTL_IdList - -class UTL_IdListActiveIterator : - public UTL_ListActiveIterator -{ - public: - // Constructor(s) - UTL_IdListActiveIterator(UTL_IdList *s); -}; - -#endif // _UTL_IDLIST_UTL_IDLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h deleted file mode 100644 index e9c38823e31..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_labellist.h +++ /dev/null @@ -1,96 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_LABELLIST_UTL_LABELLIST_HH -#define _UTL_LABELLIST_UTL_LABELLIST_HH - -// utl_labellist.hh -// -// List of AST_UnionBranch nodes - -/* -** DEPENDENCIES: utl_list.hh, ast_union_label.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "ast_union_label.h" - - -class UTL_LabelList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_LabelList(AST_UnionLabel *s, UTL_LabelList *cdr); - virtual ~UTL_LabelList() {} -}; - -// Active iterator for UTL_LabelList -class UTL_LabellistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_LabellistActiveIterator(UTL_LabelList *source); - virtual ~UTL_LabellistActiveIterator() {} -}; - -#endif // _UTL_LABELLIST_UTL_LABELLIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_list.h b/TAO/TAO_IDL/include/utl_tmpl/utl_list.h deleted file mode 100644 index 8bc8c4035a6..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_list.h +++ /dev/null @@ -1,140 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_LIST_UTL_LIST_HH -#define _UTL_LIST_UTL_LIST_HH - -// utl_list.hh -// -// General single-linked lists - -/* -** DEPENDENCIES: NONE -** -** USE: Included from util.hh -*/ - -// Forward declare active iterator for UTL_List -template class UTL_ListActiveIterator; - -template -class UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_List(T *c, L *l); - virtual ~UTL_List() {} - - // Smash last cdr pointer in "this" with l - void nconc(L *l); - - // Copy the list starting at "this" - L *copy(); - - // Get list element - T *head(); - - // Get next list - L *tail(); - - // Set the list element - void set_head(T *t); - - // Set next list - void set_tail(L *l); - - // How long is this list? - long length(); - -private: - // Data - T *pd_car_data; // The next list - L *pd_cdr_data; // The next list - - // Operations - long list_length(long n); // How long is it? - - // Friend class - friend class UTL_ListActiveIterator; // Friend class - -}; - -// Active iterator for lists -template -class UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_ListActiveIterator(UTL_List *s); - virtual ~UTL_ListActiveIterator() {} - - // Get current item - T *item(); - - // Get next list - virtual void next(); - - // Are we at the end of this list? - virtual long is_done(); - -protected: - // Data - UTL_List *source; // On what to iterate? -}; - -#endif // _UTL_LIST_UTL_LIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h deleted file mode 100644 index ff8f23ff45c..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_namelist.h +++ /dev/null @@ -1,98 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_NAMELIST_UTL_NAMELIST_HH -#define _UTL_NAMELIST_UTL_NAMELIST_HH - -// utl_namelist.hh -// -// List of UTL_ScopedName nodes - -/* -** DEPENDENCIES: utl_list.hh, utl_scoped_name.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_idlist.h" -#include "utl_scoped_name.h" -#include "utl_identifier.h" -#include "utl_string.h" - -class UTL_NameList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_NameList(UTL_ScopedName *s, UTL_NameList *cdr); - virtual ~UTL_NameList() {} -}; - -// Active iterator for UTL_NameList -class UTL_NamelistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_NamelistActiveIterator(UTL_NameList *source); - virtual ~UTL_NamelistActiveIterator() {} -}; - -#endif // _UTL_NAMELIST_UTL_NAMELIST_HH diff --git a/TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h b/TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h deleted file mode 100644 index 2b6966d0b01..00000000000 --- a/TAO/TAO_IDL/include/utl_tmpl/utl_strlist.h +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -#ifndef _UTL_STRLIST_UTL_STRLIST_HH -#define _UTL_STRLIST_UTL_STRLIST_HH - -// utl_strlist.hh -// -// List of String nodes - -/* -** DEPENDENCIES: utl_list.hh, utl_string.hh -** -** USE: Included from util.hh -*/ - -#include "ace/stdcpp.h" -#include "idl_fwd.h" -#include "utl_list.h" -#include "utl_string.h" - - -class UTL_StrList : public UTL_List -{ -public: - // Operations - - // Constructor(s) - UTL_StrList(String *s, UTL_StrList *cdr); - virtual ~UTL_StrList() {} - - // AST Dumping - virtual void dump(ostream &o); - - // Other Operations - - // Get last element in this list - String *last_component(); -}; - -// Active iterator for UTL_StrList -class UTL_StrlistActiveIterator : - public UTL_ListActiveIterator -{ -public: - // Operations - - // Constructor(s) - UTL_StrlistActiveIterator(UTL_StrList *s); - virtual ~UTL_StrlistActiveIterator() {} -}; - -#endif // _UTL_STRLIST_UTL_STRLIST_HH diff --git a/TAO/TAO_IDL/narrow/Makefile b/TAO/TAO_IDL/narrow/Makefile deleted file mode 100644 index 38e976ef85f..00000000000 --- a/TAO/TAO_IDL/narrow/Makefile +++ /dev/null @@ -1,100 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for libast -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -LIBNAME = libnarrow -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) -IDL_CFE_VERSION = \"1.3.0\" - -# These are components that are sources of -NARROW_FILES = \ - narrow - -FILES = $(NARROW_FILES) - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - - -LDLIBS = -lACE -LIBS = -lACE -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VSHLIB) #$(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 (and local hacks) -#---------------------------------------------------------------------------- - -CPPFLAGS += -I../include -I. -DCPP_LOCATION=\"$(CXX)\" -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/narrow.o .obj/narrow.so .shobj/narrow.o .shobj/narrow.so: narrow.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/TAO_IDL/narrow/narrow.cpp b/TAO/TAO_IDL/narrow/narrow.cpp deleted file mode 100644 index ef11448f4b0..00000000000 --- a/TAO/TAO_IDL/narrow/narrow.cpp +++ /dev/null @@ -1,139 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -#include "idl.h" -#include "idl_extern.h" - -// Narrowing functions for AST - -/* - * Convert a UTL_Scope node into an AST_Decl node if possible - */ -AST_Decl * -ScopeAsDecl(UTL_Scope *s) -{ - if (s == NULL) return NULL; - - switch (s->scope_node_type()) { - case AST_Decl::NT_module: - return AST_Module::narrow_from_scope(s); - case AST_Decl::NT_root: - return AST_Root::narrow_from_scope(s); - case AST_Decl::NT_interface: - return AST_Interface::narrow_from_scope(s); - case AST_Decl::NT_op: - return AST_Operation::narrow_from_scope(s); - case AST_Decl::NT_except: - return AST_Exception::narrow_from_scope(s); - case AST_Decl::NT_union: - return AST_Union::narrow_from_scope(s); - case AST_Decl::NT_struct: - return AST_Structure::narrow_from_scope(s); - case AST_Decl::NT_enum: - return AST_Enum::narrow_from_scope(s); - default: - return NULL; - } -} - -/* - * Convert an AST_Decl to a UTL_Scope if possible - */ -UTL_Scope * -DeclAsScope(AST_Decl *d) -{ - if (d == NULL) return NULL; - - switch (d->node_type()) { - case AST_Decl::NT_interface_fwd: - /* - * Resolve forward declared interface by looking at full_definition() - * field and iterating - */ - d = (AST_InterfaceFwd::narrow_from_decl(d))->full_definition(); - /* - * Fall through - */ - case AST_Decl::NT_interface: - return AST_Interface::narrow_from_decl(d); - case AST_Decl::NT_module: - return AST_Module::narrow_from_decl(d); - case AST_Decl::NT_root: - return AST_Root::narrow_from_decl(d); - case AST_Decl::NT_except: - return AST_Exception::narrow_from_decl(d); - case AST_Decl::NT_union: - return AST_Union::narrow_from_decl(d); - case AST_Decl::NT_struct: - return AST_Structure::narrow_from_decl(d); - case AST_Decl::NT_enum: - return AST_Enum::narrow_from_decl(d); - case AST_Decl::NT_op: - return AST_Operation::narrow_from_decl(d); - default: - return NULL; - } -} diff --git a/TAO/TAO_IDL/util/Makefile b/TAO/TAO_IDL/util/Makefile deleted file mode 100644 index f4db89f026a..00000000000 --- a/TAO/TAO_IDL/util/Makefile +++ /dev/null @@ -1,719 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for libutil -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -LIBNAME = libtao_idl_util -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) -IDL_CFE_VERSION = \"1.3.0\" - -# These are components that are sources of - -UTIL_FILES = \ - utl_scope \ - utl_stack \ - utl_string \ - utl_decllist \ - utl_labellist \ - utl_namelist \ - utl_exceptlist \ - utl_strlist \ - utl_list \ - utl_exprlist \ - utl_error \ - utl_indenter \ - utl_identifier \ - utl_idlist \ - utl_global - -FILES = $(UTIL_FILES) - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - - -LDLIBS = -lACE -LIBS = -lACE -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VSHLIB) #$(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 (and local hacks) -#---------------------------------------------------------------------------- - -CPPFLAGS += -I../include -I. -DCPP_LOCATION=\"$(CXX)\" -DIDL_CFE_VERSION=$(IDL_CFE_VERSION) - -$(LOBJS): $(LHDRS) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/utl_scope.o .obj/utl_scope.so .shobj/utl_scope.o .shobj/utl_scope.so: utl_scope.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_stack.o .obj/utl_stack.so .shobj/utl_stack.o .shobj/utl_stack.so: utl_stack.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_string.o .obj/utl_string.so .shobj/utl_string.o .shobj/utl_string.so: utl_string.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_decllist.o .obj/utl_decllist.so .shobj/utl_decllist.o .shobj/utl_decllist.so: utl_decllist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_labellist.o .obj/utl_labellist.so .shobj/utl_labellist.o .shobj/utl_labellist.so: utl_labellist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_namelist.o .obj/utl_namelist.so .shobj/utl_namelist.o .shobj/utl_namelist.so: utl_namelist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_exceptlist.o .obj/utl_exceptlist.so .shobj/utl_exceptlist.o .shobj/utl_exceptlist.so: utl_exceptlist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_strlist.o .obj/utl_strlist.so .shobj/utl_strlist.o .shobj/utl_strlist.so: utl_strlist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_list.o .obj/utl_list.so .shobj/utl_list.o .shobj/utl_list.so: utl_list.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_exprlist.o .obj/utl_exprlist.so .shobj/utl_exprlist.o .shobj/utl_exprlist.so: utl_exprlist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_error.o .obj/utl_error.so .shobj/utl_error.o .shobj/utl_error.so: utl_error.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_indenter.o .obj/utl_indenter.so .shobj/utl_indenter.o .shobj/utl_indenter.so: utl_indenter.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_identifier.o .obj/utl_identifier.so .shobj/utl_identifier.o .shobj/utl_identifier.so: utl_identifier.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_idlist.o .obj/utl_idlist.so .shobj/utl_idlist.o .shobj/utl_idlist.so: utl_idlist.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h -.obj/utl_global.o .obj/utl_global.so .shobj/utl_global.o .shobj/utl_global.so: utl_global.cpp ../include/idl.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - ../include/intlmacros.h ../include/idl_narrow.h \ - ../include/idl_defines.h ../include/idl_fwd.h ../include/idl_bool.h \ - ../include/utl_string.h ../include/utl_identifier.h ../include/ast.h \ - ../include/utl_scoped_name.h ../include/ast_decl.h \ - ../include/ast_expression.h ../include/utl_scope.h \ - ../include/ast_type.h ../include/ast_concrete_type.h \ - ../include/ast_predefined_type.h ../include/ast_module.h \ - ../include/ast_root.h ../include/ast_interface.h \ - ../include/ast_interface_fwd.h ../include/ast_structure.h \ - ../include/ast_exception.h ../include/ast_enum.h \ - ../include/ast_operation.h ../include/utl_list.h \ - ../include/ast_field.h ../include/ast_argument.h \ - ../include/ast_attribute.h ../include/ast_union.h \ - ../include/ast_union_branch.h ../include/ast_union_label.h \ - ../include/ast_constant.h ../include/ast_enum_val.h \ - ../include/ast_array.h ../include/ast_sequence.h \ - ../include/ast_string.h ../include/ast_typedef.h \ - ../include/ast_native.h ../include/utl_strlist.h \ - ../include/utl_exprlist.h ../include/ast_generator.h \ - ../include/util.h ../include/utl_stack.h ../include/utl_idlist.h \ - ../include/utl_exceptlist.h ../include/utl_namelist.h \ - ../include/utl_labellist.h ../include/utl_decllist.h \ - ../include/idl_global.h ../include/utl_error.h \ - ../include/utl_indenter.h ../include/idl_extern.h \ - ../include/fe_extern.h ../include/be_extern.h ../include/drv_extern.h \ - ../include/ast_extern.h ../include/nr_extern.h \ - ../include/global_extern.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/TAO_IDL/util/utl_decllist.cpp b/TAO/TAO_IDL/util/utl_decllist.cpp deleted file mode 100644 index c5127550b57..00000000000 --- a/TAO/TAO_IDL/util/utl_decllist.cpp +++ /dev/null @@ -1,147 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_decllist.cc -// -// Implementation of a list of declarators - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_DeclList::UTL_DeclList(FE_Declarator *s, UTL_DeclList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -FE_Declarator * -UTL_DeclList::head() -{ - return pd_car_data; -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_DeclList active iterator - -/* - * Constructor - */ - -UTL_DecllistActiveIterator::UTL_DecllistActiveIterator(UTL_DeclList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -FE_Declarator * -UTL_DecllistActiveIterator::item() -{ - if (source == NULL) - return NULL; - - return ((UTL_DeclList *) source)->head(); -} - -/* - * Redefined inherited operations - */ - diff --git a/TAO/TAO_IDL/util/utl_err.cpp b/TAO/TAO_IDL/util/utl_err.cpp deleted file mode 100644 index 441f900a720..00000000000 --- a/TAO/TAO_IDL/util/utl_err.cpp +++ /dev/null @@ -1,702 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_error.cc - Implementation of error reporting object for IDL -// compiler program - -#include "idl.h" -#include "idl_extern.h" - -/* - * Helper functions to do: - * - * - Convert an error code to an error string - * - Print out an error message header - * - Convert an ExprType to a string - */ - -// Convert an error code into a char * -static char * -error_string(UTL_Error::ErrorCode c) -{ - switch (c) { - case UTL_Error::EIDL_OK: - return GTDEVEL("all is fine "); - case UTL_Error::EIDL_SYNTAX_ERROR: - return ""; - case UTL_Error::EIDL_REDEF: - return GTDEVEL("illegal redefinition "); - case UTL_Error::EIDL_DEF_USE: - return GTDEVEL("redefinition after use, "); - case UTL_Error::EIDL_MULTIPLE_BRANCH: - return GTDEVEL("union with duplicate branch label "); - case UTL_Error::EIDL_COERCION_FAILURE: - return GTDEVEL("coercion failure "); - case UTL_Error::EIDL_SCOPE_CONFLICT: - return GTDEVEL("definition scope is different than fwd declare scope, "); - case UTL_Error::EIDL_ONEWAY_CONFLICT: - return GTDEVEL("oneway operation with OUT or INOUT parameters, "); - case UTL_Error::EIDL_DISC_TYPE: - return GTDEVEL("union with illegal discriminator type, "); - case UTL_Error::EIDL_LABEL_TYPE: - return GTDEVEL("label type incompatible with union discriminator type, "); - case UTL_Error::EIDL_ILLEGAL_ADD: - return GTDEVEL("illegal add operation, "); - case UTL_Error::EIDL_ILLEGAL_USE: - return GTDEVEL("illegal type used in expression, "); - case UTL_Error::EIDL_ILLEGAL_RAISES: - return GTDEVEL("error in raises(..) clause, "); - case UTL_Error::EIDL_ILLEGAL_CONTEXT: - return GTDEVEL("error in context(..) clause, "); - case UTL_Error::EIDL_CANT_INHERIT: - return GTDEVEL("cannot inherit from "); - case UTL_Error::EIDL_LOOKUP_ERROR: - return GTDEVEL("error in lookup of symbol: "); - case UTL_Error::EIDL_INHERIT_FWD_ERROR: - /* More intelligible message printed by error routine */ - return ""; - case UTL_Error::EIDL_CONSTANT_EXPECTED: - return GTDEVEL("constant expected: "); - case UTL_Error::EIDL_EVAL_ERROR: - return GTDEVEL("expression evaluation error: "); - case UTL_Error::EIDL_NAME_CASE_ERROR: - return GTDEVEL("identifier used with two differing spellings: "); - case UTL_Error::EIDL_ENUM_VAL_EXPECTED: - return GTDEVEL("enumerator expected: "); - case UTL_Error::EIDL_ENUM_VAL_NOT_FOUND: - return GTDEVEL("enumerator by this name not defined: "); - case UTL_Error::EIDL_AMBIGUOUS: - return GTDEVEL("ambiguous definition: "); - case UTL_Error::EIDL_DECL_NOT_DEFINED: - return GTDEVEL("forward declared but never defined: "); - case UTL_Error::EIDL_FWD_DECL_LOOKUP: - /* More intelligible message printed by error routine */ - return ""; - case UTL_Error::EIDL_RECURSIVE_TYPE: - return GTDEVEL("illegal recursive use of type: "); - case UTL_Error::EIDL_NONVOID_ONEWAY: - return GTDEVEL("non-void return type in oneway operation: "); - case UTL_Error::EIDL_REDEF_SCOPE: - return GTDEVEL("redefinition inside defining scope: "); - case UTL_Error::EIDL_NOT_A_TYPE: - return GTDEVEL("specified symbol is not a type: "); - case UTL_Error::EIDL_BACK_END: - return GTDEVEL("back end: "); - } - return NULL; -} - -// Print out an error message header on cerr -static void -idl_error_header(UTL_Error::ErrorCode c, long lineno, String *s) -{ - cerr << idl_global->prog_name() - << ": \"" - << (idl_global->read_from_stdin() ? "standard input" : s->get_string()) - << GTDEVEL("\", line ") - << ((lineno == -1) ? idl_global->lineno() : lineno) - << ": " - << error_string(c); -} - -// Convert the type of an AST_Expression to a char * -static char * -exprtype_to_string(AST_Expression::ExprType t) -{ - switch (t) { - case AST_Expression::EV_short: - return "short"; - case AST_Expression::EV_ushort: - return "unsigned short"; - case AST_Expression::EV_long: - return "long"; - case AST_Expression::EV_ulong: - return "unsigned long"; - case AST_Expression::EV_float: - return "float"; - case AST_Expression::EV_double: - return "double"; - case AST_Expression::EV_char: - return "char"; - case AST_Expression::EV_octet: - return "octet"; - case AST_Expression::EV_bool: - return "boolean"; - case AST_Expression::EV_string: - return "string"; - case AST_Expression::EV_any: - return "any"; - case AST_Expression::EV_void: - return "void"; - case AST_Expression::EV_none: - return "none"; - case AST_Expression::EV_longlong: - case AST_Expression::EV_ulonglong: - case AST_Expression::EV_longdouble: - case AST_Expression::EV_wchar: - case AST_Expression::EV_wstring: - return NULL; - } - return NULL; -} - -/* - * Convert a parse state into a possible error message - */ -static char * -parse_state_to_error_message(IDL_GlobalData::ParseState ps) -{ - switch (ps) { - case IDL_GlobalData::PS_NoState: - return GTDEVEL("Statement can not be parsed"); - case IDL_GlobalData::PS_TypeDeclSeen: - return GTDEVEL("Malformed typedef declaration"); - case IDL_GlobalData::PS_ConstDeclSeen: - return GTDEVEL("Malformed const declaration"); - case IDL_GlobalData::PS_ExceptDeclSeen: - return - GTDEVEL("Malformed exception declaration"); - case IDL_GlobalData::PS_InterfaceDeclSeen: - return - GTDEVEL("Malformed interface declaration"); - case IDL_GlobalData::PS_ModuleDeclSeen: - return GTDEVEL("Malformed module declaration"); - case IDL_GlobalData::PS_AttrDeclSeen: - return - GTDEVEL("Malformed attribute declaration"); - case IDL_GlobalData::PS_OpDeclSeen: - return - GTDEVEL("Malformed operation declaration"); - case IDL_GlobalData::PS_ModuleSeen: - return GTDEVEL("Missing module identifier following MODULE keyword"); - case IDL_GlobalData::PS_ModuleIDSeen: - return GTDEVEL("Missing '{' or illegal syntax following module identifier"); - case IDL_GlobalData::PS_ModuleSqSeen: - return GTDEVEL("Illegal syntax following module '{' opener"); - case IDL_GlobalData::PS_ModuleQsSeen: - return GTDEVEL("Illegal syntax following module '}' closer"); - case IDL_GlobalData::PS_ModuleBodySeen: - return GTDEVEL("Illegal syntax following module body statement(s)"); - case IDL_GlobalData::PS_InterfaceSeen: - return GTDEVEL("Missing interface identifier following INTERFACE keyword"); - case IDL_GlobalData::PS_InterfaceIDSeen: - return GTDEVEL("Illegal syntax following interface identifier"); - case IDL_GlobalData::PS_InheritSpecSeen: - return GTDEVEL("Missing '{' or illegal syntax following inheritance spec"); - case IDL_GlobalData::PS_ForwardDeclSeen: - return GTDEVEL("Missing ';' following forward interface declaration"); - case IDL_GlobalData::PS_InterfaceSqSeen: - return GTDEVEL("Illegal syntax following interface '{' opener"); - case IDL_GlobalData::PS_InterfaceQsSeen: - return GTDEVEL("Illegal syntax following interface '}' closer"); - case IDL_GlobalData::PS_InterfaceBodySeen: - return GTDEVEL("Illegal syntax following interface body statement(s)"); - case IDL_GlobalData::PS_InheritColonSeen: - return GTDEVEL("Illegal syntax following ':' starting inheritance list"); - case IDL_GlobalData::PS_SNListCommaSeen: - return GTDEVEL("Found illegal scoped name in scoped name list"); - case IDL_GlobalData::PS_ScopedNameSeen: - return GTDEVEL("Missing ',' following scoped name in scoped name list"); - case IDL_GlobalData::PS_SN_IDSeen: - return GTDEVEL("Illegal component in scoped name"); - case IDL_GlobalData::PS_ScopeDelimSeen: - return GTDEVEL("Illegal component in scoped name following '::'"); - case IDL_GlobalData::PS_ConstSeen: - return GTDEVEL("Missing type or illegal syntax following CONST keyword"); - case IDL_GlobalData::PS_ConstTypeSeen: - return GTDEVEL("Missing identifier or illegal syntax following const type"); - case IDL_GlobalData::PS_ConstIDSeen: - return GTDEVEL("Missing '=' or illegal syntax after const identifier"); - case IDL_GlobalData::PS_ConstAssignSeen: - return GTDEVEL("Missing value expr or illegal syntax following '='"); - case IDL_GlobalData::PS_ConstExprSeen: - return GTDEVEL("Missing ';' or illegal syntax following value expr in const"); - case IDL_GlobalData::PS_TypedefSeen: - return GTDEVEL("Missing type or illegal syntax following TYPEDEF keyword"); - case IDL_GlobalData::PS_TypeSpecSeen: - return GTDEVEL("Missing declarators or illegal syntax following type spec"); - case IDL_GlobalData::PS_DeclaratorsSeen: - return GTDEVEL("Illegal syntax following declarators in TYPEDEF declaration"); - case IDL_GlobalData::PS_StructSeen: - return GTDEVEL("Missing struct identifier following STRUCT keyword"); - case IDL_GlobalData::PS_StructIDSeen: - return GTDEVEL("Missing '{' or illegal syntax following struct identifier"); - case IDL_GlobalData::PS_StructSqSeen: - return GTDEVEL("Illegal syntax following struct '{' opener"); - case IDL_GlobalData::PS_StructQsSeen: - return GTDEVEL("Illegal syntax following struct '}' closer"); - case IDL_GlobalData::PS_StructBodySeen: - return GTDEVEL("Illegal syntax following struct body statement(s)"); - case IDL_GlobalData::PS_MemberTypeSeen: - return GTDEVEL("Illegal syntax of missing identifier following member type"); - case IDL_GlobalData::PS_MemberDeclsSeen: - return GTDEVEL("Illegal syntax following member declarator(s)"); - case IDL_GlobalData::PS_MemberDeclsCompleted: - return GTDEVEL("Missing ',' between member decls of same type(?)"); - case IDL_GlobalData::PS_UnionSeen: - return GTDEVEL("Missing identifier following UNION keyword"); - case IDL_GlobalData::PS_UnionIDSeen: - return GTDEVEL("Illegal syntax following union identifier"); - case IDL_GlobalData::PS_SwitchSeen: - return GTDEVEL("Illegal syntax following SWITCH keyword"); - case IDL_GlobalData::PS_SwitchOpenParSeen: - return GTDEVEL("Illegal syntax following '(' in switch in union"); - case IDL_GlobalData::PS_SwitchTypeSeen: - return GTDEVEL("Illegal syntax following type decl in switch in union"); - case IDL_GlobalData::PS_SwitchCloseParSeen: - return GTDEVEL("Missing union '{' opener"); - case IDL_GlobalData::PS_UnionSqSeen: - return GTDEVEL("Illegal syntax following union '{' opener"); - case IDL_GlobalData::PS_UnionQsSeen: - return GTDEVEL("Illegal syntax following union '}' closer"); - case IDL_GlobalData::PS_DefaultSeen: - return GTDEVEL("Illegal syntax or missing ':' following DEFAULT keyword"); - case IDL_GlobalData::PS_UnionLabelSeen: - return GTDEVEL("Illegal syntax following branch label in union"); - case IDL_GlobalData::PS_LabelColonSeen: - return GTDEVEL("Illegal syntax following ':' in branch label in union"); - case IDL_GlobalData::PS_LabelExprSeen: - return GTDEVEL("Illegal syntax following label expression in union"); - case IDL_GlobalData::PS_UnionElemSeen: - case IDL_GlobalData::PS_UnionElemCompleted: - return GTDEVEL("Illegal syntax following union element"); - case IDL_GlobalData::PS_CaseSeen: - return GTDEVEL("Illegal syntax following CASE keyword in union"); - case IDL_GlobalData::PS_UnionElemTypeSeen: - return GTDEVEL("Illegal syntax following type decl in union element"); - case IDL_GlobalData::PS_UnionElemDeclSeen: - return GTDEVEL("Illegal syntax following declarator in union element"); - case IDL_GlobalData::PS_UnionBodySeen: - return GTDEVEL("Illegal syntax following union body statement(s)"); - case IDL_GlobalData::PS_EnumSeen: - return GTDEVEL("Illegal syntax or missing identifier following ENUM keyword"); - case IDL_GlobalData::PS_EnumIDSeen: - return GTDEVEL("Illegal syntax or missing '{' following enum identifier"); - case IDL_GlobalData::PS_EnumSqSeen: - return GTDEVEL("Illegal syntax following enum '{' opener"); - case IDL_GlobalData::PS_EnumQsSeen: - return GTDEVEL("Illegal syntax following enum '}' closer"); - case IDL_GlobalData::PS_EnumBodySeen: - return GTDEVEL("Illegal syntax following enum body statement(s)"); - case IDL_GlobalData::PS_EnumCommaSeen: - return GTDEVEL("Illegal syntax or missing identifier following ',' in enum"); - case IDL_GlobalData::PS_SequenceSeen: - return GTDEVEL("Illegal syntax or missing '<' following SEQUENCE keyword"); - case IDL_GlobalData::PS_SequenceSqSeen: - return GTDEVEL("Illegal syntax or missing type following '<' in sequence"); - case IDL_GlobalData::PS_SequenceQsSeen: - return GTDEVEL("Illegal syntax following '>' in sequence"); - case IDL_GlobalData::PS_SequenceTypeSeen: - return GTDEVEL("Illegal syntax following sequence type declaration"); - case IDL_GlobalData::PS_SequenceCommaSeen: - return - GTDEVEL("Illegal syntax of missing size expr following ',' in sequence"); - case IDL_GlobalData::PS_SequenceExprSeen: - return - GTDEVEL("Illegal syntax or missing '>' following size expr in sequence"); - case IDL_GlobalData::PS_StringSeen: - return GTDEVEL("Illegal syntax or missing '<' following STRING keyword"); - case IDL_GlobalData::PS_StringSqSeen: - return GTDEVEL("Illegal syntax or missing size expr following '<' in string"); - case IDL_GlobalData::PS_StringQsSeen: - return GTDEVEL("Illegal syntax following '>' in string"); - case IDL_GlobalData::PS_StringExprSeen: - return GTDEVEL("Illegal syntax or missing '>' after size expr in string"); - case IDL_GlobalData::PS_StringCompleted: - return GTDEVEL("Illegal syntax after string declaration"); - case IDL_GlobalData::PS_ArrayIDSeen: - return GTDEVEL("Illegal syntax or missing dimensions after array identifier"); - case IDL_GlobalData::PS_ArrayCompleted: - return GTDEVEL("Illegal syntax after array declaration"); - case IDL_GlobalData::PS_DimSqSeen: - return - GTDEVEL("Illegal syntax or missing size expr after '[' in array declaration"); - case IDL_GlobalData::PS_DimQsSeen: - return GTDEVEL("Illegal syntax after ']' in array declaration"); - case IDL_GlobalData::PS_DimExprSeen: - return - GTDEVEL("Illegal syntax or missing ']' after size expr in array declaration"); - case IDL_GlobalData::PS_AttrROSeen: - return GTDEVEL("Illegal syntax after READONLY keyword"); - case IDL_GlobalData::PS_AttrSeen: - return GTDEVEL("Illegal syntax after ATTRIBUTE keyword"); - case IDL_GlobalData::PS_AttrTypeSeen: - return GTDEVEL("Illegal syntax after type in attribute declaration"); - case IDL_GlobalData::PS_AttrDeclsSeen: - return GTDEVEL("Illegal syntax after attribute declarators"); - case IDL_GlobalData::PS_AttrCompleted: - return GTDEVEL("Illegal syntax after attribute declaration"); - case IDL_GlobalData::PS_ExceptSeen: - return - GTDEVEL("Illegal syntax or missing identifier after EXCEPTION keyword"); - case IDL_GlobalData::PS_ExceptIDSeen: - return GTDEVEL("Illegal syntax or missing '{' after exception identifier"); - case IDL_GlobalData::PS_ExceptSqSeen: - return GTDEVEL("Illegal syntax after exception '{' opener"); - case IDL_GlobalData::PS_ExceptQsSeen: - return GTDEVEL("Illegal syntax after exception '}' closer"); - case IDL_GlobalData::PS_ExceptBodySeen: - return GTDEVEL("Illegal syntax after exception body statement(s)"); - case IDL_GlobalData::PS_OpAttrSeen: - return GTDEVEL("Illegal syntax or missing type after operation attribute"); - case IDL_GlobalData::PS_OpTypeSeen: - return GTDEVEL("Illegal syntax or missing identifier after operation type"); - case IDL_GlobalData::PS_OpIDSeen: - return GTDEVEL("Illegal syntax or missing '(' after operation identifier"); - case IDL_GlobalData::PS_OpParsCompleted: - return GTDEVEL("Illegal syntax after operation parameter list"); - case IDL_GlobalData::PS_OpRaiseCompleted: - return - GTDEVEL("Illegal syntax after optional RAISES in operation declaration"); - case IDL_GlobalData::PS_OpContextCompleted: - return - GTDEVEL("Illegal syntax after optional CONTEXT in operation declaration"); - case IDL_GlobalData::PS_OpCompleted: - return GTDEVEL("Illegal syntax after operation declaration"); - case IDL_GlobalData::PS_OpSqSeen: - return GTDEVEL("Illegal syntax after operation parameter list '(' opener"); - case IDL_GlobalData::PS_OpQsSeen: - return GTDEVEL("Illegal syntax after operation parameter list ')' closer"); - case IDL_GlobalData::PS_OpParCommaSeen: - return - GTDEVEL("Illegal syntax or missing direction in parameter declaration"); - case IDL_GlobalData::PS_OpParDirSeen: - return GTDEVEL("Illegal syntax or missing type in parameter declaration"); - case IDL_GlobalData::PS_OpParTypeSeen: - return - GTDEVEL("Illegal syntax or missing declarator in parameter declaration"); - case IDL_GlobalData::PS_OpParDeclSeen: - return GTDEVEL("Illegal syntax following parameter declarator"); - case IDL_GlobalData::PS_OpRaiseSeen: - return GTDEVEL("Illegal syntax or missing '(' after RAISES keyword"); - case IDL_GlobalData::PS_OpRaiseSqSeen: - return GTDEVEL("Illegal syntax after RAISES '(' opener"); - case IDL_GlobalData::PS_OpRaiseQsSeen: - return GTDEVEL("Illegal syntax after RAISES ')' closer"); - case IDL_GlobalData::PS_OpContextSeen: - return GTDEVEL("Illegal syntax or missing '(' after CONTEXT keyword"); - case IDL_GlobalData::PS_OpContextSqSeen: - return GTDEVEL("Illegal syntax after CONTEXT '(' opener"); - case IDL_GlobalData::PS_OpContextQsSeen: - return GTDEVEL("Illegal syntax after CONTEXT ')' closer"); - case IDL_GlobalData::PS_OpContextCommaSeen: - return - GTDEVEL("Illegal syntax after ',' in CONTEXT in operation declaration"); - case IDL_GlobalData::PS_DeclsCommaSeen: - return GTDEVEL("Illegal syntax after ',' in declarators list"); - case IDL_GlobalData::PS_DeclsDeclSeen: - return GTDEVEL("Illegal syntax after declarator in declarators list"); - - default: - return GTDEVEL("Some syntax error"); - } -} -/* - * Public methods - */ - -// Report error messages with various numbers of arguments - -void -UTL_Error::syntax_error(IDL_GlobalData::ParseState ps) -{ - idl_error_header(EIDL_SYNTAX_ERROR, - idl_global->lineno(), - idl_global->filename()); - cerr << parse_state_to_error_message(ps) << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error0(UTL_Error::ErrorCode c) -{ - idl_error_header(c, idl_global->lineno(), idl_global->filename()); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error1(UTL_Error::ErrorCode c, AST_Decl *d) -{ - idl_error_header(c, d->line(), d->file_name()); - d->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error2(UTL_Error::ErrorCode c, AST_Decl *d1, AST_Decl *d2) -{ - idl_error_header(c, d1->line(), d1->file_name()); - d1->name()->dump(cerr); cerr << ", "; - d2->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error3(UTL_Error::ErrorCode c, - AST_Decl *d1, - AST_Decl *d2, - AST_Decl *d3) -{ - idl_error_header(c, d1->line(), d1->file_name()); - d1->name()->dump(cerr); cerr << ", "; - d2->name()->dump(cerr); cerr << ", "; - d3->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a failed coercion attempt -void -UTL_Error::coercion_error(AST_Expression *v, AST_Expression::ExprType t) -{ - idl_error_header(EIDL_COERCION_FAILURE, v->line(), v->file_name()); - v->dump(cerr); - cerr << GTDEVEL(" to ") << exprtype_to_string(t) << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a failed name lookup attempt -void -UTL_Error::lookup_error(UTL_ScopedName *n) -{ - idl_error_header(EIDL_LOOKUP_ERROR, - idl_global->lineno(), - idl_global->filename()); - n->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an attempt to inherit from an interface which was only -// declared forward but not yet defined -void -UTL_Error::inheritance_fwd_error(UTL_ScopedName *n, AST_Interface *f) -{ - idl_error_header(EIDL_INHERIT_FWD_ERROR, f->line(), f->file_name()); - cerr << "interface "; - n->dump(cerr); - cerr << GTDEVEL(" cannot inherit from forward declared interface "); - f->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an attempt to inherit from something other than an interface -void -UTL_Error::inheritance_error(UTL_ScopedName *n, AST_Decl *d) -{ - idl_error_header(EIDL_CANT_INHERIT, d->line(), d->file_name()); - cerr << " interface "; - n->dump(cerr); - cerr << GTDEVEL(" attempts to inherit from "); - d->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an error while evaluating an expression -void -UTL_Error::eval_error(AST_Expression *v) -{ - idl_error_header(EIDL_EVAL_ERROR, v->line(), v->file_name()); - v->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where a constant was expected but we -// got something else. This may occur in a union when a label -// evaluates to a non-constant -void -UTL_Error::constant_expected(UTL_ScopedName *n, AST_Decl *d) -{ - idl_error_header(EIDL_CONSTANT_EXPECTED, d->line(), d->file_name()); - n->dump(cerr); - cerr << GTDEVEL(" bound to "); - d->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where an enumerator was expected but we -// got something else. This may occur in a union with an enum -// discriminator where a label did not evaluate to a constant -// enumerator -void -UTL_Error::enum_val_expected(AST_Union *u, AST_UnionLabel *l) -{ - idl_error_header(EIDL_ENUM_VAL_EXPECTED, u->line(), u->file_name()); - cerr << " union " << u->local_name()->get_string() << ", "; - l->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where an enumerator was received but we -// could not find it (by name) in an enum. This occurs when -// a union with an enum discriminator is being parsed, and a -// label evaluates to an enumerator which is not a member of -// the enum discriminator type -void -UTL_Error::enum_val_lookup_failure(AST_Union *u, - AST_Enum *e, - UTL_ScopedName *n) -{ - idl_error_header(EIDL_ENUM_VAL_NOT_FOUND, u->line(), u->file_name()); - cerr << " union " << u->local_name()->get_string() << ", "; - cerr << " enum " << e->local_name()->get_string() << ", "; - cerr << " enumerator "; - n->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report two or more spellings for an identifier -void -UTL_Error::name_case_error(char *b, char *n) -{ - idl_error_header(EIDL_NAME_CASE_ERROR, - idl_global->lineno(), - idl_global->filename()); - cerr << "\"" << b << GTDEVEL("\" and ") << "\"" << n << "\"\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an ambiguous definition of a name -void -UTL_Error::ambiguous(UTL_Scope *s, AST_Decl *l, AST_Decl *d) -{ - idl_error_header(EIDL_AMBIGUOUS, d->line(), d->file_name()); - cerr << GTDEVEL(" scope: ") - << (ScopeAsDecl(s))->local_name()->get_string() - << ", "; - cerr << GTDEVEL(" collision: "); - d->name()->dump(cerr); - cerr << " vs. "; - l->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a forward declared interface which was never defined -void -UTL_Error::fwd_decl_not_defined(AST_Interface *d) -{ - idl_error_header(EIDL_DECL_NOT_DEFINED, d->line(), d->file_name()); - cerr << "interface "; - d->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report lookup in undefined forward declared but undefined interface -void -UTL_Error::fwd_decl_lookup(AST_Interface *d, UTL_ScopedName *n) -{ - idl_error_header(EIDL_FWD_DECL_LOOKUP, - idl_global->lineno(), - idl_global->filename()); - cerr << GTDEVEL("trying to look up "); - n->dump(cerr); - cerr << GTDEVEL(" in undefined forward declared interface "); - d->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a redefinition inside its own scope -void -UTL_Error::redefinition_in_scope(AST_Decl *d, AST_Decl *s) -{ - idl_error_header(EIDL_REDEF_SCOPE, d->line(), d->file_name()); - d->name()->dump(cerr); - cerr << ", "; - s->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report not a type error -void -UTL_Error::not_a_type(AST_Decl *d) -{ - idl_error_header(EIDL_NOT_A_TYPE, - idl_global->lineno(), - idl_global->filename()); - if (d == NULL || d->name() == NULL) - cerr << GTDEVEL("unknown symbol"); - else - d->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::back_end(long lineno, String *s) -{ - idl_error_header(EIDL_BACK_END, lineno, s); - idl_global->set_err_count(idl_global->err_count() + 1); -} diff --git a/TAO/TAO_IDL/util/utl_error.cpp b/TAO/TAO_IDL/util/utl_error.cpp deleted file mode 100644 index 441f900a720..00000000000 --- a/TAO/TAO_IDL/util/utl_error.cpp +++ /dev/null @@ -1,702 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_error.cc - Implementation of error reporting object for IDL -// compiler program - -#include "idl.h" -#include "idl_extern.h" - -/* - * Helper functions to do: - * - * - Convert an error code to an error string - * - Print out an error message header - * - Convert an ExprType to a string - */ - -// Convert an error code into a char * -static char * -error_string(UTL_Error::ErrorCode c) -{ - switch (c) { - case UTL_Error::EIDL_OK: - return GTDEVEL("all is fine "); - case UTL_Error::EIDL_SYNTAX_ERROR: - return ""; - case UTL_Error::EIDL_REDEF: - return GTDEVEL("illegal redefinition "); - case UTL_Error::EIDL_DEF_USE: - return GTDEVEL("redefinition after use, "); - case UTL_Error::EIDL_MULTIPLE_BRANCH: - return GTDEVEL("union with duplicate branch label "); - case UTL_Error::EIDL_COERCION_FAILURE: - return GTDEVEL("coercion failure "); - case UTL_Error::EIDL_SCOPE_CONFLICT: - return GTDEVEL("definition scope is different than fwd declare scope, "); - case UTL_Error::EIDL_ONEWAY_CONFLICT: - return GTDEVEL("oneway operation with OUT or INOUT parameters, "); - case UTL_Error::EIDL_DISC_TYPE: - return GTDEVEL("union with illegal discriminator type, "); - case UTL_Error::EIDL_LABEL_TYPE: - return GTDEVEL("label type incompatible with union discriminator type, "); - case UTL_Error::EIDL_ILLEGAL_ADD: - return GTDEVEL("illegal add operation, "); - case UTL_Error::EIDL_ILLEGAL_USE: - return GTDEVEL("illegal type used in expression, "); - case UTL_Error::EIDL_ILLEGAL_RAISES: - return GTDEVEL("error in raises(..) clause, "); - case UTL_Error::EIDL_ILLEGAL_CONTEXT: - return GTDEVEL("error in context(..) clause, "); - case UTL_Error::EIDL_CANT_INHERIT: - return GTDEVEL("cannot inherit from "); - case UTL_Error::EIDL_LOOKUP_ERROR: - return GTDEVEL("error in lookup of symbol: "); - case UTL_Error::EIDL_INHERIT_FWD_ERROR: - /* More intelligible message printed by error routine */ - return ""; - case UTL_Error::EIDL_CONSTANT_EXPECTED: - return GTDEVEL("constant expected: "); - case UTL_Error::EIDL_EVAL_ERROR: - return GTDEVEL("expression evaluation error: "); - case UTL_Error::EIDL_NAME_CASE_ERROR: - return GTDEVEL("identifier used with two differing spellings: "); - case UTL_Error::EIDL_ENUM_VAL_EXPECTED: - return GTDEVEL("enumerator expected: "); - case UTL_Error::EIDL_ENUM_VAL_NOT_FOUND: - return GTDEVEL("enumerator by this name not defined: "); - case UTL_Error::EIDL_AMBIGUOUS: - return GTDEVEL("ambiguous definition: "); - case UTL_Error::EIDL_DECL_NOT_DEFINED: - return GTDEVEL("forward declared but never defined: "); - case UTL_Error::EIDL_FWD_DECL_LOOKUP: - /* More intelligible message printed by error routine */ - return ""; - case UTL_Error::EIDL_RECURSIVE_TYPE: - return GTDEVEL("illegal recursive use of type: "); - case UTL_Error::EIDL_NONVOID_ONEWAY: - return GTDEVEL("non-void return type in oneway operation: "); - case UTL_Error::EIDL_REDEF_SCOPE: - return GTDEVEL("redefinition inside defining scope: "); - case UTL_Error::EIDL_NOT_A_TYPE: - return GTDEVEL("specified symbol is not a type: "); - case UTL_Error::EIDL_BACK_END: - return GTDEVEL("back end: "); - } - return NULL; -} - -// Print out an error message header on cerr -static void -idl_error_header(UTL_Error::ErrorCode c, long lineno, String *s) -{ - cerr << idl_global->prog_name() - << ": \"" - << (idl_global->read_from_stdin() ? "standard input" : s->get_string()) - << GTDEVEL("\", line ") - << ((lineno == -1) ? idl_global->lineno() : lineno) - << ": " - << error_string(c); -} - -// Convert the type of an AST_Expression to a char * -static char * -exprtype_to_string(AST_Expression::ExprType t) -{ - switch (t) { - case AST_Expression::EV_short: - return "short"; - case AST_Expression::EV_ushort: - return "unsigned short"; - case AST_Expression::EV_long: - return "long"; - case AST_Expression::EV_ulong: - return "unsigned long"; - case AST_Expression::EV_float: - return "float"; - case AST_Expression::EV_double: - return "double"; - case AST_Expression::EV_char: - return "char"; - case AST_Expression::EV_octet: - return "octet"; - case AST_Expression::EV_bool: - return "boolean"; - case AST_Expression::EV_string: - return "string"; - case AST_Expression::EV_any: - return "any"; - case AST_Expression::EV_void: - return "void"; - case AST_Expression::EV_none: - return "none"; - case AST_Expression::EV_longlong: - case AST_Expression::EV_ulonglong: - case AST_Expression::EV_longdouble: - case AST_Expression::EV_wchar: - case AST_Expression::EV_wstring: - return NULL; - } - return NULL; -} - -/* - * Convert a parse state into a possible error message - */ -static char * -parse_state_to_error_message(IDL_GlobalData::ParseState ps) -{ - switch (ps) { - case IDL_GlobalData::PS_NoState: - return GTDEVEL("Statement can not be parsed"); - case IDL_GlobalData::PS_TypeDeclSeen: - return GTDEVEL("Malformed typedef declaration"); - case IDL_GlobalData::PS_ConstDeclSeen: - return GTDEVEL("Malformed const declaration"); - case IDL_GlobalData::PS_ExceptDeclSeen: - return - GTDEVEL("Malformed exception declaration"); - case IDL_GlobalData::PS_InterfaceDeclSeen: - return - GTDEVEL("Malformed interface declaration"); - case IDL_GlobalData::PS_ModuleDeclSeen: - return GTDEVEL("Malformed module declaration"); - case IDL_GlobalData::PS_AttrDeclSeen: - return - GTDEVEL("Malformed attribute declaration"); - case IDL_GlobalData::PS_OpDeclSeen: - return - GTDEVEL("Malformed operation declaration"); - case IDL_GlobalData::PS_ModuleSeen: - return GTDEVEL("Missing module identifier following MODULE keyword"); - case IDL_GlobalData::PS_ModuleIDSeen: - return GTDEVEL("Missing '{' or illegal syntax following module identifier"); - case IDL_GlobalData::PS_ModuleSqSeen: - return GTDEVEL("Illegal syntax following module '{' opener"); - case IDL_GlobalData::PS_ModuleQsSeen: - return GTDEVEL("Illegal syntax following module '}' closer"); - case IDL_GlobalData::PS_ModuleBodySeen: - return GTDEVEL("Illegal syntax following module body statement(s)"); - case IDL_GlobalData::PS_InterfaceSeen: - return GTDEVEL("Missing interface identifier following INTERFACE keyword"); - case IDL_GlobalData::PS_InterfaceIDSeen: - return GTDEVEL("Illegal syntax following interface identifier"); - case IDL_GlobalData::PS_InheritSpecSeen: - return GTDEVEL("Missing '{' or illegal syntax following inheritance spec"); - case IDL_GlobalData::PS_ForwardDeclSeen: - return GTDEVEL("Missing ';' following forward interface declaration"); - case IDL_GlobalData::PS_InterfaceSqSeen: - return GTDEVEL("Illegal syntax following interface '{' opener"); - case IDL_GlobalData::PS_InterfaceQsSeen: - return GTDEVEL("Illegal syntax following interface '}' closer"); - case IDL_GlobalData::PS_InterfaceBodySeen: - return GTDEVEL("Illegal syntax following interface body statement(s)"); - case IDL_GlobalData::PS_InheritColonSeen: - return GTDEVEL("Illegal syntax following ':' starting inheritance list"); - case IDL_GlobalData::PS_SNListCommaSeen: - return GTDEVEL("Found illegal scoped name in scoped name list"); - case IDL_GlobalData::PS_ScopedNameSeen: - return GTDEVEL("Missing ',' following scoped name in scoped name list"); - case IDL_GlobalData::PS_SN_IDSeen: - return GTDEVEL("Illegal component in scoped name"); - case IDL_GlobalData::PS_ScopeDelimSeen: - return GTDEVEL("Illegal component in scoped name following '::'"); - case IDL_GlobalData::PS_ConstSeen: - return GTDEVEL("Missing type or illegal syntax following CONST keyword"); - case IDL_GlobalData::PS_ConstTypeSeen: - return GTDEVEL("Missing identifier or illegal syntax following const type"); - case IDL_GlobalData::PS_ConstIDSeen: - return GTDEVEL("Missing '=' or illegal syntax after const identifier"); - case IDL_GlobalData::PS_ConstAssignSeen: - return GTDEVEL("Missing value expr or illegal syntax following '='"); - case IDL_GlobalData::PS_ConstExprSeen: - return GTDEVEL("Missing ';' or illegal syntax following value expr in const"); - case IDL_GlobalData::PS_TypedefSeen: - return GTDEVEL("Missing type or illegal syntax following TYPEDEF keyword"); - case IDL_GlobalData::PS_TypeSpecSeen: - return GTDEVEL("Missing declarators or illegal syntax following type spec"); - case IDL_GlobalData::PS_DeclaratorsSeen: - return GTDEVEL("Illegal syntax following declarators in TYPEDEF declaration"); - case IDL_GlobalData::PS_StructSeen: - return GTDEVEL("Missing struct identifier following STRUCT keyword"); - case IDL_GlobalData::PS_StructIDSeen: - return GTDEVEL("Missing '{' or illegal syntax following struct identifier"); - case IDL_GlobalData::PS_StructSqSeen: - return GTDEVEL("Illegal syntax following struct '{' opener"); - case IDL_GlobalData::PS_StructQsSeen: - return GTDEVEL("Illegal syntax following struct '}' closer"); - case IDL_GlobalData::PS_StructBodySeen: - return GTDEVEL("Illegal syntax following struct body statement(s)"); - case IDL_GlobalData::PS_MemberTypeSeen: - return GTDEVEL("Illegal syntax of missing identifier following member type"); - case IDL_GlobalData::PS_MemberDeclsSeen: - return GTDEVEL("Illegal syntax following member declarator(s)"); - case IDL_GlobalData::PS_MemberDeclsCompleted: - return GTDEVEL("Missing ',' between member decls of same type(?)"); - case IDL_GlobalData::PS_UnionSeen: - return GTDEVEL("Missing identifier following UNION keyword"); - case IDL_GlobalData::PS_UnionIDSeen: - return GTDEVEL("Illegal syntax following union identifier"); - case IDL_GlobalData::PS_SwitchSeen: - return GTDEVEL("Illegal syntax following SWITCH keyword"); - case IDL_GlobalData::PS_SwitchOpenParSeen: - return GTDEVEL("Illegal syntax following '(' in switch in union"); - case IDL_GlobalData::PS_SwitchTypeSeen: - return GTDEVEL("Illegal syntax following type decl in switch in union"); - case IDL_GlobalData::PS_SwitchCloseParSeen: - return GTDEVEL("Missing union '{' opener"); - case IDL_GlobalData::PS_UnionSqSeen: - return GTDEVEL("Illegal syntax following union '{' opener"); - case IDL_GlobalData::PS_UnionQsSeen: - return GTDEVEL("Illegal syntax following union '}' closer"); - case IDL_GlobalData::PS_DefaultSeen: - return GTDEVEL("Illegal syntax or missing ':' following DEFAULT keyword"); - case IDL_GlobalData::PS_UnionLabelSeen: - return GTDEVEL("Illegal syntax following branch label in union"); - case IDL_GlobalData::PS_LabelColonSeen: - return GTDEVEL("Illegal syntax following ':' in branch label in union"); - case IDL_GlobalData::PS_LabelExprSeen: - return GTDEVEL("Illegal syntax following label expression in union"); - case IDL_GlobalData::PS_UnionElemSeen: - case IDL_GlobalData::PS_UnionElemCompleted: - return GTDEVEL("Illegal syntax following union element"); - case IDL_GlobalData::PS_CaseSeen: - return GTDEVEL("Illegal syntax following CASE keyword in union"); - case IDL_GlobalData::PS_UnionElemTypeSeen: - return GTDEVEL("Illegal syntax following type decl in union element"); - case IDL_GlobalData::PS_UnionElemDeclSeen: - return GTDEVEL("Illegal syntax following declarator in union element"); - case IDL_GlobalData::PS_UnionBodySeen: - return GTDEVEL("Illegal syntax following union body statement(s)"); - case IDL_GlobalData::PS_EnumSeen: - return GTDEVEL("Illegal syntax or missing identifier following ENUM keyword"); - case IDL_GlobalData::PS_EnumIDSeen: - return GTDEVEL("Illegal syntax or missing '{' following enum identifier"); - case IDL_GlobalData::PS_EnumSqSeen: - return GTDEVEL("Illegal syntax following enum '{' opener"); - case IDL_GlobalData::PS_EnumQsSeen: - return GTDEVEL("Illegal syntax following enum '}' closer"); - case IDL_GlobalData::PS_EnumBodySeen: - return GTDEVEL("Illegal syntax following enum body statement(s)"); - case IDL_GlobalData::PS_EnumCommaSeen: - return GTDEVEL("Illegal syntax or missing identifier following ',' in enum"); - case IDL_GlobalData::PS_SequenceSeen: - return GTDEVEL("Illegal syntax or missing '<' following SEQUENCE keyword"); - case IDL_GlobalData::PS_SequenceSqSeen: - return GTDEVEL("Illegal syntax or missing type following '<' in sequence"); - case IDL_GlobalData::PS_SequenceQsSeen: - return GTDEVEL("Illegal syntax following '>' in sequence"); - case IDL_GlobalData::PS_SequenceTypeSeen: - return GTDEVEL("Illegal syntax following sequence type declaration"); - case IDL_GlobalData::PS_SequenceCommaSeen: - return - GTDEVEL("Illegal syntax of missing size expr following ',' in sequence"); - case IDL_GlobalData::PS_SequenceExprSeen: - return - GTDEVEL("Illegal syntax or missing '>' following size expr in sequence"); - case IDL_GlobalData::PS_StringSeen: - return GTDEVEL("Illegal syntax or missing '<' following STRING keyword"); - case IDL_GlobalData::PS_StringSqSeen: - return GTDEVEL("Illegal syntax or missing size expr following '<' in string"); - case IDL_GlobalData::PS_StringQsSeen: - return GTDEVEL("Illegal syntax following '>' in string"); - case IDL_GlobalData::PS_StringExprSeen: - return GTDEVEL("Illegal syntax or missing '>' after size expr in string"); - case IDL_GlobalData::PS_StringCompleted: - return GTDEVEL("Illegal syntax after string declaration"); - case IDL_GlobalData::PS_ArrayIDSeen: - return GTDEVEL("Illegal syntax or missing dimensions after array identifier"); - case IDL_GlobalData::PS_ArrayCompleted: - return GTDEVEL("Illegal syntax after array declaration"); - case IDL_GlobalData::PS_DimSqSeen: - return - GTDEVEL("Illegal syntax or missing size expr after '[' in array declaration"); - case IDL_GlobalData::PS_DimQsSeen: - return GTDEVEL("Illegal syntax after ']' in array declaration"); - case IDL_GlobalData::PS_DimExprSeen: - return - GTDEVEL("Illegal syntax or missing ']' after size expr in array declaration"); - case IDL_GlobalData::PS_AttrROSeen: - return GTDEVEL("Illegal syntax after READONLY keyword"); - case IDL_GlobalData::PS_AttrSeen: - return GTDEVEL("Illegal syntax after ATTRIBUTE keyword"); - case IDL_GlobalData::PS_AttrTypeSeen: - return GTDEVEL("Illegal syntax after type in attribute declaration"); - case IDL_GlobalData::PS_AttrDeclsSeen: - return GTDEVEL("Illegal syntax after attribute declarators"); - case IDL_GlobalData::PS_AttrCompleted: - return GTDEVEL("Illegal syntax after attribute declaration"); - case IDL_GlobalData::PS_ExceptSeen: - return - GTDEVEL("Illegal syntax or missing identifier after EXCEPTION keyword"); - case IDL_GlobalData::PS_ExceptIDSeen: - return GTDEVEL("Illegal syntax or missing '{' after exception identifier"); - case IDL_GlobalData::PS_ExceptSqSeen: - return GTDEVEL("Illegal syntax after exception '{' opener"); - case IDL_GlobalData::PS_ExceptQsSeen: - return GTDEVEL("Illegal syntax after exception '}' closer"); - case IDL_GlobalData::PS_ExceptBodySeen: - return GTDEVEL("Illegal syntax after exception body statement(s)"); - case IDL_GlobalData::PS_OpAttrSeen: - return GTDEVEL("Illegal syntax or missing type after operation attribute"); - case IDL_GlobalData::PS_OpTypeSeen: - return GTDEVEL("Illegal syntax or missing identifier after operation type"); - case IDL_GlobalData::PS_OpIDSeen: - return GTDEVEL("Illegal syntax or missing '(' after operation identifier"); - case IDL_GlobalData::PS_OpParsCompleted: - return GTDEVEL("Illegal syntax after operation parameter list"); - case IDL_GlobalData::PS_OpRaiseCompleted: - return - GTDEVEL("Illegal syntax after optional RAISES in operation declaration"); - case IDL_GlobalData::PS_OpContextCompleted: - return - GTDEVEL("Illegal syntax after optional CONTEXT in operation declaration"); - case IDL_GlobalData::PS_OpCompleted: - return GTDEVEL("Illegal syntax after operation declaration"); - case IDL_GlobalData::PS_OpSqSeen: - return GTDEVEL("Illegal syntax after operation parameter list '(' opener"); - case IDL_GlobalData::PS_OpQsSeen: - return GTDEVEL("Illegal syntax after operation parameter list ')' closer"); - case IDL_GlobalData::PS_OpParCommaSeen: - return - GTDEVEL("Illegal syntax or missing direction in parameter declaration"); - case IDL_GlobalData::PS_OpParDirSeen: - return GTDEVEL("Illegal syntax or missing type in parameter declaration"); - case IDL_GlobalData::PS_OpParTypeSeen: - return - GTDEVEL("Illegal syntax or missing declarator in parameter declaration"); - case IDL_GlobalData::PS_OpParDeclSeen: - return GTDEVEL("Illegal syntax following parameter declarator"); - case IDL_GlobalData::PS_OpRaiseSeen: - return GTDEVEL("Illegal syntax or missing '(' after RAISES keyword"); - case IDL_GlobalData::PS_OpRaiseSqSeen: - return GTDEVEL("Illegal syntax after RAISES '(' opener"); - case IDL_GlobalData::PS_OpRaiseQsSeen: - return GTDEVEL("Illegal syntax after RAISES ')' closer"); - case IDL_GlobalData::PS_OpContextSeen: - return GTDEVEL("Illegal syntax or missing '(' after CONTEXT keyword"); - case IDL_GlobalData::PS_OpContextSqSeen: - return GTDEVEL("Illegal syntax after CONTEXT '(' opener"); - case IDL_GlobalData::PS_OpContextQsSeen: - return GTDEVEL("Illegal syntax after CONTEXT ')' closer"); - case IDL_GlobalData::PS_OpContextCommaSeen: - return - GTDEVEL("Illegal syntax after ',' in CONTEXT in operation declaration"); - case IDL_GlobalData::PS_DeclsCommaSeen: - return GTDEVEL("Illegal syntax after ',' in declarators list"); - case IDL_GlobalData::PS_DeclsDeclSeen: - return GTDEVEL("Illegal syntax after declarator in declarators list"); - - default: - return GTDEVEL("Some syntax error"); - } -} -/* - * Public methods - */ - -// Report error messages with various numbers of arguments - -void -UTL_Error::syntax_error(IDL_GlobalData::ParseState ps) -{ - idl_error_header(EIDL_SYNTAX_ERROR, - idl_global->lineno(), - idl_global->filename()); - cerr << parse_state_to_error_message(ps) << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error0(UTL_Error::ErrorCode c) -{ - idl_error_header(c, idl_global->lineno(), idl_global->filename()); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error1(UTL_Error::ErrorCode c, AST_Decl *d) -{ - idl_error_header(c, d->line(), d->file_name()); - d->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error2(UTL_Error::ErrorCode c, AST_Decl *d1, AST_Decl *d2) -{ - idl_error_header(c, d1->line(), d1->file_name()); - d1->name()->dump(cerr); cerr << ", "; - d2->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::error3(UTL_Error::ErrorCode c, - AST_Decl *d1, - AST_Decl *d2, - AST_Decl *d3) -{ - idl_error_header(c, d1->line(), d1->file_name()); - d1->name()->dump(cerr); cerr << ", "; - d2->name()->dump(cerr); cerr << ", "; - d3->name()->dump(cerr); cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a failed coercion attempt -void -UTL_Error::coercion_error(AST_Expression *v, AST_Expression::ExprType t) -{ - idl_error_header(EIDL_COERCION_FAILURE, v->line(), v->file_name()); - v->dump(cerr); - cerr << GTDEVEL(" to ") << exprtype_to_string(t) << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a failed name lookup attempt -void -UTL_Error::lookup_error(UTL_ScopedName *n) -{ - idl_error_header(EIDL_LOOKUP_ERROR, - idl_global->lineno(), - idl_global->filename()); - n->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an attempt to inherit from an interface which was only -// declared forward but not yet defined -void -UTL_Error::inheritance_fwd_error(UTL_ScopedName *n, AST_Interface *f) -{ - idl_error_header(EIDL_INHERIT_FWD_ERROR, f->line(), f->file_name()); - cerr << "interface "; - n->dump(cerr); - cerr << GTDEVEL(" cannot inherit from forward declared interface "); - f->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an attempt to inherit from something other than an interface -void -UTL_Error::inheritance_error(UTL_ScopedName *n, AST_Decl *d) -{ - idl_error_header(EIDL_CANT_INHERIT, d->line(), d->file_name()); - cerr << " interface "; - n->dump(cerr); - cerr << GTDEVEL(" attempts to inherit from "); - d->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an error while evaluating an expression -void -UTL_Error::eval_error(AST_Expression *v) -{ - idl_error_header(EIDL_EVAL_ERROR, v->line(), v->file_name()); - v->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where a constant was expected but we -// got something else. This may occur in a union when a label -// evaluates to a non-constant -void -UTL_Error::constant_expected(UTL_ScopedName *n, AST_Decl *d) -{ - idl_error_header(EIDL_CONSTANT_EXPECTED, d->line(), d->file_name()); - n->dump(cerr); - cerr << GTDEVEL(" bound to "); - d->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where an enumerator was expected but we -// got something else. This may occur in a union with an enum -// discriminator where a label did not evaluate to a constant -// enumerator -void -UTL_Error::enum_val_expected(AST_Union *u, AST_UnionLabel *l) -{ - idl_error_header(EIDL_ENUM_VAL_EXPECTED, u->line(), u->file_name()); - cerr << " union " << u->local_name()->get_string() << ", "; - l->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a situation where an enumerator was received but we -// could not find it (by name) in an enum. This occurs when -// a union with an enum discriminator is being parsed, and a -// label evaluates to an enumerator which is not a member of -// the enum discriminator type -void -UTL_Error::enum_val_lookup_failure(AST_Union *u, - AST_Enum *e, - UTL_ScopedName *n) -{ - idl_error_header(EIDL_ENUM_VAL_NOT_FOUND, u->line(), u->file_name()); - cerr << " union " << u->local_name()->get_string() << ", "; - cerr << " enum " << e->local_name()->get_string() << ", "; - cerr << " enumerator "; - n->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report two or more spellings for an identifier -void -UTL_Error::name_case_error(char *b, char *n) -{ - idl_error_header(EIDL_NAME_CASE_ERROR, - idl_global->lineno(), - idl_global->filename()); - cerr << "\"" << b << GTDEVEL("\" and ") << "\"" << n << "\"\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report an ambiguous definition of a name -void -UTL_Error::ambiguous(UTL_Scope *s, AST_Decl *l, AST_Decl *d) -{ - idl_error_header(EIDL_AMBIGUOUS, d->line(), d->file_name()); - cerr << GTDEVEL(" scope: ") - << (ScopeAsDecl(s))->local_name()->get_string() - << ", "; - cerr << GTDEVEL(" collision: "); - d->name()->dump(cerr); - cerr << " vs. "; - l->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a forward declared interface which was never defined -void -UTL_Error::fwd_decl_not_defined(AST_Interface *d) -{ - idl_error_header(EIDL_DECL_NOT_DEFINED, d->line(), d->file_name()); - cerr << "interface "; - d->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report lookup in undefined forward declared but undefined interface -void -UTL_Error::fwd_decl_lookup(AST_Interface *d, UTL_ScopedName *n) -{ - idl_error_header(EIDL_FWD_DECL_LOOKUP, - idl_global->lineno(), - idl_global->filename()); - cerr << GTDEVEL("trying to look up "); - n->dump(cerr); - cerr << GTDEVEL(" in undefined forward declared interface "); - d->local_name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report a redefinition inside its own scope -void -UTL_Error::redefinition_in_scope(AST_Decl *d, AST_Decl *s) -{ - idl_error_header(EIDL_REDEF_SCOPE, d->line(), d->file_name()); - d->name()->dump(cerr); - cerr << ", "; - s->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -// Report not a type error -void -UTL_Error::not_a_type(AST_Decl *d) -{ - idl_error_header(EIDL_NOT_A_TYPE, - idl_global->lineno(), - idl_global->filename()); - if (d == NULL || d->name() == NULL) - cerr << GTDEVEL("unknown symbol"); - else - d->name()->dump(cerr); - cerr << "\n"; - idl_global->set_err_count(idl_global->err_count() + 1); -} - -void -UTL_Error::back_end(long lineno, String *s) -{ - idl_error_header(EIDL_BACK_END, lineno, s); - idl_global->set_err_count(idl_global->err_count() + 1); -} diff --git a/TAO/TAO_IDL/util/utl_exceptlist.cpp b/TAO/TAO_IDL/util/utl_exceptlist.cpp deleted file mode 100644 index 9d55984cfb9..00000000000 --- a/TAO/TAO_IDL/util/utl_exceptlist.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_exceptlist.cc -// -// Implementation of a list of exceptions - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_ExceptList::UTL_ExceptList(AST_Exception *s, UTL_ExceptList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -AST_Exception * -UTL_ExceptList::head() -{ - return pd_car_data; -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_ExceptList active iterator - -/* - * Constructor - */ - -UTL_ExceptlistActiveIterator::UTL_ExceptlistActiveIterator(UTL_ExceptList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -AST_Exception * -UTL_ExceptlistActiveIterator::item() -{ - if (source == NULL) - return NULL; - return ((UTL_ExceptList *) source)->head(); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_exprlist.cpp b/TAO/TAO_IDL/util/utl_exprlist.cpp deleted file mode 100644 index aa65055ac0a..00000000000 --- a/TAO/TAO_IDL/util/utl_exprlist.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_exprlist.cc -// -// Implementation of a list of strings - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_ExprList::UTL_ExprList(AST_Expression *s, UTL_ExprList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -AST_Expression * -UTL_ExprList::head() -{ - return pd_car_data; -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_ExprList active iterator - -/* - * Constructor - */ - -UTL_ExprlistActiveIterator::UTL_ExprlistActiveIterator(UTL_ExprList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -AST_Expression * -UTL_ExprlistActiveIterator::item() -{ - if (source == NULL) - return NULL; - return ((UTL_ExprList *) source)->head(); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp deleted file mode 100644 index 7e92d40eea8..00000000000 --- a/TAO/TAO_IDL/util/utl_global.cpp +++ /dev/null @@ -1,654 +0,0 @@ -// -// $Id$ -// -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_global.cc - Implementation of class IDL_GlobalData -// - -#include "idl.h" -#include "idl_extern.h" - -// Define an increment for the size of the array used to store names of -// included files -#undef INCREMENT -#define INCREMENT 64 - -IDL_GlobalData::IDL_GlobalData() - : pd_scopes(NULL), - pd_root(NULL), - pd_gen(NULL), - pd_err(NULL), - pd_err_count(0), - pd_lineno(0), - pd_filename(NULL), - pd_main_filename(NULL), - pd_real_filename(NULL), - pd_in_main_file(I_FALSE), - pd_prog_name(NULL), - pd_cpp_location(NULL), - pd_compile_flags(0), - pd_be(NULL), - pd_local_escapes(NULL), - pd_indent(NULL), - pd_pragmas(NULL), - pd_read_from_stdin(I_FALSE), - pd_include_file_names(NULL), - pd_n_include_file_names(0), - pd_n_alloced_file_names(0), - pd_parse_state(PS_NoState), - pd_idl_src_file (0), - export_macro_ (0), - export_include_ (0) -{ - // empty -} - -// Get or set scopes stack -UTL_ScopeStack * -IDL_GlobalData::scopes() -{ - return pd_scopes; -} -void -IDL_GlobalData::set_scopes(UTL_ScopeStack *s) -{ - pd_scopes = s; -} - -// Get or set root of AST -AST_Root * -IDL_GlobalData::root() -{ - return pd_root; -} -void -IDL_GlobalData::set_root(AST_Root *r) -{ - pd_root = r; -} - -// Get or set generator object -AST_Generator * -IDL_GlobalData::gen() -{ - return pd_gen; -} -void -IDL_GlobalData::set_gen(AST_Generator *g) -{ - pd_gen = g; -} - -// Get or set error object -UTL_Error * -IDL_GlobalData::err() -{ - return pd_err; -} -void -IDL_GlobalData::set_err(UTL_Error *e) -{ - pd_err = e; -} - -// Get or set error count -long -IDL_GlobalData::err_count() -{ - return pd_err_count; -} -void -IDL_GlobalData::set_err_count(long c) -{ - pd_err_count = c; -} - -// Get or set line number -long -IDL_GlobalData::lineno() -{ - return pd_lineno; -} -void -IDL_GlobalData::set_lineno(long n) -{ - pd_lineno = n; -} - -// Get or set file name being read now -String * -IDL_GlobalData::filename() -{ - return pd_filename; -} -void -IDL_GlobalData::set_filename(String *f) -{ - pd_filename = f; -} - -// Get or set main file name -String * -IDL_GlobalData::main_filename() -{ - return pd_main_filename; -} -void -IDL_GlobalData::set_main_filename(String *n) -{ - pd_main_filename = n; -} - -// Get or set real file name -String * -IDL_GlobalData::real_filename() -{ - return pd_real_filename; -} -void -IDL_GlobalData::set_real_filename(String *n) -{ - pd_real_filename = n; -} - -// Get or set indicator whether import is on -idl_bool -IDL_GlobalData::imported() -{ - return pd_in_main_file ? I_FALSE : pd_import; -} -idl_bool -IDL_GlobalData::import() -{ - return pd_import; -} -void -IDL_GlobalData::set_import(idl_bool is_in) -{ - pd_import = is_in; -} - -// Get or set indicator whether we're reading the main file now -idl_bool -IDL_GlobalData::in_main_file() -{ - return pd_in_main_file; -} -void -IDL_GlobalData::set_in_main_file(idl_bool is_in) -{ - pd_in_main_file = is_in; -} - -// Get or set stripped file name -String * -IDL_GlobalData::stripped_filename() -{ - return pd_stripped_filename; -} -void -IDL_GlobalData::set_stripped_filename(String *nm) -{ - pd_stripped_filename = nm; -} - -// Get or set cache value for argv[0] -char * -IDL_GlobalData::prog_name() -{ - return pd_prog_name; -} -void -IDL_GlobalData::set_prog_name(char *pn) -{ - pd_prog_name = pn; -} - -// Get or set location to find C preprocessor -char * -IDL_GlobalData::cpp_location() -{ - return pd_cpp_location; -} -void -IDL_GlobalData::set_cpp_location(char *l) -{ - pd_cpp_location = l; -} - -// Get or set IDL compiler flags -long -IDL_GlobalData::compile_flags() -{ - return pd_compile_flags; -} -void -IDL_GlobalData::set_compile_flags(long cf) -{ - pd_compile_flags = cf; -} - -// Get or set BE to be used -char * -IDL_GlobalData::be() -{ - return pd_be; -} -void -IDL_GlobalData::set_be(char *nbe) -{ - pd_be = nbe; -} - -// Get or set local escapes string. This provides additional mechanism -// to pass information to a BE. -char * -IDL_GlobalData::local_escapes() -{ - return pd_local_escapes; -} -void -IDL_GlobalData::set_local_escapes(char *e) -{ - pd_local_escapes = e; -} - -// Get or set indent object -UTL_Indenter * -IDL_GlobalData::indent() -{ - return pd_indent; -} -void -IDL_GlobalData::set_indent(UTL_Indenter *i) -{ - pd_indent = i; -} - -// Get or set list of pragmas being parsed -UTL_StrList * -IDL_GlobalData::pragmas() -{ - UTL_StrList *p = pd_pragmas; - - pd_pragmas = NULL; - return p; -} -void -IDL_GlobalData::set_pragmas(UTL_StrList *p) -{ - pd_pragmas = p; -} - -// Get or set indicator whether we're reading from stdin -idl_bool -IDL_GlobalData::read_from_stdin() -{ - return pd_read_from_stdin; -} -void -IDL_GlobalData::set_read_from_stdin(idl_bool r) -{ - pd_read_from_stdin = r; -} - -// Have we seen this include file name before? -long -IDL_GlobalData::seen_include_file_before(String *n) -{ - unsigned long i; - - for (i = 0; i < pd_n_include_file_names; i++) - if (n->compare(pd_include_file_names[i])) - return I_TRUE; - return I_FALSE; -} - -// Store a name of an #include file -void -IDL_GlobalData::store_include_file_name(String *n) -{ - String **o_include_file_names; - unsigned long o_n_alloced_file_names, - i; - - /* - * Check if we need to store it at all or whether we've seen it already - */ - if (seen_include_file_before(n)) - return; - /* - * OK, need to store. Make sure there's space for one more string - */ - if (pd_n_include_file_names == pd_n_alloced_file_names) { - if (pd_n_alloced_file_names == 0) { - pd_n_alloced_file_names = INCREMENT; - pd_include_file_names = new String *[pd_n_alloced_file_names]; - } else { - o_include_file_names = pd_include_file_names; - o_n_alloced_file_names = pd_n_alloced_file_names; - pd_n_alloced_file_names += INCREMENT; - pd_include_file_names = new String *[pd_n_alloced_file_names]; - for (i = 0; i < o_n_alloced_file_names; i++) - pd_include_file_names[i] = o_include_file_names[i]; - delete [] o_include_file_names; - } - } - /* - * Store it - */ - pd_include_file_names[pd_n_include_file_names++] = n; -} - -void -IDL_GlobalData::set_include_file_names(String **ns) -{ - pd_include_file_names = ns; -} - -String ** -IDL_GlobalData::include_file_names() -{ - return pd_include_file_names; -} - -void -IDL_GlobalData::set_n_include_file_names(unsigned long n) -{ - pd_n_include_file_names = n; -} - -unsigned long -IDL_GlobalData::n_include_file_names() -{ - return pd_n_include_file_names; -} - -void -IDL_GlobalData::set_parse_state(ParseState ps) -{ - pd_parse_state = ps; -} - -IDL_GlobalData::ParseState -IDL_GlobalData::parse_state() -{ - return pd_parse_state; -} - -/* - * Convert a PredefinedType to an ExprType - */ -AST_Expression::ExprType -IDL_GlobalData::PredefinedTypeToExprType(AST_PredefinedType::PredefinedType pt) -{ - switch (pt) { - case AST_PredefinedType::PT_long: - return AST_Expression::EV_long; - case AST_PredefinedType::PT_ulong: - return AST_Expression::EV_ulong; - case AST_PredefinedType::PT_short: - return AST_Expression::EV_short; - case AST_PredefinedType::PT_ushort: - return AST_Expression::EV_ushort; - case AST_PredefinedType::PT_float: - return AST_Expression::EV_float; - case AST_PredefinedType::PT_double: - return AST_Expression::EV_double; - case AST_PredefinedType::PT_char: - return AST_Expression::EV_char; - case AST_PredefinedType::PT_octet: - return AST_Expression::EV_octet; - case AST_PredefinedType::PT_boolean: - return AST_Expression::EV_bool; - default: - return AST_Expression::EV_any; - } -} - -// returns the IDL source file being copiled -String* IDL_GlobalData::idl_src_file() -{ - return this->pd_idl_src_file; -} - -// set the source IDL file that is being parsed -void IDL_GlobalData::idl_src_file(String *s) -{ - this->pd_idl_src_file = s; -} - -/************ Helper functions **************/ -static const char* -be_change_idl_file_extension (String* idl_file, - const char *new_extension) -{ - // @@ This shouldn't happen anyway; but a better error handling - // mechanism is needed. - if (idl_file == 0 || new_extension == 0) - { - return 0; - } - - static char fname[MAXPATHLEN]; - ACE_OS::memset (fname, 0, MAXPATHLEN); - - const char* string = idl_file->get_string (); - - // get the base part of the filename - const char *base = ACE_OS::strstr (string, ".idl"); - - if (base == 0) - return 0; - - ACE_OS::strncpy (fname, string, base - string); - // Turn '\' and '\\' into '/'. - char* i = fname; - for (char* j = fname; *j != 0; ++i, ++j) - { - if (*j == '\\') - { - *i = '/'; - if (*(j+1) == '\\') - ++j; - } - else - *i = *j; - } - *i = 0; - ACE_OS::strcat (fname, new_extension); - return fname; -} - -const char * -IDL_GlobalData::be_get_client_hdr (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "C.h"); -} - -const char * -IDL_GlobalData::be_get_client_stub (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "C.cpp"); -} - -const char * -IDL_GlobalData::be_get_client_inline (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "C.i"); -} - -const char * -IDL_GlobalData::be_get_server_hdr (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S.h"); -} - -const char * -IDL_GlobalData::be_get_server_template_hdr (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S_T.h"); -} - -const char * -IDL_GlobalData::be_get_server_skeleton (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S.cpp"); -} - -const char * -IDL_GlobalData::be_get_server_template_skeleton (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S_T.cpp"); -} - -const char * -IDL_GlobalData::be_get_server_inline (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S.i"); -} - -const char * -IDL_GlobalData::be_get_server_template_inline (String *idl_file_name) -{ - return be_change_idl_file_extension (idl_file_name, "S_T.i"); -} - -const char * -IDL_GlobalData::be_get_client_hdr_fname () -{ - return be_get_client_hdr (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_client_stub_fname () -{ - return be_get_client_stub (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_client_inline_fname () -{ - return be_get_client_inline (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_hdr_fname () -{ - return be_get_server_hdr (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_template_hdr_fname () -{ - return be_get_server_template_hdr (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_skeleton_fname () -{ - return be_get_server_skeleton (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_template_skeleton_fname () -{ - return be_get_server_template_skeleton (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_inline_fname () -{ - return be_get_server_inline (idl_global->idl_src_file ()); -} - -const char * -IDL_GlobalData::be_get_server_template_inline_fname () -{ - return be_get_server_template_inline (idl_global->idl_src_file ()); -} - -const char* IDL_GlobalData::export_macro (void) const -{ - if (this->export_macro_ == 0) - return ""; - return this->export_macro_; -} - -void IDL_GlobalData::export_macro (const char *s) -{ - this->export_macro_ = ACE_OS::strdup (s); -} - -const char* IDL_GlobalData::export_include (void) const -{ - return this->export_include_; -} - -void IDL_GlobalData::export_include (const char *s) -{ - this->export_include_ = ACE_OS::strdup (s); -} diff --git a/TAO/TAO_IDL/util/utl_identifier.cpp b/TAO/TAO_IDL/util/utl_identifier.cpp deleted file mode 100644 index e24b385e7f9..00000000000 --- a/TAO/TAO_IDL/util/utl_identifier.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_identifier - Implementation of identifiers - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructors - */ - -Identifier::Identifier () - : pv_string (NULL) -{ -} - -Identifier::Identifier (char *s, long, long, long) - : pv_string (ACE_OS::strdup (s)) -{ -} - -Identifier::~Identifier () -{ - if (this->pv_string != 0) - { - // The string was allocated using strdup, which uses malloc. - ACE_OS::free (this->pv_string); - } -} - -// Operations - -char * -Identifier::get_string () -{ - return pv_string; -} - -// Compare two Identifier * -long -Identifier::compare (Identifier *o) -{ - if (o == NULL) return I_FALSE; - if (pv_string == NULL || o->get_string() == NULL) - return I_FALSE; - return (ACE_OS::strcmp (pv_string, o->get_string ()) == 0) ? I_TRUE : I_FALSE; -} - -// Dumping - -void -Identifier::dump (ostream &o) -{ - if (pv_string == NULL) return; - - o << get_string(); -} - diff --git a/TAO/TAO_IDL/util/utl_idlist.cpp b/TAO/TAO_IDL/util/utl_idlist.cpp deleted file mode 100644 index 6c06ab18903..00000000000 --- a/TAO/TAO_IDL/util/utl_idlist.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_idlist.cc -// -// Implementation of a list of utl_string nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_IdList::UTL_IdList (Identifier *s, UTL_IdList *cdr) - : UTL_List ((UTL_List *) cdr), - pd_car_data (s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Copy a list -UTL_List * -UTL_IdList::copy () -{ - if (tail () == NULL) - return (UTL_List *) new UTL_IdList (head (), NULL); - return (UTL_List *) new UTL_IdList (head (), (UTL_IdList *) tail ()->copy ()); -} - -// Get list item -Identifier * -UTL_IdList::head () -{ - return pd_car_data; -} - -// Get last item of this list -Identifier * -UTL_IdList::last_component () -{ - if (tail()== NULL) - return head (); - return ((UTL_IdList *) tail ())->last_component (); -} - -// AST Dumping -void -UTL_IdList::dump (ostream &o) -{ - UTL_IdListActiveIterator *i = new UTL_IdListActiveIterator (this); - long first = I_TRUE; - long second = I_FALSE; - - while (!(i->is_done ())) - { - if (!first) - o << "::"; - else if (second) - first = second = I_FALSE; - i->item ()->dump (o); - if (first) - { - if (ACE_OS::strcmp (i->item ()->get_string (), "::") != 0) - first = I_FALSE; - else - second = I_TRUE; - } - i->next (); - } -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_IdList active iterator - -/* - * Constructor - */ - -UTL_IdListActiveIterator::UTL_IdListActiveIterator (UTL_IdList *s) - : UTL_ListActiveIterator (s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -Identifier * -UTL_IdListActiveIterator::item () -{ - if (source == NULL) - return NULL; - return ((UTL_IdList *) source)->head (); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_indenter.cpp b/TAO/TAO_IDL/util/utl_indenter.cpp deleted file mode 100644 index 4d43b0ebef5..00000000000 --- a/TAO/TAO_IDL/util/utl_indenter.cpp +++ /dev/null @@ -1,133 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_indenter.cc - Implementation of indenter for dumping IDL AST -// - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructors - */ -UTL_Indenter::UTL_Indenter () - : pd_indent_level (0) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Reset indentation level -void -UTL_Indenter::reset () -{ - pd_indent_level = 0; -} - -// Increase indentation level -void -UTL_Indenter::increase () -{ - pd_indent_level++; -} - -// Decrease indentation level -void -UTL_Indenter::decrease () -{ - if (pd_indent_level > 0) - pd_indent_level--; -} - -// Produce white space to indent to current indentation level on ostream o -void -UTL_Indenter::skip_to (ostream &o) -{ - long i; - - for (i = 0; i < pd_indent_level; i++) - o << " "; -} - -// Produce white space to indent to current indentation level on ostream o -void -UTL_Indenter::skip_to (FILE *fp) -{ - long i; - - for (i = 0; i < pd_indent_level; i++) - ACE_OS::fprintf (fp, " "); -} - -/* - * Redefined virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_labellist.cpp b/TAO/TAO_IDL/util/utl_labellist.cpp deleted file mode 100644 index 43bc82a89cb..00000000000 --- a/TAO/TAO_IDL/util/utl_labellist.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_labellist.cc -// -// Implementation of a list of scoped names - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_LabelList::UTL_LabelList(AST_UnionLabel *s, UTL_LabelList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -AST_UnionLabel * -UTL_LabelList::head() -{ - return pd_car_data; -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_LabelList active iterator - -/* - * Constructor - */ - -UTL_LabellistActiveIterator::UTL_LabellistActiveIterator(UTL_LabelList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -AST_UnionLabel * -UTL_LabellistActiveIterator::item() -{ - if (source == NULL) - return NULL; - return ((UTL_LabelList *) source)->head(); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_list.cpp b/TAO/TAO_IDL/util/utl_list.cpp deleted file mode 100644 index ab291d32777..00000000000 --- a/TAO/TAO_IDL/util/utl_list.cpp +++ /dev/null @@ -1,197 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_list.cc -// -// Implementation of generic single-linked lists - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_List::UTL_List(UTL_List *c) - : pd_cdr_data(c) -{ -} - -/* - * Private operations - */ - -// Compute list length -long -UTL_List::list_length(long n) -{ - if (pd_cdr_data == NULL) - return n; - else - return pd_cdr_data->list_length(n+1); -} - -/* - * Public operations - */ - -// Smash last cdr with l -void -UTL_List::nconc(UTL_List *l) -{ - if (pd_cdr_data == NULL) - pd_cdr_data = l; - else - pd_cdr_data->nconc(l); -} - -/* - * Override this operation to copy lists of other types - */ -// Copy a list -UTL_List * -UTL_List::copy() -{ - if (pd_cdr_data == NULL) - return new UTL_List(NULL); - return new UTL_List(pd_cdr_data->copy()); -} - -// Get next list -UTL_List * -UTL_List::tail() -{ - return pd_cdr_data; -} - -// Set next list -void -UTL_List::set_tail(UTL_List *l) -{ - pd_cdr_data = l; -} - -// Compute list length -long -UTL_List::length() -{ - return list_length(1); -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_List active iterator - -/* - * Constructor - */ - -UTL_ListActiveIterator::UTL_ListActiveIterator(UTL_List *s) - : source(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Is iterator done? -long -UTL_ListActiveIterator::is_done() -{ - return (source == NULL) ? I_TRUE : I_FALSE; -} - -// Advance to next item -void -UTL_ListActiveIterator::next() -{ - if (source != NULL) - source = source->tail(); -} - -/* - * Redefinition of inherited operations - */ - diff --git a/TAO/TAO_IDL/util/utl_namelist.cpp b/TAO/TAO_IDL/util/utl_namelist.cpp deleted file mode 100644 index 63bc96cdc4d..00000000000 --- a/TAO/TAO_IDL/util/utl_namelist.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_namelist.cc -// -// Implementation of a list of scoped names - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_NameList::UTL_NameList(UTL_ScopedName *s, UTL_NameList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -UTL_ScopedName * -UTL_NameList::head() -{ - return pd_car_data; -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_NameList active iterator - -/* - * Constructor - */ - -UTL_NamelistActiveIterator::UTL_NamelistActiveIterator(UTL_NameList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -UTL_ScopedName * -UTL_NamelistActiveIterator::item() -{ - if (source == NULL) - return NULL; - return ((UTL_NameList *) source)->head(); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp deleted file mode 100644 index 6b73c5668df..00000000000 --- a/TAO/TAO_IDL/util/utl_scope.cpp +++ /dev/null @@ -1,1206 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * utl_scope.cc - Implementation of class UTL_Scope - */ - -#include "idl.h" -#include "idl_extern.h" - -#undef INCREMENT -#define INCREMENT 64 - -/* - * Static functions - */ -static Identifier *_global_scope_name = NULL; -static Identifier *_global_scope_root_name = NULL; - -/* - * Determines if a name is global - */ -static long -is_global_name(Identifier *i) -{ - long comp_result = 0; - char *s; - - if (i == NULL) return comp_result; - s = i->get_string(); - - if (_global_scope_name == NULL) - _global_scope_name = new Identifier("::", 1, 0, I_FALSE); - - if (_global_scope_root_name == NULL) - _global_scope_root_name = new Identifier("", 1, 0, I_FALSE); - - comp_result = i->compare(_global_scope_name); - if (!comp_result) - comp_result = i->compare(_global_scope_root_name); - - return comp_result; -} - -/* - * Helper function for lookup_by_name. Iterates doing local lookups of - * subsequent components of a scoped name - */ -static AST_Decl * -iter_lookup_by_name_local(AST_Decl *d, UTL_ScopedName *e, - idl_bool treat_as_ref) -{ - Identifier *s; - AST_Typedef *td; - UTL_IdListActiveIterator *i; - UTL_Scope *sc; - - i = new UTL_IdListActiveIterator(e); - for (i->next(); !(i->is_done()); ) { - s = i->item(); - /* - * Update iterator before loop. This is needed for the check for - * typedef, since we only want to look at the base type if there - * actually are more components of the name to resolve. - */ - i->next(); - /* - * Next component in name was not found - */ - if (d == NULL) { - return NULL; - } - /* - * If this is a typedef and we're not done, we should get the - * base type to get the scope it defines (if any) - */ - if (!(i->is_done())) { - while (d != NULL && d->node_type() == AST_Decl::NT_typedef) { - td = AST_Typedef::narrow_from_decl(d); - if (td == NULL) - return NULL; - d = td->base_type(); - } - if (d == NULL) - return NULL; - } - /* - * Try to convert the AST_Decl to a UTL_Scope - */ - sc = DeclAsScope(d); - if (sc == NULL) - return NULL; - /* - * Look up the next element - */ - d = sc->lookup_by_name_local(s, treat_as_ref); - } - /* - * OK, done with the loop - */ - return d; -} - -/* - * Constructor(s) - */ -UTL_Scope::UTL_Scope() - : pd_scope_node_type(AST_Decl::NT_module), - pd_decls(NULL), - pd_decls_allocated(0), - pd_decls_used(0), - pd_local_types(NULL), - pd_locals_allocated(0), - pd_locals_used(0), - pd_referenced(NULL), - pd_referenced_allocated(0), - pd_referenced_used(0) -{ -} - -UTL_Scope::UTL_Scope(AST_Decl::NodeType nt) - : pd_scope_node_type(nt), - pd_decls(NULL), - pd_decls_allocated(0), - pd_decls_used(0), - pd_local_types(NULL), - pd_locals_allocated(0), - pd_locals_used(0), - pd_referenced(NULL), - pd_referenced_allocated(0), - pd_referenced_used(0) -{ -} - -/* - * Private operations - */ - -static -AST_Decl * add_type(AST_Type *type) -{ - AST_Decl * result = 0; - UTL_Scope * scope = 0; - switch (type->node_type()) { - case AST_Decl::NT_array: - result = - idl_global->root()->add_array(AST_Array::narrow_from_decl(type)); - break; - case AST_Decl::NT_enum: - result = type->defined_in()->add_enum(AST_Enum::narrow_from_decl(type)); - scope = AST_Enum::narrow_from_decl(type); - break; - case AST_Decl::NT_sequence: - result = - idl_global->root()->add_sequence(AST_Sequence::narrow_from_decl(type)); - break; - case AST_Decl::NT_string: - result = - idl_global->root()->add_string(AST_String::narrow_from_decl(type)); - break; - case AST_Decl::NT_struct: - result = - type->defined_in()-> - add_structure(AST_Structure::narrow_from_decl(type)); - scope = AST_Structure::narrow_from_decl(type); - break; - case AST_Decl::NT_union: - result = - type->defined_in()->add_union(AST_Union::narrow_from_decl(type)); - scope = AST_Union::narrow_from_decl(type); - break; - default: - // for non-complex types, like predefined types - // no additional add needed, assume everything is ok - result = (AST_Decl *) 1; - break; - } - if (scope) - result = scope->call_add(); - return result; -} - -/* - * Protected operations - */ - -/* - * Special version of lookup which only looks at the local name instead of - * the fully scoped name, when doing lookups. This version is intended to - * be used only by the CFE add_xxx functions - */ -AST_Decl * -UTL_Scope::lookup_for_add(AST_Decl *d, idl_bool treat_as_ref) -{ - if (d == NULL) - return NULL; - return lookup_by_name_local(d->local_name(), treat_as_ref); -} - -/* - * Public operations - */ - -// Narrowing -IMPL_NARROW_METHODS0(UTL_Scope) -IMPL_NARROW_FROM_SCOPE(UTL_Scope) - -// Scope Management Protocol -// -// All members of the protocol defined in UTL_Scope simply return the node -// and don't do a thing. These members are simply dummies to retain -// compatibility with pre-two-pass compiler back-ends. - -AST_PredefinedType *UTL_Scope::add_predefined_type(AST_PredefinedType *p) -{ - if (p == NULL) return NULL; - p->set_added(I_TRUE); - return p; -} - -AST_Module *UTL_Scope::add_module(AST_Module *m) -{ - if (m == NULL) return NULL; - m->set_added(I_TRUE); - return m; -} - -AST_Interface *UTL_Scope::add_interface(AST_Interface *i) -{ - if (i == NULL) return NULL; - i->set_added(I_TRUE); - return i; -} - -AST_InterfaceFwd *UTL_Scope::add_interface_fwd(AST_InterfaceFwd *i) -{ - if (i == NULL) return NULL; - i->set_added(I_TRUE); - return i; -} - -AST_Exception *UTL_Scope::add_exception(AST_Exception *e) -{ - if (e == NULL) return NULL; - e->set_added(I_TRUE); - return e; -} - -AST_Constant *UTL_Scope::add_constant(AST_Constant *c) -{ - if (c == NULL) return NULL; - c->set_added(I_TRUE); - return c; -} - -UTL_StrList *UTL_Scope::add_context(UTL_StrList *c) -{ - return c; -} - -UTL_NameList *UTL_Scope::add_exceptions(UTL_NameList *e) -{ - return e; -} - -AST_Attribute *UTL_Scope::add_attribute(AST_Attribute *a) -{ - if (a == NULL) return NULL; - a->set_added(I_TRUE); - if (!a->field_type()->added()) { - return add_type(a->field_type()) ? a : 0 ; - } else - return a; -} - -AST_Operation *UTL_Scope::add_operation(AST_Operation *o) -{ - if (o == NULL) return NULL; - o->set_added(I_TRUE); - if (!o->return_type()->added()) { - return add_type(o->return_type()) ? o : 0 ; - } else - return o; -} - -AST_Argument *UTL_Scope::add_argument(AST_Argument *a) -{ - if (a == NULL) return NULL; - a->set_added(I_TRUE); - if (!a->field_type()->added()) { - return add_type(a->field_type()) ? a : 0 ; - } else - return a; -} - -AST_Union *UTL_Scope::add_union(AST_Union *u) -{ - if (u == NULL) return NULL; - u->set_added(I_TRUE); - return u; -} - -AST_UnionBranch *UTL_Scope::add_union_branch(AST_UnionBranch *u) -{ - if (u == NULL) return NULL; - u->set_added(I_TRUE); - if (!u->field_type()->added()) { - return add_type(u->field_type()) ? u : 0 ; - } else - return u; -} - -AST_Structure *UTL_Scope::add_structure(AST_Structure *s) -{ - if (s == NULL) return NULL; - s->set_added(I_TRUE); - return s; -} - -AST_Field *UTL_Scope::add_field(AST_Field *f) -{ - if (f == NULL) return NULL; - f->set_added(I_TRUE); - if (!f->field_type()->added()) { - return add_type(f->field_type()) ? f : 0 ; - } else - return f; -} - -AST_Enum *UTL_Scope::add_enum(AST_Enum *e) -{ - if (e == NULL) return NULL; - e->set_added(I_TRUE); - return e; -} - -AST_EnumVal *UTL_Scope::add_enum_val(AST_EnumVal *e) -{ - if (e == NULL) return NULL; - e->set_added(I_TRUE); - return e; -} - -AST_Typedef *UTL_Scope::add_typedef(AST_Typedef *t) -{ - if (t == NULL) return NULL; - t->set_added(I_TRUE); - if (!t->base_type()->added()) { - return add_type(t->base_type()) ? t : 0 ; - } else - return t; -} - -AST_Sequence *UTL_Scope::add_sequence(AST_Sequence *s) -{ - if (s == NULL) return NULL; - s->set_added(I_TRUE); - if (!s->base_type()->added()) { - return add_type(s->base_type()) ? s : 0 ; - } else - return s; -} - -AST_String *UTL_Scope::add_string(AST_String *s) -{ - if (s == NULL) return NULL; - s->set_added(I_TRUE); - return s; -} - -AST_Array *UTL_Scope::add_array(AST_Array *a) -{ - if (a == NULL) return NULL; - a->set_added(I_TRUE); - if (!a->base_type()->added()) { - return add_type(a->base_type()) ? a : 0 ; - } else - return a; -} - -AST_Native *UTL_Scope::add_native (AST_Native *n) -{ - if (n == NULL) return NULL; - n->set_added (I_TRUE); - return n; -} - -// Protected Front End Scope Management Protocol -// -// All members of the protocol defined in UTL_Scope simply return NULL -// and don't do a thing. This ensures that runtime errors will discover -// operations which should have been redefined to allow certain kinds of -// AST nodes to appear in a given context - -AST_PredefinedType *UTL_Scope::fe_add_predefined_type(AST_PredefinedType *) -{ - return NULL; -} - -AST_Module *UTL_Scope::fe_add_module(AST_Module *) -{ - return NULL; -} - -AST_Interface *UTL_Scope::fe_add_interface(AST_Interface *) -{ - return NULL; -} - -AST_InterfaceFwd *UTL_Scope::fe_add_interface_fwd(AST_InterfaceFwd *) -{ - return NULL; -} - -AST_Exception *UTL_Scope::fe_add_exception(AST_Exception *) -{ - return NULL; -} - -AST_Constant *UTL_Scope::fe_add_constant(AST_Constant *) -{ - return NULL; -} - -UTL_StrList *UTL_Scope::fe_add_context(UTL_StrList *) -{ - return NULL; -} - -UTL_NameList *UTL_Scope::fe_add_exceptions(UTL_NameList *) -{ - return NULL; -} - -AST_Attribute *UTL_Scope::fe_add_attribute(AST_Attribute *) -{ - return NULL; -} - -AST_Operation *UTL_Scope::fe_add_operation(AST_Operation *) -{ - return NULL; -} - -AST_Argument *UTL_Scope::fe_add_argument(AST_Argument *) -{ - return NULL; -} - -AST_Union *UTL_Scope::fe_add_union(AST_Union *) -{ - return NULL; -} - -AST_UnionBranch *UTL_Scope::fe_add_union_branch(AST_UnionBranch *) -{ - return NULL; -} - -AST_Structure *UTL_Scope::fe_add_structure(AST_Structure *) -{ - return NULL; -} - -AST_Field *UTL_Scope::fe_add_field(AST_Field *) -{ - return NULL; -} - -AST_Enum *UTL_Scope::fe_add_enum(AST_Enum *) -{ - return NULL; -} - -AST_EnumVal *UTL_Scope::fe_add_enum_val(AST_EnumVal *) -{ - return NULL; -} - -AST_Typedef *UTL_Scope::fe_add_typedef(AST_Typedef *) -{ - return NULL; -} - -AST_Sequence *UTL_Scope::fe_add_sequence(AST_Sequence *) -{ - return NULL; -} - -AST_String *UTL_Scope::fe_add_string(AST_String *) -{ - return NULL; -} - -AST_Array *UTL_Scope::fe_add_array(AST_Array *) -{ - return NULL; -} - -AST_Native *UTL_Scope::fe_add_native (AST_Native *) -{ - return NULL; -} - -// This is the second pass of the front end -// It calls the public add protocol on everything in scope. -// It calls the add_xx functions of the most derived AST_Node. - -AST_Decl *UTL_Scope::call_add() -{ - AST_Decl *result = NULL; - AST_Decl *decl; - - UTL_ScopeActiveIterator *i; - UTL_Scope *scope; - - i = new UTL_ScopeActiveIterator(this, UTL_Scope::IK_decls); - while(!(i->is_done())) { - decl = i->item(); - scope = 0; - switch (decl->node_type()) { - case AST_Decl::NT_argument: - result = add_argument(AST_Argument::narrow_from_decl(decl)); - break; - case AST_Decl::NT_array: - result = add_array(AST_Array::narrow_from_decl(decl)); - break; - case AST_Decl::NT_attr: - result = add_attribute(AST_Attribute::narrow_from_decl(decl)); - break; - case AST_Decl::NT_const: - result = add_constant(AST_Constant::narrow_from_decl(decl)); - break; - case AST_Decl::NT_enum: - scope = AST_Enum::narrow_from_decl(decl); - result = add_enum(AST_Enum::narrow_from_decl(decl)); - break; - case AST_Decl::NT_enum_val: - result = add_enum_val(AST_EnumVal::narrow_from_decl(decl)); - break; - case AST_Decl::NT_except: - scope = AST_Exception::narrow_from_decl(decl); - result = add_exception(AST_Exception::narrow_from_decl(decl)); - break; - case AST_Decl::NT_field: - result = add_field(AST_Field::narrow_from_decl(decl)); - break; - case AST_Decl::NT_interface: - scope = AST_Interface::narrow_from_decl(decl); - result = add_interface(AST_Interface::narrow_from_decl(decl)); - break; - case AST_Decl::NT_interface_fwd: - result = add_interface_fwd(AST_InterfaceFwd::narrow_from_decl(decl)); - break; - case AST_Decl::NT_module: - scope = AST_Module::narrow_from_decl(decl); - result = add_module(AST_Module::narrow_from_decl(decl)); - break; - case AST_Decl::NT_native: - result = add_native (AST_Native::narrow_from_decl(decl)); - break; - case AST_Decl::NT_op: - result = add_operation(AST_Operation::narrow_from_decl(decl)); - scope = AST_Operation::narrow_from_decl(decl); - break; - case AST_Decl::NT_pre_defined: - result = - add_predefined_type(AST_PredefinedType::narrow_from_decl(decl)); - break; - case AST_Decl::NT_sequence: - result = add_sequence(AST_Sequence::narrow_from_decl(decl)); - break; - case AST_Decl::NT_string: - result = add_string(AST_String::narrow_from_decl(decl)); - break; - case AST_Decl::NT_struct: - result = add_structure(AST_Structure::narrow_from_decl(decl)); - scope = AST_Structure::narrow_from_decl(decl); - break; - case AST_Decl::NT_typedef: - result = add_typedef(AST_Typedef::narrow_from_decl(decl)); - break; - case AST_Decl::NT_union: - result = add_union(AST_Union::narrow_from_decl(decl)); - scope = AST_Union::narrow_from_decl(decl); - break; - case AST_Decl::NT_union_branch: - result = add_union_branch(AST_UnionBranch::narrow_from_decl(decl)); - break; - default: - return NULL; - } - if (scope) - scope->call_add(); - i->next(); - } - return result; -} - -// Private lookup mechanism - -/* - * Lookup the node for a primitive (built in) type - */ -AST_Decl * -UTL_Scope::lookup_primitive_type(AST_Expression::ExprType et) -{ - AST_Decl *as_decl; - UTL_Scope *ancestor; - AST_PredefinedType *t; - UTL_ScopeActiveIterator *i; - AST_PredefinedType::PredefinedType pdt; - - as_decl = ScopeAsDecl(this); - if (as_decl == NULL) - return NULL; - ancestor = as_decl->defined_in(); - if (ancestor != NULL) - return ancestor->lookup_primitive_type(et); - - switch (et) { - case AST_Expression::EV_short: - pdt = AST_PredefinedType::PT_short; - break; - case AST_Expression::EV_ushort: - pdt = AST_PredefinedType::PT_ushort; - break; - case AST_Expression::EV_long: - pdt = AST_PredefinedType::PT_long; - break; - case AST_Expression::EV_ulong: - pdt = AST_PredefinedType::PT_ulong; - break; - case AST_Expression::EV_longlong: - pdt = AST_PredefinedType::PT_longlong; - break; - case AST_Expression::EV_ulonglong: - pdt = AST_PredefinedType::PT_ulonglong; - break; - case AST_Expression::EV_float: - pdt = AST_PredefinedType::PT_float; - break; - case AST_Expression::EV_double: - pdt = AST_PredefinedType::PT_double; - break; - case AST_Expression::EV_longdouble: - pdt = AST_PredefinedType::PT_longdouble; - break; - case AST_Expression::EV_char: - pdt = AST_PredefinedType::PT_char; - break; - case AST_Expression::EV_wchar: - pdt = AST_PredefinedType::PT_wchar; - break; - case AST_Expression::EV_octet: - pdt = AST_PredefinedType::PT_octet; - break; - case AST_Expression::EV_bool: - pdt = AST_PredefinedType::PT_boolean; - break; - case AST_Expression::EV_any: - pdt = AST_PredefinedType::PT_any; - break; - case AST_Expression::EV_void: - pdt = AST_PredefinedType::PT_void; - break; - case AST_Expression::EV_string: - case AST_Expression::EV_wstring: - case AST_Expression::EV_none: - default: - return NULL; - } - i = new UTL_ScopeActiveIterator(this, UTL_Scope::IK_decls); - while (!(i->is_done())) { - as_decl = i->item(); - if (as_decl->node_type() == AST_Decl::NT_pre_defined) { - t = AST_PredefinedType::narrow_from_decl(as_decl); - if (t == NULL) { - i->next(); - continue; - } - if (t->pt() == pdt) { - delete i; - return t; - } - } - i->next(); - } - delete i; - return NULL; -} - -/* - * Look through inherited interfaces - */ -AST_Decl * -UTL_Scope::look_in_inherited(UTL_ScopedName *e, idl_bool treat_as_ref) -{ - AST_Decl *d = NULL; - AST_Interface *i = AST_Interface::narrow_from_scope(this); - AST_Interface **is; - long nis; - - /* - * This scope is not an interface.. - */ - if (i == NULL) - return NULL; - /* - * Can't look in an interface which was not yet defined - */ - if (!i->is_defined()) { - idl_global->err()->fwd_decl_lookup(i, e); - return NULL; - } - /* - * OK, loop through inherited interfaces. Stop when you find it - */ - for (nis = i->n_inherits(), is = i->inherits(); nis > 0; nis--, is++) { - d = (*is)->lookup_by_name(e, treat_as_ref); - if (d != NULL) - return d; - } - /* - * Not found - */ - return NULL; -} - -/* - * Look up a String * in local scope only - */ -AST_Decl * -UTL_Scope::lookup_by_name_local(Identifier *e, idl_bool) -{ - UTL_ScopeActiveIterator *i = new UTL_ScopeActiveIterator(this, - UTL_Scope::IK_both); - AST_Decl *d; - AST_InterfaceFwd *fwd; - - /* - * Iterate over this scope - */ - while (!(i->is_done())) { - d = i->item(); - if (d->local_name() != NULL && d->local_name()->compare(e)) { - delete i; - /* - * Special case for forward declared interfaces. Look through the - * forward declaration and retrieve the full definition - */ - if (d->node_type() == AST_Decl::NT_interface_fwd) { - fwd = AST_InterfaceFwd::narrow_from_decl(d); - if (fwd == NULL) - d = NULL; - else - d = fwd->full_definition(); - } - return d; - } - i->next(); - } - /* - * OK, not found, return NULL - */ - return NULL; -} - -/* - * Implements lookup by name for scoped names - */ -AST_Decl * -UTL_Scope::lookup_by_name(UTL_ScopedName *e, idl_bool treat_as_ref) -{ - AST_Decl *d; - UTL_Scope *t = NULL; - - /* - * Empty name? error - */ - if (e == NULL) { - return NULL; - } - /* - * If name starts with "::" or "" start look up in global scope - */ - if (is_global_name(e->head())) { - /* - * Get parent scope - */ - d = ScopeAsDecl(this); - if (d == NULL) - return NULL; - t = d->defined_in(); - /* - * If this is the global scope.. - */ - if (t == NULL) { - /* - * Look up tail of name starting here - */ - d = lookup_by_name((UTL_ScopedName *) e->tail(), treat_as_ref); - /* - * Now return whatever we have - */ - return d; - } - /* - * OK, not global scope yet, so simply iterate with parent scope - */ - d = t->lookup_by_name(e, treat_as_ref); - /* - * If treat_as_ref is true and d is not NULL, add d to - * set of nodes referenced here - */ - if (treat_as_ref && d != NULL) - add_to_referenced(d, I_FALSE); - /* - * Now return what we have - */ - return d; - } - /* - * The name does not start with "::" - * - * Is name defined here? - */ - d = lookup_by_name_local(e->head(), treat_as_ref); - if (d == NULL) { - /* - * OK, not found. Go down parent scope chain. - */ - d = ScopeAsDecl(this); - if (d != NULL) { - t = d->defined_in(); - if (t == NULL) - d = NULL; - else - d = t->lookup_by_name(e, treat_as_ref); - } - /* - * Special case for scope which is an interface. We have to look - * in the inherited interfaces as well.. - */ - if (d == NULL) { - if (pd_scope_node_type == AST_Decl::NT_interface) - d = look_in_inherited(e, treat_as_ref); - } - /* - * If treat_as_ref is true and d is not NULL, add d to - * set of nodes referenced here - */ - if (treat_as_ref && d != NULL) - add_to_referenced(d, I_FALSE); - /* - * OK, now return whatever we found - */ - return d; - } - /* - * OK, start of name is defined. Now loop doing local lookups - * of subsequent elements of the name - */ - d = iter_lookup_by_name_local(d, e, treat_as_ref); - /* - * If treat_as_ref is true and d is not NULL, add d to set - * of nodes referenced here. - */ - if (treat_as_ref && d != NULL) - add_to_referenced(d, I_FALSE); - /* - * All OK, name fully resolved - */ - return d; -} - -// Add a node to set of nodes referenced in this scope -void -UTL_Scope::add_to_referenced(AST_Decl *e, idl_bool recursive) -{ - UTL_Scope *s; - AST_Decl **tmp; - AST_Interface *itf; - long oreferenced_allocated; - long i; - - if (e == NULL) return; - - // Special case for forward declared interfaces in the - // scope in which they're defined. Cannot add before full - // definition is seen - if (e->node_type() == AST_Decl::NT_interface) { - itf = AST_Interface::narrow_from_decl(e); - if (itf != NULL && itf->defined_in() == this && !itf->is_defined()) - return; - } - // Only insert if it is not there already - if (referenced(e)) - return; - - // Make sure there's space for one more - if (pd_referenced_allocated == pd_referenced_used) { - - oreferenced_allocated = pd_referenced_allocated; - pd_referenced_allocated += INCREMENT; - tmp = new AST_Decl *[pd_referenced_allocated]; - - for (i = 0; i < oreferenced_allocated; i++) - tmp[i] = pd_referenced[i]; - - delete []pd_referenced; - - pd_referenced = tmp; - } - - // Insert new reference - pd_referenced[pd_referenced_used++] = e; - - // Now, if recursive is specified and "this" is not a common ancestor - // of the referencing scope and the scope of definition of "e" then - // add "e" to the set of referenced nodes in the parent of "this" - if (recursive && !(e->has_ancestor(ScopeAsDecl(this)))) { - s = e->defined_in(); - if (s != NULL) - s->add_to_referenced(e, recursive); - } -} - -// Add a node to set of nodes declared in this scope -void -UTL_Scope::add_to_scope(AST_Decl *e) -{ - AST_Decl **tmp; - long odecls_allocated; - long i; - - if (e == NULL) return; - - // Make sure there's space for one more - if (pd_decls_allocated == pd_decls_used) { - - odecls_allocated = pd_decls_allocated; - pd_decls_allocated += INCREMENT; - tmp = new AST_Decl *[pd_decls_allocated]; - - for (i = 0; i < odecls_allocated; i++) - tmp[i] = pd_decls[i]; - - delete []pd_decls; - - pd_decls = tmp; - } - - // Insert new decl - pd_decls[pd_decls_used++] = e; -} - -// Add a node to set of nodes representing manifest types defined in this scope -void -UTL_Scope::add_to_local_types(AST_Decl *e) -{ - AST_Decl **tmp; - long olocals_allocated; - long i; - - if (e == NULL) return; - - // Make sure there's space for one more - if (pd_locals_allocated == pd_locals_used) { - - olocals_allocated = pd_locals_allocated; - pd_locals_allocated += INCREMENT; - tmp = new AST_Decl *[pd_locals_allocated]; - - for (i = 0; i < olocals_allocated; i++) - tmp[i] = pd_local_types[i]; - - delete []pd_local_types; - - pd_local_types = tmp; - } - - // Insert new decl - pd_local_types[pd_locals_used++] = e; -} - -// Has this node been referenced here before? -idl_bool -UTL_Scope::referenced(AST_Decl *e) -{ - long i = pd_referenced_used; - AST_Decl **tmp = pd_referenced; - - for (; i > 0; i--, tmp++) - if (*tmp == e) // Same node? - return I_TRUE; - - return I_FALSE; // Not found -} - -/* - * Redefinition of inherited virtual operations - */ - -// AST Dumping -void -UTL_Scope::dump(ostream &o) -{ - UTL_ScopeActiveIterator *i; - AST_Decl *d; - - if (idl_global->indent() == NULL) - idl_global->set_indent(new UTL_Indenter()); - - idl_global->indent()->increase(); - - if (pd_locals_used > 0) { - i = new UTL_ScopeActiveIterator(this, UTL_Scope::IK_localtypes); - - o << GTDEVEL("\n/* Locally defined types: */\n"); - while (!(i->is_done())) { - d = i->item(); - if (!d->imported()) { - idl_global->indent()->skip_to(o); - d->dump(o); - o << "\n"; - } - i->next(); - } - delete i; - } - - if (pd_decls_used > 0) { - i = new UTL_ScopeActiveIterator(this, UTL_Scope::IK_decls); - - o << GTDEVEL("\n/* Declarations: */\n"); - while (!(i->is_done())) { - d = i->item(); - if (!d->imported()) { - idl_global->indent()->skip_to(o); - d->dump(o); - o << ";\n"; - } - i->next(); - } - delete i; - } - - idl_global->indent()->decrease(); -} - -// How many entries are defined? -unsigned long -UTL_Scope::nmembers() -{ - return pd_decls_used; -} - -// UTL_SCOPE_ACTIVE_ITERATOR - -/* - * Constructor - */ - -UTL_ScopeActiveIterator::UTL_ScopeActiveIterator( - UTL_Scope *s, - UTL_Scope::ScopeIterationKind i) - : iter_source(s), - ik(i), - stage(i == UTL_Scope::IK_both - ? UTL_Scope::IK_decls - : i), - il(0) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Advance to next iterm -void -UTL_ScopeActiveIterator::next() -{ - il++; -} - -// Get current item -AST_Decl * -UTL_ScopeActiveIterator::item() -{ - if (is_done()) - return NULL; - if (stage == UTL_Scope::IK_decls) - return iter_source->pd_decls[il]; - if (stage == UTL_Scope::IK_localtypes) - return iter_source->pd_local_types[il]; - - return NULL; -} - -// Is this iteration done? -idl_bool -UTL_ScopeActiveIterator::is_done() -{ - long limit; - - limit = (stage == UTL_Scope::IK_decls) - ? iter_source->pd_decls_used - : iter_source->pd_locals_used; - - for (;;) { - if (il < limit) // Last element? - return I_FALSE; - if (stage == UTL_Scope::IK_localtypes) // Already done local types? - return I_TRUE; - if (ik == UTL_Scope::IK_decls) // Only want decls? - return I_TRUE; - - // Switch to next stage - stage = UTL_Scope::IK_localtypes; - il = 0; - limit = iter_source->pd_locals_used; - } -} - -// What kind of iterator is this? -UTL_Scope::ScopeIterationKind -UTL_ScopeActiveIterator::iteration_kind() -{ - return ik; -} - -// And where are we in the iteration? -UTL_Scope::ScopeIterationKind -UTL_ScopeActiveIterator::iteration_stage() -{ - return stage; -} diff --git a/TAO/TAO_IDL/util/utl_stack.cpp b/TAO/TAO_IDL/util/utl_stack.cpp deleted file mode 100644 index a9a69be27dd..00000000000 --- a/TAO/TAO_IDL/util/utl_stack.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -/* - * utl_stack.cc - Implementation of class UTL_ScopeStack - */ - -#include "idl.h" -#include "idl_extern.h" - -// Class UTL_ScopeStack - -#undef INCREMENT -#define INCREMENT 64 - -/* - * Constructor(s) and destructor - */ - -UTL_ScopeStack::UTL_ScopeStack() - : pd_stack_data(new UTL_Scope *[INCREMENT]), - pd_stack_data_nalloced(INCREMENT), - pd_stack_top(0) -{ -} - -UTL_ScopeStack::~UTL_ScopeStack() -{ - if (pd_stack_data != NULL) - delete pd_stack_data; -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Push an element on the stack -UTL_ScopeStack * -UTL_ScopeStack::push(UTL_Scope *el) -{ - UTL_Scope **tmp; - AST_Decl *d = ScopeAsDecl(el); - long ostack_data_nalloced; - long i; - - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (d); - - // Make sure there's space for one more - if (pd_stack_data_nalloced == pd_stack_top) { - ostack_data_nalloced = pd_stack_data_nalloced; - pd_stack_data_nalloced += INCREMENT; - tmp = new UTL_Scope *[pd_stack_data_nalloced]; - - for (i = 0; i < ostack_data_nalloced; i++) - tmp[i] = pd_stack_data[i]; - - delete []pd_stack_data; - pd_stack_data = tmp; - } - - // Insert new scope - pd_stack_data[pd_stack_top++] = el; - - return this; -} - -// Pop an element from the stack -void -UTL_ScopeStack::pop() -{ - UTL_Scope *s; - - if (pd_stack_top <= 0) - return; - s = pd_stack_data[--pd_stack_top]; -} - -// Return top element on stack -UTL_Scope * -UTL_ScopeStack::top() -{ - if (pd_stack_top <= 0) - return NULL; - return pd_stack_data[pd_stack_top - 1]; -} - -// Return bottom element on stack -UTL_Scope * -UTL_ScopeStack::bottom() -{ - if (pd_stack_top == 0) - return NULL; - return pd_stack_data[0]; -} - -// Clear entire stack -void -UTL_ScopeStack::clear() -{ - pd_stack_top = 0; -} - -// How deep is the stack? -unsigned long -UTL_ScopeStack::depth() -{ - return pd_stack_top; -} - -// Return (top - 1) element on stack -UTL_Scope * -UTL_ScopeStack::next_to_top() -{ - UTL_Scope *tmp, *retval; - - if (depth() < 2) - return NULL; - - tmp = top(); // Save top - (void) pop(); // Pop it - retval = top(); // Get next one down - (void) push(tmp); // Push top back - return retval; // Return next one down -} - -// Return topmost non-NULL element -UTL_Scope * -UTL_ScopeStack::top_non_null() -{ - long i; - - for (i = pd_stack_top - 1; i >= 0; i--) - if (pd_stack_data[i] != NULL) - return pd_stack_data[i]; - return NULL; -} - -/* - * Redefinition of inherited virtual operations - */ - -// Class UTL_ScopeStackActiveIterator - -/* - * Constructor(s) - */ - -UTL_ScopeStackActiveIterator::UTL_ScopeStackActiveIterator(UTL_ScopeStack *s) - : source(s), - il(s->pd_stack_top - 1) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Advance to next item -void -UTL_ScopeStackActiveIterator::next() -{ - il--; -} - -// Get current item -UTL_Scope * -UTL_ScopeStackActiveIterator::item() -{ - if (il >= 0) - return source->pd_stack_data[il]; - return NULL; -} - -// Is this iteration done? -long -UTL_ScopeStackActiveIterator::is_done() -{ - if (il >= 0) - return I_FALSE; - return I_TRUE; -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_string.cpp b/TAO/TAO_IDL/util/utl_string.cpp deleted file mode 100644 index 970951133a9..00000000000 --- a/TAO/TAO_IDL/util/utl_string.cpp +++ /dev/null @@ -1,212 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_string.cc - Implementation of quick and dirty TEMPORARY String -// for IDL compiler - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructors - */ - -UTL_String::UTL_String (void) - : p_str (NULL), - len (0), - alloced (0) -{ -} - -UTL_String::UTL_String (char *str) -{ - if (str == NULL) - { - len = alloced = 0; - p_str = c_str = NULL; - } - else - { - len = ACE_OS::strlen (str); - alloced = len + 1; - p_str = new char [alloced]; - c_str = new char [alloced]; - ACE_OS::strcpy (p_str, str); - canonicalize (); - } -} - -UTL_String::UTL_String (unsigned long maxlen) -{ - len = maxlen; - alloced = maxlen + 1; - p_str = new char [alloced]; - c_str = new char [alloced]; - p_str[0] = '\0'; - c_str[0] = '\0'; -} - -UTL_String::UTL_String (UTL_String *s) -{ - char *b; - - if (s == NULL) - { - p_str = c_str = NULL; - alloced = len = 0; - } - else - { - b = s->get_string (); - if (b == NULL) - { - p_str = c_str = NULL; - alloced = len = 0; - } - else - { - len = ACE_OS::strlen (b); - alloced = len + 1; - p_str = new char [alloced]; - c_str = new char [alloced]; - ACE_OS::strcpy (p_str, b); - canonicalize (); - } - } -} - -/* - * Private operations - */ - -// Compute a canonical form for this string. This is (implemented as) -// a corresponding string with all upper case characters where the -// original has lower case characters, identical characters otherwise. -void -UTL_String::canonicalize (void) -{ - unsigned long i; - - for (i = 0; i < len; i++) - c_str[i] = isalpha (p_str[i]) ? toupper (p_str[i]) : p_str[i]; - - c_str[i] = '\0'; -} - -/* - * Public operations - */ - -// Compare two String * -long -UTL_String::compare (UTL_String *s) -{ - char *s_c_str; - long result; - - if (c_str == NULL || s == NULL || (s_c_str = s->get_canonical_rep ()) == NULL) - result = I_FALSE; - else - result = (ACE_OS::strcmp (c_str, s_c_str) == 0) ? I_TRUE : I_FALSE; - - /* - * Check that the names are typed consistently - */ - if (result == I_TRUE && ACE_OS::strcmp (p_str, s->get_string ()) != 0) - idl_global->err ()->name_case_error (p_str, s->get_string ()); - - return result; -} - -// Get the char * from a String -char * -UTL_String::get_string (void) -{ - return p_str; -} - -// Get the canonical representation from a String -char * -UTL_String::get_canonical_rep (void) -{ - if (c_str == NULL) - { - c_str = new char [alloced]; - canonicalize (); - } - return c_str; -} - -/* - * Redefined virtual operations - */ - -// AST Dumping -void -UTL_String::dump (ostream &o) -{ - o << p_str; -} diff --git a/TAO/TAO_IDL/util/utl_strlist.cpp b/TAO/TAO_IDL/util/utl_strlist.cpp deleted file mode 100644 index d2aac678822..00000000000 --- a/TAO/TAO_IDL/util/utl_strlist.cpp +++ /dev/null @@ -1,196 +0,0 @@ -// $Id$ - -/* - -COPYRIGHT - -Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United -States of America. All Rights Reserved. - -This product is protected by copyright and distributed under the following -license restricting its use. - -The Interface Definition Language Compiler Front End (CFE) is made -available for your use provided that you include this license and copyright -notice on all media and documentation and the software program in which -this product is incorporated in whole or part. You may copy and extend -functionality (but may not remove functionality) of the Interface -Definition Language CFE without charge, but you are not authorized to -license or distribute it to anyone else except as part of a product or -program developed by you or with the express written consent of Sun -Microsystems, Inc. ("Sun"). - -The names of Sun Microsystems, Inc. and any of its subsidiaries or -affiliates may not be used in advertising or publicity pertaining to -distribution of Interface Definition Language CFE as permitted herein. - -This license is effective until terminated by Sun for failure to comply -with this license. Upon termination, you shall destroy or return all code -and documentation for the Interface Definition Language CFE. - -INTERFACE DEFINITION LANGUAGE CFE IS 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. - -INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT -ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES -TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT. - -SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH -RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY -INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. - -IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES 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. - -Use, duplication, or disclosure by the government is subject to -restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in -Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR -52.227-19. - -Sun, Sun Microsystems and the Sun logo are trademarks or registered -trademarks of Sun Microsystems, Inc. - -SunSoft, Inc. -2550 Garcia Avenue -Mountain View, California 94043 - -NOTE: - -SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are -trademarks or registered trademarks of Sun Microsystems, Inc. - - */ - -// utl_strlist.cc -// -// Implementation of a list of utl_string nodes - -// NOTE: This list class only works correctly because we use single public -// inheritance, as opposed to multiple inheritance or public virtual. -// It relies on a type-unsafe cast from UTL_List to subclasses, which -// will cease to operate correctly if you use either multiple or -// public virtual inheritance. -// -// For portability reasons we have decided to provide both this and -// an implementation of the list classes in terms of templates. If -// your compiler supports templates, please use the files in the -// include/utl_tmpl and util/utl_tmpl directories instead of the -// files by the same names in the include and util directories. - -#include "idl.h" -#include "idl_extern.h" - -/* - * Constructor(s) - */ - -UTL_StrList::UTL_StrList(String *s, UTL_StrList *cdr) - : UTL_List(cdr), - pd_car_data(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get list item -String * -UTL_StrList::head() -{ - return pd_car_data; -} - -// Set list item -void -UTL_StrList::set_head(String *s) -{ - pd_car_data = s; -} - -// Get last item of this list -String * -UTL_StrList::last_component() -{ - if (tail() == NULL) - return pd_car_data; - return ((UTL_StrList *) tail())->last_component(); -} - -// Copy a list -UTL_List * -UTL_StrList::copy() -{ - if (tail() == NULL) - return new UTL_StrList(head(), NULL); - return new UTL_StrList(head(), (UTL_StrList *) tail()->copy()); -} - -// AST Dumping -void -UTL_StrList::dump(ostream &o) -{ - char *s; - UTL_StrlistActiveIterator *i = new UTL_StrlistActiveIterator(this); - idl_bool first = I_TRUE; - idl_bool second = I_FALSE; - - while (!(i->is_done())) { - if (!first) - o << "::"; - else if (second) - first = second = I_FALSE; - s = i->item()->get_string(); - o << s; - if (first) { - if (strcmp(s, "::") != 0) - first = I_FALSE; - else - second = I_TRUE; - } - i->next(); - } -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_StrList active iterator - -/* - * Constructor - */ - -UTL_StrlistActiveIterator::UTL_StrlistActiveIterator(UTL_StrList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get current item -String * -UTL_StrlistActiveIterator::item() -{ - if (source == NULL) - return NULL; - return ((UTL_StrList *) source)->head(); -} - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_decllist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_decllist.cpp deleted file mode 100644 index 5c8458eee82..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_decllist.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_decllist.cc -// -// Implementation of a list of declarators - -#include -#include - -/* - * Constructor(s) - */ - -UTL_DeclList::UTL_DeclList(FE_Declarator *s, UTL_DeclList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_DeclList active iterator - -/* - * Constructor - */ - -UTL_DecllistActiveIterator::UTL_DecllistActiveIterator(UTL_DeclList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefined inherited operations - */ - diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp deleted file mode 100644 index 8e6136e92ce..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_exceptlist.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_exceptlist.cc -// -// Implementation of a list of exceptions - -#include -#include - -/* - * Constructor(s) - */ - -UTL_ExceptList::UTL_ExceptList(AST_Exception *s, UTL_ExceptList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_ExceptList active iterator - -/* - * Constructor - */ - -UTL_ExceptlistActiveIterator::UTL_ExceptlistActiveIterator(UTL_ExceptList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_exprlist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_exprlist.cpp deleted file mode 100644 index bf67aab5564..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_exprlist.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_exprlist.cc -// -// Implementation of a list of strings - -#include -#include - -/* - * Constructor(s) - */ - -UTL_ExprList::UTL_ExprList(AST_Expression *s, UTL_ExprList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_ExprList active iterator - -/* - * Constructor - */ - -UTL_ExprlistActiveIterator::UTL_ExprlistActiveIterator(UTL_ExprList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_idlist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_idlist.cpp deleted file mode 100644 index e4df564ccf5..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_idlist.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_idlist.cc -// -// Implementation of a list of utl_string nodes - -#include -#include - -/* - * Constructor(s) - */ - -UTL_IdList::UTL_IdList(Identifier *s, UTL_IdList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get last item of this list -Identifier * -UTL_IdList::last_component() -{ - if (tail() == NULL) - return head(); - return tail()->last_component(); -} - -// AST Dumping -void -UTL_IdList::dump(ostream &o) -{ - UTL_IdListActiveIterator *i = new UTL_IdListActiveIterator(this); - long first = I_TRUE; - long second = I_FALSE; - - while (!(i->is_done())) { - if (!first) - o << "::"; - else if (second) - first = second = I_FALSE; - i->item()->dump(o); - if (first) { - if (strcmp(i->item()->get_string(), "::") != 0) - first = I_FALSE; - else - second = I_TRUE; - } - i->next(); - } -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_IdList active iterator - -/* - * Constructor - */ - -UTL_IdListActiveIterator::UTL_IdListActiveIterator(UTL_IdList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_labellist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_labellist.cpp deleted file mode 100644 index ea1cc9c4cff..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_labellist.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_labellist.cc -// -// Implementation of a list of scoped names - -#include -#include - -/* - * Constructor(s) - */ - -UTL_LabelList::UTL_LabelList(AST_UnionLabel *s, UTL_LabelList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_LabelList active iterator - -/* - * Constructor - */ - -UTL_LabellistActiveIterator::UTL_LabellistActiveIterator(UTL_LabelList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_list.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_list.cpp deleted file mode 100644 index 45b4c76429e..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_list.cpp +++ /dev/null @@ -1,211 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_list.cc -// -// Implementation of generic single-linked lists - -#include -#include -#include - -/* - * Constructor(s) - */ - -template -UTL_List::UTL_List(T *c, L *l) - : pd_car_data(c), - pd_cdr_data(l) -{ -} - -/* - * Private operations - */ - -// Compute list length -template -long -UTL_List::list_length(long n) -{ - if (pd_cdr_data == NULL) - return n; - else - return pd_cdr_data->list_length(n+1); -} - -/* - * Public operations - */ - -// Smash last cdr with l -template -void -UTL_List::nconc(L *l) -{ - if (pd_cdr_data == NULL) - pd_cdr_data = l; - else - pd_cdr_data->nconc(l); -} - -/* - * Override this operation to copy lists of other types - */ -// Copy a list -template -L * -UTL_List::copy() -{ - if (pd_cdr_data == NULL) - return new L(head(), NULL); - return new L(head(), pd_cdr_data->copy()); -} - -// Get list item -template -T * -UTL_List::head() -{ - return pd_car_data; -} - -// Get next list -template -L * -UTL_List::tail() -{ - return pd_cdr_data; -} - -// Set list item -template -void -UTL_List::set_head(T *s) -{ - pd_car_data = s; -} - -// Set next list -template -void -UTL_List::set_tail(L *l) -{ - pd_cdr_data = l; -} - -// Compute list length -template -long -UTL_List::length() -{ - return list_length(1); -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_List active iterator - -/* - * Constructor - */ - -template -UTL_ListActiveIterator::UTL_ListActiveIterator(UTL_List *s) - : source(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Is iterator done? -template -long -UTL_ListActiveIterator::is_done() -{ - return (source == NULL) ? I_TRUE : I_FALSE; -} - -// Get current item -template -T * -UTL_ListActiveIterator::item() -{ - if (source == NULL) - return NULL; - return source->head(); -} - -// Advance to next item -template -void -UTL_ListActiveIterator::next() -{ - if (source != NULL) - source = source->tail(); -} - -/* - * Redefinition of inherited operations - */ - diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_namelist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_namelist.cpp deleted file mode 100644 index 45a8b298a56..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_namelist.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_namelist.cc -// -// Implementation of a list of scoped names - -#include -#include - -typedef UTL_List _dummy_; - -/* - * Constructor(s) - */ - -UTL_NameList::UTL_NameList(UTL_ScopedName *s, UTL_NameList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_NameList active iterator - -/* - * Constructor - */ - -UTL_NamelistActiveIterator::UTL_NamelistActiveIterator(UTL_NameList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp b/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp deleted file mode 100644 index c0315e8c145..00000000000 --- a/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp +++ /dev/null @@ -1,139 +0,0 @@ -// $Id$ - -/* - *====================================================================== - * - *Copyright 1992 Sun Microsystems, Inc. - * - *The Interface Definition Language Compiler Front End (CFE) is made - *available for use provided that this legend is included on all media and - *documentation and as a part of the software program in whole or part. - *Users may copy and extend functionality (but may not remove - *functionality) of the Interface Definition Language CFE 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 or with the express - *written consent of Sun Microsystems, Inc. - * - *The names of Sun Microsystems, Inc. and any of its subsidiaries may not - *be used in advertising or publicity pertaining to distribution of - *Interface Definition Language CFE as permitted herein. - * - *The Interface Definition Language CFE may not be exported outside the - *United States without first obtaining the appropriate government - *approvals. - * - *INTERFACE DEFINITION LANGUAGE CFE IS 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. - * - *Interface Definition Language CFE is provided with no support and - *without any obligation on the part of Sun Microsystems, Inc. or any of - *its subsidiaries or affiliates to assist in its use, correction, - *modification or enhancement. - * - *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL - *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE - *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART - *THEREOF. - * - *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR - *AFFILIATES 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. - * - *SunSoft, Inc. - *2550 Garcia Avenue - *Mountain View, California 94043 - * - * - * - * - *====================================================================== - */ - -// utl_strlist.cc -// -// Implementation of a list of utl_string nodes - -#include -#include - -/* - * Constructor(s) - */ - -UTL_StrList::UTL_StrList(String *s, UTL_StrList *cdr) - : UTL_List(s, cdr) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -// Get last item of this list -String * -UTL_StrList::last_component() -{ - if (tail() == NULL) - return head(); - return tail()->last_component(); -} - -// AST Dumping -void -UTL_StrList::dump(ostream &o) -{ - char *s; - UTL_StrlistActiveIterator *i = new UTL_StrlistActiveIterator(this); - long first = I_TRUE; - long second = I_FALSE; - - while (!(i->is_done())) { - if (!first) - o << "::"; - else if (second) - first = second = I_FALSE; - s = i->item()->get_string(); - o << s; - if (first) { - if (strcmp(s, "::") != 0) - first = I_FALSE; - else - second = I_TRUE; - } - i->next(); - } -} - -/* - * Redefinition of inherited virtual operations - */ - -// UTL_StrList active iterator - -/* - * Constructor - */ - -UTL_StrlistActiveIterator::UTL_StrlistActiveIterator(UTL_StrList *s) - : UTL_ListActiveIterator(s) -{ -} - -/* - * Private operations - */ - -/* - * Public operations - */ - -/* - * Redefinition of inherited virtual operations - */ diff --git a/TAO/announcement b/TAO/announcement deleted file mode 100755 index f9d33c28e9e..00000000000 --- a/TAO/announcement +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/sh - -VERSION=`cat VERSION` -URL="http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO.tar.gz" - - -cat <<@EOM - -The first official beta release of The ACE ORB (TAO) has been released -by the Distributed Object Computing (DOC) Group at Washington -University in St. Louis. TAO is a freely available CORBA -2.x-compliant ORB with real-time extensions that can be downloaded -from the Internet at - -http://www.cs.wustl.edu/~schmidt/ACE_wrappers/TAO.tar.gz - -$VERSION - -TAO uses IIOP 1.0 as its inter-ORB communication protocol and provides -the first implementation of the OMG's Portable Object Adapter (POA) -specification and latest IDL->C++ mappings. For more information -about the POA, please see - -http://www.cs.wustl.edu/~schmidt/C++-report-col11.ps.gz -http://www.cs.wustl.edu/~schmidt/C++-report-col12.ps.gz - -For more information on TAO, please see - -http://www.cs.wustl.edu/~schmidt/TAO.html - -TAO has been ported to a range of OS platforms including Windows NT -4.x using MSVC++ 4.x and 5.x, several versions of UNIX (e.g., Solaris -2.x, SGI IRIX 6.x, Linux, SCO, NetBSD, and FreeBSD), and Real-Time -OS's (RTOSs) (e.g., VxWorks and Chorus). Ultimately, TAO will be -ported to all OS platforms on which ACE runs. We have used TAO to -interwork with other ORBs (e.g., Orbix, COOL, CORBAPlus, and -VisiBroker), so we're confident that its IIOP implementation is robust -and interoperable. - -For information on installation and system requirements, please see -http://www.cs.wustl.edu/~schmidt/TAO-INSTALL.html (or INSTALL) in the -root directory of the unpacked tar file. - -Note that ACE is required to build TAO. Typically the most recent -beta release is required, which you can obtain at - -http://www.cs.wustl.edu/~schmidt/ACE.html - -Please see the installation notes for more details. - -Other HTML documentation is available in the '$TAO_ROOT/docs/' -directory. - -We welcome suggestions for improvement, bug fixes, portability -enhancements, etc. If you have any questions or problems with TAO, -please post them to the ACE mailing list (ace-users@cs.wustl.edu) or -send email to Douglas C. Schmidt (schmidt@cs.wustl.edu) and Chris -Cleeland (cleeland@cs.wustl.edu). - -The TAO Team -@EOM diff --git a/TAO/examples/Simulator/DOVEBrowser/AnswerEvent.java b/TAO/examples/Simulator/DOVEBrowser/AnswerEvent.java deleted file mode 100644 index c10ae7d766a..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/AnswerEvent.java +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ -// -// = FILENAME -// AnswerEvent.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Event definition for the Dialog for selecting Observables. -// -// ============================================================================ - -public class AnswerEvent extends java.util.EventObject { - - protected String selected_; - - public AnswerEvent (Object source, String selected) { - super (source); - this.selected_ = selected; - } -} - diff --git a/TAO/examples/Simulator/DOVEBrowser/AnswerListener.java b/TAO/examples/Simulator/DOVEBrowser/AnswerListener.java deleted file mode 100644 index 77d43646729..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/AnswerListener.java +++ /dev/null @@ -1,18 +0,0 @@ -// $Id$ -// -// = FILENAME -// AnswerListener.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// EventListener definition for the Dialog for selecting Observables. -// -// ============================================================================ - - -public class AnswerListener implements java.util.EventListener { - public void ok (AnswerEvent e) {} - public void cancel (AnswerEvent e) {} -} diff --git a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.html b/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.html deleted file mode 100644 index 5502857d548..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - -Document Title - - - -Note: When used with Visibroker, the gatekeeper must run in the DOVEBrowser directory! -Note: The IORs are different for each machine! So exchange the IORs below. - - -NT Name Service IOR - - -Unix Name ServiceIOR - - -Use this to run it with the appletviewer and Visibroker - - -Use this to run it within Netscape - - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.java b/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.java deleted file mode 100644 index 99830e408e7..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowser.java +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ -// -// = FILENAME -// DOVEBrowser.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Entry point for the demo. -// -// ============================================================================ - - -import java.awt.*; - -public class DOVEBrowser { - - DemoCore demoCore_; - - public DOVEBrowser () { - super (); - } - - public void init (String nameServiceIOR, String[] args) { - - demoCore_ = new DemoCore (nameServiceIOR, args, null); - demoCore_.show (); - demoCore_.run (); - } - - public static void main (String[] args) { - String nameServiceIOR = null; - - if (args.length == 2) { - if (args[0] == "-ORBnameserviceior") { - nameServiceIOR = args[1]; - } - } - - DOVEBrowser doveBrowser = new DOVEBrowser(); - doveBrowser.init (nameServiceIOR, args); - } -} - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowserApplet.java b/TAO/examples/Simulator/DOVEBrowser/DOVEBrowserApplet.java deleted file mode 100644 index c55b90ca0de..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DOVEBrowserApplet.java +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ -// -// = FILENAME -// DOVEBrowserApplet.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Entry point for the demo when started inside an applet. -// -// ============================================================================ - - -import java.awt.*; - -public class DOVEBrowserApplet extends java.applet.Applet { - - DemoCore demoCore_; - static String nameServiceIOR_ = null; - - public DOVEBrowserApplet () { - super (); - } - - public void init () { - // in case of an applet use the following line, else not! - nameServiceIOR_ = this.getParameter ("NSIOR"); - - if (nameServiceIOR_ == null) { - System.out.println ("The DOVE Browser cannot run, because no Naming Service IOR was found!"); - return; - } - - demoCore_ = new DemoCore (nameServiceIOR_, // name service IOR - null, // args - this); // pointer to the applet - demoCore_.show (); - demoCore_.run (); - } -} - - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/DataHandler.java b/TAO/examples/Simulator/DOVEBrowser/DataHandler.java deleted file mode 100644 index a2a88771b4a..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DataHandler.java +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ -// -// = FILENAME -// DataHandler.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is the interface for data handling in the simulation demo -// using the Event Channel as transport media. -// -// ============================================================================ - -import org.omg.CORBA.*; - -public interface DataHandler { - - // entry point for an consumer to put data into the data handler - public void update (Any any_value); - - // get a list of the Observables names to allow selection - public java.util.Enumeration getObservablesList (); - - // get a specific Observable - public DemoObservable getObservable(String name); - - // get the property of an observable - public int getObservableProperty (String name); -} - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/DemoCore.java b/TAO/examples/Simulator/DOVEBrowser/DemoCore.java deleted file mode 100644 index 0871fb0f74a..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DemoCore.java +++ /dev/null @@ -1,154 +0,0 @@ -// $Id$ -// -// = FILENAME -// DemoCore.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This class servers as the core class of the simulation demo. -// It connects the push consumer of the event service with -// one or several Java Beans. -// -// ============================================================================ - - -import java.awt.*; -import java.awt.event.*; - -public class DemoCore extends Frame { - - private static final int MAX_VIS_COMPS = 10; - - private PushConsumerFactory pushConsumerFactory_; - private VisCompFactory visCompFactory_; - private DataHandler dataHandler_; - private java.util.Vector vis_comp_list_; - private int countVisComp_ = 0; - private GridBagLayout gridbag_; - private GridBagConstraints constraints_; - - DemoCore (String nameServiceIOR, - String[] args, - java.applet.Applet applet) { - super (); - - setSize (600,400); - setBounds (new Rectangle (50,50,800,500)); - setVisible (true); - - gridbag_ = new GridBagLayout(); - constraints_ = new GridBagConstraints(); - constraints_.fill = GridBagConstraints.BOTH; - constraints_.weightx = 1.0; - constraints_.weighty = 1.0; - this.setLayout (gridbag_); - - // Instantiate the DataHandler and the PushConsumer - dataHandler_ = new NavWeapDataHandler (); - pushConsumerFactory_ = new PushConsumerFactory (dataHandler_, nameServiceIOR, args, applet); - - // List of Visualization Components - vis_comp_list_ = new java.util.Vector(); - - - MenuBar menubar_ = new MenuBar (); - Menu menu_ = new Menu ("File"); - MenuItem menu_quit_item_ = new MenuItem ("Quit"); - menu_quit_item_.setEnabled (true); - MenuItem menu_add_item_ = new MenuItem ("Add"); - menu_add_item_.setEnabled (true); - menu_.add (menu_add_item_); - menu_.add (menu_quit_item_); - menubar_.add (menu_); - - setMenuBar (menubar_); - - menu_quit_item_.addActionListener (new ActionListener () - { - public void actionPerformed (ActionEvent e) { - System.exit (0); - } - }); - - menu_add_item_.addActionListener (new ActionListener () - { - public void actionPerformed (ActionEvent e) { - ObservablesDialog obsDialog_ = - new ObservablesDialog (DemoCore.this, - dataHandler_.getObservablesList()); - obsDialog_.addAnswerListener (new AnswerListener () - { - public void ok (AnswerEvent e) - { - DemoCore.this.addConnection (e.selected_); - } - }); - obsDialog_.setVisible (true); - } - }); - - // instantiate the Factory for Visualization Components - visCompFactory_ = new VisCompFactory (); - - // in here the factory is needed - addConnection ("Cpu_UsageObservable"); - } - - public boolean addConnection (String selected) { - // to not fill too many into it - if (countVisComp_ < MAX_VIS_COMPS) { - - // get a reference to the Observable - DemoObservable observable_ = dataHandler_.getObservable (selected); - - if (observable_ != null) { - - VisComp visComp_ = visCompFactory_.getNewVisComp (observable_.getProperty (), selected); - - if (visComp_ != null) { - vis_comp_list_.addElement (visComp_); - - // connect the Observer with the Observable - observable_.addObserver (visComp_); - - countVisComp_++; - - // not more than three in a row - if (countVisComp_ == 3){ - constraints_.gridwidth = GridBagConstraints.REMAINDER; - } - if (countVisComp_ > 3) { - constraints_.gridwidth = 1; - } - - gridbag_.setConstraints ((java.awt.Component) visComp_, constraints_); - - // add the Visualization Component to the Frame - DemoCore.this.add ((java.awt.Component) visComp_); - DemoCore.this.show (); - - return true; - } - } - } - return false; - } - - public void init () - { - } - - public void paint (Graphics g) - { - } - - public void run () - { - // Wait passive until events come in - pushConsumerFactory_.run (); - } -} - - diff --git a/TAO/examples/Simulator/DOVEBrowser/DemoObservable.java b/TAO/examples/Simulator/DOVEBrowser/DemoObservable.java deleted file mode 100644 index 81c85b961f8..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DemoObservable.java +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ -// -// = FILENAME -// DemoObservable.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This class servers as the core class of the simulation demo -// -// ============================================================================ - - - -public abstract class DemoObservable extends java.util.Observable { - - public abstract int getProperty (); -} diff --git a/TAO/examples/Simulator/DOVEBrowser/DoubleVisComp.java b/TAO/examples/Simulator/DOVEBrowser/DoubleVisComp.java deleted file mode 100644 index 5d636641beb..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/DoubleVisComp.java +++ /dev/null @@ -1,206 +0,0 @@ -// $Id$ -// -// = FILENAME -// DoubleVisComp.java -// -// = AUTHOR -// Seth Widoff (core graph functionality) -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is a Visualization Component for displaying doubles. -// -// ============================================================================ - - - - -import java.awt.*; -import java.util.*; - -public class DoubleVisComp extends Canvas implements VisComp -{ - private static final int MIN_SPACING = 2; - private static final int POINT_HISTORY = 200; - private static final Font FONT = new Font ("Dialog", Font.PLAIN, 10); - - private Queue plot_; - private String title_; - private Graphics offgraphics_; - private Image offscreen_; - private Dimension offscreensize_; - private int max_value_; - private int old_max_value_; - private int spacing_; - private float local_max_ = 0; - private boolean max_increased_ = false; - - public DoubleVisComp() - { - super(); - - plot_ = new Queue(); - spacing_ = MIN_SPACING; - title_ = ""; - max_value_ = 1; - // max_value_ = max_value; - old_max_value_ = max_value_; - - java.util.Random rand = new java.util.Random (System.currentTimeMillis()); - float hue_ = rand.nextFloat(); - float brightness = rand.nextFloat(); - - hue_ += .075; - - if (hue_ > 1.0) - hue_ -= 1.0; - - if (brightness > 0.75) - brightness -= 0.25; - - Color new_color = Color.getHSBColor(hue_, 1, brightness); - - this.setBackground(new_color); - this.setForeground(Color.white); - } - - - public void setName (String title) { - title_ = title; - } - - public int getProperty () { - return Properties.DOUBLE; - } - - public Dimension getMinimumSize () { - return new Dimension (75, 75); - } - - public Dimension getPreferredSize () { - return new Dimension (175, 175); - } - - public String getName() { - return title_; - } - - public int getMax() { - return old_max_value_; - } - - public void update(java.util.Observable observable, java.lang.Object obj) - { - Double double_temp_; - try { - double_temp_ = (Double) obj; - } - catch (Exception excp) { - double_temp_ = new Double (0.0); - System.out.println (excp); - System.out.println ("Visualization Component received wrong data type!"); - } - - float new_point = double_temp_.floatValue(); - Float temp = (Float)plot_.dequeue_tail(); - plot_.enqueue_head(new Float(new_point)); - - if (new_point > local_max_) - local_max_ = new_point; - - while (local_max_ > max_value_) - max_value_ *= 2; - - while ((local_max_ < max_value_/2) && (max_value_ > old_max_value_)) - max_value_ /= 2; - - repaint(); - } - - public void update(Graphics g) - { - Dimension d = getSize (); - float tmp, value_1, value_2; - FontMetrics fm = g.getFontMetrics (); - Enumeration queue_iter = plot_.forward_iterator(); - int x1 = d.width - 8, y1, x2, y2, fheight = fm.getHeight (), i; - String value = "Value (of " + max_value_ + "): " + String.valueOf(plot_.head()); - - if ((offscreen_ == null) || - (offscreensize_.width != d.width - 8) || - (offscreensize_.height != d.height - 8)) - { - offscreen_ = createImage(d.width - 8, d.height - 8); - offscreensize_ = new Dimension(d.width - 8, d.height - 8); - offgraphics_ = offscreen_.getGraphics(); - offgraphics_.setFont(FONT); - } - - g.setColor (Color.lightGray); - g.draw3DRect (0, 0, d.width - 1, d.height - 1, true); - g.draw3DRect (1, 1, d.width - 3, d.height - 3, true); - g.draw3DRect (2, 2, d.width - 5, d.height - 5, true); - - local_max_ = 0; - offgraphics_.setColor (getBackground()); - offgraphics_.fillRect (0, 0, offscreensize_.width, offscreensize_.height); - offgraphics_.setColor (getForeground()); - offgraphics_.drawString(title_, 5, fheight); - offgraphics_.drawString(value, 5, offscreensize_.height - 5); - - value_1 = ((Float)queue_iter.nextElement()).floatValue(); - while (queue_iter.hasMoreElements()) - { - value_2 = ((Float)queue_iter.nextElement()).floatValue(); - - if (value_1 > local_max_) - local_max_ = value_1; - - y1 = normalize(offscreensize_.height - fheight, value_1); - y2 = normalize(offscreensize_.height - fheight, value_2); - - tmp = value_2; - value_2 = value_1; - value_1 = tmp; - - x2 = x1 - spacing_; - offgraphics_.drawLine(x1, y1, x2, y2); - x1 = x2; - if (x1 <= 5) - break; - } - - g.drawImage(offscreen_, 3, 3, null); - } - - public void paint(Graphics g) - { - Dimension d = getSize (); - int plot_length = plot_.length(); - int num_points = d.width / spacing_; - - if (plot_.length() < num_points) - { - for (int i = 0; i < num_points - plot_length; i++) - plot_.enqueue_tail(new Float(0)); - } - else if (plot_.length() > num_points) - { - for (int i = 0; i < plot_length - num_points; i++) - plot_.dequeue_tail(); - } - - update(g); - } - - - private int normalize(int height, float coord) - { - float ratio = (float)coord/max_value_; - float pixels = (float)height*ratio; - float location = (float)height - pixels; - - return Math.round(location); - } -} - diff --git a/TAO/examples/Simulator/DOVEBrowser/NS_Resolve.java b/TAO/examples/Simulator/DOVEBrowser/NS_Resolve.java deleted file mode 100644 index b6a39e63dec..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/NS_Resolve.java +++ /dev/null @@ -1,112 +0,0 @@ -// $Id$ -// ============================================================================ -// -// -// = FILENAME -// NS_Resolve.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Resolves the initial reference to the Naming service, -// the orb has to be given as a parameter to the -// resolve_name_service call. -// -// -// ============================================================================ - - - - -import org.omg.CORBA.*; -import java.net.*; -import java.io.*; - - - -public class NS_Resolve -{ - - private static final String ACE_DEFAULT_MULTICAST_ADDR = "224.9.9.2"; - private static final int TAO_DEFAULT_NAME_SERVER_REQUEST_PORT = 10013; - private static final int MULTICAST_SEND_PORT = 10060; - private static final int MULTICAST_RECEIVE_PORT = 10061; - private static final int TAO_SERVICEID_NAMESERVICE = 0; - private static final int TAO_SERVICEID_TRADINGSERVICE = 1; - - org.omg.CORBA.Object name_service_; - - - public org.omg.CORBA.Object resolve_name_service (org.omg.CORBA.ORB orb) - { - try - { - // Create a message with the multicast receive port in it - ByteArrayOutputStream byte_stream_ = new ByteArrayOutputStream (); - byte_stream_.write ((int)((MULTICAST_RECEIVE_PORT&0xff00)>>>8)); - byte_stream_.write ((int)(MULTICAST_RECEIVE_PORT&0x00ff)); - byte_stream_.write ((int)((TAO_SERVICEID_NAMESERVICE&0xff00)>>>8)); - byte_stream_.write ((int)(TAO_SERVICEID_NAMESERVICE&0x00ff)); - byte[] msg = byte_stream_.toByteArray(); - - - // Define the group for the multicast - - InetAddress group = InetAddress.getByName(ACE_DEFAULT_MULTICAST_ADDR); - // Create the multicast socket at any port you want - MulticastSocket multicastsocket_ = new MulticastSocket(MULTICAST_SEND_PORT); - // Create a socket for the answer of the Naming Service - DatagramSocket socket_ = new DatagramSocket (MULTICAST_RECEIVE_PORT); - // Give three seconds time for the Naming Service to respond - socket_.setSoTimeout (3000); - // Build a packet with the port number in it - DatagramPacket hello = new DatagramPacket(msg, msg.length, - group, TAO_DEFAULT_NAME_SERVER_REQUEST_PORT); - - // Send the packet - multicastsocket_.send (hello); - - // @@ The restriction right now is that the length of the IOR cannot be longer than 4096 - byte[] buf = new byte[4096]; - // Set up packet which can be received - DatagramPacket recv = new DatagramPacket (buf, buf.length); - // Receive a packet or time out - socket_.receive (recv); - - // Determine the length of the IOR - int length; - for (length = 0; buf[length] != 0; length++); - - // Store the IOR in a String - String name_service_ior_ = new String (recv.getData (),0,length); - - // Convert the String into - return orb.string_to_object (name_service_ior_); - } - catch (SocketException e) - { - System.err.println (e); - } - catch (java.io.InterruptedIOException e) - { - System.err.println ("NS_Resolve: The receive lasted too long"); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - catch (java.io.IOException e) - { - System.err.println (e); - } - return null; - - } - -}; - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java b/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java deleted file mode 100644 index e72155cab3d..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/NavWeapDataHandler.java +++ /dev/null @@ -1,220 +0,0 @@ -// $Id$ -// -// = FILENAME -// NavWeapDataHandler.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is an implementation of the interface Data Handler, -// it handles Navigation and Weapons data, where statistic data is -// part of it. Several Observables are declared, they can be accessed by -// any number of Observers, which could reside in a Java Bean for example. -// -// ============================================================================ - -import org.omg.CORBA.*; - -public class NavWeapDataHandler implements DataHandler { - - java.util.Hashtable ObservablesTable; - int received_events_; - - - // Observable for Navigation data - class NavigationObservable extends DemoObservable { - - // to ask which kind of viewer is needed to display data - public int getProperty () { - return Properties.NAVIGATION; - } - - public void updateNavigation (Navigation navigation) { - setChanged (); - notifyObservers (navigation); - } - - } - - class WeaponsObservable extends DemoObservable { - - // to ask which kind of viewer is needed to display data - public int getProperty () { - return Properties.WEAPONS; - } - - public void updateWeapons (Weapons weapons) { - setChanged (); - notifyObservers (weapons); - } - } - - class Cpu_UsageObservable extends DemoObservable { - - public int getProperty () { - return Properties.DOUBLE; - } - - public void updateCpu_Usage (double utilization) { - setChanged (); - Double temp_ = new Double (utilization); - notifyObservers (temp_); - } - } - class OverheadObservable extends DemoObservable { - - public int getProperty () { - return Properties.DOUBLE; - } - - public void updateOverhead (double overhead) { - setChanged (); - Double temp_ = new Double (overhead); - notifyObservers (temp_); - } - } - class JitterObservable extends DemoObservable { - double latency = 0.0; - double last_latency = 0.0; - - public int getProperty () { - return Properties.DOUBLE; - } - - public void updateJitter (int completion_time, - int computation_time, - int arrival_time ) { - last_latency = latency; - latency = (double)(completion_time - - computation_time - - arrival_time); - latency = latency > 0 ? latency : 0; - double jitter_ = (double)Math.abs(latency - last_latency); - - setChanged (); - Double temp_ = new Double (jitter_); - notifyObservers (temp_); - } - } - class DeadlinesObservable extends DemoObservable { - - public int getProperty () { - return Properties.DOUBLE; - } - - public void updateDeadlines (int deadline_time, - int completion_time) { - double missed_ = (double) ((deadline_time - < completion_time) - ? 1.0 : 0.0); - - Double temp_ = new Double (missed_); - setChanged (); - notifyObservers (temp_); - } - } - class LatencyObservable extends DemoObservable { - double latency = 0.0; - double last_latency = 0.0; - - public int getProperty () { - return Properties.DOUBLE; - } - - public void updateLatency (int completion_time, - int computation_time, - int arrival_time ) { - last_latency = latency; - latency = (double)(completion_time - - computation_time - - arrival_time); - latency = latency > 0 ? latency : 0; - - setChanged (); - Double temp_ = new Double(latency); - notifyObservers (temp_); - } - } - - - public void update (Any any_value) { - - if (any_value.type().equal (NavigationHelper.type())) - { - Navigation navigation_ = NavigationHelper.extract (any_value); - NavigationObservable nobs = (NavigationObservable)ObservablesTable.get ("NavigationObservable"); - nobs.updateNavigation (navigation_); - Cpu_UsageObservable cobs = (Cpu_UsageObservable)ObservablesTable.get ("Cpu_UsageObservable"); - cobs.updateCpu_Usage (navigation_.utilization); - OverheadObservable oobs = (OverheadObservable)ObservablesTable.get ("OverheadObservable"); - oobs.updateOverhead (navigation_.overhead); - JitterObservable jobs = (JitterObservable)ObservablesTable.get ("JitterObservable"); - jobs.updateJitter (navigation_.completion_time, - navigation_.computation_time, - navigation_.arrival_time); - DeadlinesObservable dobs = (DeadlinesObservable)ObservablesTable.get ("DeadlinesObservable"); - dobs.updateDeadlines (navigation_.deadline_time, - navigation_.completion_time); - LatencyObservable lobs = (LatencyObservable)ObservablesTable.get ("LatencyObservable"); - lobs.updateLatency (navigation_.completion_time, - navigation_.computation_time, - navigation_.arrival_time); - received_events_++; - } - else if (any_value.type().equal (WeaponsHelper.type())) - { - Weapons weapons_ = WeaponsHelper.extract (any_value); - WeaponsObservable wobs = (WeaponsObservable)ObservablesTable.get ("WeaponsObservable");; - wobs.updateWeapons (weapons_); - Cpu_UsageObservable cobs = (Cpu_UsageObservable)ObservablesTable.get ("Cpu_UsageObservable"); - cobs.updateCpu_Usage (weapons_.utilization); - OverheadObservable oobs = (OverheadObservable)ObservablesTable.get ("OverheadObservable"); - oobs.updateOverhead (weapons_.overhead); - JitterObservable jobs = (JitterObservable)ObservablesTable.get ("JitterObservable"); - jobs.updateJitter (weapons_.completion_time, - weapons_.computation_time, - weapons_.arrival_time); - DeadlinesObservable dobs = (DeadlinesObservable)ObservablesTable.get ("DeadlinesObservable"); - dobs.updateDeadlines (weapons_.deadline_time, - weapons_.completion_time); - LatencyObservable lobs = (LatencyObservable)ObservablesTable.get ("LatencyObservable"); - lobs.updateLatency (weapons_.completion_time, - weapons_.computation_time, - weapons_.arrival_time); - received_events_++; - } - else - System.out.println ("Received wrong type information"+any_value.type()); - } - - NavWeapDataHandler () { - ObservablesTable = new java.util.Hashtable(); - - ObservablesTable.put ("NavigationObservable", new NavigationObservable()); - ObservablesTable.put ("WeaponsObservable", new WeaponsObservable()); - ObservablesTable.put ("Cpu_UsageObservable", new Cpu_UsageObservable()); - ObservablesTable.put ("OverheadObservable", new OverheadObservable()); - ObservablesTable.put ("JitterObservable", new JitterObservable()); - ObservablesTable.put ("DeadlinesObservable", new DeadlinesObservable()); - ObservablesTable.put ("LatencyObservable", new LatencyObservable()); - } - - public java.util.Enumeration getObservablesList () { - return ObservablesTable.keys (); - } - - public DemoObservable getObservable(String name) { - return (DemoObservable)ObservablesTable.get (name); - } - - public int getObservableProperty (String name) { - DemoObservable obs = (DemoObservable)ObservablesTable.get (name); - return obs.getProperty (); - } - -} - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/NavigationVisComp.java b/TAO/examples/Simulator/DOVEBrowser/NavigationVisComp.java deleted file mode 100644 index 3d7a217389b..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/NavigationVisComp.java +++ /dev/null @@ -1,350 +0,0 @@ -// $Id$ -// -// = FILENAME -// NavigationVisComp.java -// -// = AUTHOR -// Seth Widoff (core functionality) -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is a Visualization Component for displaying navigation. -// -// ============================================================================ - - - -import java.awt.*; -import java.io.*; - -public class NavigationVisComp extends Panel implements VisComp -{ - private Alt_Horizon alt_hor_ = new Alt_Horizon (); - private Position pos_ = new Position (); - - public NavigationVisComp () - { - setLayout (new BorderLayout (0, 2)); - add ("Center", alt_hor_); - add ("South", pos_); - } - - public void setName (String title) { - } - - public int getProperty () { - return Properties.NAVIGATION; - } - - public void update (java.util.Observable observable, java.lang.Object obj) { - Navigation navigation_ = null; - try { - navigation_ = (Navigation) obj; - } - catch (Exception excp) { - System.out.println (excp); - System.out.println ("Visualization Component received wrong data type!"); - } - if (navigation_ != null) { - // make sure all the values are in the proper range. - navigation_.roll = (navigation_.roll > 180 || navigation_.roll < -180) ? - 0 : navigation_.roll; - navigation_.pitch = (navigation_.pitch > 90 || navigation_.pitch < -90) ? - 0 : navigation_.pitch; - - // update the artificial horizon - alt_hor_.update_display (navigation_.roll, navigation_.pitch); - - navigation_.pitch = (navigation_.position_latitude > 90 || navigation_.position_latitude < -90) ? - 0 : navigation_.position_latitude; - navigation_.pitch = (navigation_.position_longitude > 100 || navigation_.position_longitude < 00) ? - 0 : navigation_.position_longitude; - navigation_.pitch = (navigation_.altitude > 90 || navigation_.altitude < -90) ? - 0 : navigation_.altitude; - navigation_.pitch = (navigation_.heading > 180 || navigation_.heading < -180) ? - 0 : navigation_.heading; - - // update the position display - pos_.update_display (navigation_.position_latitude, - navigation_.position_longitude, - navigation_.altitude, - navigation_.heading); - } - } -} - -class Alt_Horizon -extends Canvas -{ - private final static Color GREEN = new Color (0, 100, 0), - BLUE = new Color (30, 144, 255); - - private Graphics offgraphics_; - private Image offscreen_; - private Dimension offscreensize_; - - private int roll_ = 0, pitch_ = 0; - - public void update_display (int roll, int pitch) - { - roll_ = roll; - pitch_ = pitch; - - repaint (); - } - - public Dimension getPreferredSize () - { - return new Dimension (180, 180); - } - - public Dimension getMinimumSize () - { - return new Dimension (80, 80); - } - - public void paint (Graphics g) - { - update (g); - } - - public void update (Graphics g) - { - Dimension d = getSize (); - int rad, angles[] = { 180, 0 }; - Point center; - - if ((offscreen_ == null) || (d.width != offscreensize_.width) || - (d.height != offscreensize_.height)) - { - offscreen_ = createImage (d.width, d.height); - offscreensize_ = new Dimension (d.width, d.height); - offgraphics_ = offscreen_.getGraphics (); - offgraphics_.setFont (getFont()); - - // g.setColor (Color.lightGray); - // g.draw3DRect (0, 0, d.width - 1, d.height - 1, true); - // g.draw3DRect (1, 1, d.width - 3, d.height - 3, true); - // g.draw3DRect (2, 2, d.width - 5, d.height - 5, true); - } - - offgraphics_.setColor (getBackground()); - offgraphics_.fillRect (0, 0, d.width, d.height); - offgraphics_.setColor (BLUE); - - // Calculate from the dimensions, the largest square. - center = new Point (d.width / 2, d.height / 2); - rad = ((center.x < center.y) ? center.x : center.y); - - // Draw a circle of blue - offgraphics_.fillOval (center.x - rad, center.y - rad, - 2*rad, 2*rad); - - // Roll the horizon based on the roll angle - if (roll_ != 0) - roll_horizon (rad, angles); - - // Pitch the horizon based on the pitch angle - if (pitch_ != 0) - pitch_horizon (rad, angles); - - // Draw the resulting terrain - draw_horizon (rad, center, angles); - - // Draw the plotted Image. - g.drawImage (offscreen_, 0, 0, null); - } - - private void draw_horizon (int rad, Point center, int[] angles) - { - // Draw an arc - int arc_angle = - ((angles[0] > angles[1]) ? - (360 - angles[0]) + angles[1] : - (angles[1] - angles[0])); - - Polygon remainder = new Polygon (); - - offgraphics_.setColor (GREEN); - offgraphics_.fillArc (center.x - rad, center.y - rad, - 2*rad, 2*rad, - angles[0], arc_angle); - - if (pitch_ != 0) - { - if ((pitch_ > 0 && Math.abs (roll_) < 90) || - (pitch_ < 0 && Math.abs (roll_) >= 90)) - offgraphics_.setColor (BLUE); - - int cover_angle = (angles[0] + arc_angle/2 + ((arc_angle < 180) ? 180 : 0)) % 360; - - // System.out.println (points[0] + " " + points[1]); - - // System.out.println (accepted_point); - - remainder.addPoint (center.x + polar_to_rect_x (rad, cover_angle), - center.y - polar_to_rect_y (rad, cover_angle)); - remainder.addPoint (center.x + polar_to_rect_x (rad, angles[0]), - center.y - polar_to_rect_y (rad, angles[0])); - remainder.addPoint (center.x + polar_to_rect_x (rad, angles[1]), - center.y - polar_to_rect_y (rad, angles[1])); - offgraphics_.fillPolygon (remainder); - //offgraphics_.setColor (getBackground ()); - //offgraphics_.drawPolygon (remainder); - } - } - - private void pitch_horizon (int rad, int[] angles) - { - boolean upside_down = Math.abs (roll_) >= 90; - int angle_shift = (int) Math.round ((double)(90 - (Math.abs (roll_) % 180)) / 90.0 * pitch_); - - // System.out.println ("angle_shift " + angle_shift); - - angles[0] += angle_shift; - angles[1] -= angle_shift; - - - } - - private void roll_horizon (int rad, int[] angles) - { - // Roll the left and right points of the terrain. - angles[0] += roll_; - angles[1] += roll_; - - if (angles[0] < 0) - angles[0] += 360; - - if (angles[1] < 0) - angles[1] += 360; - } - - private int polar_to_rect_x (int rad, int angle) - { - return (int) Math.round (rad * Math.cos ((double)angle * Math.PI/180.0)); - } - - private int polar_to_rect_y (int rad, int angle) - { - return (int) Math.round (rad * Math.sin ((double)angle * Math.PI/180.0)); - } - - private double caclulate_slope (int rad, int[] angles) - { - int x1 = polar_to_rect_x (rad, angles[0]), - x2 = polar_to_rect_x (rad, angles[1]), - y1 = polar_to_rect_y (rad, angles[0]), - y2 = polar_to_rect_y (rad, angles[1]); - - return ((double) (y2 - y1)) / ((double) (x2 - x1)); - } - - private Point[] line_circle_intesect (int rad, double y_intercept, double slope) - { - double r_2 = (double)(rad * rad), - s_2 = slope * slope, - a_x = s_2 + 1, - b_x = 2.0 * slope * y_intercept, - c_x = y_intercept * y_intercept - r_2; - int[] x_roots = quad_eq (a_x, b_x, c_x), - y_roots = { (int) Math.round ((double)((double) x_roots[0])*slope + y_intercept), - (int) Math.round ((double)((double) x_roots[1])*slope + y_intercept) }; - Point[] points = new Point [2]; - - points[0] = new Point (x_roots[0], y_roots[0]); - points[1] = new Point (x_roots[1], y_roots[1]); - - return points; - } - - private int calculate_angle (int rad, int x, int y) - { - /* - double angle = 0, - sin_value = Math.asin ((double)y / (double)rad), - tan_value = Math.atan ((double)y / (double)x); - - if (x >= 0) - angle = (x != 0) ? tan_value : sin_value + - ((y < 0) ? 2*Math.PI : 0); - else - angle = Math.PI + tan_value; - - return (int) Math.round (angle * 180.0 / Math.PI); - */ - - double angle = 0.0, - sin_value = Math.asin ((double)Math.abs (y) / (double)rad); - - if (x >= 0 && y >= 0) - angle = sin_value; - else if (x < 0 && y >= 0) - angle = sin_value + Math.PI/2.0; - else if (x < 0 && y < 0) - angle = sin_value + Math.PI; - else if (x >= 0 && y < 0) - angle = sin_value + 3.0*Math.PI/2.0; - - return (int) Math.round (angle * 180.0 / Math.PI); - } - - private int[] quad_eq (double a, double b, double c) - { - int[] roots = new int [2]; - double body = Math.sqrt (b*b - 4.0*a*c); - - roots[0] = (int) Math.round ((-b + body) / (2.0 * a)); - roots[1] = (int) Math.round ((-b - body) / (2.0 * a)); - - return roots; - } - - private int distance (Point point1, Point point2) - { - double xdiff = point1.x - point2.x, - ydiff = point1.y - point2.y; - - return (int) Math.round (Math.sqrt (xdiff*xdiff + ydiff*ydiff)); - } -} - -class Position extends Panel -{ - private final static Font FONT = new Font ("Dialog", Font.BOLD, 12); - private final static char DEGREE = '\u00B0'; - - private Label lat_ = new Label ("0" + DEGREE + " N", Label.RIGHT), - long_ = new Label ("0" + DEGREE + " S", Label.RIGHT), - alt_ = new Label ("0 Kft", Label.RIGHT), - heading_ = new Label ("0" + DEGREE + " ", Label.RIGHT); - - public Position () - { - Panel grid_panel = new Panel (); - - lat_.setFont (FONT); - long_.setFont (FONT); - alt_.setFont (FONT); - heading_.setFont (FONT); - - setLayout (new GridLayout (1, 4)); - add (lat_); - add (long_); - add (heading_); - add (alt_); - } - - public void update_display (int lat, int lon, int alt, int heading) - { - String lat_str = - Math.abs (lat) + "" + DEGREE + ((lat > 0) ? " N" : " S"); - String long_str = - Math.abs (lon) + "" + DEGREE + ((lon > 0) ? " E" : " W"); - - lat_.setText (lat_str); - long_.setText (long_str); - alt_.setText (alt + " Kft"); - heading_.setText (heading + "" + DEGREE + " "); - } -} diff --git a/TAO/examples/Simulator/DOVEBrowser/ObservablesDialog.java b/TAO/examples/Simulator/DOVEBrowser/ObservablesDialog.java deleted file mode 100644 index 2ea856c24e2..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/ObservablesDialog.java +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ -// -// = FILENAME -// ObservablesDialog.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Dialog for selecting Observables. -// -// ============================================================================ - -import java.awt.*; -import java.awt.event.*; - -public class ObservablesDialog extends Dialog { - - List list_; - DemoCore parent_; - AnswerListener listener_; - - ObservablesDialog (DemoCore parent,java.util.Enumeration enumeration) { - - super ((Frame)parent, "Select Observables", true); - parent_ = parent; - this.setSize(400, 300); - setBounds (new Rectangle (50,50,400,300)); - - list_ = new List (); - list_.setFont ( new Font ("Helvetica", Font.PLAIN, 10)); - list_.setSize (200,200); - - for (; enumeration.hasMoreElements();) { - list_.add ((String)enumeration.nextElement()); - } - - - Button ok_button_ = new Button ("OK"); - ok_button_.setFont ( new Font ("DialogHelvetica", Font.PLAIN, 10)); - Button cancel_button_ = new Button ("Cancel"); - cancel_button_.setFont ( new Font ("DialogHelvetica", Font.PLAIN, 10)); - - GridBagLayout gridbag_ = new GridBagLayout (); - GridBagConstraints constraints_ = new GridBagConstraints (); - - constraints_.fill = GridBagConstraints.BOTH; - this.setLayout (gridbag_); - - constraints_.weightx = 1.0; - constraints_.weighty = 1.0; - constraints_.gridwidth = GridBagConstraints.REMAINDER; - gridbag_.setConstraints (list_, constraints_); - this.add (list_); - - constraints_.weightx = 1.0; - constraints_.weighty = 1.0; - constraints_.gridwidth = GridBagConstraints.RELATIVE; - constraints_.fill = GridBagConstraints.NONE; - gridbag_.setConstraints (ok_button_, constraints_); - gridbag_.setConstraints (cancel_button_, constraints_); - this.add (ok_button_); - this.add (cancel_button_); - - ok_button_.addActionListener (new ActionListener () { - public void actionPerformed (ActionEvent e) { - - String selected_ = ObservablesDialog.this.list_.getSelectedItem (); - if (selected_ != null) { - System.out.println (">>>>> " + selected_); - if (listener_ != null) { - AnswerEvent ev = new AnswerEvent (ObservablesDialog.this, selected_); - listener_.ok (ev); - } - ObservablesDialog.this.setVisible (false); - } - } - }); - - cancel_button_.addActionListener (new ActionListener () { - public void actionPerformed (ActionEvent e) { - ObservablesDialog.this.setVisible (false); - } - }); - } - - public void addAnswerListener (AnswerListener al) { - listener_ = al; - } -} diff --git a/TAO/examples/Simulator/DOVEBrowser/Properties.java b/TAO/examples/Simulator/DOVEBrowser/Properties.java deleted file mode 100644 index 17ff69e5a18..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/Properties.java +++ /dev/null @@ -1,22 +0,0 @@ -// $Id$ -// -// = FILENAME -// DataHandler.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is the interface for data handling in the simulation demo -// using the Event Channel as transport media. Several observables -// are created to feed observer Java Beans. -// -// ============================================================================ - - -public class Properties { - public static final int DOUBLE = 0; - public static final int NAVIGATION = 1; - public static final int WEAPONS = 2; -} - diff --git a/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java b/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java deleted file mode 100644 index 01b884ba054..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java +++ /dev/null @@ -1,198 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// -// = FILENAME -// PushConsumer.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is a Push Consumer which takes the data field of the -// event and updates with it a Data Handler. -// -// -// ============================================================================ - - - -// The Consumer has to implement the Skeleton Consumer - -public class PushConsumer extends RtecEventComm._PushConsumerImplBase -{ - - public static final int ACE_ES_EVENT_ANY = 0; - public static final int ACE_ES_EVENT_SHUTDOWN = 1; - public static final int ACE_ES_EVENT_ACT = 2; - public static final int ACE_ES_EVENT_NOTIFICATION = 3; - public static final int ACE_ES_EVENT_TIMEOUT = 4; - public static final int ACE_ES_EVENT_INTERVAL_TIMEOUT = 5; - public static final int ACE_ES_EVENT_DEADLINE_TIMEOUT = 6; - public static final int ACE_ES_GLOBAL_DESIGNATOR = 7; - public static final int ACE_ES_CONJUNCTION_DESIGNATOR = 8; - public static final int ACE_ES_DISJUNCTION_DESIGNATOR = 9; - public static final int ACE_ES_EVENT_UNDEFINED = 16; - public static final int TOTAL_MESSAGES = 30; - - // Store the number of received events - private int total_received_ = 0; - private org.omg.CORBA.ORB orb_; - private DataHandler dataHandler_; - private RtecScheduler.handle_tHolder rt_info_; - private RtecEventChannelAdmin.EventChannel channel_admin_; - private RtecEventChannelAdmin.ConsumerAdmin consumer_admin_; - private RtecEventChannelAdmin.ProxyPushSupplier suppliers_; - - public PushConsumer (org.omg.CORBA.ORB orb, DataHandler dataHandler) - { - orb_ = orb; - dataHandler_ = dataHandler; - } - - - public void push (RtecEventComm.Event[] events) - { - if (total_received_ < 5) - System.out.println ("Demo Consumer: Received an event! ->Number: " + total_received_); - else if (total_received_ == 5) - System.out.println ("Demo Consumer: Everything is fine. Going to be mute."); - - - if (events.length == 0) - { - System.err.println ("No events"); - } - else - { - total_received_++; - - for (int i = 0; i < events.length; ++i) - { - if(events[i].type_ == ACE_ES_EVENT_NOTIFICATION) - { - try - { - dataHandler_.update (events[i].data_.any_value); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - } - } - } - } - - public void disconnect_push_consumer() - { - System.out.println ("Demo Consumer: Have to disconnect!"); - } - - public void open_consumer (RtecEventChannelAdmin.EventChannel event_channel_, - RtecScheduler.Scheduler scheduler_, - String name) - { - try { - - // Define Real-time information - - rt_info_ = new RtecScheduler.handle_tHolder (scheduler_.create (name)); - - scheduler_.set (rt_info_.value, - RtecScheduler.Criticality.VERY_LOW_CRITICALITY, - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - 2500000, // period - RtecScheduler.Importance.VERY_LOW_IMPORTANCE, - new TimeBase.ulonglong (0,0), - 1, - RtecScheduler.Info_Type.OPERATION); - - - // Register for Notification and Shutdown events - - - RtecEventComm.Event disjunction_designator_ = - new RtecEventComm.Event (ACE_ES_DISJUNCTION_DESIGNATOR, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - RtecEventComm.Event notification_event_ = - new RtecEventComm.Event (ACE_ES_EVENT_NOTIFICATION, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - RtecEventComm.Event shutdown_event_ = - new RtecEventComm.Event (ACE_ES_EVENT_SHUTDOWN, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - - - RtecEventChannelAdmin.Dependency dependencies_[] = new RtecEventChannelAdmin.Dependency[3]; - dependencies_[0] = new RtecEventChannelAdmin.Dependency (disjunction_designator_, rt_info_.value); - dependencies_[1] = new RtecEventChannelAdmin.Dependency (notification_event_, rt_info_.value); - dependencies_[2] = new RtecEventChannelAdmin.Dependency (shutdown_event_, rt_info_.value); - - - // @@ Carlos please help me to set the right boolean value - RtecEventChannelAdmin.ConsumerQOS qos = new RtecEventChannelAdmin.ConsumerQOS (dependencies_, false); - - - // The channel administrator is the event channel we got from the invocation - // of this routine - - channel_admin_ = event_channel_; - - // Connect as a consumer - - consumer_admin_ = channel_admin_.for_consumers (); - - // Obtain a reference to the proxy push supplier - - suppliers_ = consumer_admin_.obtain_push_supplier (); - - suppliers_.connect_push_consumer (this, qos); - - System.out.println ("Registered the consumer successfully."); - - - } - catch (RtecScheduler.UNKNOWN_TASK e) - { - System.err.println ("Demo_Consumer.open_consumer: Unknown task"); - System.err.println (e); - } - catch (RtecScheduler.DUPLICATE_NAME e) - { - System.err.println ("Demo_Consumer.open_consumer: Duplicate names"); - System.err.println (e); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - } -} - - - - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java.JDK1.2 b/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java.JDK1.2 deleted file mode 100644 index 00bd2cb1cf3..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/PushConsumer.java.JDK1.2 +++ /dev/null @@ -1,190 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// -// = FILENAME -// PushConsumer.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is a Push Consumer which takes the data field of the -// event and updates with it a Data Handler. -// -// -// ============================================================================ - - -public class PushConsumer extends RtecEventComm._PushConsumerImplBase -{ - - public static final int ACE_ES_EVENT_ANY = 0; - public static final int ACE_ES_EVENT_SHUTDOWN = 1; - public static final int ACE_ES_EVENT_ACT = 2; - public static final int ACE_ES_EVENT_NOTIFICATION = 3; - public static final int ACE_ES_EVENT_TIMEOUT = 4; - public static final int ACE_ES_EVENT_INTERVAL_TIMEOUT = 5; - public static final int ACE_ES_EVENT_DEADLINE_TIMEOUT = 6; - public static final int ACE_ES_GLOBAL_DESIGNATOR = 7; - public static final int ACE_ES_CONJUNCTION_DESIGNATOR = 8; - public static final int ACE_ES_DISJUNCTION_DESIGNATOR = 9; - public static final int ACE_ES_EVENT_UNDEFINED = 16; - public static final int TOTAL_MESSAGES = 30; - - // Store the number of received events - private int total_received_ = 0; - private org.omg.CORBA.ORB orb_; - private DataHandler dataHandler_; - private int rt_info_; - private RtecEventChannelAdmin.EventChannel channel_admin_; - private RtecEventChannelAdmin.ConsumerAdmin consumer_admin_; - private RtecEventChannelAdmin.ProxyPushSupplier suppliers_; - - public PushConsumer (org.omg.CORBA.ORB orb, DataHandler dataHandler) - { - orb_ = orb; - dataHandler_ = dataHandler; - } - - - public void push (RtecEventComm.Event[] events) - { - if (total_received_ < 5) - System.out.println ("Demo Consumer: Received an event! ->Number: " + total_received_); - else if (total_received_ == 5) - System.out.println ("Demo Consumer: Everything is fine. Going to be mute."); - - - if (events.length == 0) - { - System.err.println ("No events"); - } - else - { - total_received_++; - - for (int i = 0; i < events.length; ++i) - { - if(events[i].type_ == ACE_ES_EVENT_NOTIFICATION) - { - try - { - dataHandler_.update (events[i].data_.any_value); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - } - } - } - } - - public void disconnect_push_consumer() - { - System.out.println ("Demo Consumer: Have to disconnect!"); - } - - public void open_consumer (RtecEventChannelAdmin.EventChannel event_channel, - RtecScheduler.Scheduler scheduler, - String name) - { - - try - { - - // Define Real-time information - - rt_info_ = scheduler.create (name); - - scheduler.set (rt_info_, - RtecScheduler.Criticality.VERY_LOW_CRITICALITY, - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - 2500000, // period - RtecScheduler.Importance.VERY_LOW_IMPORTANCE, - new TimeBase.ulonglong (0,0), - 1, - RtecScheduler.Info_Type.OPERATION); - - - // Register for Notification and Shutdown events - - - RtecEventComm.Event disjunction_designator = - new RtecEventComm.Event (ACE_ES_DISJUNCTION_DESIGNATOR, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - RtecEventComm.Event notification_event = - new RtecEventComm.Event (ACE_ES_EVENT_NOTIFICATION, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - RtecEventComm.Event shutdown_event = - new RtecEventComm.Event (ACE_ES_EVENT_SHUTDOWN, 0, - 1, // ttl - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new TimeBase.ulonglong (0,0), - new RtecEventComm.EventData (0, 0, orb_.create_any()) - ); - - - RtecEventChannelAdmin.Dependency dependencies[] = new RtecEventChannelAdmin.Dependency[3]; - dependencies[0] = new RtecEventChannelAdmin.Dependency (disjunction_designator, rt_info_); - dependencies[1] = new RtecEventChannelAdmin.Dependency (notification_event, rt_info_); - dependencies[2] = new RtecEventChannelAdmin.Dependency (shutdown_event, rt_info_); - - RtecEventChannelAdmin.ConsumerQOS qos = new RtecEventChannelAdmin.ConsumerQOS (dependencies); - - // The channel administrator is the event channel we got from the invocation - // of this routine - channel_admin_ = event_channel; - - // Connect as a consumer - consumer_admin_ = channel_admin_.for_consumers (); - - // Obtain a reference to the proxy push supplier - suppliers_ = consumer_admin_.obtain_push_supplier (); - - suppliers_.connect_push_consumer (this, qos); - - System.out.println ("Registered the consumer successfully."); - - } - catch (RtecScheduler.UNKNOWN_TASK e) - { - System.err.println ("Demo_Consumer.open_consumer: Unknown task"); - System.err.println (e); - } - catch (RtecScheduler.DUPLICATE_NAME e) - { - System.err.println ("Demo_Consumer.open_consumer: Duplicate names"); - System.err.println (e); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - } -} - - - - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java b/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java deleted file mode 100644 index d424561567d..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java +++ /dev/null @@ -1,181 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// = FILENAME -// PushConsumerFactory.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is the administor/factory for a PushConsumer. -// -// ============================================================================ - - - - -public class PushConsumerFactory { - - private org.omg.CORBA.ORB orb_; - private org.omg.CORBA.BOA boa_; - private org.omg.CORBA.Object naming_service_object_; - - private DataHandler dataHandler_; - private Navigation navigation_; - private Weapons weapons_; - - - public PushConsumerFactory (DataHandler dataHandler, - String nameServiceIOR, - String[] args, - java.applet.Applet applet) - { - try - { - dataHandler_ = dataHandler; - - // if the DOVE Browser is running as an Applet - if (applet != null) { - orb_ = org.omg.CORBA.ORB.init (applet, null); - } - else { // not running as an Applet, but as an normal Application - orb_ = org.omg.CORBA.ORB.init (); - } - boa_ = orb_.BOA_init (); - - // Get the Naming Service initial reference - - // Name Service Lookup cannot be used when running as an Applet - if (nameServiceIOR == null && applet != null) { - System.out.println (" Name Service Lookup cannot be used when running as an Applet! Quit!"); - System.exit (1); - } - - if (nameServiceIOR == null) { // only used when running via "java" or "vbj" - System.out.println ("Using the lookup protocol!"); - NS_Resolve ns_resolve_ = new NS_Resolve (); - naming_service_object_ = ns_resolve_.resolve_name_service (orb_); - } - else { - System.out.println ("Using the following IOR: " + nameServiceIOR); - naming_service_object_ = orb_.string_to_object (nameServiceIOR); - } - - } - catch(org.omg.CORBA.SystemException e) { - System.err.println ("PushConsumerFactory constructor: ORB and Name Service initialization"); - System.err.println(e); - } - - } - - public class Object_is_null_exception extends Exception - { - Object_is_null_exception (String s) - { - super (s); - } - } - - public void run () - { - try - { - - // Get the Naming Context to allow resolving the EventService and - // ScheduleService - CosNaming.NamingContext naming_context_ = - CosNaming.NamingContextHelper.narrow (naming_service_object_); - - if (naming_context_ == null) - { - System.err.println ("The Naming Context is null"); - System.exit (1); - } - System.out.println ("Reference to the Naming Service is ok."); - - // Get a reference for the EventService - - CosNaming.NameComponent[] ec_name_components_ = new CosNaming.NameComponent[1]; - ec_name_components_[0] = new CosNaming.NameComponent ("EventService",""); - org.omg.CORBA.Object event_channel_object_ = naming_context_.resolve (ec_name_components_); - - if (event_channel_object_ == null) - { - throw new Object_is_null_exception("EventService Object is null"); - } - - RtecEventChannelAdmin.EventChannel event_channel_ = - RtecEventChannelAdmin.EventChannelHelper.narrow (event_channel_object_); - - System.out.println ("Reference to the Event Service is ok."); - - // Get a reference for the ScheduleService - - CosNaming.NameComponent[] s_name_components_ = new CosNaming.NameComponent[1]; - s_name_components_[0] = new CosNaming.NameComponent ("ScheduleService",""); - org.omg.CORBA.Object scheduler_object_ = naming_context_.resolve (s_name_components_); - - if (scheduler_object_ == null) - { - throw new Object_is_null_exception("ScheduleService Object is null"); - } - - RtecScheduler.Scheduler scheduler_ = - RtecScheduler.SchedulerHelper.narrow (scheduler_object_); - - System.out.println ("Reference to the Naming Service is ok."); - - - // Start the consumer - System.out.println ("Instantiating the Push Consumer."); - PushConsumer pushConsumer_ = new PushConsumer (orb_, dataHandler_); - System.out.println ("Initializing the Push Consumer."); - pushConsumer_.open_consumer (event_channel_, scheduler_, "demo_consumer"); - - // Tell the CORBA environment that we are ready - - boa_.obj_is_ready (pushConsumer_); - - System.out.println ("boa.obj_is_ready succeeded"); - - boa_.impl_is_ready (); - } - catch (CosNaming.NamingContextPackage.CannotProceed e) - { - System.err.println ("CosNaming.NamingContextPackage.CannotProceed"); - System.err.println (e); - } - catch (CosNaming.NamingContextPackage.InvalidName e) - { - System.err.println ("CosNaming.NamingContextPackage.InvalidName"); - System.err.println (e); - } - catch (CosNaming.NamingContextPackage.NotFound e) - { - System.err.println ("CosNaming.NamingContextPackage.NotFound"); - System.err.println (e); - - } - catch (Object_is_null_exception e) - { - System.err.println (e); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println ("PushConsumerFactory.run: Failure"); - System.err.println(e); - } - } - - -} // public class PushConsumerFactory - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2 b/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2 deleted file mode 100644 index b6039ee72d9..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/PushConsumerFactory.java.JDK1.2 +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// = FILENAME -// PushConsumerFactory.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is the administor/factory for a PushConsumer. -// -// ============================================================================ - - -public class PushConsumerFactory -{ - - private org.omg.CORBA.ORB orb_; - private org.omg.CORBA.Object naming_service_object_; - private DataHandler dataHandler_; - private Navigation navigation_; - private Weapons weapons_; - - - public PushConsumerFactory (DataHandler dataHandler, - String nameServiceIOR, - String[] args, - java.applet.Applet applet) - { - try { - dataHandler_ = dataHandler; - - // if the DOVE Browser is running as an Applet - if (applet != null) { - orb_ = org.omg.CORBA.ORB.init (applet, null); - } - else { // not running as an Applet, but as an normal Application - orb_ = org.omg.CORBA.ORB.init (args, null); - } - - // Get the Naming Service initial reference - - // Name Service Lookup cannot be used when running as an Applet - if (nameServiceIOR == null && applet != null) { - System.out.println (" Name Service Lookup cannot be used when running as an Applet! Quit!"); - System.exit (1); - } - - if (nameServiceIOR == null) { // only used when running via "java" or "vbj" - System.out.println ("Using the lookup protocol!"); - NS_Resolve ns_resolve = new NS_Resolve (); - naming_service_object_ = ns_resolve.resolve_name_service (orb_); - } - else { - System.out.println ("Using the following IOR: " + nameServiceIOR); - naming_service_object_ = orb_.string_to_object (nameServiceIOR); - } - - } - catch(org.omg.CORBA.SystemException e) { - System.err.println ("PushConsumerFactory constructor: ORB and Name Service initialization"); - System.err.println(e); - } - - } - - public class Object_is_null_exception extends Exception - { - Object_is_null_exception (String s) - { - super (s); - } - } - - public void run () - { - try - { - - // Get the Naming Context to allow resolving the EventService and - // ScheduleService - CosNaming.NamingContext naming_context = - CosNaming.NamingContextHelper.narrow (naming_service_object_); - - if (naming_context == null) - { - System.err.println ("The Naming Context is null"); - System.exit (1); - } - System.out.println ("Reference to the Naming Service is ok."); - - // Get a reference for the EventService - - CosNaming.NameComponent[] ec_name_components = new CosNaming.NameComponent[1]; - ec_name_components[0] = new CosNaming.NameComponent ("EventService",""); - org.omg.CORBA.Object event_channel_object = naming_context.resolve (ec_name_components); - - if (event_channel_object == null) - { - throw new Object_is_null_exception("EventService Object is null"); - } - - RtecEventChannelAdmin.EventChannel event_channel = - RtecEventChannelAdmin.EventChannelHelper.narrow (event_channel_object); - - System.out.println ("Reference to the Event Service is ok."); - - // Get a reference for the ScheduleService - - CosNaming.NameComponent[] s_name_components = new CosNaming.NameComponent[1]; - s_name_components[0] = new CosNaming.NameComponent ("ScheduleService",""); - org.omg.CORBA.Object scheduler_object = naming_context.resolve (s_name_components); - - if (scheduler_object == null) - { - throw new Object_is_null_exception("ScheduleService Object is null"); - } - - RtecScheduler.Scheduler scheduler = - RtecScheduler.SchedulerHelper.narrow (scheduler_object); - - System.out.println ("Reference to the Naming Service is ok."); - - - // Start the consumer - System.out.println ("Instantiating the Push Consumer."); - PushConsumer pushConsumer = new PushConsumer (orb_, dataHandler_); - System.out.println ("Initializing the Push Consumer."); - pushConsumer.open_consumer (event_channel, scheduler, "demo_consumer"); - - // Tell the CORBA environment that we are ready - - orb_.connect (pushConsumer); - - System.out.println ("Going into the event dispatching loop."); - - - java.lang.Object sync = new java.lang.Object(); - synchronized (sync) { - sync.wait(); - } - } - catch (java.lang.InterruptedException e) - { - } - catch (CosNaming.NamingContextPackage.CannotProceed e) - { - System.err.println ("CosNaming.NamingContextPackage.CannotProceed"); - System.err.println (e); - } - catch (CosNaming.NamingContextPackage.InvalidName e) - { - System.err.println ("CosNaming.NamingContextPackage.InvalidName"); - System.err.println (e); - } - catch (CosNaming.NamingContextPackage.NotFound e) - { - System.err.println ("CosNaming.NamingContextPackage.NotFound"); - System.err.println (e); - } - catch (Object_is_null_exception e) - { - System.err.println (e); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println ("PushConsumerFactory.run: Failure"); - System.err.println(e); - } - } -} // public class PushConsumerFactory - - - - - - - diff --git a/TAO/examples/Simulator/DOVEBrowser/Queue.java b/TAO/examples/Simulator/DOVEBrowser/Queue.java deleted file mode 100644 index 7ffaba15c52..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/Queue.java +++ /dev/null @@ -1,190 +0,0 @@ -// $Id$ - - -import java.util.Enumeration; - -public class Queue -{ - // Friendly? - Queue_Node head_ = null; - Queue_Node tail_ = null; - - private int length_ = 0; - - public Queue() - { - } - - public Enumeration forward_iterator() - { - return new Queue_Iterator(this, Queue_Iterator.FORWARD); - } - - public Enumeration reverse_iterator() - { - return new Queue_Iterator(this, Queue_Iterator.REVERSE); - } - - public void enqueue_tail(Object new_data) - { - Queue_Node new_node = new Queue_Node(new_data); - - if (tail_ == null) - { - tail_ = new_node; - head_ = new_node; - } - else - { - new_node.prev_ = tail_; - tail_.next_ = new_node; - tail_ = new_node; - } - - length_++; - } - - public void enqueue_head(Object new_data) - { - Queue_Node new_node = new Queue_Node(new_data); - - if (head_ == null) - { - tail_ = new_node; - head_ = new_node; - } - else - { - new_node.next_ = head_; - head_.prev_ = new_node; - head_ = new_node; - } - - length_++; - } - - public Object dequeue_head() - { - Object return_value = null; - - if (head_ == null) - return_value = null; - else if (tail_ == head_) - { - return_value = head_.data_; - tail_ = null; - head_ = null; - } - else - { - return_value = head_.data_; - head_ = head_.next_; - head_.prev_ = null; - } - - length_--; - - return return_value; - } - - public Object dequeue_tail() - { - Object return_value = null; - - if (tail_ == null) - return_value = null; - else if (tail_ == head_) - { - return_value = tail_.data_; - tail_ = null; - head_ = null; - } - else - { - return_value = tail_.data_; - tail_ = tail_.prev_; - tail_.next_ = null; - } - - length_--; - - return return_value; - } - - public int length() - { - return length_; - } - - public Object head() - { - if (head_ != null) - return head_.data_; - else - return null; - } - - public Object tail() - { - if (tail_ != null) - return tail_.data_; - else - return null; - } -} - -class Queue_Node -{ - public Queue_Node prev_ = null; - public Queue_Node next_ = null;; - public Object data_; - - public Queue_Node(Object data) - { - data_ = data; - } -} - -class Queue_Iterator implements Enumeration -{ - public static final boolean FORWARD = true; - public static final boolean REVERSE = false; - - private Queue queue_; - private Queue_Node queue_ptr_; - private boolean direction_ = FORWARD; - - public Queue_Iterator(Queue queue) - { - queue_ = queue; - queue_ptr_ = queue.head_; - } - - public Queue_Iterator(Queue queue, boolean direction) - { - queue_ = queue; - direction_ = direction; - - if (direction_) - queue_ptr_ = queue_.head_; - else - queue_ptr_ = queue_.tail_; - } - - public Object nextElement() - { - Object data = queue_ptr_.data_; - - if (direction_) - queue_ptr_ = queue_ptr_.next_; - else - queue_ptr_ = queue_ptr_.prev_; - - return data; - } - - public boolean hasMoreElements() - { - return queue_ptr_ != null; - } -} diff --git a/TAO/examples/Simulator/DOVEBrowser/VisComp.java b/TAO/examples/Simulator/DOVEBrowser/VisComp.java deleted file mode 100644 index 53294f33ea2..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/VisComp.java +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ -// -// = FILENAME -// VisComp.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is the interface for Java Beans. -// -// ============================================================================ - - -public interface VisComp extends java.util.Observer { - - public void setName (String title); - public int getProperty (); -} diff --git a/TAO/examples/Simulator/DOVEBrowser/VisCompFactory.java b/TAO/examples/Simulator/DOVEBrowser/VisCompFactory.java deleted file mode 100644 index 288fcccceec..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/VisCompFactory.java +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ -// -// = FILENAME -// VisCompFactory.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This class serves as factory for Visualization Components -// -// ============================================================================ - -import java.beans.*; - -class VisCompFactory { - - VisComp getNewVisComp (int property, String name) { - - ClassLoader classLoader_ = this.getClass().getClassLoader(); - - VisComp visComp_ = null; - String visCompName_ = "VisComp"; - switch (property) { - case Properties.DOUBLE: - visCompName_ = "Double"+visCompName_; - break; - case Properties.NAVIGATION: - visCompName_ = "Navigation"+visCompName_; - break; - case Properties.WEAPONS: - visCompName_ = "Weapons"+visCompName_; - break; - default: return null; - } - try { - System.out.println ("Trying to connect: " + visCompName_+ " .. "); - visComp_ = (VisComp) Beans.instantiate (classLoader_, visCompName_); - visComp_.setName (name); - System.out.println ("Connected: " + visCompName_); - return visComp_; - } - catch (Exception e) { - System.out.println ("Unable to load JavaBean: " + e); - return null; - } - } -} \ No newline at end of file diff --git a/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java b/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java deleted file mode 100644 index 8c81bfc9c11..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/WeaponsVisComp.java +++ /dev/null @@ -1,144 +0,0 @@ -// $Id$ -// -// = FILENAME -// WeaponsVisComp.java -// -// = AUTHOR -// Seth Widoff (core functionality) -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// This is a Visualization Component for displaying weapons. -// -// ============================================================================ - - -import java.io.*; -import java.util.*; -import java.awt.*; - - -public class WeaponsVisComp extends Panel implements VisComp -{ - private final static String ONLINE = "Online"; - private final static String OFFLINE = "Offline"; - private final static Font FONT_BIG = new Font ("Dialog", Font.BOLD, 14); - private final static Font FONT_SMALL = new Font ("Dialog", Font.BOLD, 10); - private final static Color BLUE = new Color (30, 144, 255); - - private int count_ = 0; - private Hashtable weapons_table_ = new Hashtable (); - private GridBagLayout gbl_= new GridBagLayout (); - private GridBagConstraints gbc_ = new GridBagConstraints (); - - Label default_label_ = new Label ("No weapons available", Label.CENTER); - - public WeaponsVisComp () - { - default_label_.setFont (FONT_BIG); - default_label_.setForeground (BLUE); - - setLayout (gbl_); - gbc_.gridx = 0; - gbc_.gridy = 0; - gbc_.gridheight = 1; - gbc_.gridwidth = 1; - gbc_.anchor = GridBagConstraints.NORTH; - gbc_.fill = GridBagConstraints.NONE; - setBackground (Color.black); - - gbl_.setConstraints (default_label_, gbc_); - add (default_label_); - } - - public void setName (String title) { - } - - public int getProperty () { - return Properties.WEAPONS; - } - - public Dimension getPreferredSize () { - return new Dimension (250, 200); - } - - public Dimension getMinimumSize () { - return new Dimension (80, 80); - } - - public void update (java.util.Observable observable, java.lang.Object obj) { - Weapons weapons_ = null; - try { - weapons_ = (Weapons) obj; - } - catch (Exception excp) { - System.out.println (excp); - System.out.println ("Visualization Component received wrong data type!"); - } - if (weapons_ != null) - { - for (int i = 0; i < weapons_.number_of_weapons && i < 5; i++) - { - String weapon = ""; - int status = 0; - switch (i) - { - default: - break; - case 0: weapon = weapons_.weapon1_identifier; - status = weapons_.weapon1_status; - break; - case 1: weapon = weapons_.weapon2_identifier; - status = weapons_.weapon2_status; - break; - case 2: weapon = weapons_.weapon3_identifier; - status = weapons_.weapon3_status; - break; - case 3: weapon = weapons_.weapon4_identifier; - status = weapons_.weapon4_status; - break; - case 4: weapon = weapons_.weapon5_identifier; - status = weapons_.weapon5_status; - break; - } - - - Label status_label_ = (Label)weapons_table_.get (weapon); - - if (status_label_ != null) - status_label_.setText ((status == 1) ? ONLINE : OFFLINE); - else - { - if (count_ == 0) - this.removeAll (); - - count_++; - Label weapon_label_ = new Label (count_ + ". " + weapon, Label.LEFT); - status_label_ = new Label ((status == 1) ? ONLINE : OFFLINE, Label.RIGHT); - - status_label_.setFont (FONT_SMALL); - weapon_label_.setFont (FONT_SMALL); - weapon_label_.setForeground (BLUE); - - gbc_.gridx = 0; - gbc_.anchor = GridBagConstraints.WEST; - gbl_.setConstraints (weapon_label_, gbc_); - add (weapon_label_); - gbc_.gridx = 1; - gbc_.anchor = GridBagConstraints.EAST; - gbl_.setConstraints (status_label_, gbc_); - add (status_label_); - - gbc_.gridy++; - weapons_table_.put (weapon, status_label_); - } - - status_label_.setForeground ((status == 1) ? - Color.lightGray : - Color.darkGray); - } - - validate (); - } - } -} diff --git a/TAO/examples/Simulator/DOVEBrowser/make.bat b/TAO/examples/Simulator/DOVEBrowser/make.bat deleted file mode 100755 index d2bb1163e00..00000000000 --- a/TAO/examples/Simulator/DOVEBrowser/make.bat +++ /dev/null @@ -1,45 +0,0 @@ -REM This File generates the necessary classes for Visibroker and JDK1.2 -REM call it like: make VB or make JDK - - -if %1 == VB goto VB - - -:JDK -echo JDK1.2 -del RtecEventComm -del RtecEventChannelAdmin -del RtecScheduler -del CosNaming -del TimeBase -idltojava RtecEventComm.idl -idltojava RtecEventChannelAdmin.idl -idltojava RtecScheduler.idl -idltojava CosNaming.idl -idltojava CosTimeBase.idl -javac CosNaming\NamingContextPackage\*.java -javac CosNaming\*.java -javac TimeBase\*.java -javac RtecScheduler\*.java -javac RtecEventComm\*.java -javac RtecEventComm\EventChannelPackage\*.java -javac RtecEventChannelAdmin\*.java -javac *.java - -goto end - -:VB -echo Visibroker -del RtecEventComm -del RtecEventChannelAdmin -del RtecScheduler -del CosNaming -del TimeBase -idl2java RtecEventComm.idl -idl2java RtecEventChannelAdmin.idl -idl2java RtecScheduler.idl -idl2java CosNaming.idl -idl2java CosTimeBase.idl -vbjc *.java - -:end diff --git a/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.cpp b/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.cpp deleted file mode 100644 index 6fef04c21fc..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.cpp +++ /dev/null @@ -1,203 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// AnyAnalyser.cpp -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// Accepts an CORBA::Any, traverses it, copies it into a tree structure -// and prints out the tree. -// -// ============================================================================ - -#include "AnyAnalyser.h" -#include "tao/Align.h" - -AnyAnalyser::AnyAnalyser (const char *file_name) - : printVisitor_ptr_(new PrintVisitor (file_name)) { -} - -AnyAnalyser::~AnyAnalyser () { - delete printVisitor_ptr_; -} - -void -AnyAnalyser::close () { - printVisitor_ptr_->close(); -} - -void -AnyAnalyser::printAny (CORBA::TypeCode_ptr any_type, const void *any_value) { - - // Analyse the any and store the results in a tree structure - RecurseInfo recurseInfo_ = {PARENT_IS_NO_STRUCT,// identifies parent - 0, // parent typecode - 0, // member count - 0}; // recursion level - - // have a variable with can be incremented by all - // recursive analyse calls - const unsigned char *value_ptr_ = (const unsigned char *)any_value; - - // analyse the any - Node *node_ptr_ = analyse (any_type, // typecode information - value_ptr_, // pointer to the memory - recurseInfo_); // recurse information - - // print the results - node_ptr_->Accept ((NodeVisitor *)printVisitor_ptr_); -} - -Node * -AnyAnalyser::analyse (CORBA::TypeCode_ptr tc_ptr, - const unsigned char *&value_ptr, - RecurseInfo ri) -{ - CORBA::Long size, alignment, align_offset; - CORBA::TypeCode_ptr param; - const unsigned char *start_addr = value_ptr; - - TAO_TRY { - Node *node_ptr_ = 0; - - if (tc_ptr != 0) { - - switch (tc_ptr->kind(TAO_TRY_ENV)) { - - case CORBA::tk_struct: - { - // to hold a pointer to the start of the struct - start_addr = value_ptr; - - // create a new Node - StructNode *structNode_ptr_ = new StructNode (tc_ptr->name (TAO_TRY_ENV), - ri.recursion_level); - - for (unsigned int i = 0; i < tc_ptr->member_count (TAO_TRY_ENV); i++) { - - // get the TypeCode pointer to the ith parameter - // and analyse it recursively - RecurseInfo recurseInfo_ = {PARENT_IS_STRUCT, // identifies parent - tc_ptr, // parent typecode - i, // member count - ri.recursion_level+1}; - - - // get the type code of the child i - param = tc_ptr->member_type (i, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // get the size - size = param->size (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // get the alignment - alignment = param->alignment (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // calculate - align_offset = - (ptr_arith_t) ptr_align_binary (value_ptr, alignment) - - (ptr_arith_t) value_ptr - + (ptr_arith_t) ptr_align_binary (start_addr, alignment) - - (ptr_arith_t) start_addr; - TAO_CHECK_ENV; - - // if both the start_addr and data are not aligned as per - // the alignment, we do not add the offset - value_ptr = (unsigned char *) ((ptr_arith_t) value_ptr + - ((align_offset == alignment) ? - 0 : align_offset)); - - structNode_ptr_->addChild (analyse (param, - value_ptr, - recurseInfo_)); - } - node_ptr_ = (Node *)structNode_ptr_; - } - break; - - case CORBA::tk_double: - if (ri.kind == PARENT_IS_STRUCT) { - node_ptr_ = (Node *) new DoubleNode ((CORBA::Double *)value_ptr, - ri.parent_tc_ptr->member_name(ri.member_number, - TAO_TRY_ENV), - ri.recursion_level); - } - else { - node_ptr_ = (Node *) new DoubleNode ((CORBA::Double *)value_ptr, - tc_ptr->name(TAO_TRY_ENV), - ri.recursion_level); - } - value_ptr += 8; - break; - - case CORBA::tk_long: - if (ri.kind == PARENT_IS_STRUCT) { - node_ptr_ = (Node *) new LongNode ((CORBA::Long *)value_ptr, - ri.parent_tc_ptr->member_name(ri.member_number, - TAO_TRY_ENV), - ri.recursion_level); - } - else { - node_ptr_ = (Node *) new LongNode ((CORBA::Long *)value_ptr, - tc_ptr->name(TAO_TRY_ENV), - ri.recursion_level); - } - value_ptr += 4; - break; - - case CORBA::tk_ulong: - if (ri.kind == PARENT_IS_STRUCT) { - node_ptr_ = (Node *) new ULongNode ((CORBA::ULong *)value_ptr, - ri.parent_tc_ptr->member_name(ri.member_number, - TAO_TRY_ENV), - ri.recursion_level); - } - else { - node_ptr_ = (Node *) new ULongNode ((CORBA::ULong *)value_ptr, - tc_ptr->name(TAO_TRY_ENV), - ri.recursion_level); - } - value_ptr += 4; - break; - - case CORBA::tk_string: - if (ri.kind == PARENT_IS_STRUCT) { - node_ptr_ = (Node *) new StringNode (*(CORBA::String_var *)value_ptr, - ri.parent_tc_ptr->member_name(ri.member_number, - TAO_TRY_ENV), - ri.recursion_level); - } - else { - node_ptr_ = (Node *) new StringNode (*(CORBA::String_var *)value_ptr, - tc_ptr->name(TAO_TRY_ENV), - ri.recursion_level); - } - value_ptr += 4; - break; - - default: ACE_ERROR ((LM_ERROR, "AnyAnalyser::analyse: No known kind of type detected!\n")); - exit (1); - break; - } - TAO_CHECK_ENV; - return node_ptr_; - } - else { - ACE_DEBUG ((LM_ERROR, "AnyAnalyser::analyse: TypeCode pointer to member was Null!\n")); - } - } - TAO_CATCHANY { - ACE_ERROR ((LM_ERROR, "(%t)AnyAnalyser::analyse: Error in analysing the any.\n")); - } - TAO_ENDTRY; - return 0; -} - - diff --git a/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.h b/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.h deleted file mode 100644 index eeb0613c661..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/AnyAnalyser.h +++ /dev/null @@ -1,57 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// AnyAnalyser.h -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// Accepts an CORBA::Any, traverses it, copies it into a tree structure -// and prints out the tree. -// -// ============================================================================ - - -#include "PrintVisitor.h" -#include "tao/corba.h" - -#if !defined (ANYANALYSER_H) -#define ANYANALYSER_H - -typedef enum {PARENT_IS_STRUCT, PARENT_IS_NO_STRUCT} KIND; - -typedef struct { - KIND kind; - CORBA::TypeCode_ptr parent_tc_ptr; - unsigned int member_number; - unsigned int recursion_level; -} RecurseInfo; - - -class AnyAnalyser { - -public: - AnyAnalyser (const char *filename); - - ~AnyAnalyser (); - - // cause the PrintViewer to be deleted to close the file - void close (); - - // main starting point includes analysing and printing - void printAny (CORBA::TypeCode_ptr any_type, const void *any_value); - -private: - Node *analyse (CORBA::TypeCode_ptr tc_ptr, - const unsigned char *&value_ptr, - RecurseInfo recurseInfo); - - PrintVisitor *printVisitor_ptr_; -}; - -#endif - diff --git a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.cpp b/TAO/examples/Simulator/DOVEMIB/DOVEMIB.cpp deleted file mode 100644 index b8559e0d9d3..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.cpp +++ /dev/null @@ -1,407 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Event_Con.cpp -// -// = DESCRIPTION -// This demo just tests the basic functionality of the Event Service -// One Conumer which inherits from the Rtec Consumer. One Supplier -// with an internal Rtec Consumer and one internal Rtec Supplier. -// The internal Supplier is just a demo supplier because the -// architecture expects an supplier which has inherited from the -// Rtec Supplier. -// -// = AUTHOR -// originally -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// modified -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include - -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "ace/Profile_Timer.h" -#include "tao/Timeprobe.h" -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "DOVEMIB.h" - -static const char usage [] = -"[-? |\n" -" [-O[RBport] ORB port number]" -" [-m of messages to receive [100]]" -" [-f filename for the repository [event_repository]]]"; - -static int events_received_ = 0; -static char *input_file_name = 0; -static int events_to_receive_ = 100; -RtecEventChannelAdmin::EventChannel_var ec; - -// ************************************************************ - -MIB_Consumer::MIB_Consumer (void) -: anyAnalyser_ (input_file_name) { -} - -int -MIB_Consumer::open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name) { - TAO_TRY { - // Get a Scheduler. - - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - // Define Real-time information. - - rt_info_ = server->create (my_name, TAO_TRY_ENV); - - server->set (rt_info_, - RtecScheduler::VERY_LOW_CRITICALITY, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - 2500000, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - - // Create the event that we're registering for. - - ACE_ConsumerQOS_Factory dependencies; - dependencies.start_disjunction_group (); - dependencies.insert_type (ACE_ES_EVENT_NOTIFICATION, rt_info_); - dependencies.insert_type (ACE_ES_EVENT_SHUTDOWN, rt_info_); - - // The channel administrator is the event channel we got from - // the invocation of this routine. - - this->channel_admin_ = ec; - - // = Connect as a consumer. - - this->consumer_admin_ = channel_admin_->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Obtain a pointer to a push supplier. "suppliers" is - // inherited from a base class. - - this->suppliers_ = consumer_admin_->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // The _this function returns an object pointer. This is needed - // because a consumer inherits from a Servant class that is no - // CORBA::Object. - - RtecEventComm::PushConsumer_var objref = this->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->suppliers_->connect_push_consumer (objref.in (), - dependencies.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (RtecEventChannelAdmin::EventChannel::SUBSCRIPTION_ERROR, se) { - ACE_ERROR_RETURN ((LM_ERROR, - "MIB_Consumer::open: subscribe failed.\n"), - -1); - } - TAO_CATCHANY { - ACE_ERROR_RETURN ((LM_ERROR, - "MIB_Consumer::open: unexpected exception.\n"), - -1); - } - TAO_ENDTRY; - - return 0; -} - -void -MIB_Consumer::disconnect_push_consumer (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, - "Consumer received disconnect from channel.\n")); -} - - -// This method is called when the Event Service pushes a new -// event to us - -void -MIB_Consumer::push (const RtecEventComm::EventSet &events, - CORBA::Environment &) -{ - - if (events.length () == 0) { - ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - - // count the number of events - events_received_++; - - // if we have enough we quit - if (events_received_ > events_to_receive_) { - this->shutdown (); - } - - // Several events could be sent at once - for (CORBA::ULong i = 0; i < events.length (); ++i) { - - if (events[i].type_ == ACE_ES_EVENT_SHUTDOWN) { - - ACE_DEBUG ((LM_DEBUG, "MIB Consumer: received shutdown event\n")); - this->shutdown (); - } - else { - - if (events_received_ == 1) { - ACE_DEBUG ((LM_DEBUG, "MIB Consumer: received an event, going to be mute.\n")); - } - - TAO_TRY - { - if (events[i].data_.any_value.any_owns_data ()) - { - void * void_ptr = ACE_OS::malloc (events[i].data_.any_value.type()->size(TAO_TRY_ENV)); - - TAO_InputCDR stream ((ACE_Message_Block *)events[i].data_.any_value.value ()); - if (stream.decode (events[i].data_.any_value.type(), void_ptr, 0, TAO_TRY_ENV) - != CORBA::TypeCode::TRAVERSE_CONTINUE) - { - cout << "MIB_Consumer::push: " - << "Something went wrong when decoding the Message Block (Any value)!" - << endl; - // something went wrong - ACE_OS::free(void_ptr); - return; - } - TAO_CHECK_ENV; - - // invoke the AnyAnalyser - anyAnalyser_.printAny (events[i].data_.any_value.type(), void_ptr); - ACE_OS::free(void_ptr); - } - else - { - // invoke the AnyAnalyser - anyAnalyser_.printAny (events[i].data_.any_value.type(), events[i].data_.any_value.value()); - } - - } - TAO_CATCHANY { - ACE_ERROR ((LM_ERROR, "(%t)Error in extracting the Navigation and Weapons data.\n")); - } - TAO_ENDTRY; - } - } -} - -void -MIB_Consumer::shutdown (void) -{ - TAO_TRY - { - // cause the AnyAnalyser to close the file - anyAnalyser_.close(); - - // Disconnect from the push supplier. - this->suppliers_->disconnect_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "@@ we should shutdown here!!!\n")); - TAO_CHECK_ENV; - - ec = 0; - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, - "(%t) MIB_Consumer::shutdown: unexpected exception.\n")); - } - TAO_ENDTRY; -} - -// function get_options - -static unsigned int -get_options (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "O?f:m:"); - int opt; - unsigned int temp; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - argv[0], usage)); - ACE_OS::exit (0); - break; - - case 'f': - input_file_name = get_opt.optarg; - - if (!input_file_name || ACE_OS::strlen (input_file_name) == 0) { - input_file_name = 0; - ACE_ERROR_RETURN ((LM_ERROR, - "%s: file name must be specified with -f option", - argv[0]), - 1); - } - break; - - case 'm': - temp = (unsigned int) ACE_OS::atoi (get_opt.optarg); - if (temp > 0) { - events_to_receive_ = temp; - ACE_DEBUG ((LM_DEBUG,"Messages to receive: %d\n", events_to_receive_)); - } - else { - ACE_ERROR_RETURN ((LM_ERROR, "%s: count must be > 0", argv[0]), 1); - } - break; - - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - argv[0], char(opt), - argv[0], usage), 1); - } - } - - if (argc != get_opt.optind) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: too many arguments\n" - "Usage: %s %s\n", - argv[0], - argv[0], - usage), - 1); - return 0; -} - -// function main. - -int -main (int argc, char *argv []) -{ - TAO_TRY - { - // Initialize ORB. - - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - if (get_options (argc, argv)) - ACE_OS::exit (-1); - - // Get the Event Channel. - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup ("EventService"); - - CORBA::Object_var ec_obj = - naming_context->resolve (channel_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ec = - RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (ec.ptr() == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Not able to get the Event Service reference.\n"), - -1); - - // Create consumer. - - MIB_Consumer *mIB_Consumer; - ACE_NEW_RETURN (mIB_Consumer, - MIB_Consumer (), - -1); - - if (mIB_Consumer->open_consumer (ec.ptr (), - "MIB_Consumer") == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Someone was feeling introverted.\n"), - -1); - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the ORB - - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "CORBA::ORB::run"), - -1); - TAO_CHECK_ENV; - - ec = 0; - - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsp b/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsp deleted file mode 100644 index abbae82b5cf..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsp +++ /dev/null @@ -1,102 +0,0 @@ -# Microsoft Developer Studio Project File - Name="DOVEMIB" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=DOVEMIB - 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 "DOVEMIB.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 "DOVEMIB.MAK" CFG="DOVEMIB - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "DOVEMIB - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "DOVEMIB - 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)" == "DOVEMIB - 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 /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 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 - -!ELSEIF "$(CFG)" == "DOVEMIB - 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 "..\..\..\..\..\\" /I "..\..\..\..\\" /I "..\..\..\..\..\..\\" /I "..\..\..\\" /I "..\..\..\tao" /I "..\..\..\orbsvcs" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TAO_ORBSVCS_HAS_DLL" /FR /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /pdb:"DOVEMIB.pdb" /debug /machine:I386 /out:"DOVEMIB.exe" /pdbtype:sept /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\orbsvcs" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "DOVEMIB - Win32 Release" -# Name "DOVEMIB - Win32 Debug" -# Begin Source File - -SOURCE=.\AnyAnalyser.cpp -# End Source File -# Begin Source File - -SOURCE=.\DOVEMIB.cpp -# End Source File -# Begin Source File - -SOURCE=.\Node.cpp -# End Source File -# Begin Source File - -SOURCE=.\PrintVisitor.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsw b/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsw deleted file mode 100644 index 92002d82e84..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.dsw +++ /dev/null @@ -1,53 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "DOVEMIB"=.\DOVEMIB.DSP - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "DOVEMIBx"=.\DOVEMIBx.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "TestClient"=.\TestClient.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.h b/TAO/examples/Simulator/DOVEMIB/DOVEMIB.h deleted file mode 100644 index 8730e2d56d0..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/DOVEMIB.h +++ /dev/null @@ -1,62 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = FILENAME -// DOVEMIB.h -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (DOVE_MIB_H) -#define DOVE_MIB_H - -//#include "ace/SString.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "orbsvcs/RtecEventCommS.h" -#include "AnyAnalyser.h" - -class MIB_Consumer : public POA_RtecEventComm::PushConsumer -{ - // = TITLE - // Demo Consumer - // - // = DESCRIPTION - // Simple example of a consumer that registers for supplier - // notifications. -public: - MIB_Consumer (void); - - int open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name); - // Uses the name server to obtain a reference to the - // and registers with channel to receive notifications from the - // supplier. Also registers to receive shutdown messages from the - // supplier. Stores for printing out messages. Returns 0 - // on success, -1 on failure. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - // = (not protected to allow short-circuiting) protected: - virtual void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // If the [0] is a notification, prints out the data from - // the supplier. If its a shutdown message, the consumer - // disconnects from the channel. - -protected: - void shutdown (void); - // Disconnect from the Event Service. - - // = Event channel adminstration references. - RtecEventChannelAdmin::EventChannel_var channel_admin_; - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_; - RtecEventChannelAdmin::ProxyPushSupplier_var suppliers_; - AnyAnalyser anyAnalyser_; -private: - RtecScheduler::handle_t rt_info_; -}; - -#endif /* DOVE_MIB_H */ diff --git a/TAO/examples/Simulator/DOVEMIB/DOVEMIBx.dsp b/TAO/examples/Simulator/DOVEMIB/DOVEMIBx.dsp deleted file mode 100644 index 6ad38a8cef7..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/DOVEMIBx.dsp +++ /dev/null @@ -1,177 +0,0 @@ -# Microsoft Developer Studio Project File - Name="DOVEMIBx" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=DOVEMIBx - 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 "DOVEMIBx.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 "DOVEMIBx.mak" CFG="DOVEMIBx - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "DOVEMIBx - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "DOVEMIBx - 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)" == "DOVEMIBx - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "DOVEMIBx - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "DOVEMIB0" -# PROP BASE Intermediate_Dir "DOVEMIB0" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "DOVEMIB0" -# PROP Intermediate_Dir "DOVEMIB0" -# 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 /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\\" /I "..\..\..\..\\" /I "..\..\..\..\..\..\\" /I "..\..\..\\" /I "..\..\..\tao" /I "..\..\..\orbsvcs" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TAO_ORBSVCS_HAS_DLL" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /pdb:"DOVEMIBx.pdb" /debug /machine:I386 /out:"DOVEMIBx.exe" /pdbtype:sept /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\orbsvcs" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "DOVEMIBx - Win32 Release" -# Name "DOVEMIBx - Win32 Debug" -# Begin Source File - -SOURCE=.\any_test.idl - -!IF "$(CFG)" == "DOVEMIBx - Win32 Release" - -!ELSEIF "$(CFG)" == "DOVEMIBx - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\any_test.idl -InputName=any_test - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\any_test_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\any_testC.cpp -# End Source File -# Begin Source File - -SOURCE=.\any_testS.cpp -# End Source File -# Begin Source File - -SOURCE=.\AnyAnalyser.cpp -# End Source File -# Begin Source File - -SOURCE=.\NavWeap.idl - -!IF "$(CFG)" == "DOVEMIBx - Win32 Release" - -!ELSEIF "$(CFG)" == "DOVEMIBx - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\NavWeap.idl -InputName=NavWeap - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\NavWeapC.cpp -# End Source File -# Begin Source File - -SOURCE=.\Node.cpp -# End Source File -# Begin Source File - -SOURCE=.\PrintVisitor.cpp -# End Source File -# Begin Source File - -SOURCE=.\svr.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/examples/Simulator/DOVEMIB/Makefile b/TAO/examples/Simulator/DOVEMIB/Makefile deleted file mode 100644 index 80559da5512..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/Makefile +++ /dev/null @@ -1,978 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -IDL_SRC= NavWeapC.cpp -PROG_SRCS = $(IDL_SRC) DOVEMIB.cpp Node.cpp PrintVisitor.cpp AnyAnalyser.cpp - -LSRC = $(PROG_SRCS) - -MIB_OBJS = DOVEMIB.o NavWeapC.o Node.o PrintVisitor.o AnyAnalyser.o - - -BIN = DOVEMIB -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -LDLIBS= -lorbsvcs -lTAO - -#---------------------------------------------------------------------------- -# 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 -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 -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -$(IDL_SRC): NavWeap.idl - $(TAO_ROOT)/TAO_IDL/tao_idl NavWeap.idl - -DOVEMIB: $(addprefix $(VDIR),$(MIB_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) - - -realclean: clean - -/bin/rm -rf - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/NavWeapC.o .obj/NavWeapC.so .shobj/NavWeapC.o .shobj/NavWeapC.so: NavWeapC.cpp NavWeapC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h NavWeapC.i \ - NavWeapS.h NavWeapS.i -.obj/DOVEMIB.o .obj/DOVEMIB.so .shobj/DOVEMIB.o .shobj/DOVEMIB.so: DOVEMIB.cpp $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/Sched_Params.h \ - $(ACE_ROOT)/ace/Sched_Params.i \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(TAO_ROOT)/tao/Timeprobe.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(TAO_ROOT)/tao/Timeprobe.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ - $(TAO_ROOT)/tao/corba.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/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.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_Utilities.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i \ - DOVEMIB.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.i \ - AnyAnalyser.h PrintVisitor.h NodeVisitor.h Node.h -.obj/Node.o .obj/Node.so .shobj/Node.o .shobj/Node.so: Node.cpp Node.h $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h NodeVisitor.h -.obj/PrintVisitor.o .obj/PrintVisitor.so .shobj/PrintVisitor.o .shobj/PrintVisitor.so: PrintVisitor.cpp PrintVisitor.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h NodeVisitor.h \ - Node.h -.obj/AnyAnalyser.o .obj/AnyAnalyser.so .shobj/AnyAnalyser.o .shobj/AnyAnalyser.so: AnyAnalyser.cpp AnyAnalyser.h PrintVisitor.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h NodeVisitor.h \ - Node.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/examples/Simulator/DOVEMIB/Node.cpp b/TAO/examples/Simulator/DOVEMIB/Node.cpp deleted file mode 100644 index 2db05ddf555..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/Node.cpp +++ /dev/null @@ -1,217 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// any_test_i.cpp -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// Implementation of the Nodes for the any evaluator. -// -// ============================================================================ - -#include "Node.h" - - - -StructNode::StructNode (const char *Name_ptr, - unsigned int recursion_level) { - Name_ptr_ = Name_ptr; - queue_ptr_ = new ACE_Unbounded_Queue; - recursion_level_ = recursion_level; - queue_iterator_ptr_ = 0; -} - - -StructNode::~StructNode () { - for (unsigned int i = 0; i < getChildNumber (); i++) { - delete getChild (i); - } - delete queue_ptr_; - delete queue_iterator_ptr_; -} - - -unsigned int -StructNode::getChildNumber () { - return (unsigned int) queue_ptr_->size (); -} - -Node * -StructNode::getChild (unsigned int n) { - - // create new iterator if some things have changed - if (queue_iterator_ptr_ == 0) { - queue_iterator_ptr_ = new ACE_Unbounded_Queue_Iterator (*queue_ptr_); - queue_position_ = 0; - } - - // check if we have such a Zebra - if (n < queue_ptr_->size ()) { - // if we are already to far in the queue - if (queue_position_ > n) { - queue_position_ = 0; - queue_iterator_ptr_->first (); - } - - Node **node_ptr_ptr_; - for (; - !queue_iterator_ptr_->done() && queue_position_ <= n; - queue_iterator_ptr_->advance (), queue_position_++) { - queue_iterator_ptr_->next (node_ptr_ptr_); - } - return (*node_ptr_ptr_); - } - else { - return 0; - } -} - -int -StructNode::addChild (Node *node) { - delete queue_iterator_ptr_; - queue_iterator_ptr_ = 0; - return queue_ptr_->enqueue_tail (node); -} - -const char * -StructNode::getName () { - return Name_ptr_; -} - -void -StructNode::Accept (NodeVisitor *nodeVisitor) { - nodeVisitor->visitStructNode (this); -} - -unsigned int -StructNode::getRecursionLevel () { - return recursion_level_; -} - -DoubleNode::DoubleNode (CORBA::Double *Double_ptr, - const char *Name_ptr, - unsigned int recursion_level) { - Double_ptr_ = Double_ptr; - Name_ptr_ = Name_ptr; - recursion_level_ = recursion_level; -} - -const char * -DoubleNode::getName () { - return Name_ptr_; -} - - - -CORBA::Double -DoubleNode::getValue () { - return *Double_ptr_; -} - -void -DoubleNode::Accept (NodeVisitor *nodeVisitor) { - nodeVisitor->visitDoubleNode (this); -} - -unsigned int -DoubleNode::getRecursionLevel () { - return recursion_level_; -} - -LongNode::LongNode (CORBA::Long *Long_ptr, - const char *Name_ptr, - unsigned int recursion_level) { - Long_ptr_ = Long_ptr; - Name_ptr_ = Name_ptr; - recursion_level_ = recursion_level; -} - -const char * -LongNode::getName () { - return Name_ptr_; -} - -CORBA::Long -LongNode::getValue () { - return *Long_ptr_; -} - -void -LongNode::Accept (NodeVisitor *nodeVisitor) { - nodeVisitor->visitLongNode (this); -} - -unsigned int -LongNode::getRecursionLevel () { - return recursion_level_; -} - -ULongNode::ULongNode (CORBA::ULong *ULong_ptr, - const char *Name_ptr, - unsigned int recursion_level) { - ULong_ptr_ = ULong_ptr; - Name_ptr_ = Name_ptr; - recursion_level_ = recursion_level; -} - -const char * -ULongNode::getName () { - return Name_ptr_; -} - -CORBA::ULong -ULongNode::getValue () { - return *ULong_ptr_; -} - -void -ULongNode::Accept (NodeVisitor *nodeVisitor) { - nodeVisitor->visitULongNode (this); -} - -unsigned int -ULongNode::getRecursionLevel () { - return recursion_level_; -} - - -StringNode::StringNode (CORBA::String_var String_var, - const char *Name_ptr, - unsigned int recursion_level) { - String_var_ = String_var; - Name_ptr_ = Name_ptr; - recursion_level_ = recursion_level; -} - -const char* -StringNode::getName () { - return Name_ptr_; -} - -CORBA::String_var -StringNode::getValue () { - return String_var_; -} - -void -StringNode::Accept (NodeVisitor *nodeVisitor) { - nodeVisitor->visitStringNode (this); -} - -unsigned int -StringNode::getRecursionLevel () { - return recursion_level_; -} - - - - - - - - diff --git a/TAO/examples/Simulator/DOVEMIB/Node.h b/TAO/examples/Simulator/DOVEMIB/Node.h deleted file mode 100644 index d8029a4fa5e..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/Node.h +++ /dev/null @@ -1,185 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// Node.h -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// This file descibes the various node types for analysing -// an CORBA::Any. It is no memory allocated, that means -// The values are not really contained by the nodes, but the -// nodes refer to the values via pointers. -// -// ============================================================================ - -#include "tao/corba.h" -#include "ace/Containers.h" -#include "NodeVisitor.h" - -#if !defined (NODE_H) -#define NODE_H - - -// base class for nodes -class Node { -public: - virtual ~Node () {} - virtual void Accept (NodeVisitor *NodeVisitor) = 0; - virtual unsigned int getRecursionLevel () = 0; - -protected: - Node () {} -}; - - - -// Node to store information about a Struct -class StructNode : public Node { -public: - StructNode (const char *Name_ptr, - unsigned int recursion_level); - ~StructNode (); - - // accpet a visitor - void Accept (NodeVisitor *nodeVisitor); - - // add a new child - int addChild (Node *node); - - // retrieve the nth Child starting at 0 - Node *getChild (unsigned int n); - - // get the number of children - unsigned int getChildNumber (); - - // get the name of the struct - const char *getName (); - - // get recursion level - unsigned int getRecursionLevel (); - - -private: - ACE_Unbounded_Queue *queue_ptr_; - ACE_Unbounded_Queue_Iterator *queue_iterator_ptr_; - unsigned int queue_position_; - const char *Name_ptr_; - unsigned int recursion_level_; -}; - - -// Node to store information about a Double -class DoubleNode : public Node { -public: - DoubleNode (CORBA::Double *Double_ptr, - const char *Name_ptr, - unsigned int recursion_level); - ~DoubleNode () {} - - // accpet a visitor - void Accept (NodeVisitor *nodeVisitor); - - // get the name of the double node - const char *getName (); - - // get the value - CORBA::Double getValue (); - - // get recursion level - unsigned int getRecursionLevel (); - -private: - CORBA::Double *Double_ptr_; - const char *Name_ptr_; - unsigned int recursion_level_; -}; - - -// Node to store information about a Long -class LongNode : public Node { -public: - LongNode (CORBA::Long *Long_ptr, - const char *Name_ptr, - unsigned int recursion_level); - ~LongNode () {} - - // accpet a visitor - void Accept (NodeVisitor *nodeVisitor); - - //get the name of the long node - const char *getName (); - - // get the value - CORBA::Long getValue (); - - // get recursion level - unsigned int getRecursionLevel (); - -private: - CORBA::Long *Long_ptr_; - const char *Name_ptr_; - unsigned int recursion_level_; -}; - - -// Node to store information about a ULong -class ULongNode : public Node { -public: - ULongNode (CORBA::ULong *Long_ptr, - const char *Name_ptr, - unsigned int recursion_level); - ~ULongNode () {} - - // accpet a visitor - void Accept (NodeVisitor *nodeVisitor); - - // get the name of the ulong node - const char *getName (); - - // get the value - CORBA::ULong getValue (); - - // get recursion level - unsigned int getRecursionLevel (); - -private: - CORBA::ULong *ULong_ptr_; - const char *Name_ptr_; - unsigned int recursion_level_; -}; - - -// Node to store information about a String -class StringNode : public Node { -public: - StringNode (CORBA::String_var String_var, - const char *Name_ptr, - unsigned int recursion_level); - ~StringNode () {} - - // accpet a visitor - void Accept (NodeVisitor *nodeVisitor); - - // get the name - const char *getName (); - - // get the value - CORBA::String_var getValue (); - - // get recursion level - unsigned int getRecursionLevel (); - -private: - CORBA::String_var String_var_; - const char *Name_ptr_; - unsigned int recursion_level_; -}; - -#endif // NODE_H - - diff --git a/TAO/examples/Simulator/DOVEMIB/NodeVisitor.h b/TAO/examples/Simulator/DOVEMIB/NodeVisitor.h deleted file mode 100644 index d19e065ae2c..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/NodeVisitor.h +++ /dev/null @@ -1,39 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// NodeVisitor.h -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// This file descibes the Visitor used by the any evaluator. -// -// ============================================================================ - -#if !defined (NODE_VISITOR_H) -#define NODE_VISITOR_H - -class StructNode; -class DoubleNode; -class LongNode; -class ULongNode; -class StringNode; - -// base class for all the specialized visitors - -class NodeVisitor { -public: - virtual void visitStructNode (StructNode *structNode) = 0; - virtual void visitDoubleNode (DoubleNode *doubleNode) = 0; - virtual void visitLongNode (LongNode *longNode) = 0; - virtual void visitULongNode (ULongNode *uLongNode) = 0; - virtual void visitStringNode (StringNode *stringNode) = 0; -protected: - NodeVisitor () {} -}; - -#endif // NODE_VISITOR_H diff --git a/TAO/examples/Simulator/DOVEMIB/PrintVisitor.cpp b/TAO/examples/Simulator/DOVEMIB/PrintVisitor.cpp deleted file mode 100644 index 652e5e239a3..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/PrintVisitor.cpp +++ /dev/null @@ -1,128 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// any_test_i.cpp -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// Visitor for the Nodes of the any analyser. -// -// ============================================================================ - -#include "PrintVisitor.h" -#include - - -PrintVisitor::PrintVisitor (const char *file_name) { - - TAO_TRY { - if (file_name != 0) { - output_ = ACE_OS::fopen(file_name, "w"); - TAO_CHECK_ENV; - - // print it on the screen if file could be opened - if (output_ == 0) { - - output_ = stdout; - - ACE_DEBUG ((LM_DEBUG,"PrintVisitor: Use stdout for output.\n")); - } - - // everything is ok - ACE_DEBUG ((LM_DEBUG,"PrintVisitor: Opened file <%s> successfully.\n", - file_name)); - } - else { - output_ = stdout; - ACE_DEBUG ((LM_DEBUG,"PrintVisitor: Use stdout for output.\n")); - - } - - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Failing when trying to open the output file.\n")); - } - TAO_ENDTRY; -} - - -PrintVisitor::~PrintVisitor () { - this->close (); -} - -void -PrintVisitor::close () { - if (output_ != stdout && output_ != 0) { - ACE_OS::fclose (output_); - } -} - - -// Visit a struct node -void -PrintVisitor::visitStructNode (StructNode *structNode) { - - // print the padding in front of the line - printPadding (structNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "struct %s {\n", structNode->getName ()); - - for (unsigned int i = 0; i < structNode->getChildNumber (); i++) { - printPadding (structNode->getChild (i)->getRecursionLevel()); - structNode->getChild (i)->Accept((NodeVisitor *)this); - ACE_OS::fprintf (output_, "\n"); - } - - printPadding (structNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "}\n"); -} - -void -PrintVisitor::visitDoubleNode (DoubleNode *doubleNode) { - printPadding (doubleNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "CORBA::double %s = %f;", doubleNode->getName(), doubleNode->getValue()); -} - -void -PrintVisitor::visitLongNode (LongNode *longNode) { - printPadding (longNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "CORBA::Long %s = %d;", longNode->getName(), longNode->getValue()); -} - -void -PrintVisitor::visitULongNode (ULongNode *uLongNode) { - printPadding (uLongNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "CORBA::ULong %s = %d;", uLongNode->getName(), uLongNode->getValue()); -} - -void -PrintVisitor::visitStringNode (StringNode *stringNode) { - printPadding (stringNode->getRecursionLevel()); - ACE_OS::fprintf (output_, "CORBA::String %s = \"%s\";", stringNode->getName(), (char *)stringNode->getValue()); -} - -void -PrintVisitor::printPadding (unsigned int recursion_level) { - switch (recursion_level) { - case 0: break; - case 1: ACE_OS::fprintf (output_, " "); - break; - case 2: ACE_OS::fprintf (output_, " "); - break; - case 3: ACE_OS::fprintf (output_, " "); - break; - case 4: ACE_OS::fprintf (output_, " "); - break; - default: for (unsigned int i = 0; i < recursion_level; i++) - { - ACE_OS::fprintf (output_, " "); - } - break; - } -} - diff --git a/TAO/examples/Simulator/DOVEMIB/PrintVisitor.h b/TAO/examples/Simulator/DOVEMIB/PrintVisitor.h deleted file mode 100644 index 54ad1d4301b..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/PrintVisitor.h +++ /dev/null @@ -1,45 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// PrintVisitor.h -// -// = AUTHOR -// Michael Kircher -// -// = DESCRIPTION -// This file descibes the PrintVisitor used by the any evaluator. -// -// ============================================================================ - -#include "tao/corba.h" -#include "NodeVisitor.h" -#include "Node.h" - -#if !defined (PRINT_VISITOR_H) -#define PRINT_VISITOR_H - - -// This is a concrete Visitor using the Visitor design pattern -class PrintVisitor : public NodeVisitor { -public: - - PrintVisitor (const char *file_name); - ~PrintVisitor (); - - void close (); - - void visitStructNode (StructNode *structNode); - void visitDoubleNode (DoubleNode *doubleNode); - void visitLongNode (LongNode *longNode); - void visitULongNode (ULongNode *uLongNode); - void visitStringNode (StringNode *stringNode); -private: - void printPadding (unsigned int recursion_level); - - FILE *output_; -}; - -#endif // PRINT_VISITOR_H diff --git a/TAO/examples/Simulator/DOVEMIB/TestClient.dsp b/TAO/examples/Simulator/DOVEMIB/TestClient.dsp deleted file mode 100644 index 7d412b2290b..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/TestClient.dsp +++ /dev/null @@ -1,167 +0,0 @@ -# Microsoft Developer Studio Project File - Name="TestClient" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=TestClient - 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 "TestClient.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 "TestClient.mak" CFG="TestClient - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "TestClient - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "TestClient - 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)" == "TestClient - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "TestClient - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "TestClie" -# PROP BASE Intermediate_Dir "TestClie" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "TestClie" -# PROP Intermediate_Dir "TestClie" -# 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 /W3 /Gm /GX /Zi /Od /I "..\..\..\..\..\\" /I "..\..\..\..\\" /I "..\..\..\..\..\..\\" /I "..\..\..\\" /I "..\..\..\tao" /I "..\..\..\orbsvcs" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /out:"TestClient.exe" /pdbtype:sept /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "TestClient - Win32 Release" -# Name "TestClient - Win32 Debug" -# Begin Source File - -SOURCE=.\any_test.idl - -!IF "$(CFG)" == "TestClient - Win32 Release" - -!ELSEIF "$(CFG)" == "TestClient - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\any_test.idl -InputName=any_test - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\any_testC.cpp -# End Source File -# Begin Source File - -SOURCE=.\any_testS.cpp -# End Source File -# Begin Source File - -SOURCE=.\clnt.cpp -# End Source File -# Begin Source File - -SOURCE=.\NavWeap.idl - -!IF "$(CFG)" == "TestClient - Win32 Release" - -!ELSEIF "$(CFG)" == "TestClient - Win32 Debug" - -# Begin Custom Build -InputPath=.\NavWeap.idl -InputName=NavWeap - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\NavWeapC.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/examples/Simulator/DOVEMIB/any_test.idl b/TAO/examples/Simulator/DOVEMIB/any_test.idl deleted file mode 100644 index 80bf048a2d2..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/any_test.idl +++ /dev/null @@ -1,11 +0,0 @@ -// $Id$ - -interface Any_Test - // = TITLE - // - // = DESCRIPTION - -{ - void try_an_any (in any a); -}; - diff --git a/TAO/examples/Simulator/DOVEMIB/any_test_i.cpp b/TAO/examples/Simulator/DOVEMIB/any_test_i.cpp deleted file mode 100644 index a92950b03af..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/any_test_i.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// any_test_i.cpp -// -// = AUTHOR -// Michael Kircher -// -// ============================================================================ - -#include "tao/corba.h" -#include "ace/Containers.h" -#include "any_test_i.h" -#include "NavWeapC.h" -#include "AnyAnalyser.h" - - -// Constructor -Any_Test_i::Any_Test_i (const char *obj_name) -{ -} - -// Destructor -Any_Test_i::~Any_Test_i (void) -{ -} - - -void -Any_Test_i::try_an_any (const CORBA::Any &a, CORBA::Environment &env) -{ - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, "Call to try_an_any succeeded!\n")); - - AnyAnalyser anyAnalyser_ = AnyAnalyser ("stdout"); - - TAO_CHECK_ENV; - Weapons *weapons_ = 0; - if (a.type()->equal(_tc_Weapons,TAO_TRY_ENV)) { - - CORBA::Any b; - b = a; - weapons_ = (Weapons *)b.value(); - cout << "ID: " << a.type()->id(TAO_TRY_ENV) << endl; - cout << "CompTime: " << weapons_->computation_time << endl; - cout << "Adr number of weapons: " << &(weapons_->number_of_weapons) << endl; - cout << "Adr CompTime: " << &(weapons_->computation_time) << endl; - } - - anyAnalyser_.printAny (a.type(), a.value()); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t)Error in extracting the data.\n")); - } - TAO_ENDTRY; -} - - diff --git a/TAO/examples/Simulator/DOVEMIB/any_test_i.h b/TAO/examples/Simulator/DOVEMIB/any_test_i.h deleted file mode 100644 index eb877ef23c5..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/any_test_i.h +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// any_test_i.h -// -// = AUTHOR -// Michael Kircher -// -// ============================================================================ - -#if !defined (_ANY_TEST_I_HH) -#define _ANY_TEST_I_HH - -#include "any_testS.h" - -// Forward declarations -class Any_Test_i; - -// Typedefs. -typedef Any_Test_i *Any_Test_i_ptr; -typedef Any_Test_i_ptr Any_Test_i_ref; - -class Any_Test_i : public POA_Any_Test - // = TITLE - // = DESCRIPTION -{ -public: - Any_Test_i (const char *obj_name = 0); - // Constructor - - ~Any_Test_i (void); - // Destructor - - virtual void try_an_any (const CORBA::Any &a, - CORBA::Environment &env); -}; - -#endif /* _ANY_TEST_I_HH */ diff --git a/TAO/examples/Simulator/DOVEMIB/clnt.cpp b/TAO/examples/Simulator/DOVEMIB/clnt.cpp deleted file mode 100644 index b5e63462ec0..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/clnt.cpp +++ /dev/null @@ -1,183 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// -// = AUTHORS -// Michael Kircher -// -// ============================================================================ - -#include "tao/corba.h" -#include "clnt.h" -#include "NavWeapC.h" - - -Any_Test_Client::Any_Test_Client () -{ - -} - -Any_Test_Client::~Any_Test_Client () -{ - CORBA::release(this->any_test_ptr_); -} - -int -Any_Test_Client::init (int argc, char *argv []) -{ - - TAO_TRY { - this->argc_ = argc; - this->argv_ = argv; - - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (this->argc_ != 2) - { - ACE_ERROR_RETURN ((LM_ERROR, "Expected an IOR as parameter\n"),-1); - } - - CORBA::Object_var any_test_object_ = this->orb_->string_to_object (argv_[1], TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->any_test_ptr_ = Any_Test::_narrow (any_test_object_.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->any_test_ptr_)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Invalid IOR specified.\n"), - -1); - } - return 0; - } - TAO_CATCHANY { - TAO_TRY_ENV.print_exception ("SYS_EX"); - return 0; - } - TAO_ENDTRY; - return 0; -} - -int -Any_Test_Client::run () -{ - TAO_TRY - { - CORBA::Any data; - - navigation_.position_latitude = 1; - navigation_.position_longitude = 2; - navigation_.altitude = 3; - navigation_.heading = 4; - navigation_.roll = 5; - navigation_.pitch = 6; - - navigation_.utilization = 1; - navigation_.overhead = 2; - navigation_.arrival_time = 3; - navigation_.deadline_time = 4; - navigation_.completion_time = 5; - navigation_.computation_time = 6; - - data.replace (_tc_Navigation, &navigation_, CORBA::B_FALSE, TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG,"Starting test with Any: Navigation\n")); - //any_test_ptr_->try_an_any (data, TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG,"Ending test with Any: Navigation\n")); - - -/* CORBA::Short x_ = 8; - data <<= x_; - - ACE_DEBUG ((LM_DEBUG,"Starting test with Any: Navigation\n")); - any_test_ptr_->try_an_any (data, TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG,"Ending test with Any: Navigation\n")); -*/ - - weapons_.number_of_weapons = 5; - weapons_.weapon1_identifier = CORBA::string_alloc (20); - strcpy (weapons_.weapon1_identifier, "A"); - weapons_.weapon1_status = 1; - weapons_.weapon2_identifier = CORBA::string_alloc (20); - strcpy (weapons_.weapon2_identifier, "B"); - weapons_.weapon2_status = 2; - weapons_.weapon3_identifier = CORBA::string_alloc (20); - strcpy (weapons_.weapon3_identifier, "C"); - weapons_.weapon3_status = 4; - weapons_.weapon4_identifier = CORBA::string_alloc (20); - strcpy (weapons_.weapon4_identifier, "D"); - weapons_.weapon4_status = 8; - weapons_.weapon5_identifier = CORBA::string_alloc (20); - strcpy (weapons_.weapon5_identifier, "E"); - weapons_.weapon5_status = 16; - - weapons_.utilization = 1; - weapons_.overhead = 2; - weapons_.arrival_time = 3; - weapons_.deadline_time = 4; - weapons_.completion_time = 5; - weapons_.computation_time = 6; - - data.replace (_tc_Weapons, &weapons_, CORBA::B_FALSE, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG,"Starting test with Any: Weapons\n")); - any_test_ptr_->try_an_any (data, TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG,"Ending test with Any: Weapons\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Error in Any_Test_Client::run"); - } - TAO_ENDTRY; - - - return 0; -} - - - -// function main - -int -main (int argc, char *argv []) -{ - - TAO_TRY - { - Any_Test_Client any_test_client_; - TAO_CHECK_ENV; - - if (any_test_client_.init (argc, argv) == -1) - return 1; - TAO_CHECK_ENV; - - return any_test_client_.run (); - TAO_CHECK_ENV; - - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - - return 0; -} - diff --git a/TAO/examples/Simulator/DOVEMIB/clnt.h b/TAO/examples/Simulator/DOVEMIB/clnt.h deleted file mode 100644 index 67ed5c84d57..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/clnt.h +++ /dev/null @@ -1,62 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// -// = AUTHORS -// Michael Kircher -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "any_testC.h" -#include "NavWeapC.h" - -class Any_Test_Client - // = TITLE - // - // = DESCRIPTION -{ -public: - // = Constructor and destructor. - Any_Test_Client (void); - ~Any_Test_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - Navigation navigation_; - Weapons weapons_; - - Any_Test_ptr any_test_ptr_; - // Reverse_ptr reverse_ptr_; - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - - CORBA::Environment env_; - // Environment variable - - CORBA::ORB_var orb_; - // Remember our orb -}; - - - - diff --git a/TAO/examples/Simulator/DOVEMIB/svc.conf b/TAO/examples/Simulator/DOVEMIB/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/examples/Simulator/DOVEMIB/svr.cpp b/TAO/examples/Simulator/DOVEMIB/svr.cpp deleted file mode 100644 index c4ee548327d..00000000000 --- a/TAO/examples/Simulator/DOVEMIB/svr.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// svr.cpp -// -// = AUTHOR -// Michael Kircher -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "any_test_i.h" -//#include "Node.h" - -// Global Variables -static int num_of_objs = 1; - -// Parses the command line arguments and returns an error status - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, ""); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] " - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - /* - CORBA::Long long_ = 4; - CORBA::Double double_ = 5.0; - StructNode *structNode_ptr_ = new StructNode ("ABC"); - - structNode_ptr_->addChild ((Node *)new DoubleNode (&double_, "My_Double")); - structNode_ptr_->addChild ((Node *)new LongNode (&long_, "My_Long")); - - structNode_ptr_->print (); - */ - - TAO_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Having the ORB\n")); - - // Initialize the Object Adapter - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil(poa_object.in())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::PolicyList policies (2); - policies.length (2); - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, - TAO_TRY_ENV); - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, "Having the rootPOA\n")); - - // We use a different POA, otherwise the user would have to - // change the object key each time it invokes the server. - PortableServer::POA_var good_poa = - root_poa->create_POA ("RootPOA_is_BAD", - poa_manager.in (), - policies, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse remaining command line and verify parameters. - parse_args (argc, argv); - - ACE_DEBUG ((LM_DEBUG, "Starting the implementation\n")); - - // create a factory implementation - Any_Test_i_ptr any_test_i_ptr_ = new Any_Test_i (); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Started the implementation\n")); - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId ("Any_Test"); - good_poa->activate_object_with_id (id.in (), - any_test_i_ptr_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - CORBA::Object_var obj = - good_poa->id_to_reference (id.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (obj.in (), - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", str.in ())); - - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Handle requests for this object until we're killed, or one of - // the methods asks us to exit. - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), -1); - - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG(sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG(userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/examples/Simulator/Event_Supplier/EDF.dat b/TAO/examples/Simulator/Event_Supplier/EDF.dat deleted file mode 100644 index 4fbc28d9c0f..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/EDF.dat +++ /dev/null @@ -1,72 +0,0 @@ -low_20 1.000000 0.000000 0 500000 180000 180000 -high_20 1.000000 0.000000 0 500000 360000 180000 -low_20 1.000000 0.000000 500000 1000000 680000 180000 -high_20 1.000000 0.000000 500000 1000000 860000 180000 -low_10 1.000000 0.000000 0 1000000 900000 180000 -low_20 1.000000 0.000000 1000000 1500000 1180000 180000 -high_20 1.000000 0.000000 1000000 1500000 1360000 180000 -low_20 1.000000 0.000000 1500000 2000000 1680000 180000 -high_20 1.000000 0.000000 1500000 2000000 1860000 180000 -low_10 1.000000 0.000000 1000000 2000000 1900000 180000 -high_10 1.000000 0.000000 0 1000000 1980000 180000 -low_20 1.000000 0.000000 2000000 2500000 2180000 180000 -high_20 1.000000 0.000000 2000000 2500000 2360000 180000 -low_20 1.000000 0.000000 2500000 3000000 2680000 180000 -high_20 1.000000 0.000000 2500000 3000000 2860000 180000 -low_10 1.000000 0.000000 2000000 3000000 2900000 180000 -low_20 1.000000 0.000000 3000000 3500000 3180000 180000 -high_20 1.000000 0.000000 3000000 3500000 3360000 180000 -low_20 1.000000 0.000000 3500000 4000000 3680000 180000 -high_20 1.000000 0.000000 3500000 4000000 3860000 180000 -low_10 1.000000 0.000000 3000000 4000000 3900000 180000 -high_10 1.000000 0.000000 1000000 2000000 3960000 180000 -low_20 1.000000 0.000000 4000000 4500000 4180000 180000 -high_20 1.000000 0.000000 4000000 4500000 4360000 180000 -low_20 1.000000 0.000000 4500000 5000000 4680000 180000 -high_20 1.000000 0.000000 4500000 5000000 4860000 180000 -low_10 1.000000 0.000000 4000000 5000000 4900000 180000 -low_20 1.000000 0.000000 5000000 5500000 5180000 180000 -high_20 1.000000 0.000000 5000000 5500000 5360000 180000 -low_20 1.000000 0.000000 5500000 6000000 5680000 180000 -high_20 1.000000 0.000000 5500000 6000000 5860000 180000 -low_10 1.000000 0.000000 5000000 6000000 5900000 180000 -high_10 1.000000 0.000000 3000000 4000000 5940000 180000 -low_20 1.000000 0.000000 6000000 6500000 6180000 180000 -high_20 1.000000 0.000000 6000000 6500000 6360000 180000 -low_20 1.000000 0.000000 6500000 7000000 6680000 180000 -high_20 1.000000 0.000000 6500000 7000000 6860000 180000 -low_10 1.000000 0.000000 6000000 7000000 6900000 180000 -low_20 1.000000 0.000000 7000000 7500000 7180000 180000 -high_20 1.000000 0.000000 7000000 7500000 7360000 180000 -low_20 1.000000 0.000000 7500000 8000000 7680000 180000 -high_20 1.000000 0.000000 7500000 8000000 7860000 180000 -low_10 1.000000 0.000000 7000000 8000000 7900000 180000 -high_10 1.000000 0.000000 5000000 6000000 7920000 180000 -low_20 1.000000 0.000000 8000000 8500000 8180000 180000 -high_20 1.000000 0.000000 8000000 8500000 8360000 180000 -low_20 1.000000 0.000000 8500000 9000000 8680000 180000 -high_20 1.000000 0.000000 8500000 9000000 8860000 180000 -low_10 1.000000 0.000000 8000000 9000000 8900000 180000 -high_10 1.000000 0.000000 7000000 8000000 9000000 180000 -low_20 1.000000 0.000000 9000000 9500000 9180000 180000 -high_20 1.000000 0.000000 9000000 9500000 9360000 180000 -low_20 1.000000 0.000000 9500000 10000000 9680000 180000 -high_20 1.000000 0.000000 9500000 10000000 9860000 180000 -low_10 1.000000 0.000000 9000000 10000000 9900000 180000 -high_10 1.000000 0.000000 9000000 10000000 10080000 180000 -low_5 1.000000 0.000000 8000000 10000000 10260000 180000 -high_5 1.000000 0.000000 8000000 10000000 10440000 180000 -low_1 1.000000 0.000000 0 10000000 10620000 180000 -high_1 1.000000 0.000000 0 10000000 10800000 180000 -high_10 1.000000 0.000000 8000000 9000000 10980000 180000 -high_5 1.000000 0.000000 6000000 8000000 11160000 180000 -low_5 1.000000 0.000000 6000000 8000000 11340000 180000 -high_10 1.000000 0.000000 6000000 7000000 11520000 180000 -low_5 1.000000 0.000000 4000000 6000000 11700000 180000 -high_5 1.000000 0.000000 4000000 6000000 11880000 180000 -high_10 1.000000 0.000000 4000000 5000000 12060000 180000 -high_5 1.000000 0.000000 2000000 4000000 12240000 180000 -low_5 1.000000 0.000000 2000000 4000000 12420000 180000 -high_10 1.000000 0.000000 2000000 3000000 12600000 180000 -low_5 1.000000 0.000000 0 2000000 12780000 180000 -high_5 1.000000 0.000000 0 2000000 12960000 180000 diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Con.cpp b/TAO/examples/Simulator/Event_Supplier/Event_Con.cpp deleted file mode 100644 index 1c46bdc512f..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Con.cpp +++ /dev/null @@ -1,375 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Event_Con.cpp -// -// = DESCRIPTION -// This demo just tests the basic functionality of the Event Service -// One Conumer which inherits from the Rtec Consumer. One Supplier -// with an internal Rtec Consumer and one internal Rtec Supplier. -// The internal Supplier is just a demo supplier because the -// architecture expects an supplier which has inherited from the -// Rtec Supplier. -// -// = AUTHOR -// originally -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// modified -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include - -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "ace/Profile_Timer.h" -#include "tao/Timeprobe.h" -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "Event_Con.h" -#include "NavWeapC.h" - -static const int SOURCE_ID = 1001; - -static const char usage [] = -"[-? |\n" -" [-c [4]]\n" -" [-d directly connect all consumers/suppliers\n" -" [-j to collect jitter statistics]\n" -" [-m of messages to send [10]]\n" -" [-s , [1]]\n" -" [-t , msec [250]]]"; - -static int received = 0; - -// ************************************************************ - -Demo_Consumer::Demo_Consumer (void) -{ -} - -int -Demo_Consumer::open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name) -{ - TAO_TRY - { - // Get a Scheduler. - - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - // Define Real-time information. - - rt_info_ = server->create (my_name, TAO_TRY_ENV); - - server->set (rt_info_, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - 0, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - TAO_TRY_ENV); - - // Create the event that we're registering for. - - ACE_ConsumerQOS_Factory dependencies; - dependencies.start_disjunction_group (); - dependencies.insert_type (ACE_ES_EVENT_NOTIFICATION, rt_info_); - dependencies.insert_type (ACE_ES_EVENT_SHUTDOWN, rt_info_); - - // The channel administrator is the event channel we got from - // the invocation of this routine. - - this->channel_admin_ = ec; - - // = Connect as a consumer. - - this->consumer_admin_ = - channel_admin_->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Obtain a pointer to a push supplier. "suppliers" is - // inherited from a base class. - - this->suppliers_ = - consumer_admin_->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // The _this function returns an object pointer. This is needed - // because a consumer inherits from a Servant class that is no - // CORBA::Object. - - RtecEventComm::PushConsumer_var objref = - this->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->suppliers_->connect_push_consumer (objref.in (), - dependencies.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (RtecEventChannelAdmin::EventChannel::SUBSCRIPTION_ERROR, se) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Demo_Consumer::open: subscribe failed.\n"), - -1); - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, - "Demo_Consumer::open: unexpected exception.\n"), - -1); - } - TAO_ENDTRY; - - return 0; -} - -void -Demo_Consumer::disconnect_push_consumer (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, - "Consumer received disconnect from channel.\n")); -} - -void -Demo_Consumer::push (const RtecEventComm::EventSet &events, - CORBA::Environment &) -{ - - if (events.length () == 0) - { - ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - - cout << "Number of events: " << received++ << endl; - - for (CORBA::ULong i = 0; i < events.length (); ++i) - { - if (events[i].type_ == ACE_ES_EVENT_SHUTDOWN) - { - ACE_DEBUG ((LM_DEBUG, "Demo Consumer: received shutdown event\n")); - this->shutdown (); - } - else - { - ACE_DEBUG ((LM_DEBUG, "Demo Consumer: received ACE_ES_EVENT_NOTIFICATION event.\n")); - - TAO_TRY - { - cout << "ID: " << events[i].data_.any_value.type()->id(TAO_TRY_ENV) << endl; - TAO_CHECK_ENV; - cout << "Name: " << events[i].data_.any_value.type()->name(TAO_TRY_ENV) << endl; - TAO_CHECK_ENV; - cout << "member_count: " << events[i].data_.any_value.type()->member_count(TAO_TRY_ENV) << endl; - TAO_CHECK_ENV; - cout << "TCKind: " << events[i].data_.any_value.type()->kind(TAO_TRY_ENV) << endl; - TAO_CHECK_ENV; - - if (_tc_Navigation->equal (events[i].data_.any_value.type(), TAO_TRY_ENV)) - { - TAO_CHECK_ENV; - Navigation *navigation_ = (Navigation*) events[i].data_.any_value.value (); - - cout << "Found a Navigation struct in the any: pos_lat = " << navigation_->position_latitude << endl; - } - else if (_tc_Weapons->equal (events[i].data_.any_value.type(), TAO_TRY_ENV)) - { - TAO_CHECK_ENV; - Weapons *weapons_ = (Weapons*) events[i].data_.any_value.value (); - - cout << "Found a Navigation struct in the any: pos_lat = " << weapons_->number_of_weapons << endl; - } - - - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t)Error in extracting the Navigation and Weapons data.\n")); - } - TAO_ENDTRY; - } - } -} - -void -Demo_Consumer::shutdown (void) -{ - TAO_TRY - { - // Disconnect from the push supplier. - - this->suppliers_->disconnect_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "@@ we should shutdown here!!!\n")); - TAO_CHECK_ENV; - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, - "(%t) Demo_Consumer::shutdown: unexpected exception.\n")); - } - TAO_ENDTRY; -} - -// function get_options - -static unsigned int -get_options (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "Oc:djm:s:t:?"); - int opt; - int temp; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - argv[0], usage)); - ACE_OS::exit (0); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - argv[0], char(opt), - argv[0], usage), 1); - } - } - - if (argc != get_opt.optind) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: too many arguments\n" - "Usage: %s %s\n", - argv[0], - argv[0], - usage), - 1); - return 0; -} - -// function main. - -int -main (int argc, char *argv []) -{ - TAO_TRY - { - // Initialize ORB. - - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - if (get_options (argc, argv)) - ACE_OS::exit (-1); - - // Get the Event Channel. - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup ("EventService"); - - CORBA::Object_var ec_obj = - naming_context->resolve (channel_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventChannelAdmin::EventChannel_var ec = - RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (ec.ptr() == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Not able to get the Event Service reference.\n"), - -1); - - // Create consumer. - - Demo_Consumer *demo_consumer; - ACE_NEW_RETURN (demo_consumer, - Demo_Consumer (), - -1); - - if (demo_consumer->open_consumer (ec.ptr (), - "demo_consumer") == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Someone was feeling introverted.\n"), - -1); - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the ORB - - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "CORBA::ORB::run"), - -1); - TAO_CHECK_ENV; - - delete demo_consumer; - - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Con.h b/TAO/examples/Simulator/Event_Supplier/Event_Con.h deleted file mode 100644 index c95efa7f473..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Con.h +++ /dev/null @@ -1,66 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Event_Con.h -// -// = AUTHOR -// originally -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// modified -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (EVENT_CON_H) -#define EVENT_CON_H - -#include "ace/SString.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "orbsvcs/RtecEventCommS.h" - -class Demo_Consumer : public POA_RtecEventComm::PushConsumer -{ - // = TITLE - // Demo Consumer - // - // = DESCRIPTION - // Simple example of a consumer that registers for supplier - // notifications. -public: - Demo_Consumer (void); - - int open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name); - // Uses the name server to obtain a reference to the - // and registers with channel to receive notifications from the - // supplier. Also registers to receive shutdown messages from the - // supplier. Stores for printing out messages. Returns 0 - // on success, -1 on failure. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - // = (not protected to allow short-circuiting) protected: - virtual void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // If the [0] is a notification, prints out the data from - // the supplier. If its a shutdown message, the consumer - // disconnects from the channel. - -protected: - void shutdown (void); - // Disconnect from the Event Service. - - // = Event channel adminstration references. - RtecEventChannelAdmin::EventChannel_var channel_admin_; - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_; - RtecEventChannelAdmin::ProxyPushSupplier_var suppliers_; - -private: - RtecScheduler::handle_t rt_info_; -}; - -#endif /* EVENT_CON_H */ diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Sup.cpp b/TAO/examples/Simulator/Event_Supplier/Event_Sup.cpp deleted file mode 100644 index b5087be6554..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Sup.cpp +++ /dev/null @@ -1,732 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Event_Sup.cpp -// -// = DESCRIPTION -// Event Supplier for the flight simulator -// -// = AUTHOR -// originally -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// modified -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include - -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "ace/Profile_Timer.h" -#include "ace/OS.h" -#include "tao/Timeprobe.h" -#include "tao/corba.h" -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "Event_Sup.h" -#include "NavWeapC.h" - -const int SOURCE_ID = 1001; - -static const char usage [] = -"[-? |\n" -" [-O[RBport] ORB port number]" -" [-m of messages to send [100]" -" [-f name of schedler input data file]]"; - -static u_int total_messages = 100; - -static char *input_file_name = 0; - -// ------------ Internal_Demo_Consumer --------------------------------- - -Demo_Supplier::Internal_Demo_Consumer::Internal_Demo_Consumer (Demo_Supplier *impl) - : impl_ (impl) -{ -} - -void -Demo_Supplier::Internal_Demo_Consumer::push (const RtecEventComm::EventSet &events, - CORBA::Environment &env) -{ - this->impl_->push (events, env); - - ACE_DEBUG ((LM_DEBUG, - "Internal Demo Consumer received push.\n")); -} - -void -Demo_Supplier::Internal_Demo_Consumer::disconnect_push_consumer (CORBA::Environment &) -{ -} - -// -------------------- Internal Demo Supplier ----------------------------- - -Demo_Supplier::Internal_Demo_Supplier::Internal_Demo_Supplier (Demo_Supplier *impl) - : impl_ (impl) -{ -} - -void -Demo_Supplier::Internal_Demo_Supplier::disconnect_push_supplier (CORBA::Environment &) -{ -} - -// ---------------------------------------------------------------------------- - -Demo_Supplier::Demo_Supplier (u_int supplier_id) - : supplier_id_ (supplier_id), - internal_demo_consumer_ (new Internal_Demo_Consumer (this)), - internal_demo_supplier_ (new Internal_Demo_Supplier (this)) -{ - // this is neccessary because they are not initialized by the comiler - navigation_.roll = 0; - navigation_.pitch = 0; -} - -Demo_Supplier::~Demo_Supplier (void) -{ - delete internal_demo_consumer_; - delete internal_demo_supplier_; -} - -int -Demo_Supplier::open_supplier (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *name) -{ - TAO_TRY - { - this->channel_admin_ = ec; - - // Get a Scheduling server. - - RtecScheduler::Scheduler_ptr scheduler_ = - ACE_Scheduler_Factory::server (); - - // Generate the Real-time information. - - this->rt_info_ = scheduler_->create (name, - TAO_TRY_ENV); - scheduler_->set (rt_info_, - RtecScheduler::VERY_LOW_CRITICALITY, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - 2500000, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Set the publications to report them to the event channel. - - CORBA::Short x = 0; - RtecEventChannelAdmin::SupplierQOS qos_; - qos_.publications.length (2); - qos_.publications[0].event.source_ = SOURCE_ID; - qos_.publications[0].event.type_ = ACE_ES_EVENT_NOTIFICATION; - qos_.publications[0].event.ttl_ = 1; - qos_.publications[0].event.creation_time_ = ORBSVCS_Time::zero; - // default values - qos_.publications[0].event.ec_recv_time_ = ORBSVCS_Time::zero; - qos_.publications[0].event.ec_send_time_ = ORBSVCS_Time::zero; - qos_.publications[0].event.data_.x = 0; - qos_.publications[0].event.data_.y = 0; - qos_.publications[0].event.data_.any_value.replace (CORBA::_tc_short, - &x, - 0, - TAO_TRY_ENV); - qos_.publications[0].dependency_info.number_of_calls = 1; - qos_.publications[0].dependency_info.rt_info = rt_info_; - qos_.publications[1].event.source_ = SOURCE_ID; - qos_.publications[1].event.type_ = ACE_ES_EVENT_SHUTDOWN; - qos_.publications[1].event.ttl_ = 1; - qos_.publications[1].event.creation_time_ = ORBSVCS_Time::zero; - // default values. - qos_.publications[1].event.ec_recv_time_ = ORBSVCS_Time::zero; - qos_.publications[1].event.ec_send_time_ = ORBSVCS_Time::zero; - qos_.publications[1].event.data_.x = 0; - qos_.publications[1].event.data_.y = 0; - qos_.publications[1].event.data_.any_value.replace (CORBA::_tc_short, - &x, - 0, - TAO_TRY_ENV); - qos_.publications[1].dependency_info.number_of_calls = 1; - qos_.publications[1].dependency_info.rt_info = rt_info_; - - // = Connect as a supplier. - this->supplier_admin_ = - channel_admin_->for_suppliers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->proxy_consumer_ = - supplier_admin_->obtain_push_consumer (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // In calling _this we get back an object reference and register - // the servant with the POA. - - RtecEventComm::PushSupplier_var objref = - this->internal_demo_supplier_->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Connect the supplier to the proxy consumer. - this->proxy_consumer_->connect_push_supplier (objref.in (), - qos_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Demo_Supplier::open"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -void -Demo_Supplier::disconnect_push_supplier (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, - "Supplier received disconnect from channel.\n")); -} - -void -Demo_Supplier::start_generating_events (void) -{ - u_int total_sent_ = 0; - - // Load the scheduling data for the simulation. - ACE_Unbounded_Queue schedule_data; - this->load_schedule_data (schedule_data); - ACE_Unbounded_Queue_Iterator - schedule_iter (schedule_data); - - if (schedule_iter.done ()) - { - ACE_ERROR ((LM_ERROR, - "Demo_Supplier::start_generating_events: " - "there is no scheduling data\n")); - return; - } - - TAO_TRY - { - do - { - RtecEventComm::Event event; - event.source_ = SOURCE_ID; - event.type_ = ACE_ES_EVENT_NOTIFICATION; - event.ttl_ = 1; - event.creation_time_ = ORBSVCS_Time::zero; - event.ec_recv_time_ = ORBSVCS_Time::zero; - event.ec_send_time_ = ORBSVCS_Time::zero; - event.data_.x = 0; - event.data_.y = 0; - - this->insert_event_data (event.data_.any_value, - schedule_iter); - - RtecEventComm::EventSet events; - events.length (1); - events[0] = event; - - proxy_consumer_->push (events, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (total_sent_ < 5) - ACE_DEBUG ((LM_DEBUG, - "Pushing event data.\n")); - else if (total_sent_ == 5) - ACE_DEBUG ((LM_DEBUG, - "Everything is running. Going to be mute.\n")); - } - while (++total_sent_ < total_messages); - - // Sending a shutdown event -- not wanted right now - /* RtecEventComm::Event event; - event.source_ = SOURCE_ID; - event.type_ = ACE_ES_EVENT_SHUTDOWN; - event.ttl_ = 1; - event.creation_time_ = ORBSVCS_Time::zero; - event.ec_recv_time_ = ORBSVCS_Time::zero; - event.ec_send_time_ = ORBSVCS_Time::zero; - event.data_.x = 0; - event.data_.y = 0; - - RtecEventComm::EventSet events; - events.length (1); - events[0] = event; - TAO_CHECK_ENV; - - proxy_consumer_->push (events, TAO_TRY_ENV); - TAO_CHECK_ENV; */ - - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Demo_Supplier::start_generating_events: " - " unexpected exception.\n")); - } - TAO_ENDTRY; - - // clean up the scheduling data - Schedule_Viewer_Data **data_temp; - for (schedule_iter.first (); - schedule_iter.done () == 0; - schedule_iter.advance ()) - if (schedule_iter.next (data_temp) && data_temp) - delete (*data_temp); - - this->shutdown (); -} - -void -Demo_Supplier::load_schedule_data - (ACE_Unbounded_Queue &schedule_data) -{ - Schedule_Viewer_Data *data = 0; - - if (input_file_name) - { - // Open the scheduler data input file and read its contents into - // a queue. - FILE *input_file; - - int scan_count = 0; - input_file = ACE_OS::fopen(input_file_name, "r"); - - if (input_file) - { - // Get a line at a time from the data file and parse it. - char input_buf[BUFSIZ]; - while (ACE_OS::fgets (input_buf, BUFSIZ, input_file)) - { - // Run through leading whitespace. - char *temp = input_buf; - while (*temp && isspace (*temp)) - ++temp; - - // If there is anything besides whitespace in the line - // read, scan its fields into the scheduling data - // structure. - if (ACE_OS::strlen (temp) > 0) - { - ACE_NEW (data, Schedule_Viewer_Data); - scan_count = sscanf (temp, "%s %lf %lf %lu %lu %lu %lu", - &(data->operation_name), &(data->utilitzation), - &(data->overhead), &(data->arrival_time), - &(data->deadline_time), &(data->completion_time), - &(data->computation_time)); - if (scan_count != 7) - { - ACE_ERROR ((LM_ERROR, - "Demo_Supplier::start_generating_events: " - "scanned incorrect number of data elements: %d\n", scan_count)); - - delete data; - return; - } - - // Insert the data into the queue. - schedule_data.enqueue_tail (data); - } - } - } - else - { - ACE_ERROR ((LM_ERROR, - "Demo_Supplier::start_generating_events: " - "could not open input file [%s].\n", - input_file_name)); - return; - } - } - else - { - u_long last_completion = 0; - - // Just create 10 dummy scheduling records and use them. - for (int i = 0; i < 10; ++i) - { - ACE_NEW (data, Schedule_Viewer_Data); - - char *oper_name = 0; - switch (i % 4) - { - case 0: - oper_name = "high_20"; - break; - - case 1: - oper_name = "low_20"; - break; - - case 2: - oper_name = "high_10"; - break; - - case 3: - default: - oper_name = "low_10"; - break; - } - - ACE_OS::strncpy (data->operation_name, - oper_name, - BUFSIZ-1); - - - data->utilitzation = (double)(20.0+ACE_OS::rand() %10); - data->overhead = (double)(ACE_OS::rand() %20); - - data->arrival_time = ACE_OS::rand() % 200; - data->computation_time = (ACE_OS::rand() % 100) + 10; - - data->completion_time = last_completion + (ACE_OS::rand() % 100) + 100; - data->completion_time = - data->completion_time < data->arrival_time + data->computation_time - ? data->arrival_time + data->computation_time - : data->completion_time; - - last_completion = data->completion_time; - - data->deadline_time = data->completion_time + (ACE_OS::rand() % 200) - 50; - - // insert the data into the queue. - schedule_data.enqueue_tail (data); - } - } -} - -// This function fills in the random data into the anys transported by -// the event channel. - -void -Demo_Supplier::insert_event_data (CORBA::Any &data, - ACE_Unbounded_Queue_Iterator &schedule_iter) -{ - static u_long last_completion = 0; - - TAO_TRY { - Schedule_Viewer_Data **sched_data; - - if ((schedule_iter.next (sched_data)) && (sched_data) && (*sched_data)) { - if ((strcmp((*sched_data)->operation_name, "high_20") == 0) || - (strcmp((*sched_data)->operation_name, "low_20") == 0) || - (strcmp((*sched_data)->operation_name, "high_1") == 0) || - (strcmp((*sched_data)->operation_name, "low_1") == 0)) { - navigation_.position_latitude = ACE_OS::rand() % 90; - navigation_.position_longitude = ACE_OS::rand() % 180; - navigation_.altitude = ACE_OS::rand() % 100; - navigation_.heading = ACE_OS::rand() % 180; - navigation_.roll = (navigation_.roll >= 180) ? -180 : navigation_.roll + 1; - navigation_.pitch = (navigation_.pitch >= 90) ? -90 : navigation_.pitch + 1; - - navigation_.utilization = (*sched_data)->utilitzation; - navigation_.overhead = (*sched_data)->overhead; - navigation_.arrival_time = (*sched_data)->arrival_time; - navigation_.deadline_time = (*sched_data)->deadline_time; - navigation_.completion_time = (*sched_data)->completion_time; - navigation_.computation_time = (*sched_data)->computation_time; - - // because the scheduler data does not supply these values - navigation_.utilization = (double) (20.0 + ACE_OS::rand() % 10); - navigation_.overhead = (double) (ACE_OS::rand() % 10); - - data.replace (_tc_Navigation, &navigation_, CORBA::B_TRUE, TAO_TRY_ENV); - } - else if ((strcmp((*sched_data)->operation_name, "high_10") == 0) || - (strcmp((*sched_data)->operation_name, "low_10") == 0) || - (strcmp((*sched_data)->operation_name, "high_5") == 0) || - (strcmp((*sched_data)->operation_name, "low_5") == 0)) { - weapons_.number_of_weapons = 2; - weapons_.weapon1_identifier = CORBA::string_alloc (30); - strcpy (weapons_.weapon1_identifier,"Photon Torpedoes"); - weapons_.weapon1_status =(ACE_OS::rand() % 4) == 0 ? 0 : 1 ; - weapons_.weapon2_identifier = CORBA::string_alloc (30); - strcpy (weapons_.weapon2_identifier,"Quantum Torpedoes"); - weapons_.weapon2_status = (ACE_OS::rand() % 4) == 0 ? 0 : 1; - weapons_.weapon3_identifier = CORBA::string_alloc (1); - strcpy (weapons_.weapon3_identifier, ""); - weapons_.weapon3_status = 0; - weapons_.weapon4_identifier = CORBA::string_alloc (1); - strcpy (weapons_.weapon4_identifier, ""); - weapons_.weapon4_status = 0; - weapons_.weapon5_identifier = CORBA::string_alloc (1); - strcpy (weapons_.weapon5_identifier, ""); - weapons_.weapon5_status = 0; - weapons_.utilization = (*sched_data)->utilitzation; - weapons_.overhead = (*sched_data)->overhead; - weapons_.arrival_time = (*sched_data)->arrival_time; - weapons_.deadline_time = (*sched_data)->deadline_time; - weapons_.completion_time = (*sched_data)->completion_time; - weapons_.computation_time = (*sched_data)->computation_time; - - // because the scheduler data does not supply these values - weapons_.utilization = (double) (20.0 + ACE_OS::rand() % 10); - weapons_.overhead = (double) (ACE_OS::rand() % 10); - - data.replace (_tc_Weapons, &weapons_, CORBA::B_TRUE, TAO_TRY_ENV); - } - else { - ACE_ERROR ((LM_ERROR, "Demo_Supplier::insert_event_data: unrecognized operation name [%s]", - (*sched_data)->operation_name)); - } - - TAO_CHECK_ENV; - - - if (last_completion > (*sched_data)->completion_time) - last_completion = 0; - - if ((*sched_data)->completion_time >= last_completion) - { - ACE_Time_Value pause (0, - (*sched_data)->completion_time - last_completion); - ACE_OS::sleep (pause); - last_completion = (*sched_data)->completion_time; - } - } - else - ACE_ERROR ((LM_ERROR, - "Demo_Supplier::insert_event_data: Could Not access scheduling data")); - - schedule_iter.advance (); - - if (schedule_iter.done ()) - schedule_iter.first (); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t)Error in Demo_Supplier::insert_event_data.\n")); - } - TAO_ENDTRY; -} - -void -Demo_Supplier::push (const RtecEventComm::EventSet &events, - CORBA::Environment &env) -{ -} - -void -Demo_Supplier::shutdown (void) -{ - TAO_TRY - { - // @@ Had problems with the next command, the application got stuck in it - // channel_admin_->destroy (TAO_TRY_ENV); - // TAO_CHECK_ENV; - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t) Demo_Supplier::shutdown:" - " unexpected exception.\n")); - TAO_TRY_ENV.print_exception ("Demo_Supplier::shutdown"); - } - TAO_ENDTRY; -} - -// Function get_options. - -static u_int -get_options (int argc, - char *argv []) -{ - // We need the 'O' in get_opt() because we also want to have ORB - // parameters, they all start with 'O'. - ACE_Get_Opt get_opt (argc, argv, "O:?m:f:"); - int opt; - int temp; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - argv[0], usage)); - ACE_OS::exit (0); - break; - case 'm': - temp = ACE_OS::atoi (get_opt.optarg); - if (temp > 0) - { - total_messages = (u_int) temp; - cout << "Messages to send:" << total_messages << endl; - } - else - ACE_ERROR_RETURN ((LM_ERROR, - "%s: count must be > 0", - argv[0]), - 1); - break; - case 'f': - input_file_name = get_opt.optarg; - - if (!input_file_name || ACE_OS::strlen (input_file_name) > 0) - cout << "Reading file!<< endl; - else - { - input_file_name = 0; - ACE_ERROR_RETURN ((LM_ERROR, - "%s: file name must be specified with -f option", - argv[0]), - 1); - } - break; - case 'O': // This is kind of tricky, it is actually read by the - // ORB later. - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - argv[0], char(opt), - argv[0], - usage), - 1); - } - } - - if (argc != get_opt.optind) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: too many arguments\n" - "Usage: %s %s\n", - argv[0], - argv[0], - usage), - 1); - - return 0; -} - -// function main - -int -main (int argc, char *argv []) -{ - TAO_TRY - { - // Initialize ORB. - - CORBA::ORB_var orb = - CORBA::ORB_init (argc, - argv, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Connect to the RootPOA. - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Get the Naming Service object reference. - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Tell the ScheduleService to use the same naming service. - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - if (get_options (argc, argv)) - ACE_OS::exit (-1); - - // Get the Event Channel - // @@ If you specify an invalid name, the Name Service crashes - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup ("EventService"); - - CORBA::Object_var ec_obj = - naming_context->resolve (channel_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventChannelAdmin::EventChannel_var ec = - RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in(), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create the demo supplier. - Demo_Supplier *demo_supplier; - ACE_NEW_RETURN (demo_supplier, - Demo_Supplier (SOURCE_ID), - -1); - - if (demo_supplier->open_supplier (ec.ptr (), - "demo_supplier") == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Supplier open failed.\n"), - -1); - - // Register the internal demo consumer for timeout events. - demo_supplier->start_generating_events (); - - /* - ACE_DEBUG ((LM_DEBUG, - "Supplier is registered for timeout events.\n")); - - // The POA Manager has to be activated before starting the ORB - // event loop. - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the ORB. - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "CORBA::ORB::run"), - -1); - TAO_CHECK_ENV; */ - - delete demo_supplier; - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Sup.dsp b/TAO/examples/Simulator/Event_Supplier/Event_Sup.dsp deleted file mode 100644 index a31af400e75..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Sup.dsp +++ /dev/null @@ -1,132 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Event_Sup" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Event_Sup - 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 "Event_Sup.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 "Event_Sup.mak" CFG="Event_Sup - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Event_Sup - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Event_Sup - 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)" == "Event_Sup - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\..\\" /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 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:"..\..\..\..\..\ace" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\orbsvcs" - -!ELSEIF "$(CFG)" == "Event_Sup - 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 "..\..\..\..\..\\" /I "..\..\..\..\\" /I "..\..\..\\" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TAO_ORBSVCS_HAS_DLL" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "Event_Sup - Win32 Release" -# Name "Event_Sup - Win32 Debug" -# Begin Source File - -SOURCE=.\Event_Sup.cpp -# End Source File -# Begin Source File - -SOURCE=.\NavWeap.idl - -!IF "$(CFG)" == "Event_Sup - Win32 Release" - -!ELSEIF "$(CFG)" == "Event_Sup - Win32 Debug" - -# Begin Custom Build -InputPath=.\NavWeap.idl -InputName=NavWeap - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\NavWeapC.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Sup.dsw b/TAO/examples/Simulator/Event_Supplier/Event_Sup.dsw deleted file mode 100644 index 8e624d1c218..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Sup.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: "Event_Sup"=.\Event_Sup.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/examples/Simulator/Event_Supplier/Event_Sup.h b/TAO/examples/Simulator/Event_Supplier/Event_Sup.h deleted file mode 100644 index 2b45455e181..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Event_Sup.h +++ /dev/null @@ -1,134 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Event_Sup.h -// -// = DESCRIPTION -// Event Supplier for the simulation -// -// = AUTHOR -// originally -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// modified -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (EVENT_SUP_H) -#define EVENT_SUP_H - -#include -#include -#include "ace/OS.h" -#include "ace/SString.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "orbsvcs/RtecEventCommS.h" -#include "NavWeapC.h" - -struct Schedule_Viewer_Data -{ - char operation_name [BUFSIZ]; - double utilitzation; - double overhead; - u_long arrival_time; - u_long deadline_time; - u_long completion_time; - u_long computation_time; -}; - -class Demo_Supplier -{ - // = TITLE - // Demo Supplier. - // - // = DESCRIPTION - // Generates event nofications and a shutdown message. -public: - class Internal_Demo_Consumer : public POA_RtecEventComm::PushConsumer - { - public: - virtual void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // The channel pushed some events to us. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - private: - Internal_Demo_Consumer (Demo_Supplier* impl); - friend class Demo_Supplier; - - private: - Demo_Supplier* impl_; - }; - - // The following Supplier is needed because Demo_Supplier has not - // inherited from PushSupplier, therefore we register with the - // following and send with Demo_Supplier. - - class Internal_Demo_Supplier : public POA_RtecEventComm::PushSupplier - { - public: - virtual void disconnect_push_supplier (CORBA::Environment &); - - private: - Internal_Demo_Supplier (Demo_Supplier* impl); - friend class Demo_Supplier; - - private: - Demo_Supplier* impl_; - }; - - Demo_Supplier (u_int supplier_id); - // Construction. Requires the total number of messages to be - // sent. If the timestamp flag is enabled, then events are - // timestamped, e.g., for use in measuring jitter. - - ~Demo_Supplier (void); - - int open_supplier (RtecEventChannelAdmin::EventChannel_ptr event_channel, - const char *name); - // Registers with the name server under the given . Also - // connects to the Event Channel as a supplier of notifications and - // shutdown messages. - - virtual void disconnect_push_supplier (CORBA::Environment &); - // The channel is disconnecting. - - void start_generating_events (void); - - void load_schedule_data (ACE_Unbounded_Queue &schedule_data); - - void insert_event_data (CORBA::Any &data, - ACE_Unbounded_Queue_Iterator &schedule_iter); - - void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); -protected: - - void shutdown (void); - // Disconnect from the Event Service. - - // = Event Channel adminstration references. - RtecEventChannelAdmin::EventChannel_var channel_admin_; - RtecEventChannelAdmin::SupplierAdmin_var supplier_admin_; - RtecEventChannelAdmin::ProxyPushConsumer_var proxy_consumer_; - - // = Because we get timeout events in our internal_demo_consumer. - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_; - RtecEventChannelAdmin::ProxyPushSupplier_var proxy_supplier_; - -private: - Navigation navigation_; - Weapons weapons_; - RtecScheduler::handle_t rt_info_; - u_int supplier_id_; - - Internal_Demo_Consumer *internal_demo_consumer_; - Internal_Demo_Supplier *internal_demo_supplier_; -}; - -#endif /* EVENT_SUP_H */ diff --git a/TAO/examples/Simulator/Event_Supplier/MLF.dat b/TAO/examples/Simulator/Event_Supplier/MLF.dat deleted file mode 100644 index 2ab9b47b9af..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/MLF.dat +++ /dev/null @@ -1,72 +0,0 @@ -low_20 1.000000 0.000000 0 500000 180000 180000 -high_20 1.000000 0.000000 0 500000 360000 180000 -low_20 1.000000 0.000000 500000 1000000 680000 180000 -high_20 1.000000 0.000000 500000 1000000 860000 180000 -low_10 1.000000 0.000000 0 1000000 900000 180000 -low_20 1.000000 0.000000 1000000 1500000 1180000 180000 -high_20 1.000000 0.000000 1000000 1500000 1360000 180000 -low_20 1.000000 0.000000 1500000 2000000 1680000 180000 -high_20 1.000000 0.000000 1500000 2000000 1860000 180000 -low_10 1.000000 0.000000 1000000 2000000 1900000 180000 -low_5 1.000000 0.000000 0 2000000 1980000 180000 -low_20 1.000000 0.000000 2000000 2500000 2180000 180000 -high_20 1.000000 0.000000 2000000 2500000 2360000 180000 -low_20 1.000000 0.000000 2500000 3000000 2680000 180000 -high_20 1.000000 0.000000 2500000 3000000 2860000 180000 -low_10 1.000000 0.000000 2000000 3000000 2900000 180000 -low_20 1.000000 0.000000 3000000 3500000 3180000 180000 -high_20 1.000000 0.000000 3000000 3500000 3360000 180000 -low_20 1.000000 0.000000 3500000 4000000 3680000 180000 -high_20 1.000000 0.000000 3500000 4000000 3860000 180000 -low_10 1.000000 0.000000 3000000 4000000 3900000 180000 -low_1 1.000000 0.000000 0 10000000 3960000 180000 -low_20 1.000000 0.000000 4000000 4500000 4180000 180000 -high_20 1.000000 0.000000 4000000 4500000 4360000 180000 -low_20 1.000000 0.000000 4500000 5000000 4680000 180000 -high_20 1.000000 0.000000 4500000 5000000 4860000 180000 -low_10 1.000000 0.000000 4000000 5000000 4900000 180000 -low_20 1.000000 0.000000 5000000 5500000 5180000 180000 -high_20 1.000000 0.000000 5000000 5500000 5360000 180000 -low_20 1.000000 0.000000 5500000 6000000 5680000 180000 -high_20 1.000000 0.000000 5500000 6000000 5860000 180000 -low_10 1.000000 0.000000 5000000 6000000 5900000 180000 -high_1 1.000000 0.000000 0 10000000 5940000 180000 -low_20 1.000000 0.000000 6000000 6500000 6180000 180000 -high_20 1.000000 0.000000 6000000 6500000 6360000 180000 -low_20 1.000000 0.000000 6500000 7000000 6680000 180000 -high_20 1.000000 0.000000 6500000 7000000 6860000 180000 -low_10 1.000000 0.000000 6000000 7000000 6900000 180000 -low_20 1.000000 0.000000 7000000 7500000 7180000 180000 -high_20 1.000000 0.000000 7000000 7500000 7360000 180000 -low_20 1.000000 0.000000 7500000 8000000 7680000 180000 -high_20 1.000000 0.000000 7500000 8000000 7860000 180000 -low_10 1.000000 0.000000 7000000 8000000 7900000 180000 -high_10 1.000000 0.000000 5000000 6000000 7920000 180000 -low_20 1.000000 0.000000 8000000 8500000 8180000 180000 -high_20 1.000000 0.000000 8000000 8500000 8360000 180000 -low_20 1.000000 0.000000 8500000 9000000 8680000 180000 -high_20 1.000000 0.000000 8500000 9000000 8860000 180000 -low_10 1.000000 0.000000 8000000 9000000 8900000 180000 -high_10 1.000000 0.000000 7000000 8000000 9000000 180000 -low_20 1.000000 0.000000 9000000 9500000 9180000 180000 -high_20 1.000000 0.000000 9000000 9500000 9360000 180000 -low_20 1.000000 0.000000 9500000 10000000 9680000 180000 -high_20 1.000000 0.000000 9500000 10000000 9860000 180000 -low_10 1.000000 0.000000 9000000 10000000 9900000 180000 -high_10 1.000000 0.000000 9000000 10000000 10080000 180000 -low_5 1.000000 0.000000 8000000 10000000 10260000 180000 -high_5 1.000000 0.000000 8000000 10000000 10440000 180000 -high_10 1.000000 0.000000 8000000 9000000 10620000 180000 -high_5 1.000000 0.000000 6000000 8000000 10800000 180000 -low_5 1.000000 0.000000 6000000 8000000 10980000 180000 -high_10 1.000000 0.000000 6000000 7000000 11160000 180000 -low_5 1.000000 0.000000 4000000 6000000 11340000 180000 -high_5 1.000000 0.000000 4000000 6000000 11520000 180000 -high_10 1.000000 0.000000 4000000 5000000 11700000 180000 -high_5 1.000000 0.000000 2000000 4000000 11880000 180000 -low_5 1.000000 0.000000 2000000 4000000 12060000 180000 -high_10 1.000000 0.000000 3000000 4000000 12240000 180000 -high_10 1.000000 0.000000 2000000 3000000 12420000 180000 -high_10 1.000000 0.000000 1000000 2000000 12600000 180000 -high_5 1.000000 0.000000 0 2000000 12780000 180000 -high_10 1.000000 0.000000 0 1000000 12960000 180000 diff --git a/TAO/examples/Simulator/Event_Supplier/MUF.dat b/TAO/examples/Simulator/Event_Supplier/MUF.dat deleted file mode 100644 index ac521175070..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/MUF.dat +++ /dev/null @@ -1,72 +0,0 @@ -high_20 1.000000 0.000000 0 500000 180000 180000 -high_10 1.000000 0.000000 0 1000000 360000 180000 -high_20 1.000000 0.000000 500000 1000000 680000 180000 -high_5 1.000000 0.000000 0 2000000 720000 180000 -high_1 1.000000 0.000000 0 10000000 900000 180000 -high_20 1.000000 0.000000 1000000 1500000 1180000 180000 -high_10 1.000000 0.000000 1000000 2000000 1360000 180000 -low_5 1.000000 0.000000 0 2000000 1440000 180000 -high_20 1.000000 0.000000 1500000 2000000 1680000 180000 -low_10 1.000000 0.000000 1000000 2000000 1800000 180000 -low_20 1.000000 0.000000 1500000 2000000 1980000 180000 -high_20 1.000000 0.000000 2000000 2500000 2180000 180000 -high_10 1.000000 0.000000 2000000 3000000 2360000 180000 -high_20 1.000000 0.000000 2500000 3000000 2680000 180000 -high_5 1.000000 0.000000 2000000 4000000 2720000 180000 -low_1 1.000000 0.000000 0 10000000 2880000 180000 -high_20 1.000000 0.000000 3000000 3500000 3180000 180000 -high_10 1.000000 0.000000 3000000 4000000 3360000 180000 -low_5 1.000000 0.000000 2000000 4000000 3420000 180000 -high_20 1.000000 0.000000 3500000 4000000 3680000 180000 -low_10 1.000000 0.000000 3000000 4000000 3780000 180000 -low_20 1.000000 0.000000 3500000 4000000 3960000 180000 -high_20 1.000000 0.000000 4000000 4500000 4180000 180000 -high_10 1.000000 0.000000 4000000 5000000 4360000 180000 -high_20 1.000000 0.000000 4500000 5000000 4680000 180000 -high_5 1.000000 0.000000 4000000 6000000 4720000 180000 -low_20 1.000000 0.000000 3000000 3500000 4860000 180000 -high_20 1.000000 0.000000 5000000 5500000 5180000 180000 -high_10 1.000000 0.000000 5000000 6000000 5360000 180000 -low_5 1.000000 0.000000 4000000 6000000 5400000 180000 -high_20 1.000000 0.000000 5500000 6000000 5680000 180000 -low_10 1.000000 0.000000 5000000 6000000 5760000 180000 -low_20 1.000000 0.000000 5500000 6000000 5940000 180000 -high_20 1.000000 0.000000 6000000 6500000 6180000 180000 -high_10 1.000000 0.000000 6000000 7000000 6360000 180000 -high_20 1.000000 0.000000 6500000 7000000 6680000 180000 -high_5 1.000000 0.000000 6000000 8000000 6720000 180000 -low_20 1.000000 0.000000 5000000 5500000 6840000 180000 -high_20 1.000000 0.000000 7000000 7500000 7180000 180000 -high_10 1.000000 0.000000 7000000 8000000 7360000 180000 -low_5 1.000000 0.000000 6000000 8000000 7380000 180000 -high_20 1.000000 0.000000 7500000 8000000 7680000 180000 -low_10 1.000000 0.000000 7000000 8000000 7740000 180000 -low_20 1.000000 0.000000 7500000 8000000 7920000 180000 -high_20 1.000000 0.000000 8000000 8500000 8180000 180000 -high_10 1.000000 0.000000 8000000 9000000 8360000 180000 -high_20 1.000000 0.000000 8500000 9000000 8680000 180000 -high_5 1.000000 0.000000 8000000 10000000 8720000 180000 -low_20 1.000000 0.000000 7000000 7500000 8820000 180000 -low_5 1.000000 0.000000 8000000 10000000 9000000 180000 -high_20 1.000000 0.000000 9000000 9500000 9180000 180000 -high_10 1.000000 0.000000 9000000 10000000 9360000 180000 -high_20 1.000000 0.000000 9500000 10000000 9680000 180000 -low_10 1.000000 0.000000 9000000 10000000 9720000 180000 -low_20 1.000000 0.000000 9500000 10000000 9900000 180000 -low_20 1.000000 0.000000 9000000 9500000 10080000 180000 -low_10 1.000000 0.000000 8000000 9000000 10260000 180000 -low_20 1.000000 0.000000 8500000 9000000 10440000 180000 -low_20 1.000000 0.000000 8000000 8500000 10620000 180000 -low_20 1.000000 0.000000 6500000 7000000 10800000 180000 -low_10 1.000000 0.000000 6000000 7000000 10980000 180000 -low_20 1.000000 0.000000 6000000 6500000 11160000 180000 -low_10 1.000000 0.000000 4000000 5000000 11340000 180000 -low_20 1.000000 0.000000 4500000 5000000 11520000 180000 -low_20 1.000000 0.000000 4000000 4500000 11700000 180000 -low_20 1.000000 0.000000 2500000 3000000 11880000 180000 -low_10 1.000000 0.000000 2000000 3000000 12060000 180000 -low_20 1.000000 0.000000 2000000 2500000 12240000 180000 -low_20 1.000000 0.000000 1000000 1500000 12420000 180000 -low_20 1.000000 0.000000 500000 1000000 12600000 180000 -low_10 1.000000 0.000000 0 1000000 12780000 180000 -low_20 1.000000 0.000000 0 500000 12960000 180000 diff --git a/TAO/examples/Simulator/Event_Supplier/Makefile b/TAO/examples/Simulator/Event_Supplier/Makefile deleted file mode 100644 index 2f18c752ce0..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -# -# $Id$ -# - -BIN = Event_Sup Event_Con - -BUILD = $(BIN) - - -IDL_SRC = \ - NavWeapC.cpp NavWeapS.cpp - -IDL_HDR = \ - NavWeapC.h - -EVENT_TEST_SRCS= \ - Event_Sup.cpp Event_Con.cpp - -LSRC= \ - $(IDL_SRC) $(EVENT_TEST_SRCS) - -EVENT_SUP_OBJS = NavWeapC.o Event_Sup.o -EVENT_CON_OBJS = NavWeapC.o Event_Con.o - -LDLIBS= -lorbsvcs -lTAO - -#---------------------------------------------------------------------------- -# 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 -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 rules and variables... - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - - -#$(IDL_SRC): NavWeap.idl -# $(TAO_ROOT)/TAO_IDL/tao_idl NavWeap.idl - -#.PRECIOUS:$(IDL_HDR) $(IDL_SRC) - -Event_Sup: $(addprefix $(VDIR),$(EVENT_SUP_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -Event_Con: $(addprefix $(VDIR),$(EVENT_CON_OBJS)) - $(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/TAO/examples/Simulator/Event_Supplier/RMS.dat b/TAO/examples/Simulator/Event_Supplier/RMS.dat deleted file mode 100644 index 5038c140a53..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/RMS.dat +++ /dev/null @@ -1,72 +0,0 @@ -low_20 1.000000 0.000000 0 500000 180000 180000 -high_20 1.000000 0.000000 0 500000 360000 180000 -low_20 1.000000 0.000000 500000 1000000 680000 180000 -high_20 1.000000 0.000000 500000 1000000 860000 180000 -low_10 1.000000 0.000000 0 1000000 900000 180000 -low_20 1.000000 0.000000 1000000 1500000 1180000 180000 -high_20 1.000000 0.000000 1000000 1500000 1360000 180000 -low_20 1.000000 0.000000 1500000 2000000 1680000 180000 -high_20 1.000000 0.000000 1500000 2000000 1860000 180000 -low_10 1.000000 0.000000 1000000 2000000 1900000 180000 -high_10 1.000000 0.000000 0 1000000 1980000 180000 -low_20 1.000000 0.000000 2000000 2500000 2180000 180000 -high_20 1.000000 0.000000 2000000 2500000 2360000 180000 -low_20 1.000000 0.000000 2500000 3000000 2680000 180000 -high_20 1.000000 0.000000 2500000 3000000 2860000 180000 -low_10 1.000000 0.000000 2000000 3000000 2900000 180000 -low_20 1.000000 0.000000 3000000 3500000 3180000 180000 -high_20 1.000000 0.000000 3000000 3500000 3360000 180000 -low_20 1.000000 0.000000 3500000 4000000 3680000 180000 -high_20 1.000000 0.000000 3500000 4000000 3860000 180000 -low_10 1.000000 0.000000 3000000 4000000 3900000 180000 -high_10 1.000000 0.000000 1000000 2000000 3960000 180000 -low_20 1.000000 0.000000 4000000 4500000 4180000 180000 -high_20 1.000000 0.000000 4000000 4500000 4360000 180000 -low_20 1.000000 0.000000 4500000 5000000 4680000 180000 -high_20 1.000000 0.000000 4500000 5000000 4860000 180000 -low_10 1.000000 0.000000 4000000 5000000 4900000 180000 -low_20 1.000000 0.000000 5000000 5500000 5180000 180000 -high_20 1.000000 0.000000 5000000 5500000 5360000 180000 -low_20 1.000000 0.000000 5500000 6000000 5680000 180000 -high_20 1.000000 0.000000 5500000 6000000 5860000 180000 -low_10 1.000000 0.000000 5000000 6000000 5900000 180000 -high_10 1.000000 0.000000 2000000 3000000 5940000 180000 -low_20 1.000000 0.000000 6000000 6500000 6180000 180000 -high_20 1.000000 0.000000 6000000 6500000 6360000 180000 -low_20 1.000000 0.000000 6500000 7000000 6680000 180000 -high_20 1.000000 0.000000 6500000 7000000 6860000 180000 -low_10 1.000000 0.000000 6000000 7000000 6900000 180000 -low_20 1.000000 0.000000 7000000 7500000 7180000 180000 -high_20 1.000000 0.000000 7000000 7500000 7360000 180000 -low_20 1.000000 0.000000 7500000 8000000 7680000 180000 -high_20 1.000000 0.000000 7500000 8000000 7860000 180000 -low_10 1.000000 0.000000 7000000 8000000 7900000 180000 -high_10 1.000000 0.000000 3000000 4000000 7920000 180000 -low_20 1.000000 0.000000 8000000 8500000 8180000 180000 -high_20 1.000000 0.000000 8000000 8500000 8360000 180000 -low_20 1.000000 0.000000 8500000 9000000 8680000 180000 -high_20 1.000000 0.000000 8500000 9000000 8860000 180000 -low_10 1.000000 0.000000 8000000 9000000 8900000 180000 -high_10 1.000000 0.000000 4000000 5000000 9000000 180000 -low_20 1.000000 0.000000 9000000 9500000 9180000 180000 -high_20 1.000000 0.000000 9000000 9500000 9360000 180000 -low_20 1.000000 0.000000 9500000 10000000 9680000 180000 -high_20 1.000000 0.000000 9500000 10000000 9860000 180000 -low_10 1.000000 0.000000 9000000 10000000 9900000 180000 -high_10 1.000000 0.000000 5000000 6000000 10080000 180000 -high_10 1.000000 0.000000 6000000 7000000 10260000 180000 -high_10 1.000000 0.000000 7000000 8000000 10440000 180000 -high_10 1.000000 0.000000 8000000 9000000 10620000 180000 -high_10 1.000000 0.000000 9000000 10000000 10800000 180000 -low_5 1.000000 0.000000 0 2000000 10980000 180000 -low_5 1.000000 0.000000 2000000 4000000 11160000 180000 -low_5 1.000000 0.000000 4000000 6000000 11340000 180000 -low_5 1.000000 0.000000 6000000 8000000 11520000 180000 -low_5 1.000000 0.000000 8000000 10000000 11700000 180000 -high_5 1.000000 0.000000 0 2000000 11880000 180000 -high_5 1.000000 0.000000 2000000 4000000 12060000 180000 -high_5 1.000000 0.000000 4000000 6000000 12240000 180000 -high_5 1.000000 0.000000 6000000 8000000 12420000 180000 -high_5 1.000000 0.000000 8000000 10000000 12600000 180000 -low_1 1.000000 0.000000 0 10000000 12780000 180000 -high_1 1.000000 0.000000 0 10000000 12960000 180000 diff --git a/TAO/examples/Simulator/Event_Supplier/RMS_Dyn.dat b/TAO/examples/Simulator/Event_Supplier/RMS_Dyn.dat deleted file mode 100644 index ac521175070..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/RMS_Dyn.dat +++ /dev/null @@ -1,72 +0,0 @@ -high_20 1.000000 0.000000 0 500000 180000 180000 -high_10 1.000000 0.000000 0 1000000 360000 180000 -high_20 1.000000 0.000000 500000 1000000 680000 180000 -high_5 1.000000 0.000000 0 2000000 720000 180000 -high_1 1.000000 0.000000 0 10000000 900000 180000 -high_20 1.000000 0.000000 1000000 1500000 1180000 180000 -high_10 1.000000 0.000000 1000000 2000000 1360000 180000 -low_5 1.000000 0.000000 0 2000000 1440000 180000 -high_20 1.000000 0.000000 1500000 2000000 1680000 180000 -low_10 1.000000 0.000000 1000000 2000000 1800000 180000 -low_20 1.000000 0.000000 1500000 2000000 1980000 180000 -high_20 1.000000 0.000000 2000000 2500000 2180000 180000 -high_10 1.000000 0.000000 2000000 3000000 2360000 180000 -high_20 1.000000 0.000000 2500000 3000000 2680000 180000 -high_5 1.000000 0.000000 2000000 4000000 2720000 180000 -low_1 1.000000 0.000000 0 10000000 2880000 180000 -high_20 1.000000 0.000000 3000000 3500000 3180000 180000 -high_10 1.000000 0.000000 3000000 4000000 3360000 180000 -low_5 1.000000 0.000000 2000000 4000000 3420000 180000 -high_20 1.000000 0.000000 3500000 4000000 3680000 180000 -low_10 1.000000 0.000000 3000000 4000000 3780000 180000 -low_20 1.000000 0.000000 3500000 4000000 3960000 180000 -high_20 1.000000 0.000000 4000000 4500000 4180000 180000 -high_10 1.000000 0.000000 4000000 5000000 4360000 180000 -high_20 1.000000 0.000000 4500000 5000000 4680000 180000 -high_5 1.000000 0.000000 4000000 6000000 4720000 180000 -low_20 1.000000 0.000000 3000000 3500000 4860000 180000 -high_20 1.000000 0.000000 5000000 5500000 5180000 180000 -high_10 1.000000 0.000000 5000000 6000000 5360000 180000 -low_5 1.000000 0.000000 4000000 6000000 5400000 180000 -high_20 1.000000 0.000000 5500000 6000000 5680000 180000 -low_10 1.000000 0.000000 5000000 6000000 5760000 180000 -low_20 1.000000 0.000000 5500000 6000000 5940000 180000 -high_20 1.000000 0.000000 6000000 6500000 6180000 180000 -high_10 1.000000 0.000000 6000000 7000000 6360000 180000 -high_20 1.000000 0.000000 6500000 7000000 6680000 180000 -high_5 1.000000 0.000000 6000000 8000000 6720000 180000 -low_20 1.000000 0.000000 5000000 5500000 6840000 180000 -high_20 1.000000 0.000000 7000000 7500000 7180000 180000 -high_10 1.000000 0.000000 7000000 8000000 7360000 180000 -low_5 1.000000 0.000000 6000000 8000000 7380000 180000 -high_20 1.000000 0.000000 7500000 8000000 7680000 180000 -low_10 1.000000 0.000000 7000000 8000000 7740000 180000 -low_20 1.000000 0.000000 7500000 8000000 7920000 180000 -high_20 1.000000 0.000000 8000000 8500000 8180000 180000 -high_10 1.000000 0.000000 8000000 9000000 8360000 180000 -high_20 1.000000 0.000000 8500000 9000000 8680000 180000 -high_5 1.000000 0.000000 8000000 10000000 8720000 180000 -low_20 1.000000 0.000000 7000000 7500000 8820000 180000 -low_5 1.000000 0.000000 8000000 10000000 9000000 180000 -high_20 1.000000 0.000000 9000000 9500000 9180000 180000 -high_10 1.000000 0.000000 9000000 10000000 9360000 180000 -high_20 1.000000 0.000000 9500000 10000000 9680000 180000 -low_10 1.000000 0.000000 9000000 10000000 9720000 180000 -low_20 1.000000 0.000000 9500000 10000000 9900000 180000 -low_20 1.000000 0.000000 9000000 9500000 10080000 180000 -low_10 1.000000 0.000000 8000000 9000000 10260000 180000 -low_20 1.000000 0.000000 8500000 9000000 10440000 180000 -low_20 1.000000 0.000000 8000000 8500000 10620000 180000 -low_20 1.000000 0.000000 6500000 7000000 10800000 180000 -low_10 1.000000 0.000000 6000000 7000000 10980000 180000 -low_20 1.000000 0.000000 6000000 6500000 11160000 180000 -low_10 1.000000 0.000000 4000000 5000000 11340000 180000 -low_20 1.000000 0.000000 4500000 5000000 11520000 180000 -low_20 1.000000 0.000000 4000000 4500000 11700000 180000 -low_20 1.000000 0.000000 2500000 3000000 11880000 180000 -low_10 1.000000 0.000000 2000000 3000000 12060000 180000 -low_20 1.000000 0.000000 2000000 2500000 12240000 180000 -low_20 1.000000 0.000000 1000000 1500000 12420000 180000 -low_20 1.000000 0.000000 500000 1000000 12600000 180000 -low_10 1.000000 0.000000 0 1000000 12780000 180000 -low_20 1.000000 0.000000 0 500000 12960000 180000 diff --git a/TAO/examples/Simulator/Event_Supplier/svc.conf b/TAO/examples/Simulator/Event_Supplier/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/examples/Simulator/Event_Supplier/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/examples/Simulator/NavWeap.idl b/TAO/examples/Simulator/NavWeap.idl deleted file mode 100644 index de695b14522..00000000000 --- a/TAO/examples/Simulator/NavWeap.idl +++ /dev/null @@ -1,54 +0,0 @@ -// $Id$ - -// ========================================================================================================= -// -// = FILE -// NavWeap.idl -// -// = DESCRIPTION -// Navigation and Weapon structs for the DOVE/EventService demo. - -// = AUTHOR -// Michael Kircher -// -// ========================================================================================================= - - -struct Navigation { - long position_latitude; - long position_longitude; - unsigned long altitude; - long heading; - long roll; - long pitch; - // common part - double utilization; - double overhead; - unsigned long arrival_time; - unsigned long deadline_time; - unsigned long completion_time; - unsigned long computation_time; -}; - - - -struct Weapons { - unsigned long number_of_weapons; - string weapon1_identifier; - unsigned long weapon1_status; - string weapon2_identifier; - unsigned long weapon2_status; - string weapon3_identifier; - unsigned long weapon3_status; - string weapon4_identifier; - unsigned long weapon4_status; - string weapon5_identifier; - unsigned long weapon5_status; - // common part - double utilization; - double overhead; - unsigned long arrival_time; - unsigned long deadline_time; - unsigned long completion_time; - unsigned long computation_time; -}; diff --git a/TAO/examples/Simulator/README b/TAO/examples/Simulator/README deleted file mode 100644 index 98e3ef15339..00000000000 --- a/TAO/examples/Simulator/README +++ /dev/null @@ -1,178 +0,0 @@ -$Id$ - -Documentation for the Simulator/DOVE demo - -Purpose: To show how the event service can be used to as a media to - transport monitoring events including data. - -Application: The events contain C++ structs with avionics information. - They are supllied by sensors of an avionic and are - consumed by an JAVA applet running on a different machine and/or - location. The collected metrics are displayed in - JAVA Beans. A object called DOVE Management Information - Base keeps track of all sent events. - -Implementation: A C++ Supplier pushes events containing a - navigation or weapons struct to the Event Service. - The Event Service dispatches the events to any number of - Consumers which are implemented in JAVA. The JAVA - consumer extracts the data of the structs and dispatches - it to various Visualization Components. - - -For more informations refer to: - $TAO_ROOT/docs/releasenotes/index.html - - -Requirements: - * C++ compiler - * Java JDK 1,1,x - * ACE/TAO environment, - * Visibroker 3.2 for Java - - -!!RELEASE CHANGES: - - the file make.bat is in this directory just for test purposes. - It is used to switch from the Visibroker environment to the JDK 1.2 - envrionment. So don't worry about it, you won't need it. - - - the file ss has been moved one level up and it got - renamed to "start_services". So use it to start the - naming, scheduling and event service. - - -Parts of the Demo: - - * DOVE Browser (implemented in Java using Visibroker 3.2 for Java) - - * Event Supplier, can be seen as a monitored object, called - DOVE Application (implemented in C++ using TAO) - - * DOVE MIB, storing event data on persistent storage and keeping - track of statistical data (implemented in C++ using TAO) - -Files: - Common: - NavWeap.idl - IDL definition of the Weapons and Navigation struct - README - this readme file - - - Event Supplier: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/Event_Supplier/) - Event_Sup.cpp - Event Supplier - Event_Sup.h - Event Supplier class definition - Makefile - Event Supplier Makefile - (Event_Con.cpp, Event_Con.h - Event Consumer for testing) - svc.conf - helper file - - - DOVEBrowswer: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEBrowser/) - AnswerEvent.java - Having my own Events - AnswerListener.java - Listener for these Events - DataHandler.java - Base class for all Data Handlers - DemoCore.java - Core of the Demo to connect Observables with Observers - DemoObservable.java - Base class for Observables - DoubleVisComp.java - Visualization Component (will be a JavaBean) for Doubles - DOVEBrowser.java - Wrapper around DemoCore - NS_Resolve.java - Resolving the inital reference to the Naming Service - NavWeapDataHandler.java - Specialized Data Handler for Navigation and Weapon data - NavigationVisComp.java - Visualization Component (... JavaBean) for Navigation data - ObservablesDialog.java - Dialog window for connecting Observables with OBservers - Properties.java - constant definitons - PushConsumer.java - Event Service Push Consumer - PushConsumerFactory.java - Factory for the Consumer - Queue.java - Queue for the DoubleVisComp - VisComp.java - Base class for the Visualization Components - WeaponsVisComp.java - Visualization Component for Weapons - - - DOVE MIB: (in directory $TAO_ROOT/orbsvcs/tests/Simulator/DOVEMIB/) - DOVEMIB.[cpp,h] - Core routines, connection to the Event Channel - Node.[cpp,h] - Nodes used by the AnyAnalyser - AnyAnalyser.[cpp,h] - Anaylser for CORBA anys, storing the contained types on - persistent storage - NodeVisitor.h - base class definition of a Visitor - PrintVisistor.[cpp,h] - Able to print a given tree of type nodes, which is - generated by the Anyanalyser - - -Compiling: - Common: - "make sure that the following definition is in the - $TAO_ROOT/orbsvcs/orbsvcs/RtecEventComm.idl" - - struct EventData { - long x; - long y; - any any_value; - }; - - "compile $TAO_ROOT/orbsvcs/orbsvcs" - "compile $TAO_ROOT/orbsvcs/Event_Service" - "compile $TAO_ROOT/orbsvcs/Naming_Service" - "compile $TAO_ROOT/orbsvcs/Scheduling_Service" - - - - Supplier: - - cp ../NavWeap.idl . - - make - - - - - DOVE Browser: - cp ../NavWeap.idl . - cp $TAO_ROOT/orbsvcs/orbsvcs/CosNaming.idl . - cp $TAO_ROOT/orbsvcs/orbsvcs/CosTimeBase.idl . - cp $TAO_ROOT/orbsvcs/orbsvcs/RtecEventChannelAdmin.idl . - cp $TAO_ROOT/orbsvcs/orbsvcs/RtecEventComm.idl . - cp $TAO_ROOT/orbsvcs/orbsvcs/RtecScheduler.idl . - idl2java *.idl - - vbjc *.java - - - DOVE MIB: - cp ../NavWeap.idl . - - make - - -Starting: - Start in the following order on different ORB ports: - * Naming Service - * Scheduling Service - * Event Service - - You can use "start_services" on Unix machines. The - script is located in $TAO_ROOT/orbsvcs/tests. - - Supplier: - Event_Sup -ORBport 10040 -f MLF.dat -m 1000 - - // -m 1000 for 1000 events sent by the supplier - // -f MLF.dat to read scheduling data from this file as input - - - DOVE Browser: - vbj DOVEBrowser - (also supported: vbj DOVEBrowser -ORBnameserviceior ) - - or - - gatekeeper - cd /visigenic/vbroker/lib - jar xf vbjorb.jar - jar xf vbjtools.jar - "setting the Naming Service IOR in the DOVEBrowser.html file" - appletviewer DOVEBrowser.html - - - - DOVE MIB: - DOVEMIB -ORBport 10041 -f myfile -m 100 - - // -m 100 for storing the next 100 events - // -f myfile for the name of the file in which it will be stored diff --git a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp deleted file mode 100644 index 4b226871cff..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.cpp +++ /dev/null @@ -1,220 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// orbsvcs/Concurrecy_Service/Concurrency_Service -// -// = FILENAME -// Concurrency_Service.cpp -// -// = DESCRIPTION -// This class implements a Concurrency_Service object. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "Concurrency_Service.h" - -// Default Constructor. - -Concurrency_Service::Concurrency_Service (void) - : use_naming_service_ (1), - ior_output_file_ (0) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::Concurrency_Service (void)\n")); -} - -// Constructor taking command-line arguments. - -Concurrency_Service::Concurrency_Service (int argc, - char** argv, - CORBA::Environment& _env) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::Concurrency_Service (...)\n")); - this->init (argc, argv, _env); -} - -int -Concurrency_Service::parse_args (void) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::parse_args\n")); - - ACE_Get_Opt get_opts (argc_, argv_, "do:s"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'o': // output the IOR to a file - this->ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (this->ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 's': - this->use_naming_service_ = 0; - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-o] " - "\n", - argv_[0]), - 1); - } - // Indicates sucessfull persing of command line. - return 0; -} - -// Initialize the state of the Concurrency_Service object. - -int -Concurrency_Service::init (int argc, - char **argv, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::init\n")); - if (this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - _env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init_child_poa"), - -1); - TAO_CHECK_ENV_RETURN (_env,-1); - - this->argc_ = argc; - this->argv_ = argv; - - if (this->parse_args ()!=0) - ACE_ERROR_RETURN ((LM_ERROR, - "Could not parse command line\n"), - -1); - CORBA::String_var str = - this->orb_manager_.activate (this->my_concurrency_server_.GetLockSetFactory (), - _env); - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - if (this->ior_output_file_) - { - ACE_OS::fprintf (this->ior_output_file_, "%s", str.in ()); - ACE_OS::fclose (this->ior_output_file_); - } - - if (this->use_naming_service_) - return this->init_naming_service (_env); - - return 0; -} - -int -Concurrency_Service::init_naming_service (CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, "Concurrency_Service::init_naming_service (...)\n")); - CORBA::ORB_var orb; - PortableServer::POA_var child_poa; - - orb = this->orb_manager_.orb (); - child_poa = this->orb_manager_.child_poa (); - - int result = this->my_name_server_.init (orb.in (), - child_poa.in ()); - if (result == -1) - return result; - lockset_factory_ = - this->my_concurrency_server_.GetLockSetFactory ()->_this (_env); - TAO_CHECK_ENV_RETURN (_env, -1); - - CosNaming::Name concurrency_context_name (1); - concurrency_context_name.length (1); - concurrency_context_name[0].id = CORBA::string_dup ("CosConcurrency"); - - this->concurrency_context_ = - this->my_name_server_->bind_new_context (concurrency_context_name, - _env); - TAO_CHECK_ENV_RETURN (_env, -1); - - CosNaming::Name lockset_name (1); - lockset_name.length (1); - lockset_name[0].id = CORBA::string_dup ("LockSetFactory"); - this->concurrency_context_->bind (lockset_name, - lockset_factory_.in (), - _env); - TAO_CHECK_ENV_RETURN (_env, -1); - return 0; -} - -// Run the ORB event loop. - -int -Concurrency_Service::run (CORBA_Environment& _env) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::run (...)\n")); - - if (this->orb_manager_.run (_env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Concurrency_Service::run"), - -1); - return 0; -} - -// Destructor. - -Concurrency_Service::~Concurrency_Service (void) -{ - ACE_DEBUG ((LM_DEBUG, - "Concurrency_Service::~Concurrency_Service (void)\n")); -} - -int -main (int argc, char ** argv) -{ - Concurrency_Service concurrency_service; - - ACE_DEBUG ((LM_DEBUG, - "\n \t Concurrency Service:SERVER \n \n")); - - TAO_TRY - { - if (concurrency_service.init (argc, argv, TAO_TRY_ENV) == -1) - return 1; - else - { - concurrency_service.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - - TAO_ENDTRY; - return 0; -} - diff --git a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsp b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsp deleted file mode 100644 index 360ae034352..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsp +++ /dev/null @@ -1,104 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Concurrency_Service" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Concurrency_Service - 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 "Concurrency_Service.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 "Concurrency_Service.mak"\ - CFG="Concurrency_Service - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Concurrency_Service - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Concurrency_Service - 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)" == "Concurrency_Service - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "Concurrency_Service - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_HAS_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 /pdbtype:sept -# ADD LINK32 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Concurrency_Service - Win32 Release" -# Name "Concurrency_Service - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter ".cpp" -# Begin Source File - -SOURCE=.\Concurrency_Service.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter ".h" -# Begin Source File - -SOURCE=.\Concurrency_Service.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsw b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.dsw deleted file mode 100644 index a9cf51b0f96..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.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: "Concurrency_Service"=.\Concurrency_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.h b/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.h deleted file mode 100644 index 4154e64e5a7..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/Concurrency_Service.h +++ /dev/null @@ -1,101 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// orbsvcs/Concurrency_Service/Concurency_Service -// -// = FILENAME -// Concurrency_Service.h -// -// = DESCRIPTION -// This class implements a subset of the functionality of the -// CORBA Concurrency Service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#if !defined (_CONCURRENCY_SERVICE_H) -#define _CONCURRENCY_SERVICE_H - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "tao/TAO.h" -#include "orbsvcs/Concurrency/Concurrency_Utils.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Concurrency_Service : public TAO_ORB_Manager -{ - // = TITLE - // Defines a class that encapsulates the implementation of the - // concurrency service. - // = DESCRIPTION - // This class uses the TAO_ORB_Manager, the TAO_Naming_Server, and - // the TAO_Concurrency_Server classes to implement a server for - // the concurrency service. -public: - // = Initialization and termination methods. - Concurrency_Service (void); - // Default Constructor. - - Concurrency_Service (int argc, - char **argv, - CORBA::Environment &env); - // Constructor taking the command-line arguments. - - ~Concurrency_Service (void); - // Destructor. - - int init (int argc, - char **argv, - CORBA::Environment &env); - // Initialize the Concurrency Service with the arguments. - - int run (CORBA_Environment &env); - // Run the Concurrency_Service. - -private: - int parse_args (void); - // Parses the commandline arguments. - - int init_naming_service (CORBA::Environment &env); - // Initialize the name server and register the concurency server - // factory with it. Maybe later it will be convinient to register - // the individual lock sets with the naming service. At present the - // clients must keep track of the reference and pass 'by hand' - - int use_naming_service_; - // Flag to tell wheter the naming service will be used. - - FILE *ior_output_file_; - // File to output the concurrency server IOR. - - TAO_ORB_Manager orb_manager_; - // The ORB manager - - TAO_Naming_Server my_name_server_; - // An instance of the name server used for registering the factory - // objects. - - TAO_Concurrency_Server my_concurrency_server_; - // An instance of the concurrency server. - - CosConcurrencyControl::LockSetFactory_var lockset_factory_; - // Factory var to register with the naming service. - - CosNaming::NamingContext_var concurrency_context_; - // Naming context for the concurrency service. - - CosNaming::NamingContext_var naming_context_; - // Naming context for the naming service. - - int argc_; - // Number of commandline arguments. - - char **argv_; - // Commandline arguments. -}; - -#endif /* _CONCURRENCY_SERVICE_H */ diff --git a/TAO/orbsvcs/Concurrency_Service/Makefile b/TAO/orbsvcs/Concurrency_Service/Makefile deleted file mode 100644 index 034bc400b5c..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Concurrency_Service - -SVR_SRCS=Concurrency_Service.cpp - -LDLIBS = -lorbsvcs -lTAO - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -# 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/TAO/orbsvcs/Concurrency_Service/README b/TAO/orbsvcs/Concurrency_Service/README deleted file mode 100644 index 007d4fb7b51..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/README +++ /dev/null @@ -1,129 +0,0 @@ -$Id$ - -This file describes how to run the TAO Concurrency Service and its -accompanying tests. In addition, it describes the locations of the -files that make up the service and tests. For a general description -of the directory structure for the services please consult - - $TAO_ROOT/docs/orbsvcs.html - ----------------------------------------- - -HOW TO RUN THE SERVICE - -The Concurrency Service server runs in a thread-per-connection -concurrency model, which is specified by the svc.conf file. This -model is necessary to enable the server to block in a dedicated -thread, i.e., one for each client. The concurrency service will not -run in the reactive model. - -The server itself is located in the - -$TAO_ROOT/orbsvcs/Concurrency_Service - -directory. - -The server accepts the folowing options: - - usage: ./Concurrency_Service [-d] [-o] - [-d] is the debug option - [-o] outputs the IOR of the lock set factory - to the file - [-s] Prevents the concurency server from using the naming server - -The lock set factory is registered in the naming service in the -CosConcurrency context with the name "LockSetFactory". - ----------------------------------------- - -THE IMPLEMENTATION - -The implementation of the concurrency service objects is located in -the $TAO_ROOT/orbsvcs/orbsvcs/Concurrency directory and consists of -the following files: - - CC_LockSet.{h,cpp} Implementation of the lock set. At present - there is only one implementation of the lock set which - implements multiple possesion semantics for both - transactional (which is not otherwise supported) and - non-transactional clients. Please see the comments in - the CC_LockSet.h file for further details. - - CC_LockSetFactory.{h,cpp} Iplementation of the lock set - factory - - Concurrency_Utils.{h,cpp} Wrapper around the concurrency - server. - -The current implementation does not support transactions. If you'd -like to add support for transactions to TAO please let us know. - ----------------------------------------- - -THE TESTS - -The tests are located in the $TAO_ROOT/orbsvcs/tests/Concurrency -directory. There are two types of tests: - - . A simple test -- which tests that it is possible to create - locks and lock them in all the different lock modes - - . A more extended test which requires two (or more) - processes. - -The client accepts the following options: - - usage: ./CC_client [-b] [-d] - [-c] - [-e] - [-f cc_factory-obj-ref-key-file] - [-k cc-obj-ref-key] [-x] [-s] - - . The [-b] option runs the basic tests. - . The [-c] option runs a test script against the concurrency - service server. This option is described in more detail in - the $TAO_ROOT/orbsvcs/tests/Concurrency/README file. It is - the intent that this type of testing will be used instead of - the [-b] and [-e] tests. These tests are retained for - backwards compatibility. - . The [-d] option is the debug option. - . The [-e] option is for running one of the extended tests. The - format of the argument to the -e option is - where test is the name of the test (at present test = - {1,2,3}) and arg1 and arg2 are arguments to the test. See - the example below. - - . The [-f] option reads the factory IOR from a file. This is - currently not supported. - - . The [-k] option takes the factory IOR as argument on the - commandline. This is currently not supported. - - . The [-x] option tells the server to shut down - gracefully. Currently this has no effect. - - . The [-s] option tells the test not to use the naming - service. This is currently not supported. - ----------------------------------------- - -EXAMPLE TEST RUN - - Window-1> ./Concurrency_Service -d - Window-2> ./CC_client -b - Window-2> ./CC_client -e '1;Name' - Window-2> ./CC_client -e '2;Name' - Window-3> ./CC_client -e '3;Name' - -NOTE: It seems that there is a problem using the naming service the - first time the client is run. This error does not appear if the - environment variable 'NameService' is set to the IOR of the naming - service (the IOR of the naming service is printed when the - Concurrency_Control server is started). - ----------------------------------------- - -CONTACT POINT - -If you have any questions about this service, please contact Torben -Worm at . diff --git a/TAO/orbsvcs/Concurrency_Service/svc.conf b/TAO/orbsvcs/Concurrency_Service/svc.conf deleted file mode 100644 index da10b90ce7a..00000000000 --- a/TAO/orbsvcs/Concurrency_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency thread-per-connection -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp deleted file mode 100644 index 9c6f3a46b3d..00000000000 --- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// $Id$ - -#include "ace/Sched_Params.h" -#include "ace/Get_Opt.h" -#include "tao/corba.h" - -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/Scheduler_Factory.h" - -// This program dumps the results of one scheduling in a C++ file. - -int -main (int argc, char *argv[]) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil(poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil(naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - RtecScheduler::RT_Info_Set_var infos; - -#if defined (__SUNPRO_CC) - // Sun C++ 4.2 warns with the code below: - // Warning (Anachronism): Temporary used for non-const - // reference, now obsolete. - // Note: Type "CC -migration" for more on anachronisms. - // Warning (Anachronism): The copy constructor for argument - // infos of type RtecScheduler::RT_Info_Set_out should take - // const RtecScheduler::RT_Info_Set_out&. - // But, this code is not CORBA conformant, because users should - // not define instances of _out types. - - RtecScheduler::RT_Info_Set_out infos_out (infos); - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos_out, TAO_TRY_ENV); -#else /* ! __SUNPRO_CC */ - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos.out (), TAO_TRY_ENV); -#endif /* ! __SUNPRO_CC */ - - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::dump_schedule (infos.in (), - "Scheduler_Runtime.cpp"); - } - TAO_CATCH (CORBA::SystemException, sys_ex) - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsp b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsp deleted file mode 100644 index adadaf485c2..00000000000 --- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsp +++ /dev/null @@ -1,99 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Dump_Schedule" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Dump_Schedule - 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 "Dump_Schedule.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 "Dump_Schedule.mak" CFG="Dump_Schedule - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Dump_Schedule - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Dump_Schedule - 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)" == "Dump_Schedule - 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 ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ELSEIF "$(CFG)" == "Dump_Schedule - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Dump_Schedule - Win32 Release" -# Name "Dump_Schedule - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Dump_Schedule.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsw b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.dsw deleted file mode 100644 index 7ac8698103e..00000000000 --- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.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: "Dump_Schedule"=.\Dump_Schedule.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/Dump_Schedule/Makefile b/TAO/orbsvcs/Dump_Schedule/Makefile deleted file mode 100644 index 5d969d3f5b0..00000000000 --- a/TAO/orbsvcs/Dump_Schedule/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# $Id$ - -BIN = Dump_Schedule -BUILD = $(BIN) - -DUMP_SRCS = \ - Dump_Schedule.cpp - -LSRC = $(DUMP_SRCS) - -SCHEDULE_OBJS=$(SCHEDULE_SRCS:.cpp=.o) -DUMP_OBJS=$(DUMP_SRCS:.cpp=.o) - -LDLIBS = -lorbsvcs -lTAO -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -Dump_Schedule: $(addprefix $(VDIR),$(DUMP_OBJS)) - $(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/TAO/orbsvcs/Dump_Schedule/svc.conf b/TAO/orbsvcs/Dump_Schedule/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/Dump_Schedule/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Event_Service/Event_Service.cpp b/TAO/orbsvcs/Event_Service/Event_Service.cpp deleted file mode 100644 index c6741ad7f76..00000000000 --- a/TAO/orbsvcs/Event_Service/Event_Service.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// $Id$ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" - -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event/Event_Channel.h" - -const char* service_name = "EventService"; - -int -parse_args (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "n:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'n': - service_name = get_opt.optarg; - break; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "-n service_name " - "\n", - argv[0])); - return -1; - } - } - - return 0; -} - - -int main (int argc, char *argv[]) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (parse_args (argc, argv) == -1) - return 1; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the Naming Service.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - // Register Event_Service with Naming Service. - ACE_EventChannel ec_impl; - - RtecEventChannelAdmin::EventChannel_var ec = - ec_impl._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (ec.in (), TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, "%s; The EC IOR is <%s>\n", str.in (), __FILE__)); - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup (service_name); - naming_context->bind (channel_name, ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "%s; running event service\n", __FILE__)); - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), 1); - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("EC"); - } - TAO_ENDTRY; - - - return 0; -} diff --git a/TAO/orbsvcs/Event_Service/Event_Service.dsp b/TAO/orbsvcs/Event_Service/Event_Service.dsp deleted file mode 100644 index b2cccaa3eee..00000000000 --- a/TAO/orbsvcs/Event_Service/Event_Service.dsp +++ /dev/null @@ -1,147 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Event_Service" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Event_Service - 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 "Event_Service.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 "Event_Service.mak" CFG="Event_Service - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Event_Service - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Event_Service - 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)" == "Event_Service - 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 ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ELSEIF "$(CFG)" == "Event_Service - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Event_Service - Win32 Release" -# Name "Event_Service - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Event_Service.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\BCU.h -# End Source File -# Begin Source File - -SOURCE=.\CORBA_Utils_T.h -# End Source File -# Begin Source File - -SOURCE=.\Debug_Macros.h -# End Source File -# Begin Source File - -SOURCE=.\Dispatching_Modules.h -# End Source File -# Begin Source File - -SOURCE=.\Event_Channel.h -# End Source File -# Begin Source File - -SOURCE=.\Fast_Reactor.h -# End Source File -# Begin Source File - -SOURCE=.\GPlot_File.h -# End Source File -# Begin Source File - -SOURCE=.\Local_ESTypes.h -# End Source File -# Begin Source File - -SOURCE=.\Memory_Pools.h -# End Source File -# Begin Source File - -SOURCE=.\ReactorTask.h -# End Source File -# Begin Source File - -SOURCE=.\RT_Task.h -# End Source File -# Begin Source File - -SOURCE=.\Task_Manager.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/Event_Service/Event_Service.dsw b/TAO/orbsvcs/Event_Service/Event_Service.dsw deleted file mode 100644 index 2b2901a9725..00000000000 --- a/TAO/orbsvcs/Event_Service/Event_Service.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: "Event_Service"=.\Event_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/Event_Service/Makefile b/TAO/orbsvcs/Event_Service/Makefile deleted file mode 100644 index f5531ee6f00..00000000000 --- a/TAO/orbsvcs/Event_Service/Makefile +++ /dev/null @@ -1,327 +0,0 @@ -# -# $Id$ -# - -BIN = Event_Service -BUILD = $(BIN) - -LSRC = \ - Event_Service.cpp \ - -ES_OBJS=$(LSRC:.cpp=.o) - -LDLIBS = -lorbsvcs -lTAO - -#---------------------------------------------------------------------------- -# 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 - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -Event_Service: $(addprefix $(VDIR),$(ES_OBJS)) - $(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. - -.obj/Event_Service.o .obj/Event_Service.so .shobj/Event_Service.o .shobj/Event_Service.so: Event_Service.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.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_Utilities.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Event_Channel.h \ - $(TAO_ROOT)/tao/Timeprobe.h \ - $(ACE_ROOT)/ace/Timeprobe.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Local_ESTypes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ - $(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/RtecEventChannelAdminS.h \ - $(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/Local_ESTypes.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Task_Manager.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/RT_Task.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/RT_Task.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Task_Manager.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/ReactorTask.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Fast_Reactor.h \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_List_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Event_Channel.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/Event_Service/svc.conf b/TAO/orbsvcs/Event_Service/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/Event_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp b/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp deleted file mode 100644 index 8075ddde470..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Criteria_Evaluator.cpp -// -// = DESCRIPTION -// An Evaluator for the CosLifeCycle Criteria -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "Criteria_Evaluator.h" - -Criteria_Evaluator::Criteria_Evaluator (const CosLifeCycle::Criteria &criteria) -: criteria_ (criteria) -{ -} - -Criteria_Evaluator::~Criteria_Evaluator () -{ -} - - - -LifeCycleService::Criteria_Evaluator::SeqNamedValuePair * -Criteria_Evaluator::getInitialization (CORBA::Environment &env) -{ - LifeCycleService::Criteria_Evaluator::SeqNamedValuePair_ptr sequence_ptr = 0; - - CORBA::Any * any_ptr = this->getCriteriaMember ("initialization"); - - if (any_ptr == 0) - { - env.exception (new LifeCycleService::Criteria_Evaluator::NotAvailable ("No initialization member found.\n")); - return 0; - } - - *any_ptr >>= sequence_ptr; - - return sequence_ptr; -} - - -char * -Criteria_Evaluator::getFilter (CORBA::Environment &env) -{ - CORBA::String string; - CORBA::Any value; - CORBA::Any_ptr any_ptr = this->getCriteriaMember ("filter"); - - if (any_ptr == 0) - { - env.exception (new LifeCycleService::Criteria_Evaluator::NotAvailable ("No filter member found.\n")); - return 0; - } - *any_ptr >>= string; - return string; -} - - -CORBA::Any * -Criteria_Evaluator::getCriteriaMember (const CORBA::String member_name) -{ - if (!ACE_OS::strcmp(member_name, "initialization") - && !ACE_OS::strcmp(member_name, "filter") - && !ACE_OS::strcmp(member_name, "logical location") - && !ACE_OS::strcmp(member_name, "preferences")) - return 0; - - for (unsigned int i = 0; i < criteria_.length(); i++) - { - if (ACE_OS::strcmp (member_name, criteria_[i].name) == 0) - { - CORBA::Any_ptr value_ptr; - ACE_NEW_RETURN (value_ptr, - CORBA::Any(criteria_[i].value), - 0); - return value_ptr; - } - } - return 0; -} - diff --git a/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.h b/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.h deleted file mode 100644 index e66ac7b848d..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Criteria_Evaluator.h +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Criteria_Evaluaotr.h -// -// = DESCRIPTION -// An Evaluator for the CosLifeCycle Criteria -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - - -#include "orbsvcs/CosLifeCycleC.h" -#include "orbsvcs/LifeCycleServiceC.h" - -#if !defined (CRITERIA_EVALUATOR_H_H) -#define CRITERIA_EVALUATOR_H_H - -class Criteria_Evaluator// : public LifeCycleService::Criteria_Evaluator -{ - // = TITLE - // - -public: - Criteria_Evaluator (const CosLifeCycle::Criteria & criteria); - ~Criteria_Evaluator (); - - LifeCycleService::Criteria_Evaluator::SeqNamedValuePair * getInitialization (CORBA::Environment &_tao_environment); - - char * getFilter (CORBA::Environment &_tao_environment); - - LifeCycleService::Criteria_Evaluator::SeqNamedValuePair * getLogicalLocation (CORBA::Environment &_tao_environment) - { - return 0; - } - - char * getPreferences (CORBA::Environment &_tao_environment) - { - return 0; - } - -private: - CORBA::Any *getCriteriaMember (const CORBA::String member_name); - - const CosLifeCycle::Criteria &criteria_; -}; - -#endif /* CRITERIA_EVALUATOR_H */ - - - - - - diff --git a/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.cpp b/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.cpp deleted file mode 100644 index a62e3846123..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.cpp +++ /dev/null @@ -1,281 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// Factory_Trader.cpp -// -// = DESCRIPTION -// A colocated instance of the Trading Service, only part of -// the functionality provided is used. This class serves -// as Wrapper around the Trading Service and provides -// smaller interfaces. -// TRADER_AVAILABLE is defined via compiler switch in the Makefile -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "Factory_Trader.h" -#ifdef TRADER_AVAILABLE -#include "orbsvcs/CosTradingC.h" -#endif // TRADER_AVAILABLE - -// This const char * is used for adding a new type to the service repository -// the added types will be subclasses of this. -const char * Factory_Trader::GENERIC_FACTORY_INTERFACE_REPOSITORY_ID = "IDL:CosLifeCycle/GenericFactory:1.0"; - - -Factory_Trader::Factory_Trader () -#ifdef TRADER_AVAILABLE - - : trading_Components_ptr_ (0), - trader_ptr_(0), - support_Attributes_ptr_(0) - -#endif // TRADER_AVAILABLE -{ - -#ifdef TRADER_AVAILABLE - - TAO_TRY - { - // create the trader - this->trader_ptr_ = TAO_Trader_Factory::create_linked_trader (); - this->support_Attributes_ptr_ = &(trader_ptr_->support_attributes ()); - // this pointer is deleted when the trader_ptr is deleted - this->trading_Components_ptr_ = &(trader_ptr_->trading_components ()); - // this pointer is deleted when the trader_ptr is deleted - - // Set the service type repository - support_Attributes_ptr_->type_repos (this->repository_._this (TAO_TRY_ENV)); - TAO_CHECK_ENV; - - // Add the "Factory" type to the repository - this->add_type (); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Factory_Trader constructor: Failed adding a new type.")); - TAO_TRY_ENV.print_exception ("Factory_Trader constructor: Exception.\n"); - } - TAO_ENDTRY; -#endif // TRADER_AVAILABLE -} - -Factory_Trader::~Factory_Trader () -{ -#ifdef TRADER_AVAILABLE - - delete this->trader_ptr_; - -#endif // TRADER_AVAILABLE -} - - -void -Factory_Trader::add_type () -{ -#ifdef TRADER_AVAILABLE - - TAO_TRY - { - // define the new type - CosTradingRepos::ServiceTypeRepository::PropStruct propStruct_name; - propStruct_name.name = CORBA::string_dup ("name"); - propStruct_name.value_type = CORBA::_tc_string; - propStruct_name.mode = CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY; - - CosTradingRepos::ServiceTypeRepository::PropStruct propStruct_location; - propStruct_location.name = CORBA::string_dup ("location"); - propStruct_location.value_type = CORBA::_tc_string; - propStruct_location.mode = CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - - CosTradingRepos::ServiceTypeRepository::PropStruct propStruct_description; - propStruct_description.name = CORBA::string_dup ("description"); - propStruct_description.value_type = CORBA::_tc_string; - propStruct_description.mode = CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - - CosTradingRepos::ServiceTypeRepository::PropStructSeq propStructSeq(3); - propStructSeq.length (3); - propStructSeq[0] = propStruct_name; - propStructSeq[1] = propStruct_location; - propStructSeq[2] = propStruct_description; - - CosTradingRepos::ServiceTypeRepository::ServiceTypeNameSeq superTypeSeq; - CosTradingRepos::ServiceTypeRepository::IncarnationNumber incarnationNumber; - - // Add the new type - incarnationNumber = this->repository_.add_type (CORBA::string_dup("Factory"), - GENERIC_FACTORY_INTERFACE_REPOSITORY_ID, - propStructSeq, - superTypeSeq, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("Factory_Trader::init: User Exception.\n"); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("Factory_Trader::init: System Exception.\n"); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Factory_Trader::init: Failed adding a new type.")); - } - TAO_ENDTRY; - -#endif // TRADER_AVAILABLE -} - - -void -Factory_Trader::export (const char * name, - const char * location, - const char * description, - const CORBA::Object_ptr object_ptr) -{ -#ifdef TRADER_AVAILABLE - - TAO_TRY - { - if (CORBA::is_nil(object_ptr)) - { - ACE_DEBUG ((LM_DEBUG,"Factory_Trader::export: Object pointer is nil, cannot export!\n")); - return; - } - - CosTrading::PropertySeq propertySeq(3); - propertySeq.length (3); - propertySeq[0].name = CORBA::string_dup("name"); - propertySeq[0].value <<= CORBA::string_dup (name); - propertySeq[1].name = CORBA::string_dup("location"); - propertySeq[1].value <<= CORBA::string_dup (location); - propertySeq[2].name = CORBA::string_dup("description"); - propertySeq[2].value <<= CORBA::string_dup (description); - - // get the register interface - CosTrading::Register_ptr register_ptr = this->trading_Components_ptr_->register_if (); - // this pointer is deleted when the trader_ptr is deleted - - // invoke the export method on the Register interface of the Trading Service - register_ptr->export (CORBA::Object::_duplicate (object_ptr), - CORBA::string_dup("Factory"), - propertySeq, - TAO_TRY_ENV); - - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("Factory_Trader::export: User Exception.\n"); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("Factory_Trader::export: System Exception.\n"); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Factory_Trader::export: Failed to export factory.\n")); - } - TAO_ENDTRY; - -#endif // TRADER_AVAILABLE -} - - -CORBA::Object_ptr -Factory_Trader::query (const CORBA::String constraint) -{ -#ifdef TRADER_AVAILABLE - - TAO_TRY - { - CosTrading::Lookup::SpecifiedProps specifiedProps; - specifiedProps._d(CosTrading::Lookup::all); - - // Get some pointers for the out parameters of the call. - CosTrading::OfferSeq_ptr offerSeq_ptr = 0; - CosTrading::OfferIterator_ptr offerIterator_ptr = 0; - CosTrading::PolicyNameSeq_ptr policyNameSeq_ptr = 0; - - // An empty policy sequence - CosTrading::PolicySeq policySeq; - - // Get a reference to the lookup interface - CosTrading::Lookup_ptr lookup_ptr = this->trading_Components_ptr_->lookup_if (); - // this pointer is deleted when the trader_ptr is deleted - - // Invoke the query method on the Lookup Interface. - lookup_ptr->query ("Factory", // Type name - constraint, // Constraint, very important - "", // Preferences - policySeq, // Policy - specifiedProps, // Specified Properties - 1, // Number of wanted results - CosTrading::OfferSeq_out(offerSeq_ptr), // results - CosTrading::OfferIterator_out(offerIterator_ptr), // more results - CosTrading::PolicyNameSeq_out(policyNameSeq_ptr), // Policies - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Initialize - CORBA::Object_ptr object_ptr = 0; - - // Check if an offer was made - if (offerSeq_ptr != 0) - { - // Insert the pointer into the out class - CosTrading::OfferSeq_var offerSeq_var(offerSeq_ptr); - - // We need at least one offer. - if (offerSeq_var->length() >= 1) - { - // now we are all set to read from the sequence the result - object_ptr = CORBA::Object::_duplicate (offerSeq_var[0].reference.in()); - - if (CORBA::is_nil (object_ptr)) - { - ACE_DEBUG ((LM_DEBUG,"Factory_Trader::query: Object reference is nil.\n")); - return 0; - } - else - ACE_DEBUG ((LM_DEBUG,"Factory_Trader::query: Received a proper object reference.\n")); - } - else - ACE_DEBUG ((LM_DEBUG,"Factory_Trader::query: OfferSequence.length is smaller than 1.\n")); - } - return object_ptr; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("Factory_Trader::query: User Exception"); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("Factory_Trader::query: System Exception"); - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "Factory_Trader::query: Failed.\n")); - } - TAO_ENDTRY; - -#else // TRADER_AVAILABLE - - return 0; - -#endif // TRADER_AVAILABLE -} - - diff --git a/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.h b/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.h deleted file mode 100644 index fdfec0d32aa..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Factory_Trader.h +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// -// = FILENAME -// Factory_Trader.cpp -// -// = DESCRIPTION -// Factory Trader for the Generic Factory. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (FACTORY_TRADER_H) -#define FACTORY_TRADER_H - -#include "tao/corba.h" - -#ifdef TRADER_AVAILABLE -#include "orbsvcs/Trader/Trader.h" -#include "orbsvcs/Trader/Service_Type_Repository.h" -#include "orbsvcs/CosLifeCycleC.h" -#endif // TRADER_AVAILABLE - - -class Factory_Trader -{ -public: - Factory_Trader (); - ~Factory_Trader (); - - void add_type (); - // Add a the Factory type to the repository - - void export (const char * name, - const char * location, - const char * description, - const CORBA::Object_ptr object_ptr); - // export a specific factory - - CORBA::Object_ptr query (const CORBA::String constraint); - // query for a specific factory using a constraint - - static const char * GENERIC_FACTORY_INTERFACE_REPOSITORY_ID; -private: - -#ifdef TRADER_AVAILABLE - - TAO_Service_Type_Repository repository_; - TAO_Trader_Factory::TAO_TRADER *trader_ptr_; - TAO_Trading_Components_Impl *trading_Components_ptr_; - TAO_Support_Attributes_Impl *support_Attributes_ptr_; - -#endif // TRADER_AVAILABLE -}; - -#endif // FACTORY_TRADER_H diff --git a/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsp b/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsp deleted file mode 100644 index 2fcd3d0da7a..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsp +++ /dev/null @@ -1,134 +0,0 @@ -# Microsoft Developer Studio Project File - Name="LifeCycle_Service" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=LifeCycle_Service - 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 "LifeCycle_Service.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 "LifeCycle_Service.mak" CFG="LifeCycle_Service - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "LifeCycle_Service - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "LifeCycle_Service - 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)" == "LifeCycle_Service - 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 /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 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 - -!ELSEIF "$(CFG)" == "LifeCycle_Service - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"LifeCycle_Service.exe" /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "LifeCycle_Service - Win32 Release" -# Name "LifeCycle_Service - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "*.cpp" -# Begin Source File - -SOURCE=.\Criteria_Evaluator.cpp -# End Source File -# Begin Source File - -SOURCE=.\Factory_Trader.cpp -# End Source File -# Begin Source File - -SOURCE=.\Life_Cycle_Service.cpp -# End Source File -# Begin Source File - -SOURCE=.\Life_Cycle_Service_Impl.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "*.h" -# Begin Source File - -SOURCE=.\Criteria_Evaluator.h -# End Source File -# Begin Source File - -SOURCE=.\Factory_Trader.h -# End Source File -# Begin Source File - -SOURCE=.\Life_Cycle_Service.h -# End Source File -# Begin Source File - -SOURCE=.\Life_Cycle_Service_Impl.h -# End Source File -# End Group -# Begin Group "Inline Files" - -# PROP Default_Filter "*.i" -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "*.idl" -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsw b/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.dsw deleted file mode 100644 index 4a5e370211f..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/LifeCycle_Service.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: "LifeCycle_Service"=.\LifeCycle_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.cpp b/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.cpp deleted file mode 100644 index 21845595223..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.cpp +++ /dev/null @@ -1,222 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Life_Cycle_Service.cpp -// -// = DESCRIPTION -// The server for the LifeCycleService of the quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "tao/corba.h" -#include "Life_Cycle_Service.h" - -static const char usage [] = "[-? |\n[-O[RBport] ORB port number]]"; - -Life_Cycle_Service_Server::Life_Cycle_Service_Server (void) -{ -} - -Life_Cycle_Service_Server::~Life_Cycle_Service_Server (void) -{ - TAO_TRY - { - // Unbind the Factory Finder. - CosNaming::Name generic_Factory_Name (2); - generic_Factory_Name.length (2); - generic_Factory_Name[0].id = CORBA::string_dup ("LifeCycle_Service"); - this->namingContext_var_->unbind (generic_Factory_Name,TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - } - TAO_ENDTRY; -} - -int -Life_Cycle_Service_Server::init (int argc, - char *argv[], - CORBA::Environment& env) -{ - if (this->orb_manager_.init (argc, - argv, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - -1); - - // Copy them, because parse_args expects them there. - this->argc_ = argc; - this->argv_ = argv; - - this->parse_args (); - - - ACE_NEW_RETURN (this->life_Cycle_Service_Impl_ptr_, - Life_Cycle_Service_Impl(), - -1); - - // Activate the object. - CORBA::String_var str = - this->orb_manager_.activate (this->life_Cycle_Service_Impl_ptr_, - env); - - // Failure while activating the Factory Finder object - // @@ TODO Is this the right way to check this? Shouldn't env - // contain an exception? - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init: Failure while activating the LifeCycle Service Impl.\n"), - -1); - - - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - // Register the LifeCycle Service with the Naming Service. - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, - "Trying to get a reference to the Naming Service.\n")); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_manager_.orb()->resolve_initial_references ("NameService"); - TAO_CHECK_ENV; - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - namingContext_var_ = CosNaming::NamingContext::_narrow (namingObj_var.in (), - TAO_TRY_ENV); - - if (CORBA::is_nil (namingContext_var_.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "Have a proper reference to the Naming Service.\n")); - - CosNaming::Name life_Cycle_Service_Name (1); - life_Cycle_Service_Name.length (1); - life_Cycle_Service_Name[0].id = CORBA::string_dup ("Life_Cycle_Service"); - - namingContext_var_->bind (life_Cycle_Service_Name, - this->life_Cycle_Service_Impl_ptr_->_this(TAO_TRY_ENV), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "Bound the LifeCycle Service to the Naming Context.\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} - - -int -Life_Cycle_Service_Server::run (CORBA::Environment& env) -{ - if (orb_manager_.orb()->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - return 0; -} - - -// Function get_options. - -u_int -Life_Cycle_Service_Server::parse_args (void) -{ - // We need the 'O' in get_opt () because we also want to have ORB - // parameters, they all start with 'O'. - ACE_Get_Opt get_opt (this->argc_, this->argv_, "O?"); - int opt; - - while ((opt = get_opt ()) != EOF) - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - this->argv_[0], usage)); - ACE_OS::exit (0); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - this->argv_[0], char (opt), - this->argv_[0], - usage), - 1); - } - return 0; -} - -// function main - -int -main (int argc, char *argv []) -{ - Life_Cycle_Service_Server life_Cycle_Service_Server; - - ACE_DEBUG ((LM_DEBUG, - "\n\tIDL_LifeCycleService: Life_Cycle_Service_Server \n\n")); - TAO_TRY - { - if (life_Cycle_Service_Server.init (argc, - argv, - TAO_TRY_ENV) == -1) - return 1; - else - { - life_Cycle_Service_Server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} - - diff --git a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.h b/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.h deleted file mode 100644 index d499da18c22..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service.h +++ /dev/null @@ -1,64 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Life_Cycle_Service.h -// -// = DESCRIPTION -// A creation service for objects using the CosLifeCycle GenericFactory. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/TAO.h" -#include "Life_Cycle_Service_Impl.h" - -#if !defined (LIFE_CYCLE_SERVICE_H) -#define IFE_CYCLE_SERVICE_H - -class Life_Cycle_Service_Server -{ - // = TILE - // Server object for the LifeCycle Service - -public: - Life_Cycle_Service_Server (void); - // Default constructor - - ~Life_Cycle_Service_Server (void); - // Destructor - - int init (int argc, - char *argv[], - CORBA::Environment& env); - // Initialize the Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb. - - u_int parse_args (void); - // Parse the passed parameters. - -private: - TAO_ORB_Manager orb_manager_; - // instance of the ORB Manager - - Life_Cycle_Service_Impl *life_Cycle_Service_Impl_ptr_; - // Instance of the creation service - - CosNaming::NamingContext_var namingContext_var_; - // reference to the naming service - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. -}; - -#endif /* LIFE_CYCLE_SERVICE_H */ - diff --git a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.cpp b/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.cpp deleted file mode 100644 index b168e3f3374..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.cpp +++ /dev/null @@ -1,167 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Life_Cycle_Service_Impl.cpp -// -// = DESCRIPTION -// The implementation of a LifeCycle Service GenericFactory. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "orbsvcs/LifeCycleServiceC.h" -#include "Life_Cycle_Service_Impl.h" - - -// Constructor -Life_Cycle_Service_Impl::Life_Cycle_Service_Impl (void) - : factory_trader_ptr_ (0) -{ -} - -// Destructor. -Life_Cycle_Service_Impl::~Life_Cycle_Service_Impl (void) -{ -} - - -CORBA::Boolean -Life_Cycle_Service_Impl::supports (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there) -{ - ACE_UNUSED_ARG (factory_key); - ACE_UNUSED_ARG (_env_there); - return 0; -} - -CORBA::Object_ptr -Life_Cycle_Service_Impl::create_object (const CosLifeCycle::Key &factory_key, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there) -{ - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl:create_object: called.\n")); - // Exceptions are forwarded, not handled !! - - if (factory_trader_ptr_ != 0) - { - Criteria_Evaluator criteria_Evaluator(the_criteria); - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl:create_object: new evaluator.\n")); - - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl:create_object: getFilter will be called.\n")); - - CORBA::String filter = criteria_Evaluator.getFilter (_env_there); - - if (_env_there.exception() != 0) - { - return 0; - } - - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl:create_object: query(%s) will be called.\n",filter)); - - CORBA::Object_ptr genericFactoryObj_ptr = factory_trader_ptr_->query (filter); - - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl:create_object: query was called.\n")); - - if (CORBA::is_nil (genericFactoryObj_ptr)) - ACE_ERROR_RETURN ((LM_ERROR, - "Life_Cycle_Service_Impl::create_object: Factory is nil!\n"), - 0); - else // everyting is ok - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl::create_object: Object reference OK.\n")); - - // Now we have a proper reference to a Generic Factory - // the create_object call will be forwarded to this factory - - - // Check if it is a valid Generic Factory reference - if (CORBA::is_nil (genericFactoryObj_ptr)) - { // throw a NoFactory exception - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - else - { - CORBA::Environment env_here; - - CosLifeCycle::GenericFactory_var genericFactory_var = - CosLifeCycle::GenericFactory::_narrow (genericFactoryObj_ptr, - env_here); - - // see if there is an exception, if yes then throw the NoFactory exception - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - if (CORBA::is_nil (genericFactory_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "Life_Cycle_Service_Impl::create_object: Invalid Generic Factory.\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, "Life_Cycle_Service_Impl::create_object: Generic Factory reference OK.\n")); - - // Now retrieve the Object obj ref corresponding to the key. - CORBA::Object_var object_var = genericFactory_var->create_object (factory_key, - the_criteria, - _env_there); - - ACE_DEBUG ((LM_DEBUG, - "Life_Cycle_Service_Impl::create_object: Forwarded request.\n")); - - if (CORBA::is_nil (object_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "Life_Cycle_Service_Impl::create_object: Null object refeference returned by factory.\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, - "Life_Cycle_Service_Impl::create_object: Return a object reference to a new object.\n")); - - return CORBA::Object::_duplicate (object_var.in()); - } - } - else - { - return 0; - } -} - -void -Life_Cycle_Service_Impl::register_factory (const char * name, - const char * location, - const char * description, - CORBA::Object_ptr object, - CORBA::Environment &_env_there) -{ - if (factory_trader_ptr_ == 0) - { - ACE_NEW (factory_trader_ptr_, Factory_Trader()); - } - // we have an proper reference to the Factory Trader - - // Just forward the call to the factory trader - // Exceptions are not handled here, they are returned - factory_trader_ptr_->export (name, location, description, object); - - ACE_DEBUG ((LM_DEBUG, "Registered a factory with:\n" - " name: %s\n" - " location: %s\n" - " description: %s\n", - name, location, description)); -} - - - - - - - - - - diff --git a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.h b/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.h deleted file mode 100644 index 3d30d38bd56..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Life_Cycle_Service_Impl.h +++ /dev/null @@ -1,63 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Life_Cycle_Service_Impl.h -// -// = DESCRIPTION -// A Life Cycle Service for the Quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "orbsvcs/LifeCycleServiceS.h" -#include "Factory_Trader.h" -#include "Criteria_Evaluator.h" - -#if !defined (LIFE_CYCLE_SERVICE_IMPL_H) -#define LIFE_CYCLE_SERVICE_IMPL_H - -class Life_Cycle_Service_Impl : public POA_LifeCycleService::Life_Cycle_Service -{ - // = TILE - // A CosLifeCycle conforming Generic Factory. - -public: - Life_Cycle_Service_Impl (void); - ~Life_Cycle_Service_Impl (void); - - CORBA::Boolean supports (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there); - // Returns true if the Generic Factory is able to forward a request - // for creating an object described by the . - - CORBA::Object_ptr create_object (const CosLifeCycle::Key &factory_key, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there); - // Returns an object reference to a newly created object, though the - // Generic Factory itself cannot create objects, it will forward the - // request to a more concrete Factory. - - void register_factory (const char * name, - const char * location, - const char * description, - CORBA::Object_ptr object, - CORBA::Environment &_env_there); - // Registers a factory with specified properties - -private: - Factory_Trader *factory_trader_ptr_; -}; - -#endif /* LIFE_CYCLE_SERVICE_IMPL_H */ - - - - - - - - diff --git a/TAO/orbsvcs/LifeCycle_Service/Makefile b/TAO/orbsvcs/LifeCycle_Service/Makefile deleted file mode 100644 index 4d19ee4f082..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/Makefile +++ /dev/null @@ -1,303 +0,0 @@ -# -# $Id$ -# -# =TITLE -# Makefile to create the LifeCycle_Service - - -# needed for the trading service stuff - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # TAO_ROOT - -TAO_IDLFLAGS=-I$(TAO_ROOT)/orbsvcs/orbsvcs - -ifdef trader - -ifndef STL_ROOT - STL_ROOT=/project/doc/irfan/ObjectSpace/SC4.0 -endif # STL_ROOT - -STD=$(STL_ROOT)/ospace/std -STL=$(STL_ROOT)/stl - -include $(STL_ROOT)/config/local.cfg - -CC_INCLUDES += -I$(STD) -CC_INCLUDES += -pta - -CPPFLAGS += \ - -I$(TOOLKIT) \ - $(CC_INCLUDES) \ - $(CC_FLAGS) \ - $(CC_DEFINES) \ - $(CC_EH) \ - $(CC_MT) - - -ifndef exceptions -CPPFLAGS += -DOS_NO_EXCEPTION_SPECIFIER -else -CPPFLAGS += -DOS_STL_ASSERT -endif - -LDFLAGS += -L$(STL_ROOT)/lib - -endif # trader -# end of the trading service stuff - -BIN = Life_Cycle_Service - -# The following lines tell the souce code that the trading -# service is available. - -ifdef trader - -CPPFLAGS += -DTRADER_AVAILABLE - -endif # trader - -BUILD = $(BIN) - - -LIFE_CYCLE_SERVICE_SRCS = \ - Life_Cycle_Service.cpp Life_Cycle_Service_Impl.cpp \ - Factory_Trader.cpp Criteria_Evaluator.cpp - - -LSRC= \ - Life_Cycle_Service.cpp Life_Cycle_Service_Impl.cpp \ - Factory_Trader.cpp Criteria_Evaluator.cpp - -LIFE_CYCLE_SERVICE_OBJS = Life_Cycle_Service.o Life_Cycle_Service_Impl.o \ - Factory_Trader.o Criteria_Evaluator.o - -ifdef trader - -LDLIBS = -lorbsvcs -lospace -lTAO - -else - -LDLIBS = -lorbsvcs -lTAO - -endif - -#---------------------------------------------------------------------------- -# 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 -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 rules and variables... - -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs \ - -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -realclean: clean - -Life_Cycle_Service: $(addprefix $(VDIR),$(LIFE_CYCLE_SERVICE_OBJS)) - $(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. - -.obj/Factory_Trader.o .obj/Factory_Trader.so .shobj/Factory_Trader.o .shobj/Factory_Trader.so: Factory_Trader.cpp Factory_Trader.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/LifeCycle_Service/svc.conf b/TAO/orbsvcs/LifeCycle_Service/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/LifeCycle_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Makefile b/TAO/orbsvcs/Makefile deleted file mode 100644 index d3ec0ee9dbc..00000000000 --- a/TAO/orbsvcs/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = orbsvcs \ - Naming_Service \ - Scheduling_Service \ - Event_Service \ - Dump_Schedule \ - Concurrency_Service \ - LifeCycle_Service \ - 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/TAO/orbsvcs/Naming_Service/Makefile b/TAO/orbsvcs/Naming_Service/Makefile deleted file mode 100644 index 65c22302046..00000000000 --- a/TAO/orbsvcs/Naming_Service/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = Naming_Service - -SVR_SRCS=Naming_Service.cpp - -LDLIBS = -lorbsvcs -lTAO - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -# 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/TAO/orbsvcs/Naming_Service/Naming_Service.cpp b/TAO/orbsvcs/Naming_Service/Naming_Service.cpp deleted file mode 100644 index 81ad934661e..00000000000 --- a/TAO/orbsvcs/Naming_Service/Naming_Service.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// orbsvcs/Naming_Service/Naming_Service -// -// = FILENAME -// Naming_Service.cpp -// -// = DESCRIPTION -// This class implements a Naming_Service object. -// -// = AUTHORS -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#include "Naming_Service.h" - -// Default Constructor. - -Naming_Service::Naming_Service (void) - : ior_output_file_ (0), - pid_file_name_ (0) -{ -} - -// Constructor taking command-line arguments. - -Naming_Service::Naming_Service (int argc, - char* argv[]) - : ior_output_file_ (0), - pid_file_name_ (0) -{ - this->init (argc, argv); -} - -int -Naming_Service::parse_args (int argc, - char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "o:p:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'o': // outputs the naming service ior to a file. - this->ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (this->ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 'p': - this->pid_file_name_ = get_opts.optarg; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - "-NScontextname " - "-o " - "-p " - "\n", - argv [0]), - -1); - } - return 0; -} - -// Initialize the state of the Naming_Service object -int -Naming_Service::init (int argc, - char* argv[]) -{ - int result; - CORBA::ORB_var orb; - PortableServer::POA_var child_poa; - - TAO_TRY - { - this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - orb = this->orb_manager_.orb (); - child_poa = this->orb_manager_.child_poa (); - - result = this->my_naming_server_.init (orb.in (), - child_poa.in (), - argc, - argv); - TAO_CHECK_ENV; - if (result < 0) - return result; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Naming_Service::init"); - return -1; - } - TAO_ENDTRY; - - // Check the non-ORB arguments. - result = this->parse_args (argc, - argv); - - if (result < 0) - return result; - if (this->ior_output_file_ != 0) - { - CORBA::String_var str = - this->my_naming_server_.naming_service_ior (); - ACE_OS::fprintf (this->ior_output_file_, - "%s", - str.in ()); - ACE_OS::fclose (this->ior_output_file_); - } - - if (this->pid_file_name_ != 0) - { - FILE* pidf = fopen (this->pid_file_name_, "w"); - if (pidf != 0) - { - ACE_OS::fprintf (pidf, "%d\n", ACE_OS::getpid ()); - ACE_OS::fclose (pidf); - } - } - return 0; -} - -// Run the ORB event loop - -int -Naming_Service::run (CORBA_Environment& env) -{ - return this->orb_manager_.run (env); -} - -// Destructor. - -Naming_Service::~Naming_Service (void) -{ -} - -int -main (int argc, char* argv[]) -{ - int init_result; - - Naming_Service naming_service; - - init_result = naming_service.init (argc,argv); - if (init_result < 0) - return init_result; - - TAO_TRY - { - naming_service.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("NamingService"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.dsp b/TAO/orbsvcs/Naming_Service/Naming_Service.dsp deleted file mode 100644 index 2635de8e1a1..00000000000 --- a/TAO/orbsvcs/Naming_Service/Naming_Service.dsp +++ /dev/null @@ -1,111 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Naming_Service" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Naming_Service - 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 "Naming_Service.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 "Naming_Service.mak" CFG="Naming_Service - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Naming_Service - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Naming_Service - 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)" == "Naming_Service - 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 ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ELSEIF "$(CFG)" == "Naming_Service - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Naming_Service - Win32 Release" -# Name "Naming_Service - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Naming_Service.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\CosNaming_i.h -# End Source File -# Begin Source File - -SOURCE=.\Naming_Service.h -# End Source File -# Begin Source File - -SOURCE=.\NS_CosNaming.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.dsw b/TAO/orbsvcs/Naming_Service/Naming_Service.dsw deleted file mode 100644 index e324e70ecc8..00000000000 --- a/TAO/orbsvcs/Naming_Service/Naming_Service.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: "Naming_Service"=.\Naming_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/Naming_Service/Naming_Service.h b/TAO/orbsvcs/Naming_Service/Naming_Service.h deleted file mode 100644 index 5cb39adcabe..00000000000 --- a/TAO/orbsvcs/Naming_Service/Naming_Service.h +++ /dev/null @@ -1,67 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// orbsvcs/Naming_Service/Naming_Service -// -// = FILENAME -// Naming_Service.h -// -// = DESCRIPTION -// This class implements the functionality of a Naming_Service. -// -// = AUTHORS -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_NAMING_SERVICE_H) -#define _NAMING_SERVICE_H - -#include "tao/TAO.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Naming_Service -{ - // = TITLE - // Defines a class that encapsulates the implementation of the - // COS Naming Service. - // - // = DESCRIPTION - // This class makes use of the and - // class to implement the COS . -public: - Naming_Service (void); - // Default Constructor. - - Naming_Service (int argc, char *argv[]); - // Constructor taking the command-line arguments. - - int init (int argc, char *argv[]); - // Initialize the Naming Service with the arguments. - - int run (CORBA_Environment& env); - // Run the Naming_Service. - - ~Naming_Service (void); - // Destructor. - -private: - int parse_args (int argc, char *argv[]); - // parses the arguments. - - TAO_ORB_Manager orb_manager_; - // The ORB manager. - - TAO_Naming_Server my_naming_server_; - // Naming Server instance. - - FILE *ior_output_file_; - // File to output the Naming Service IOR. - - const char *pid_file_name_; - // File to output the process id. -}; - -#endif /* _NAMING_SERVICE_H */ diff --git a/TAO/orbsvcs/Naming_Service/README b/TAO/orbsvcs/Naming_Service/README deleted file mode 100644 index 1fa3fe11f0b..00000000000 --- a/TAO/orbsvcs/Naming_Service/README +++ /dev/null @@ -1,76 +0,0 @@ -// $Id$ - -README: -====== - This directory consists of the files implementing the TAO -NamingService. - - The TAO NamingService makes use of IP Multicast to process -requests to the Naming Service. - -To Run: -====== - - % Naming_Service [-ORBport port] [-ORBobjrefstyle url] - [-ORBnameserviceport nsport] - -Arguments: -========== - port - The ORB port - nsport - Multicast port. - -Environment Variables: -===================== - - NameServicePort - Multicast port. - -Sample Run: -========== - - % Naming_Service -ORBport 20000 -ORBobjrefstyle url -ORBnameserviceport 19999 -starting up daemon -opening dynamic service Resource_Factory -did dynamic on Resource_Factory, error = 0 -opening dynamic service Client_Strategy_Factory -did dynamic on Client_Strategy_Factory, error = 0 -opening dynamic service Server_Strategy_Factory -did dynamic on Server_Strategy_Factory, error = 0 -listening as object -The multicast server setup is done. - -NameService Client: -================== - - A client of the TAO Naming Service will use the ORB -resolve_initial_references to resolve the NamingService object. This -will be done using Multicast by default. This behavior can be -overridden by these 2 ways. - - 1. passing the argument -ORBnameserviceior ior. - This ior is got from the output of the Naming_Service from - line 'listening as object '. - - 2. setting the env. variable 'NameService'. - -For example if a client wants to use the Naming_Service from the -sample run it would be like, - - %client -ORBnameserviceior - - -or set the environment variable, - - in a tcsh , - - % setenv NameService - - and then run the client, - - % client <.. client's arguments> - - These methods might be needed in an environment where there is -more than one NamingService to avoid the confusion of a server -registering its object with one NamingService and the client getting -the reply from some other NamingService. - - diff --git a/TAO/orbsvcs/Naming_Service/svc.conf b/TAO/orbsvcs/Naming_Service/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/Naming_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Scheduling_Service/Makefile b/TAO/orbsvcs/Scheduling_Service/Makefile deleted file mode 100644 index 83a40de6d86..00000000000 --- a/TAO/orbsvcs/Scheduling_Service/Makefile +++ /dev/null @@ -1,48 +0,0 @@ -# -# $Id$ -# - -BIN = Scheduling_Service -BUILD = $(BIN) - -SCHEDULE_SRCS = \ - Scheduling_Service.cpp - -LSRC = $(SCHEDULE_SRCS) - -SCHEDULE_OBJS=$(SCHEDULE_SRCS:.cpp=.o) - -LDLIBS = -lorbsvcs -lTAO -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -Scheduling_Service: $(addprefix $(VDIR),$(SCHEDULE_OBJS)) - $(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/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp deleted file mode 100644 index 0a547c047d6..00000000000 --- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" - -#include "orbsvcs/CosNamingC.h" - -#if defined (TAO_USES_STRATEGY_SCHEDULER) -#include "orbsvcs/Sched/Strategy_Scheduler.h" -#endif /* defined (TAO_USES_STRATEGY_SCHEDULER) */ - -#include "orbsvcs/Sched/Config_Scheduler.h" - -const char* service_name = "ScheduleService"; - -int -parse_args (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "n:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'n': - service_name = get_opt.optarg; - break; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "-n service_name " - "\n", - argv[0])); - return -1; - } - } - - return 0; -} - -int main (int argc, char *argv[]) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "", TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (parse_args (argc, argv) != 0) - return 1; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create an Scheduling service servant... - ACE_Config_Scheduler scheduler_impl; - TAO_CHECK_ENV; - - RtecScheduler::Scheduler_var scheduler = - scheduler_impl._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (scheduler.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "The scheduler IOR is <%s>\n", str.in ())); - - // Register the servant with the Naming Context.... - CosNaming::Name schedule_name (1); - schedule_name.length (1); - schedule_name[0].id = CORBA::string_dup (service_name); - naming_context->bind (schedule_name, scheduler.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "%s; running scheduling service\n", __FILE__)); - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), 1); - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("schedule_service"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsp b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsp deleted file mode 100644 index ffb8479c780..00000000000 --- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsp +++ /dev/null @@ -1,112 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Scheduling_Service" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Scheduling_Service - 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 "Scheduling_Service.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 "Scheduling_Service.mak"\ - CFG="Scheduling_Service - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Scheduling_Service - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Scheduling_Service - 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)" == "Scheduling_Service - 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 ".." /I "..\.." /I "..\..\.." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ELSEIF "$(CFG)" == "Scheduling_Service - 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 ".." /I "..\.." /I "..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\orbsvcs" /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Scheduling_Service - Win32 Release" -# Name "Scheduling_Service - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Scheduling_Service.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Config_Scheduler.h -# End Source File -# Begin Source File - -SOURCE=.\Scheduler.h -# End Source File -# Begin Source File - -SOURCE=.\Scheduler_Generic.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsw b/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.dsw deleted file mode 100644 index ab63039796a..00000000000 --- a/TAO/orbsvcs/Scheduling_Service/Scheduling_Service.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: "Scheduling_Service"=.\Scheduling_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/Scheduling_Service/svc.conf b/TAO/orbsvcs/Scheduling_Service/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/Scheduling_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Trading_Service/Makefile b/TAO/orbsvcs/Trading_Service/Makefile deleted file mode 100644 index 93d95364925..00000000000 --- a/TAO/orbsvcs/Trading_Service/Makefile +++ /dev/null @@ -1,45 +0,0 @@ -#-------------------------------------------------------------------------- -# $Id$ -# Build the TAO Trading Service -#-------------------------------------------------------------------------- -#-------------------------------------------------------------------------- -# Local macros -#-------------------------------------------------------------------------- - -BIN = trader - -SVR_SRCS= trader.cpp - -LDLIBS = -lorbsvcs -lTAO - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) - -#-------------------------------------------------------------------------- -# Include macros and targets -#-------------------------------------------------------------------------- - -include $(ACE_ROOT)/include/makeinclude/wrapper_macros.GNU -include $(ACE_ROOT)/include/makeinclude/macros.GNU -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG) - -# 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/TAO/orbsvcs/Trading_Service/svc.conf b/TAO/orbsvcs/Trading_Service/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/Trading_Service/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/Trading_Service/trader.cpp b/TAO/orbsvcs/Trading_Service/trader.cpp deleted file mode 100644 index 4125993570b..00000000000 --- a/TAO/orbsvcs/Trading_Service/trader.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// $Id$ - -// ======================================================================== -// -// = BINARY -// trader -// -// = FILENAME -// trader.cpp -// -// = AUTHOR -// Marina Spivak -// Seth Widoff -// -// ======================================================================= - -#include "tao/corba.h" -#include "ace/Auto_Ptr.h" -#include "orbsvcs/IOR_Multicast.h" -#include "orbsvcs/Trader/Trader.h" -#include "orbsvcs/Trader/Service_Type_Repository.h" - -int -main(int argc, char * const *argv) -{ - TAO_TRY - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create a Service Type Repository and a Trader Object. - TAO_Service_Type_Repository type_repos; - auto_ptr trader = - TAO_Trader_Factory::create_linked_trader (); - TAO_Support_Attributes_Impl& sup_attr = trader->support_attributes (); - TAO_Trading_Components_Impl& trd_comp = trader->trading_components (); - - // Set the service type repository - sup_attr.type_repos (type_repos._this (TAO_TRY_ENV)); - TAO_CHECK_ENV; - -#if defined (ACE_HAS_IP_MULTICAST) - // Get reactor instance from TAO. - ACE_Reactor *reactor = - TAO_ORB_Core_instance ()->reactor (); - - // First, see if the user has given us a multicast port number - // for the name service on the command-line; - u_short port = - TAO_ORB_Core_instance ()->orb_params ()->name_service_port (); - - if (port == 0) - { - const char *port_number = - ACE_OS::getenv ("TradingServicePort"); - - if (port_number != 0) - port = ACE_OS::atoi (port_number); - else - port = TAO_DEFAULT_TRADING_SERVER_REQUEST_PORT; - } - - // The Spec says: return a reference to the Lookup interface - // from the resolve_initial_references method. - CosTrading::Lookup_var lookup = trd_comp.lookup_if (); - CORBA::String_var trading_ior = - orb->object_to_string (lookup.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Instantiate a server that will receive requests for an ior - TAO_IOR_Multicast ior_multicast ((char *) trading_ior.in (), - port, - ACE_DEFAULT_MULTICAST_ADDR, - TAO_SERVICEID_TRADINGSERVICE); - - // Register event handler for the ior multicast. - if (reactor->register_handler (&ior_multicast, - ACE_Event_Handler::READ_MASK) == -1) - ACE_DEBUG ((LM_DEBUG, - "cannot register Event handler\n")); - else - ACE_DEBUG ((LM_DEBUG, - "The multicast server setup is done.\n")); -#else /* ACE_HAS_IP_MULTICAST */ - - // Should dump the IOR somewhere. - -#endif /* ACE_HAS_IP_MULTICAST */ - - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Begin trading! - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("EC"); - } - TAO_ENDTRY; - - return 0; -} - diff --git a/TAO/orbsvcs/default.bld b/TAO/orbsvcs/default.bld deleted file mode 100755 index 505c317883c..00000000000 --- a/TAO/orbsvcs/default.bld +++ /dev/null @@ -1,44 +0,0 @@ -#!build -default: - nobuild - :cx_template_option=noautomatic - :optimize=standard - :optimize=memory - :optimize=loop - :dependency=nodepend - :debuglevel=multi - :cx_template=never - :object_dir=./obj - :sourcedirs=.. - :sourcedirs=../.. - :sourcedirs=/home/ace/ACE_wrappers.latest - :libdirs=../tao - :libdirs=/home/ace/ACE_wrappers.latest/ace - :libraries=tao.a - :libraries=libACE.a - :libraries=/appl/newgreen/vxppc603/ghsbltin.o - :defines=TAO_PLATFORM_SVC_CONF_FILE_NOTSUP - :defines=DEBUG -orbsvcs/orbsvcs.bld - library - :dependency=nodepend -Naming_Service/Naming_Service.bld - program - :dependency=nodepend - :outputname=NamingService - :libdirs=../orbsvcs - :libraries=orbsvcs.a -Event_Service/Event_Service.bld - program - :dependency=nodepend - :libdirs=../orbsvcs - :libraries=orbsvcs.a -Dump_Schedule/Dump_Schedule.bld - program - :dependency=nodepend - :libdirs=../orbsvcs -Scheduling_Service/Scheduling_Service.bld - program - :dependency=nodepend - :libdirs=../orbsvcs - :libraries=orbsvcs.a diff --git a/TAO/orbsvcs/orbsvcs.dsw b/TAO/orbsvcs/orbsvcs.dsw deleted file mode 100644 index 4d27565602a..00000000000 --- a/TAO/orbsvcs/orbsvcs.dsw +++ /dev/null @@ -1,131 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Dump_Schedule"=.\Dump_Schedule\Dump_Schedule.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "EC_Multiple"=.\tests\EC_Multiple\EC_Multiple.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "Event_Latency"=.\tests\Event_Latency\Event_Latency.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "Event_Service"=.\Event_Service\Event_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "LifeCycle_Service"=.\LifeCycle_Service\LifeCycle_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Naming_Service"=.\Naming_Service\Naming_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "Scheduling_Service"=.\Scheduling_Service\Scheduling_Service.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name orbsvcs - End Project Dependency -}}} - -############################################################################### - -Project: "orbsvcs"=.\orbsvcs\orbsvcs.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp deleted file mode 100644 index 9846b8b14dd..00000000000 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.cpp +++ /dev/null @@ -1,801 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// AVStreams_i.cpp -// -// = AUTHOR -// Sumedh Mungee -// -// -// ============================================================================ - -#include "orbsvcs/AV/AVStreams_i.h" - -// ---------------------------------------------------------------------- -// AV_Null_MediaCtrl -// ---------------------------------------------------------------------- -AV_Null_MediaCtrl::AV_Null_MediaCtrl (void) -{ -} - - -// ---------------------------------------------------------------------- -// TAO_Basic_StreamCtrl -// ---------------------------------------------------------------------- - -// Constructor -TAO_Basic_StreamCtrl::TAO_Basic_StreamCtrl (void) -{ -} - -TAO_Basic_StreamCtrl::~TAO_Basic_StreamCtrl (void) -{ -} - -// Stop the transfer of data of the stream -// Empty the_spec means apply operation to all flows -void -TAO_Basic_StreamCtrl::stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - if (CORBA::is_nil (this->stream_endpoint_a_.in ())) - return; - - // Make the upcall into the application - this->stream_endpoint_a_->stop (the_spec, env); -} - -// Start the transfer of data in the stream. -// Empty the_spec means apply operation to all flows -void -TAO_Basic_StreamCtrl::start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - if (CORBA::is_nil (this->stream_endpoint_a_.in ())) - return; - - // Make the upcall into the application - this->stream_endpoint_a_->start (the_spec, env); -} - -// Tears down the stream. This will close the connection, and delete -// the streamendpoint and vdev associated with this stream -// Empty the_spec means apply operation to all flows -void -TAO_Basic_StreamCtrl::destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - if (CORBA::is_nil (this->stream_endpoint_a_.in ())) - return; - - // Make the upcall into the application - this->stream_endpoint_a_->destroy (the_spec, env); -} - -// Changes the QoS associated with the stream -// Empty the_spec means apply operation to all flows -CORBA::Boolean -TAO_Basic_StreamCtrl::modify_QoS (AVStreams::streamQoS &new_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (new_qos); - ACE_UNUSED_ARG (the_spec); - ACE_UNUSED_ARG (env); - return 0; -} - -// Used by StreamEndPoint and VDev to inform StreamCtrl of events. -// E.g., loss of flow, reestablishment of flow, etc.. -void -TAO_Basic_StreamCtrl::push_event (const char *the_event, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\n(%P|%t) Recieved event \"%s\"", - the_event)); - ACE_UNUSED_ARG (env); -} - -// @@ Need to throw not-supported exception here -void -TAO_Basic_StreamCtrl::set_FPStatus (const AVStreams::flowSpec &the_spec, - const char *fp_name, - const CORBA::Any &fp_settings, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (the_spec); - ACE_UNUSED_ARG (fp_name); - ACE_UNUSED_ARG (fp_settings); - ACE_UNUSED_ARG (env); -} - -// @@ Need to throw not-supported exception here -CORBA::Object_ptr -TAO_Basic_StreamCtrl::get_flow_connection (const char *flow_name, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (flow_name); - ACE_UNUSED_ARG (env); - return 0; -} - -// @@ Need to throw not-supported exception here -void -TAO_Basic_StreamCtrl::set_flow_connection (const char *flow_name, - CORBA::Object_ptr flow_connection, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (flow_name); - ACE_UNUSED_ARG (flow_connection); - ACE_UNUSED_ARG (env); -} - -// ---------------------------------------------------------------------- -// TAO_StreamCtrl -// ---------------------------------------------------------------------- - -TAO_StreamCtrl::TAO_StreamCtrl (void) -{ -} - -TAO_StreamCtrl::~TAO_StreamCtrl (void) -{ -} - -// request the two MMDevices to create vdev and stream endpoints. save -// the references returned. - -// The interaction diagram for this method is on page 13 of the spec -CORBA::Boolean -TAO_StreamCtrl::bind_devs (AVStreams::MMDevice_ptr a_party, - AVStreams::MMDevice_ptr b_party, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env) -{ - // Check to see if we have non-nil parties to bind! - if (CORBA::is_nil (a_party) || - CORBA::is_nil (b_party)) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_StreamCtrl::bind_devs: " - "a_party or b_party is null!\n"), - 1); - - // Request a_party to create the endpoint and vdev - CORBA::Boolean met_qos; - CORBA::String_var named_vdev; - - this->stream_endpoint_a_ = - a_party-> create_A (this->_this (env), - this->vdev_a_.out (), - the_qos, - met_qos, - named_vdev.inout (), - the_flows, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_StreamCtrl::create_A: succeeded\n")); - - // Request b_party to create the endpoint and vdev - - this->stream_endpoint_b_ = - b_party-> create_B (this->_this (env), - this->vdev_b_.out (), - the_qos, - met_qos, - named_vdev.inout (), - the_flows, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_StreamCtrl::create_B: succeeded\n")); - - ACE_DEBUG ((LM_DEBUG, - "\nstream_endpoint_b_ = %s", - TAO_ORB_Core_instance ()->orb ()->object_to_string (this->stream_endpoint_b_, - env))); - TAO_CHECK_ENV_RETURN (env, 1); - - // Tell the 2 VDev's about one another - this->vdev_a_->set_peer (this->_this (env), - this->vdev_b_.in (), - the_qos, - the_flows, - env); - - TAO_CHECK_ENV_RETURN (env, 1); - - this->vdev_b_->set_peer (this->_this (env), - this->vdev_a_.in (), - the_qos, - the_flows, - env); - - TAO_CHECK_ENV_RETURN (env, 1); - - - // Now connect the streams together. This will - // establish the connection - this->stream_endpoint_a_->connect (this->stream_endpoint_b_, - the_qos, - the_flows, - env); - TAO_CHECK_ENV_RETURN (env, 1); - return 0; -} - -// Used to establish a connection between two endpoints -// directly, i.e. without a MMDevice -CORBA::Boolean -TAO_StreamCtrl::bind (AVStreams::StreamEndPoint_A_ptr a_party, - AVStreams::StreamEndPoint_B_ptr b_party, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env) -{ - if (CORBA::is_nil (a_party) || - CORBA::is_nil (b_party)) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_StreamCtrl::bind:" - "a_party or b_party null!"), - 1); - - this->stream_endpoint_a_ = a_party; - this->stream_endpoint_b_ = b_party; - // Now connect the streams together - this->stream_endpoint_a_->connect (this->stream_endpoint_b_, - the_qos, - the_flows, - env); - TAO_CHECK_ENV_RETURN (env, 1); - return 0; -} - -void -TAO_StreamCtrl::unbind (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); -} - -void -TAO_StreamCtrl::unbind_party (AVStreams::StreamEndPoint_ptr the_ep, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (the_ep); - ACE_UNUSED_ARG (the_spec); - ACE_UNUSED_ARG (env); -} - -// ---------------------------------------------------------------------- -// TAO_StreamEndPoint -// ---------------------------------------------------------------------- - -TAO_StreamEndPoint::TAO_StreamEndPoint (void) -{ - // this->handle_open (); -} - -// Stop the physical flow of data on the stream -// Empty the_spec --> apply to all flows -void -TAO_StreamEndPoint::stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - // Make the upcall into the app - this->handle_stop (the_spec, env); -} - -// Start the physical flow of data on the stream -// Empty the_spec --> apply to all flows -void -TAO_StreamEndPoint::start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - // Make the upcall into the app - this->handle_start (the_spec, env); -} - -// Close the connection -void -TAO_StreamEndPoint::destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - // Make the upcall into the app - this->handle_destroy (the_spec, env); -} - -// Called by streamctrl, requesting us to call request_connection -// on the responder (to initiate a connection) -CORBA::Boolean -TAO_Server_StreamEndPoint::connect (AVStreams::StreamEndPoint_ptr responder, - AVStreams::streamQoS &qos_spec, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Calling TAO_Server_StreamEndPoint::connect" - " is not compatible with the spec!" - "\n"), - -1); -} - -// Called by our peer endpoint, requesting us to establish -// a connection -CORBA::Boolean -TAO_StreamEndPoint::request_connection (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\n(%P|%t) TAO_StreamEndPoint::request_connection called")); - ACE_DEBUG ((LM_DEBUG, - "\n(%P|%t) TAO_StreamEndPoint::request_connection: " - "flowspec has length = %d" - "and the strings are:", - the_spec.length ())); - for (int i = 0; i < the_spec.length (); i++) - ACE_DEBUG ((LM_DEBUG, - the_spec [i])); - - return 0; -} - -// @@ Need to throw not-supported exception here -CORBA::Boolean -TAO_StreamEndPoint::modify_QoS (AVStreams::streamQoS &new_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env) -{ - return 0; -} - -// @@ Need to throw not-supported exception here -CORBA::Boolean -TAO_StreamEndPoint::set_protocol_restriction (const AVStreams::protocolSpec &the_pspec, - CORBA::Environment &env) -{ - return 0; -} - -void -TAO_StreamEndPoint::disconnect (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -void -TAO_StreamEndPoint::set_FPStatus (const AVStreams::flowSpec &the_spec, - const char *fp_name, - const CORBA::Any &fp_settings, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -CORBA::Object_ptr -TAO_StreamEndPoint::get_fep (const char *flow_name, - CORBA::Environment &env) -{ - return 0; -} - -// @@ Need to throw not-supported exception here -char * -TAO_StreamEndPoint::add_fep (CORBA::Object_ptr the_fep, - CORBA::Environment &env) -{ - return 0; -} - -// @@ Need to throw not-supported exception here -void -TAO_StreamEndPoint::remove_fep (const char *fep_name, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -void -TAO_StreamEndPoint::set_negotiator (AVStreams::Negotiator_ptr new_negotiator, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -void -TAO_StreamEndPoint::set_key (const char *flow_name, - const encryption_key & the_key, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -void -TAO_StreamEndPoint::set_source_id (CORBA::Long source_id, - CORBA::Environment &env) -{ -} - -TAO_StreamEndPoint::~TAO_StreamEndPoint (void) -{ - this->handle_close (); -} - -// ---------------------------------------------------------------------- -// TAO_Client_StreamEndPoint -// ---------------------------------------------------------------------- - -TAO_Client_StreamEndPoint::TAO_Client_StreamEndPoint (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_Client_StreamEndPoint::TAO_Client_StreamEndPoint: created\n")); -} - -CORBA::Boolean -TAO_Client_StreamEndPoint::connect (AVStreams::StreamEndPoint_ptr responder, - AVStreams::streamQoS &qos_spec, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - AVStreams::flowSpec flow_spec (the_spec); - this->handle_preconnect (flow_spec); - - // Use the base class implementation of connect - responder->request_connection (this->_this (env), - 0, - qos_spec, - flow_spec, - env); - - TAO_CHECK_ENV_RETURN (env,CORBA::B_FALSE); - - // Make the upcall to the app - return this->handle_postconnect (flow_spec); - - -} - - -// @@ Need to throw not-supported exception here -CORBA::Boolean -TAO_Client_StreamEndPoint::multiconnect (AVStreams::streamQoS &the_qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 0; -} - -// @@ Need to throw not-supported exception here -CORBA::Boolean -TAO_Client_StreamEndPoint::connect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env) -{ - return 0; -} - -// @@ Need to throw not-supported exception here -void -TAO_Client_StreamEndPoint::disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, - const AVStreams::flowSpec &theSpec, - CORBA::Environment &env) -{ -} - -// @@ Need to throw not-supported exception here -TAO_Client_StreamEndPoint::~TAO_Client_StreamEndPoint (void) -{ -} - -// ---------------------------------------------------------------------- -// TAO_Server_StreamEndPoint -// ---------------------------------------------------------------------- - -TAO_Server_StreamEndPoint::TAO_Server_StreamEndPoint (void) -{ - ACE_DEBUG ((LM_DEBUG, - "\n(%P|%t) TAO_Server_StreamEndPoint::TAO_Server_StreamEndPoint: created")); -} - -CORBA::Boolean -TAO_Server_StreamEndPoint::request_connection (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env) - -{ - // Use the base class implementation of request_connection - TAO_StreamEndPoint::request_connection (initiator, - is_mcast, - qos, - the_spec, - env); - - TAO_CHECK_ENV_RETURN (env,CORBA::B_FALSE); - // Make the upcall to the app - return this->handle_connection_requested (the_spec, - env); - -} -CORBA::Boolean -TAO_Server_StreamEndPoint::multiconnect (AVStreams::streamQoS &the_qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 0; -} - -TAO_Server_StreamEndPoint::~TAO_Server_StreamEndPoint (void) -{ -} - -// ---------------------------------------------------------------------- -// TAO_VDev -// ---------------------------------------------------------------------- - -TAO_VDev::TAO_VDev (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_VDev::TAO_VDev: created\n")); -} - -// StreamCtrl will call this to give us a reference to itself, and to -// our peer vdev.. -CORBA::Boolean -TAO_VDev::set_peer (AVStreams::StreamCtrl_ptr the_ctrl, - AVStreams::VDev_ptr the_peer_dev, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_VDev::set_peer: called")); - - CORBA::String_var ior = TAO_ORB_Core_instance ()->orb ()->object_to_string (the_peer_dev, - env); - - TAO_CHECK_ENV_RETURN (env, - CORBA::B_FALSE); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) TAO_VDev::set_peer: my peer is %s\n", - ior.in ())); - - CORBA::Any anyval; - anyval <<= ior.in (); - this->define_property ("Related_VDev", - anyval, - env); - - TAO_CHECK_ENV_RETURN (env, - CORBA::B_FALSE); - - this->streamctrl_ = the_ctrl; - this->peer_ = the_peer_dev; - - CORBA::Any_ptr anyptr; - CORBA::String media_ctrl_ior; - anyptr = this->peer_->get_property_value ("Related_MediaCtrl", - env); - TAO_CHECK_ENV_RETURN (env,CORBA::B_TRUE); - - if (anyptr != 0) - { - *anyptr >>= media_ctrl_ior; - ACE_DEBUG ((LM_DEBUG,"The Media Control IOR is %s\n", - media_ctrl_ior)); - } - CORBA::Object_ptr media_ctrl_obj = - TAO_ORB_Core_instance ()->orb ()->string_to_object - (media_ctrl_ior,env); - TAO_CHECK_ENV_RETURN (env, CORBA::B_FALSE); - - CORBA::Boolean result = - this->set_media_ctrl (media_ctrl_obj,env); - TAO_CHECK_ENV_RETURN (env,CORBA::B_FALSE); - - return result; -} - -CORBA::Boolean -TAO_VDev::set_media_ctrl (CORBA::Object_ptr media_ctrl, - CORBA::Environment &env) -{ - return CORBA::B_TRUE; -} - -// @@ Need to throw not-supported exception here -CORBA::Boolean -TAO_VDev::set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, - AVStreams::MCastConfigIf_ptr a_mcastconfigif, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 0; -} - -void -TAO_VDev::configure (const CosPropertyService::Property &the_config_mesg, - CORBA::Environment &env) -{ -} - -void -TAO_VDev::set_format (const char *flowName, - const char *format_name, - CORBA::Environment &env) -{ -} - -void -TAO_VDev::set_dev_params (const char *flowName, - const CosPropertyService::Properties &new_params, - CORBA::Environment &env) -{ -} - -CORBA::Boolean -TAO_VDev::modify_QoS (AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 0; -} - -TAO_VDev::~TAO_VDev (void) -{ -} - -// ---------------------------------------------------------------------- -// TAO_MMDevice -// ---------------------------------------------------------------------- - - -TAO_MMDevice::TAO_MMDevice (TAO_AV_Endpoint_Strategy *endpoint_strategy) - : endpoint_strategy_ (endpoint_strategy) -{ -} - -// create a streamctrl which is colocated with me, use that streamctrl -// to bind the peer_device with me. -AVStreams::StreamCtrl_ptr -TAO_MMDevice ::bind (AVStreams::MMDevice_ptr peer_device, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out is_met, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ -#if 0 - TAO_TRY - { - TAO_StreamCtrl *stream_ctrl = new TAO_StreamCtrl (); - if (stream_ctrl == 0) - return 0; - stream_ctrl->bind_devs (peer_device, - AVStreams::StreamCtrl::_duplicate - (this->_this (TAO_TRY_ENV)), - the_qos, - the_spec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - return stream_ctrl; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; -#endif - return 0; -} - -AVStreams::StreamCtrl_ptr -TAO_MMDevice::bind_mcast (AVStreams::MMDevice_ptr first_peer, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out is_met, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 0; -} - -AVStreams::StreamEndPoint_A_ptr -TAO_MMDevice::create_A (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - AVStreams::StreamEndPoint_A_ptr ptr; - if (this->endpoint_strategy_->create_A (ptr, - the_vdev, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error in create_A\n"), - 0); - - TAO_CHECK_ENV_RETURN (env, 0); - - return ptr; -} - - -AVStreams::StreamEndPoint_B_ptr -TAO_MMDevice::create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - AVStreams::StreamEndPoint_B_ptr ptr; - if (this->endpoint_strategy_->create_B (ptr, - the_vdev, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error in create_B\n"), - 0); - - TAO_CHECK_ENV_RETURN (env, 0); - - return ptr; -} - -void -TAO_MMDevice::destroy (AVStreams::StreamEndPoint_ptr the_ep, - const char *vdev_name, - CORBA::Environment &env) -{ -} - -// need to throw notsupported exception -char * -TAO_MMDevice::add_fdev (CORBA::Object_ptr the_fdev, - CORBA::Environment &env) -{ - return 0; -} - -// need to throw notsupported exception -CORBA::Object_ptr -TAO_MMDevice::get_fdev (const char *flow_name, - CORBA::Environment &env) -{ - return 0; -} - -// need to throw notsupported exception -void -TAO_MMDevice::remove_fdev (const char *flow_name, - CORBA::Environment &env) -{ -} - -TAO_MMDevice::~TAO_MMDevice (void) -{ -} - diff --git a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h b/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h deleted file mode 100644 index 97faeb77d38..00000000000 --- a/TAO/orbsvcs/orbsvcs/AV/AVStreams_i.h +++ /dev/null @@ -1,488 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// AVStreams_i.h -// -// = AUTHOR -// Sumedh Mungee -// -// -// ============================================================================ - -#if !defined (AVSTREAMS_I_H) -#define AVSTREAMS_I_H - -#include "orbsvcs/orbsvcs_export.h" -#include "orbsvcs/CosPropertyServiceS.h" -#include "orbsvcs/AVStreamsS.h" -#include "orbsvcs/Property/CosPropertyService_i.h" -#include "ace/Process.h" -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/AV/Endpoint_Strategy.h" -#include "orbsvcs/Null_MediaCtrlS.h" - -class TAO_ORBSVCS_Export AV_Null_MediaCtrl - : public virtual POA_Null_MediaCtrl -{ -public: - AV_Null_MediaCtrl (void); -}; - -class TAO_ORBSVCS_Export TAO_Basic_StreamCtrl - : public virtual POA_AVStreams::Basic_StreamCtrl -// = DESCRIPTION -// Base class for StreamCtrl, implements basic stream start -// and stop functionality -{ - public: - TAO_Basic_StreamCtrl (void); - // Default Constructor - - virtual void stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Stop the transfer of data of the stream - // Empty the_spec means apply operation to all flows - - virtual void start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Start the transfer of data in the stream. - // Empty the_spec means apply operation to all flows - - virtual void destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Tears down the stream. This will close the connection, and delete - // the streamendpoint and vdev associated with this stream - // Empty the_spec means apply operation to all flows - - virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Changes the QoS associated with the stream - // Empty the_spec means apply operation to all flows - - virtual void push_event (const char *the_event, - CORBA::Environment &env); - // Used by StreamEndPoint and VDev to inform StreamCtrl of events. - // E.g., loss of flow, reestablishment of flow, etc.. - - virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, - const char *fp_name, - const CORBA::Any &fp_settings, - CORBA::Environment &env); - // Used to control the flow protocol parameters. - - virtual CORBA::Object_ptr get_flow_connection (const char *flow_name, - CORBA::Environment &env); - // Not implemented in the light profile, will raise the notsupported - // exception - - virtual void set_flow_connection (const char *flow_name, - CORBA::Object_ptr flow_connection, - CORBA::Environment &env); - // Not implemented in the light profile, will raise the notsupported - // exception - - virtual ~TAO_Basic_StreamCtrl (void); - // Destructor - - protected: - - AVStreams::VDev_var vdev_a_; - AVStreams::VDev_var vdev_b_; - // The Virtual Devices for this stream - - AVStreams::StreamEndPoint_A_var stream_endpoint_a_; - AVStreams::StreamEndPoint_B_var stream_endpoint_b_; - // The Endpoints for this stream -}; - -class TAO_ORBSVCS_Export TAO_StreamCtrl - : public virtual POA_AVStreams::StreamCtrl, - public virtual TAO_Basic_StreamCtrl -// = DESCRIPTION -// Implementation the A/V StreamCtrl class. this class -// is used to control the stream. It should be subclassed -// by applications that want to provide more control features. -{ -public: - TAO_StreamCtrl (void); - // Default Constructor - - virtual CORBA::Boolean bind_devs (AVStreams::MMDevice_ptr a_party, - AVStreams::MMDevice_ptr b_party, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env); - // Establish a stream between a_party and b_party, - // with qos the_qos, and for the flows in the_flows - // if the_flows is empty, bind all the flows - // Causes a connection to be established between the StreamEndpoints. - // Returns success/failure - - virtual CORBA::Boolean bind (AVStreams::StreamEndPoint_A_ptr a_party, - AVStreams::StreamEndPoint_B_ptr b_party, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env); - // Establish a connection between two streamendpoints. This can - // be used if the streamendpoints have been created independent of - // a MMDevice - - virtual void unbind_party (AVStreams::StreamEndPoint_ptr the_ep, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Unbind the_ep from the stream. Empty the_spec means apply to all flows. - - virtual void unbind (CORBA::Environment &env); - // unbind the stream. Same effect as Basic_StreamCtrl::destroy () - - virtual ~TAO_StreamCtrl (void); - // Destructor - -}; - - -class TAO_ORBSVCS_Export TAO_Base_StreamEndPoint -// = DESCRIPTION -// Base class for the A/V StreamEndPoint class. this class -// is used to control the stream. It should be subclassed -// by applications that want to provide more control features. -{ - -public: - - virtual int handle_open (void) = 0; - // called when streamendpoint is instantiated - - virtual int handle_close (void) = 0; - // called when streamendpoint is being destructed - - virtual int handle_stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) = 0; - // Application needs to define this - - virtual int handle_start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) = 0; - // Application needs to define this - - - virtual int handle_destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) = 0; - // Application needs to define this -}; - -class TAO_ORBSVCS_Export TAO_Client_Base_StreamEndPoint - : public virtual TAO_Base_StreamEndPoint -{ -public: - virtual CORBA::Boolean handle_preconnect (AVStreams::flowSpec &the_spec) = 0; - // Application needs to define this - - virtual CORBA::Boolean handle_postconnect (AVStreams::flowSpec &the_spec) = 0; - // Application needs to define this -}; - -class TAO_ORBSVCS_Export TAO_Server_Base_StreamEndPoint - : public virtual TAO_Base_StreamEndPoint -{ -public: - virtual CORBA::Boolean handle_connection_requested (AVStreams::flowSpec &the_spec, - CORBA::Environment &env) = 0; - // Application needs to define this -}; - -class TAO_ORBSVCS_Export TAO_StreamEndPoint - : public virtual POA_AVStreams::StreamEndPoint, // The POA class - public virtual TAO_Base_StreamEndPoint -{ - // = DESCRIPTION - // The Stream EndPoint. Used to implement one endpoint of a stream - // that implements the transport layer. -public: - TAO_StreamEndPoint (void); - // Constructor - - virtual void stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Stop the stream. Empty the_spec means, for all the flows - - virtual void start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Start the stream, Empty the_spec means, for all the flows - - virtual void destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Destroy the stream, Empty the_spec means, for all the flows - - - virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, - AVStreams::streamQoS &qos_spec, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) = 0; - // Called by StreamCtrl. responder is the peer to connect to - - virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by the peer StreamEndPoint. The flow_spec indicates the - // flows (which contain transport addresses etc.) - - virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &new_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env); - // Change the transport qos on a stream - - virtual CORBA::Boolean set_protocol_restriction (const AVStreams::protocolSpec &the_pspec, - CORBA::Environment &env); - // Used to restrict the set of protocols - - virtual void disconnect (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // disconnect the flows - - virtual void set_FPStatus (const AVStreams::flowSpec &the_spec, - const char *fp_name, - const CORBA::Any &fp_settings, - CORBA::Environment &env); - // Used to control the flow - - virtual CORBA::Object_ptr get_fep (const char *flow_name, - CORBA::Environment &env); - // Not implemented in the light profile, throws notsupported - - virtual char * add_fep (CORBA::Object_ptr the_fep, - CORBA::Environment &env); - // Not implemented in the light profile, throws notsupported - - virtual void remove_fep (const char *fep_name, - CORBA::Environment &env); - // Not implemented in the light profile, throws notsupported - - virtual void set_negotiator (AVStreams::Negotiator_ptr new_negotiator, - CORBA::Environment &env); - // Used to "attach" a negotiator to the endpoint - - virtual void set_key (const char *flow_name, - const AVStreams::encryption_key & the_key, - CORBA::Environment &env); - // Used for public key encryption. - - virtual void set_source_id (CORBA::Long source_id, - CORBA::Environment &env); - // Used to set a unique id for packets sent by this streamendpoint - - virtual ~TAO_StreamEndPoint (void); - // Destructor - -}; - -class TAO_ORBSVCS_Export TAO_Client_StreamEndPoint : - public virtual POA_AVStreams::StreamEndPoint_A, - public virtual TAO_StreamEndPoint, - public virtual TAO_Client_Base_StreamEndPoint -{ - // = DESCRIPTION - // The "A" side of a streamendpoint -public: - TAO_Client_StreamEndPoint (void); - // Constructor - - virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, - AVStreams::streamQoS &qos_spec, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by StreamCtrl. responder is the peer to connect to - - virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Used for ATM-style multicast - - virtual CORBA::Boolean connect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_flows, - CORBA::Environment &env); - // Used for ATM-style multicast - - virtual void disconnect_leaf (AVStreams::StreamEndPoint_B_ptr the_ep, - const AVStreams::flowSpec &theSpec, - CORBA::Environment &env); - // Used to remove a multicast leaf - - virtual ~TAO_Client_StreamEndPoint (void); - // Destructor - -}; - -class TAO_ORBSVCS_Export TAO_Server_StreamEndPoint : - public virtual POA_AVStreams::StreamEndPoint_B, - public virtual TAO_StreamEndPoint, - public virtual TAO_Server_Base_StreamEndPoint // Abstract interface -{ - // = DESCRIPTION - // The "B" side of a streamendpoint -public: - TAO_Server_StreamEndPoint (void); - // Constructor - - virtual CORBA::Boolean connect (AVStreams::StreamEndPoint_ptr responder, - AVStreams::streamQoS &qos_spec, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - - virtual CORBA::Boolean request_connection (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by the peer StreamEndPoint. The flow_spec indicates the - // flows (which contain transport addresses etc.) - - virtual CORBA::Boolean multiconnect (AVStreams::streamQoS &the_qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Used for internet-style multicast - - virtual ~TAO_Server_StreamEndPoint (void); - // Destructor -}; - -class TAO_ORBSVCS_Export TAO_VDev - :public virtual TAO_PropertySet, - public virtual POA_AVStreams::VDev -// = DESCRIPTION -// Implements the VDev interface. One of these is created per connection, -// and represents device-specific parameters -{ - public: - TAO_VDev (void); - // Default Constructor - - virtual CORBA::Boolean set_peer (AVStreams::StreamCtrl_ptr the_ctrl, - AVStreams::VDev_ptr the_peer_dev, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called to tell the vdev who the streamctrl, peer vdev is - - virtual CORBA::Boolean set_Mcast_peer (AVStreams::StreamCtrl_ptr the_ctrl, - AVStreams::MCastConfigIf_ptr a_mcastconfigif, - AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Used to set the streamctrl and multicast device - - virtual void configure (const CosPropertyService::Property &the_config_mesg, - CORBA::Environment &env); - // Called by the peer VDev to configure the device (catch all) - - virtual void set_format (const char *flowName, - const char *format_name, - CORBA::Environment &env); - // Used to set a format on a flowname - - virtual void set_dev_params (const char *flowName, - const CosPropertyService::Properties &new_params, - CORBA::Environment &env); - // Used to set device parameters - - virtual CORBA::Boolean modify_QoS (AVStreams::streamQoS &the_qos, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called to change QoS of the device - - virtual ~TAO_VDev (void); - // Destructor - - protected: - virtual CORBA::Boolean set_media_ctrl (CORBA::Object_ptr media_ctrl, - CORBA::Environment &env); - // hook called after set_peer is done to set the media ctrl of the peer vdev. - private: - AVStreams::StreamCtrl_var streamctrl_; - // My stream controller - - AVStreams::VDev_var peer_; - // My peer -}; - -class TAO_AV_Endpoint_Strategy; - -class TAO_ORBSVCS_Export TAO_MMDevice - : public virtual TAO_PropertySet, - public virtual POA_AVStreams::MMDevice -// = DESCRIPTION -// Implements a factory to create Endpoints and VDevs -{ - protected: - - TAO_AV_Endpoint_Strategy *endpoint_strategy_; - - public: - - TAO_MMDevice (TAO_AV_Endpoint_Strategy *endpoint_strategy_); - // Constructor - - virtual AVStreams::StreamCtrl_ptr bind (AVStreams::MMDevice_ptr peer_device, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out is_met, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Can be used to request the MMDevice to create a new StreamCtrl, - // and call bind_devs on it - - virtual AVStreams::StreamCtrl_ptr bind_mcast (AVStreams::MMDevice_ptr first_peer, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out is_met, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Multicast bind - - virtual AVStreams::StreamEndPoint_A_ptr create_A (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by StreamCtrl to create a "A" type streamandpoint and vdev - - virtual AVStreams::StreamEndPoint_B_ptr create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by StreamCtrl to create a "B" type streamandpoint and vdev - - virtual void destroy (AVStreams::StreamEndPoint_ptr the_ep, - const char *vdev_name, - CORBA::Environment &env); - // Remove the StreamEndPoint and the related vdev - - virtual char * add_fdev (CORBA::Object_ptr the_fdev, - CORBA::Environment &env); - // Not supported in the light profile, raises notsupported - - virtual CORBA::Object_ptr get_fdev (const char *flow_name, - CORBA::Environment &env); - // Not supported in the light profile, raises notsupported - - virtual void remove_fdev (const char *flow_name, - CORBA::Environment &env); - // Not supported in the light profile, raises notsupported - - virtual ~TAO_MMDevice (void); - // Destructor -}; -#endif /* AVSTREAMS_I_H */ diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp deleted file mode 100644 index 5ad6d36d92a..00000000000 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.cpp +++ /dev/null @@ -1,891 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// Endpoint_Strategy.cpp -// -// = AUTHOR -// Sumedh Mungee -// -// -// ============================================================================ - -#include "orbsvcs/AV/Endpoint_Strategy.h" - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Strategy -// ---------------------------------------------------------------------- - -// Constructor -TAO_AV_Endpoint_Strategy::TAO_AV_Endpoint_Strategy (void) -{ -} - -// The base class defines the "failure" case, so that unless the -// subclasses override this, the call will fail. This is done so that -// subclasses need only define the calls that they want to support, -// and the remaining calls will fail automagically -int -TAO_AV_Endpoint_Strategy::create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error creating A endpoint\n"), - -1); -} - -// The base class defines the "failure" case, so that unless the -// subclasses override this, the call will fail. This is done so that -// subclasses need only define the calls that they want to support, -// and the remaining calls will fail automagically -int -TAO_AV_Endpoint_Strategy::create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error creating B endpoint\n"), - -1); -} - - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Process_Strategy -// ---------------------------------------------------------------------- - -// Constructor -TAO_AV_Endpoint_Process_Strategy::TAO_AV_Endpoint_Process_Strategy (ACE_Process_Options *process_options) - : process_options_ (process_options) -{ -} - -// Spawns the process, and waits for it to finish booting. -// Then uses bind_to_naming_service, get_stream_endpoint, and get_vdev -// to get the object references to the various objects created in the -// child -int -TAO_AV_Endpoint_Process_Strategy::activate (void) -{ - ACE_Process process; - - // Create a new process to contain this endpoint - pid_t pid = process.spawn (*this->process_options_); - - // Process creation failed - if (pid == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) ACE_Process:: spawn failed: %p\n", - "spawn"), - -1); - - // Create a unique semaphore name, using my hostname, and pid. - char sem_str [BUFSIZ]; - char host [MAXHOSTNAMELEN]; - ACE_OS::hostname (host, - sizeof host); - - // create a unique semaphore name - ::sprintf (sem_str, - "%s:%s:%d", - "TAO_AV_Process_Semaphore", - host, - pid); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) semaphore is %s\n", - sem_str)); - // Create the semaphore - ACE_Process_Semaphore semaphore (0, // 0 means that the - // semaphore is locked initially - sem_str); - - // wait until the child finishes booting - while (1) - { - if (semaphore.acquire () == -1) - { - // See if my child process is still alive -- if not, return an error - if (ACE_OS::kill (pid, - 0) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Process_Strategy: Process being waited on died unexpectedly.\n"), - -1); - // if we were not interrupted due to a EINTR, break - if (errno != EINTR) - break; - } - else - break; - } - - // The job of the semaphore is done, remove it. - if (semaphore.remove () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) semaphore remove failed: %p\n", - "remove"), - -1); - - TAO_TRY - { - // Get ourselves a Naming service - this->bind_to_naming_service (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Get the stream endpoint created by the child from the naming service - this->get_stream_endpoint (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Get the Vdev created by the child from the naming service - this->get_vdev (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Endpoint_Process_Strategy::activate"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// Get ourselves a Naming service reference -int -TAO_AV_Endpoint_Process_Strategy::bind_to_naming_service (CORBA::Environment &env) -{ - if (CORBA::is_nil (this->naming_context_.in ()) == CORBA::B_FALSE) - return 0; - - CORBA::Object_var naming_obj = - TAO_ORB_Core_instance ()->orb ()->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Get the VDev created in the child process from the namingservice -int -TAO_AV_Endpoint_Process_Strategy::get_vdev (CORBA::Environment &env) -{ - // Create the name - CosNaming::Name VDev_Name (1); - VDev_Name.length (1); - VDev_Name [0].id = CORBA::string_dup - ("VDev"); - - // Get the CORBA::Object - CORBA::Object_var vdev = - this->naming_context_->resolve (VDev_Name, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Narrow it - this->vdev_ = - AVStreams::VDev::_narrow (vdev.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Check if valid - if (CORBA::is_nil (this->vdev_)) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve Stream_Endpoint_B in Naming service <%s>\n"), - -1); - return 0; -} - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Process_Strategy_A -// ---------------------------------------------------------------------- - -// Constructor -TAO_AV_Endpoint_Process_Strategy_A::TAO_AV_Endpoint_Process_Strategy_A (ACE_Process_Options *process_options) - : TAO_AV_Endpoint_Process_Strategy (process_options) -{ -} - -// the "A" type endpoint creator -int -TAO_AV_Endpoint_Process_Strategy_A::create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - // use the baseclass activate - if (this->activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_AV_Endpoint_Process_Strategy: Error in activate ()\n"), - -1); - - // return the object references - stream_endpoint = this->stream_endpoint_a_; - vdev = this->vdev_; - return 0; - -} - -// Gets the stream endpoint object reference from the naming service -int -TAO_AV_Endpoint_Process_Strategy_A::get_stream_endpoint (CORBA::Environment &env) -{ - // Create the name - CosNaming::Name Stream_Endpoint_A_Name (1); - - Stream_Endpoint_A_Name.length (1); - Stream_Endpoint_A_Name [0].id = CORBA::string_dup - ("Stream_Endpoint_A"); - - // Get the CORBA::Object - CORBA::Object_var stream_endpoint_a = - this->naming_context_->resolve (Stream_Endpoint_A_Name, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Narrow the reference - this->stream_endpoint_a_ = - AVStreams::StreamEndPoint_A::_narrow (stream_endpoint_a.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Check for validity - if (CORBA::is_nil (this->stream_endpoint_a_)) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve Stream_Endpoint_A in Naming service <%s>\n"), - -1); - return 0; -} - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Process_Strategy_B -// ---------------------------------------------------------------------- - -// Constructor -TAO_AV_Endpoint_Process_Strategy_B::TAO_AV_Endpoint_Process_Strategy_B (ACE_Process_Options *process_options) - : TAO_AV_Endpoint_Process_Strategy (process_options) -{ -} - -// Creates and returns a "B" type endpoint -int -TAO_AV_Endpoint_Process_Strategy_B::create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - if (this->activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_AV_Endpoint_Process_Strategy: Error in activate ()\n"), - -1); - - stream_endpoint = this->stream_endpoint_b_; - vdev = this->vdev_; - return 0; - -} - -// Gets the B type stream_endpoint from the Naming service -int -TAO_AV_Endpoint_Process_Strategy_B::get_stream_endpoint (CORBA::Environment &env) -{ - // Create the name - CosNaming::Name Stream_Endpoint_B_Name (1); - - Stream_Endpoint_B_Name.length (1); - Stream_Endpoint_B_Name [0].id = CORBA::string_dup - ("Stream_Endpoint_B"); - - // Get the CORBA::Object reference - CORBA::Object_var stream_endpoint_b = - this->naming_context_->resolve (Stream_Endpoint_B_Name, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Narrow the reference - this->stream_endpoint_b_ = - AVStreams::StreamEndPoint_B::_narrow (stream_endpoint_b.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Check for validity - if (CORBA::is_nil (this->stream_endpoint_b_)) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve Stream_Endpoint_B in Naming service <%s>\n"), - -1); - return 0; -} -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Reactive_Strategy -// ---------------------------------------------------------------------- - -// Constructor -template -TAO_AV_Endpoint_Reactive_Strategy ::TAO_AV_Endpoint_Reactive_Strategy (TAO_ORB_Manager *orb_manager) - : orb_manager_ (orb_manager) -{ -} - -// Create, activate the objects with the POA -template -int -TAO_AV_Endpoint_Reactive_Strategy ::activate (void) -{ - TAO_TRY - { - this->activate_stream_endpoint (TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG,"TAO_AV_Endpoint_Reactive_Strategy::activated stream_endpoint\n")); - - this->activate_vdev (TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG,"TAO_AV_Endpoint_Reactive_Strategy::activated vdev\n")); - - this->activate_mediactrl (TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG,"TAO_AV_Endpoint_Reactive_Strategy::activated mediactrl\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Endpoint_Reactive_Strategy::activate"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -// Activate VDev into the POA -template -int -TAO_AV_Endpoint_Reactive_Strategy ::activate_vdev (CORBA::Environment &env) -{ - // Bridge pattern. Allow subclasses to override this behavior - T_VDev *vdev = 0; - if (this->make_vdev (vdev) == -1) - return -1; - - // Put the object in the POA - this->orb_manager_->activate (vdev, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Save the object reference, so that create_A can return it - this->vdev_ = vdev->_this (env); - TAO_CHECK_ENV_RETURN (env, -1); - - - return 0; -} - -// Activate the media_controller -template -int -TAO_AV_Endpoint_Reactive_Strategy ::activate_mediactrl (CORBA::Environment &env) -{ - // Bridge pattern. Subclasses can override this - T_MediaCtrl *media_ctrl = 0; - if (this->make_mediactrl (media_ctrl) == -1) - return -1; - - // Put the object in the POA - this->orb_manager_->activate (media_ctrl, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Associate the media controller object reference with the vdev, as per the OMG spec - CORBA::Any anyval; - anyval <<= this->orb_manager_->orb ()->object_to_string (media_ctrl->_this (env), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - this->vdev_->define_property ("Related_MediaCtrl", - anyval, - env); - - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Bridge method -template -int -TAO_AV_Endpoint_Reactive_Strategy::make_stream_endpoint (T_StreamEndpoint *&stream_endpoint) -{ - ACE_NEW_RETURN (stream_endpoint, - T_StreamEndpoint, - -1); - return 0; -} - -// Bridge method -template -int -TAO_AV_Endpoint_Reactive_Strategy::make_vdev (T_VDev *&vdev) -{ - ACE_NEW_RETURN (vdev, - T_VDev, - -1); - return 0; -} - -// Bridge method -template -int -TAO_AV_Endpoint_Reactive_Strategy::make_mediactrl (T_MediaCtrl *&media_ctrl) -{ - ACE_NEW_RETURN (media_ctrl, - T_MediaCtrl, - -1); - return 0; -} - - -// ---------------------------------------------------------------------- - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Reactive_Strategy_A -// ---------------------------------------------------------------------- -// Constructor -template -TAO_AV_Endpoint_Reactive_Strategy_A ::TAO_AV_Endpoint_Reactive_Strategy_A (TAO_ORB_Manager *orb_manager) - : TAO_AV_Endpoint_Reactive_Strategy (orb_manager) -{ -} - -// Creates an "A" type streamendpoint, and a vdev and returns the -// object references -template -int -TAO_AV_Endpoint_Reactive_Strategy_A::create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - if (this->activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_AV_Endpoint_Reactive_Strategy_A: Error in activate ()\n"), - -1); - - stream_endpoint = this->stream_endpoint_a_; - vdev = this->vdev_; - return 0; - -} - -// Put the stream_endpoint into the POA -template -int -TAO_AV_Endpoint_Reactive_Strategy_A ::activate_stream_endpoint (CORBA::Environment &env) -{ - T_StreamEndpoint *stream_endpoint_a = 0; - - // Use the bridge method - if (this->make_stream_endpoint (stream_endpoint_a) == -1) - return -1; - - this->orb_manager_->activate (stream_endpoint_a, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Save the object references, so that create_a can return them - this->stream_endpoint_a_ = stream_endpoint_a->_this (env); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// ---------------------------------------------------------------------- -// TAO_AV_Endpoint_Reactive_Strategy_B -// ---------------------------------------------------------------------- - -// Constructor -template -TAO_AV_Endpoint_Reactive_Strategy_B ::TAO_AV_Endpoint_Reactive_Strategy_B (TAO_ORB_Manager *orb_manager) - : TAO_AV_Endpoint_Reactive_Strategy (orb_manager) -{ -} - -// Activate stream_endpoint -template -int -TAO_AV_Endpoint_Reactive_Strategy_B ::activate_stream_endpoint (CORBA::Environment &env) -{ - T_StreamEndpoint *stream_endpoint_b = 0; - - if (this->make_stream_endpoint (stream_endpoint_b) == -1) - return -1; - this->orb_manager_->activate (this->stream_endpoint_b_, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - this->stream_endpoint_b_ = stream_endpoint_b->_this (env); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Returns a "B" type stream_endpoint and a vdev -template -int -TAO_AV_Endpoint_Reactive_Strategy_B::create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env) -{ - if (this->activate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) TAO_AV_Endpoint_Reactive_Strategy_B: Error in activate ()\n"), - -1); - - stream_endpoint = this->stream_endpoint_b_; - vdev = this->vdev_; - return 0; - -} - -// ---------------------------------------------------------------------- -// TAO_AV_Child_Process -// ---------------------------------------------------------------------- - -// Constructor -template -TAO_AV_Child_Process ::TAO_AV_Child_Process () - : stream_endpoint_name_ (0) -{ -} - -// Initializes the ORB, activates the objects, and release the semaphore -template -int -TAO_AV_Child_Process ::init (int argc, char **argv) -{ - TAO_TRY - { - // create the objects and activate them in the poa - this->activate_objects (argc, - argv, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Get ourselves a naming_service object reference - this->bind_to_naming_service (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Register the vdev with the naming service - this->register_vdev (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // register the stream_endpoing with the naming_service - this->register_stream_endpoint (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Child_Process"); - return -1; - } - TAO_ENDTRY; - - // release the semaphore the parent is waiting on - if (this->release_semaphore () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error releasing semaphores\n"), - -1); - - return 0; -} - -// initializes the orb, and activates the objects -template -int -TAO_AV_Child_Process ::activate_objects (int argc, - char **argv, - CORBA::Environment &env) -{ - // initialize the orb - this->orb_manager_.init (argc, - argv, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // bridge method to make a new stream endpoint - if (this->make_stream_endpoint (this->stream_endpoint_) == -1) - return -1; - - // bridge method to make a new vdev - if (this->make_vdev (this->vdev_) == -1) - return -1; - - // bridge method to make a new media controller - if (this->make_mediactrl (this->media_ctrl_) == -1) - return -1; - - // activate the stream_endpoint - this->orb_manager_.activate (this->stream_endpoint_, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - - // activate the vdev - this->orb_manager_.activate (this->vdev_, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // activate the media controller - this->orb_manager_.activate (this->media_ctrl_, - env); - - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; - -} - -// Bind to the namingservice -template -int -TAO_AV_Child_Process ::bind_to_naming_service (CORBA::Environment &env) -{ - CORBA::Object_var naming_obj = - this->orb_manager_.orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, - -1); - - return 0; -} - -// register the vdev with the naming service -template -int -TAO_AV_Child_Process ::register_vdev (CORBA::Environment &env) -{ - // create the name - this->vdev_name_.length (1); - this->vdev_name_ [0].id = CORBA::string_dup ("VDev"); - - // make the media controller a property of the vdev - CORBA::Any media_ctrl_property; - media_ctrl_property <<= this->orb_manager_.orb ()->object_to_string (this->media_ctrl_->_this (env), - env); - this->vdev_->define_property ("Related_MediaCtrl", - media_ctrl_property, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - // Register the vdev with the naming server. - this->naming_context_->bind (this->vdev_name_, - this->vdev_->_this (env), - env); - - // If the object was already there, replace the older reference - // with this one - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (this->vdev_name_, - this->vdev_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env, -1); - } - - return 0; -} - -// run the orb event look -template -int -TAO_AV_Child_Process ::run (ACE_Time_Value *tv) -{ - int result; - TAO_TRY - { - result = this->orb_manager_.run (TAO_TRY_ENV,tv); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("orb_manager_.run ()"); - return -1; - } - TAO_ENDTRY; - return result; -} - -// release the semaphore the parent is waiting on -template -int -TAO_AV_Child_Process ::release_semaphore () -{ - char sem_str [BUFSIZ]; - char host [MAXHOSTNAMELEN]; - pid_t pid; - - // make the semaphore name - if ((pid = ACE_OS::getpid ()) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Unable to get my pid!\n"), - -1); - - ACE_OS::hostname (host, - sizeof host); - - sprintf (sem_str, - "%s:%s:%d", - "TAO_AV_Process_Semaphore", - host, - pid); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) semaphore is %s\n", - sem_str)); - - // Release the lock on which the server is waiting - ACE_Process_Semaphore semaphore (0, // 0 means that the semaphore is - // initially locked - sem_str); - - if (semaphore.release () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error releasing semaphore %s: %p\n", - sem_str, - "semaphore.release ()"), - -1); - - return 0; -} - -// register the stream_endpoint with the naming service -template -int -TAO_AV_Child_Process ::register_stream_endpoint (CORBA::Environment &env) -{ - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %s:%d\n", __FILE__, __LINE__)); - // Create a name for the video control object - // subclasses can define their own name for the streamendpoint - // Register the stream endpoint object with the naming server. - this->naming_context_->bind (this->stream_endpoint_name_, - this->stream_endpoint_->_this (env), - env); - - // if the name was already there, replace the reference with the new one - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (this->stream_endpoint_name_, - this->stream_endpoint_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env, -1); - } - - return 0; -} - -// Bridge method to make a new stream_endpoint -template -int -TAO_AV_Child_Process::make_stream_endpoint (T_StreamEndpoint *&stream_endpoint) -{ - ACE_NEW_RETURN (stream_endpoint, - T_StreamEndpoint, - -1); - return 0; -} - -// Bridge method to make a new vdev -template -int -TAO_AV_Child_Process::make_vdev (T_VDev *&vdev) -{ - ACE_NEW_RETURN (vdev, - T_VDev, - -1); - return 0; -} - -// Bridge method to make a new media controller -template -int -TAO_AV_Child_Process::make_mediactrl (T_MediaCtrl *&media_ctrl) -{ - ACE_DEBUG ((LM_DEBUG,"(%P|%t) TAO_AV_Child_Process::make_mediactrl ()\n")); - ACE_NEW_RETURN (media_ctrl, - T_MediaCtrl, - -1); - return 0; -} - -// %% its not clear whether we should be deleting the objects, since -// if the application overrides the make_mediactrl methods etc., -// then, we may not own these objects. -// For now, we dont delete the objects, since they exist for the -// lifetime of the process anyway -template -TAO_AV_Child_Process ::~TAO_AV_Child_Process () -{ - // Remove the names from the naming service - if (this->naming_context_ == 0) - return; - TAO_TRY - { - this->naming_context_->unbind (this->stream_endpoint_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->naming_context_->unbind (this->vdev_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Endpoint_Process_Strategy::activate"); - } - TAO_ENDTRY; - -// if (this->stream_endpoint_ != 0) -// delete this->stream_endpoint_; -// if (this->vdev_ != 0) -// delete this->vdev_; -// if (this->media_ctrl_ != 0) -// delete this->media_ctrl_; -} - -// ---------------------------------------------------------------------- -// TAO_AV_Child_Process_A -// ---------------------------------------------------------------------- - -// Define the name of the stream_endpoint, as used to register with -// the naming service -template -TAO_AV_Child_Process_A ::TAO_AV_Child_Process_A () -{ - this->stream_endpoint_name_.length (1); - this->stream_endpoint_name_ [0].id = CORBA::string_dup ("Stream_Endpoint_A"); -} - -// ---------------------------------------------------------------------- -// TAO_AV_Child_Process_B -// ---------------------------------------------------------------------- - -// Define the name of the stream_endpoint, as used to register with -// the naming service -template -TAO_AV_Child_Process_B ::TAO_AV_Child_Process_B () -{ - this->stream_endpoint_name_.length (1); - this->stream_endpoint_name_ [0].id = CORBA::string_dup ("Stream_Endpoint_B"); -} diff --git a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h b/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h deleted file mode 100644 index 1975ae60aaa..00000000000 --- a/TAO/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h +++ /dev/null @@ -1,324 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// Endpoint_Strategy.h -// -// = AUTHOR -// Sumedh Mungee -// -// -// ============================================================================ - -#if !defined (TAO_AV_ENDPOINT_STRATEGY_H) -#define TAO_AV_ENDPOINT_STRATEGY_H - -#include "orbsvcs/AV/AVStreams_i.h" -#include "tao/TAO.h" - -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Strategy -// = DESCRIPTION -// Base class to define various endpoint strategies -// used by the MMDevice to create the Endpoint and Vdev -{ -public: - TAO_AV_Endpoint_Strategy (void); - // Constructor - - virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an A type endpoint - - virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an B type endpoint - - protected: - AVStreams::StreamEndPoint_A_ptr stream_endpoint_a_; - // The "A" stream endpoint - - AVStreams::StreamEndPoint_B_ptr stream_endpoint_b_; - // The "B" stream endpoint - - AVStreams::VDev_ptr vdev_; - // The vdev - -}; - -// ---------------------------------------------------------------------- - -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Process_Strategy - : public TAO_AV_Endpoint_Strategy -// = DESCRIPTION -// Process-based strategy for creating endpoints -// Abstract base class. -{ - public: - TAO_AV_Endpoint_Process_Strategy (ACE_Process_Options *process_options); - // Constructor. The process_options contain the name and arguments - // for the process to be created - - virtual int activate (void); - // creates a new child process, and waits on a semaphore - // until the child process has finished creating the endpoints - - protected: - virtual int bind_to_naming_service (CORBA::Environment &env); - // Bind to the naming service - - virtual int get_stream_endpoint (CORBA::Environment &env) = 0; - // Get the object reference for the newly created stream - // endpoint (which will be in the child process) - // Subclasses will define the functionality for this - - virtual int get_vdev (CORBA::Environment &env); - // Get the Vdev object reference for the newly created - // endpoint - - CosNaming::NamingContext_var naming_context_; - // Naming context - - private: - ACE_Process_Options *process_options_; - // Name and arguments for the process to be created -}; - - -// ---------------------------------------------------------------------- - -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Process_Strategy_A - : public TAO_AV_Endpoint_Process_Strategy -// = DESCRIPTION -// Process-based strategy to create "A" type endpoints -{ - public: - TAO_AV_Endpoint_Process_Strategy_A (ACE_Process_Options *process_options); - // Constructor - - protected: - virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Creates an "A" type stream endpoint, and a vdev - - virtual int get_stream_endpoint (CORBA::Environment &env); - // Gets the "A" type stream endpoint from the child process - -}; - -// ---------------------------------------------------------------------- - -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Process_Strategy_B - : public TAO_AV_Endpoint_Process_Strategy -// = DESCRIPTION -// Process-based strategy to create "B" type endpoints -{ - public: - TAO_AV_Endpoint_Process_Strategy_B (ACE_Process_Options *process_options); - // Constructor - - protected: - virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Creates a "B" type stream endpoint, and a vdev - - - virtual int get_stream_endpoint (CORBA::Environment &env); - // Gets the object reference of the "B" type streamendpoint. - -}; -// ---------------------------------------------------------------------- -template -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Reactive_Strategy - : public TAO_AV_Endpoint_Strategy -// = DESCRIPTION -// Reactive strategy base clas -{ - protected: - TAO_AV_Endpoint_Reactive_Strategy (TAO_ORB_Manager *orb_manager); - // Constructor - - virtual int activate (void); - // creates and activates the streamendpoint, vdev, and mediacontrol - - virtual int activate_stream_endpoint (CORBA::Environment &env) = 0; - // activates the stream_endpoint with the POA - - virtual int activate_vdev (CORBA::Environment &env); - // activates the vdev with the POA - - virtual int activate_mediactrl (CORBA::Environment &env); - // activates the media controller with the POA - - virtual int make_vdev (T_VDev *&vdev); - // Bridge method to create a vdev, a la Acceptor. Applications - // can override this - - virtual int make_stream_endpoint (T_StreamEndpoint *&stream_endpoint); - // Bridge method to create a stream_endpoint, a la Acceptor. Applications - // can override this - - virtual int make_mediactrl (T_MediaCtrl *&media_ctrl); - // Bridge method to create a media_ctrl, a la Acceptor. Applications - // can override this - - TAO_ORB_Manager *orb_manager_; - // ORB manager, used to activate the objects - -}; -// ---------------------------------------------------------------------- - -template -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Reactive_Strategy_A - : public TAO_AV_Endpoint_Reactive_Strategy -// = DESCRIPTION -// Reactive strategy -{ - public: - TAO_AV_Endpoint_Reactive_Strategy_A (TAO_ORB_Manager *orb_manager); - // Constructor - - virtual int activate_stream_endpoint (CORBA::Environment &env); - // Overrides the base class stream_endpoint activator, to activate - // an "A" type endpoint - - virtual int create_A (AVStreams::StreamEndPoint_A_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Called by the MMDevice, when it needs to create an A type endpoint - - -}; - -// ---------------------------------------------------------------------- -template -class TAO_ORBSVCS_Export TAO_AV_Endpoint_Reactive_Strategy_B - : public TAO_AV_Endpoint_Reactive_Strategy -// = DESCRIPTION -// Reactive strategy -{ - public: - TAO_AV_Endpoint_Reactive_Strategy_B (TAO_ORB_Manager *); - - virtual int activate_stream_endpoint (CORBA::Environment &env); - // Overrides the base class stream_endpoint activator, to activate - // a "B" type endpoint - - virtual int create_B (AVStreams::StreamEndPoint_B_ptr &stream_endpoint, - AVStreams::VDev_ptr &vdev, - CORBA::Environment &env); - // Called by the MMDevice, when it needs to create a B type endpoint -}; - -// ---------------------------------------------------------------------- - -template -class TAO_ORBSVCS_Export TAO_AV_Child_Process -// = DESCRIPTION -// Helper class for the child process created in TAO_AV_Endpoint_Process_Strategy -{ -public: - TAO_AV_Child_Process (); - // Constructor - - ~TAO_AV_Child_Process (); - // Destructor - - int init (int argc, char **argv); - // Initializes the ORB, creates and activates the - // T_StreamEndpoint, T_VDev, T_MediaCtrl in the POA - - int run (ACE_Time_Value *tv = 0); - // runs the ORB event loop - - protected: - int activate_objects (int argc, - char **argv, - CORBA::Environment &env); - // Creates the objects and inserts them into the Naming - // Service, so the parent can pick the IOR's and - // return them to the client - - - int bind_to_naming_service (CORBA::Environment &env); - // Binds to the naming service - - int register_vdev (CORBA::Environment &env); - // Registers vdev with the naming service - - int register_stream_endpoint (CORBA::Environment &env); - // Registers stream_endpoint with the naming service - - int release_semaphore (); - // Releases the semaphore on which the parent is waiting on - - virtual int make_vdev (T_VDev *&vdev); - // Bridge method to create a vdev, a la Acceptor. Applications - // can override this - - virtual int make_stream_endpoint (T_StreamEndpoint *&stream_endpoint); - // Bridge method to create a stream_endpoint, a la Acceptor. Applications - // can override this - - virtual int make_mediactrl (T_MediaCtrl *&media_ctrl); - // Bridge method to create a media_ctrl, a la Acceptor. Applications - // can override this - - TAO_ORB_Manager orb_manager_; - // The ORB Manager - - CosNaming::NamingContext_var naming_context_; - // The root Naming Context of the TAO naming service - - CosNaming::Name vdev_name_; - // Name of the vdev - - CosNaming::Name stream_endpoint_name_; - // Name of the stream_endpoint - - T_StreamEndpoint *stream_endpoint_; - // The stream endpoint member - - T_VDev *vdev_; - // The virtual device - - T_MediaCtrl *media_ctrl_; - // Media controller -}; - -// ---------------------------------------------------------------------- - -template -class TAO_ORBSVCS_Export TAO_AV_Child_Process_A - : public TAO_AV_Child_Process -// = DESCRIPTION -// Helper class for the child process created in TAO_AV_Child_Process -{ -public: - TAO_AV_Child_Process_A (); - -}; - -// ---------------------------------------------------------------------- - -template -class TAO_ORBSVCS_Export TAO_AV_Child_Process_B - : public TAO_AV_Child_Process -// = DESCRIPTION -// Helper class for the child process created in TAO_AV_Child_Process -{ -public: - TAO_AV_Child_Process_B (); - -}; - -#endif /* TAO_AV_ENDPOINT_STRATEGY_H */ diff --git a/TAO/orbsvcs/orbsvcs/AV/README b/TAO/orbsvcs/orbsvcs/AV/README deleted file mode 100644 index ffe6958a6db..00000000000 --- a/TAO/orbsvcs/orbsvcs/AV/README +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -TAO Audio/Video Streaming service ---------------------------------- - - -This is a prototype implementation of the CORBA "Control and -Management of A/V streams" specification, that defines various -interfaces for controlling multimedia streams. - -This directory contains the following files - -AVStreams_i.{h,cpp}: Implementation of the A/V handshake specification, as well - as base classes for the various interfaces defined in the spec. - -Endpoint_Strategy.{h,cpp}: Implementation of various multimedia endpoint activation strategies. - -A complete distributed audio/video streaming application that -illustrates the use of the various components defined above is -available in the following directory: - -TAO/orbsvcs/tests/AVStreams/mpeg/source/ - - -Sumedh Mungee -Nagarajan Surendran -Alexander Arulanthu - diff --git a/TAO/orbsvcs/orbsvcs/AVStreams.idl b/TAO/orbsvcs/orbsvcs/AVStreams.idl deleted file mode 100644 index 9a7d8a1c940..00000000000 --- a/TAO/orbsvcs/orbsvcs/AVStreams.idl +++ /dev/null @@ -1,502 +0,0 @@ -/* -*- C++ -*- */ - -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// AVStreams.idl -// -// = AUTHOR -// OMG -// -// -// ============================================================================ - -#include "CosPropertyService.idl" - -module AVStreams -// = DESCRIPTION -// IDL for Control and Management of Audio/Video Streams -// Revised Submission -{ - struct QoS - // This structure represents QoS for a given type. - // E.g. {"video_qos", <"video_framerate", 26>, - // <"video_depth", 9>} - { - string QoSType; - // Name of the Qos type, e.g. "video_qos" - string QoSParams; - // @@ - // CosPropertyService::Properties QoSParams; - // Sequence of name value pairs, see e.g. above. - }; - - typedef sequence streamQoS; - // The QoS of a stream is a sequence of QoS structs (defined above) - - typedef sequence flowSpec; - // flowSpec is used to keep transport protocol information - // Each string is one endpoint. - - typedef sequence protocolSpec; - // List of protocols supported - // protocol names registered by OMG. - // e.g., TCP, UDP, AAL5, IPX, RTP - - typedef sequence encryption_key; - // Used as a key for public-key encryption - - struct SFPStatus - // This structure is defined for SFP1.0 - // Subsequent versions of the protocol may - // specify new structures - { - // = TITLE - // This structure is defined for SFP1.0 Subsequent versions of - // the protocol may specify new structures - boolean isFormatted; - boolean isSpecialFormat; - boolean seqNums; - boolean timestamps; - boolean sourceIndicators; - }; - - enum flowState {stopped, started, dead}; - // represents the state of a flow - - enum dirType {dir_in, dir_out}; - // the direction of a flow - - struct flowStatus - // Used to store the status of a flow - { - string flowName; - dirType directionality; - flowState status; - SFPStatus theFormat; - QoS theQoS; - }; - - // @@ - // typedef CosPropertyService::Property streamEvent; - typedef string streamEvent; - // Used to convey events, in Basic_StreamCtrl::push_event - - exception notSupported {}; - // Used to indicate that an operation is not supported - - exception PropertyException {}; - // Property exception: raised by VDev::configure () - - exception FPError { string flow_name; }; - // An flow protocol related error - - exception streamOpFailed - // Raised by operations on streams - { - string reason; - }; - - exception streamOpDenied - // Raised by operations on streams - { - string reason; - }; - - exception noSuchFlow {}; - // Used to indicate that an invalid flow name was used for the operation - - exception QoSRequestFailed - // Used to indicate failure in changing QoS - { - string reason; - }; - - // @@ - // interface Basic_StreamCtrl : CosPropertyService::PropertySet { - interface Basic_StreamCtrl - // = DESCRIPTION - // Base class for StreamCtrl, implements basic stream start - // and stop functionality - { - // Empty flowSpec => apply operation to all flows - void stop (in flowSpec the_spec) raises (noSuchFlow); - // Stop the transfer of data of the stream - // Empty the_spec means apply operation to all flows - - void start (in flowSpec the_spec) raises (noSuchFlow); - // Start the transfer of data in the stream. - // Empty the_spec means apply operation to all flows - - void destroy (in flowSpec the_spec) raises (noSuchFlow); - // Tears down the stream. This will close the connection, and delete - // the streamendpoint and vdev associated with this stream - // Empty the_spec means apply operation to all flows - - boolean modify_QoS (inout streamQoS new_qos, - in flowSpec the_spec) - raises (noSuchFlow, - QoSRequestFailed); - // Changes the QoS associated with the stream - // Empty the_spec means apply operation to all flows - - oneway void push_event (in streamEvent the_event); - // Called by StreamEndPoint when something goes wrong - // with a flow - - void set_FPStatus (in flowSpec the_spec, - in string fp_name, - in any fp_settings) - raises (noSuchFlow, - FPError); - // Used to control the flow protocol parameters. - - - Object get_flow_connection (in string flow_name) - raises (noSuchFlow, - notSupported); - // Not implemented in the light profile, will raise the notsupported - // exception - - - void set_flow_connection (in string flow_name, - in Object flow_connection) - raises (noSuchFlow, - notSupported); - }; - // Not implemented in the light profile, will raise the notsupported - // exception - - interface Negotiator - // = DESCRIPTION - // This class is used to negotiate QoS between two stream endpoints - { - boolean negotiate (in Negotiator remote_negotiator, - in streamQoS qos_spec); - // initiates the process of negotiating the qos_spec - }; - - // forward declarations - interface VDev; - interface MMDevice; - interface StreamEndPoint; - interface StreamEndPoint_A; - interface StreamEndPoint_B; - - interface StreamCtrl : Basic_StreamCtrl - // = DESCRIPTION - // Implementation the A/V StreamCtrl class. this class - // is used to control the stream. It should be subclassed - // by applications that want to provide more control features. - { - - boolean bind_devs (in MMDevice a_party, in MMDevice b_party, - inout streamQoS the_qos, - in flowSpec the_flows) - raises (streamOpFailed, - noSuchFlow, - QoSRequestFailed); - // Establish a stream between a_party and b_party, - // with qos the_qos, and for the flows in the_flows - // if the_flows is empty, bind all the flows - // Causes a connection to be established between the StreamEndpoints. - // Returns success/failure - - boolean bind (in StreamEndPoint_A a_party, - in StreamEndPoint_B b_party, - inout streamQoS the_qos, - in flowSpec the_flows) - raises (streamOpFailed, - noSuchFlow, - QoSRequestFailed); - // Establish a connection between two streamendpoints. This can - // be used if the streamendpoints have been created independent of - // a MMDevice - - void unbind_party (in StreamEndPoint the_ep, - in flowSpec the_spec) - raises (streamOpFailed, noSuchFlow); - // Unbind the_ep from the stream. Empty the_spec means apply to all flows. - - void unbind () - raises (streamOpFailed); - // unbind the stream. Same effect as Basic_StreamCtrl::destroy () - }; - - // @@ - // interface MCastConfigIf : CosPropertyService::PropertySet{ - interface MCastConfigIf - // multicasting operations are not supported yet - { - boolean set_peer (in Object peer, - inout streamQoS the_qos, - in flowSpec the_spec) - raises (QoSRequestFailed, - streamOpFailed); - // multicasting operations are not supported yet - - void configure (in CosPropertyService::Property a_configuration); - // multicasting operations are not supported yet - - void set_initial_configuration (in CosPropertyService::Properties initial); - // multicasting operations are not supported yet - - // Uses standardised by OMG and IETF - void set_format (in string flowName, - in string format_name) - raises (notSupported); - // multicasting operations are not supported yet - - // Note, some of these device params are standardised by OMG - void set_dev_params (in string flowName, - in CosPropertyService::Properties new_params) - raises (CosPropertyService::PropertyException, - streamOpFailed); - // multicasting operations are not supported yet - - }; - - // @@ - // interface StreamEndPoint : CosPropertyService::PropertySet{ - interface StreamEndPoint - // = DESCRIPTION - // The Stream EndPoint. Used to implement one endpoint of a stream - // that implements the transport layer. - { - void stop (in flowSpec the_spec) - raises (noSuchFlow); - // Stop the stream. Empty the_spec means, for all the flows - - void start (in flowSpec the_spec) - raises (noSuchFlow); - // Start the stream, Empty the_spec means, for all the flows - - void destroy (in flowSpec the_spec) - raises (noSuchFlow); - // Destroy the stream, Empty the_spec means, for all the flows - - boolean connect (in StreamEndPoint responder, - inout streamQoS qos_spec, - in flowSpec the_spec) - raises (noSuchFlow, - QoSRequestFailed, - streamOpFailed); - // Called by StreamCtrl. responder is the peer to connect to - - boolean request_connection (in StreamEndPoint initiator, - in boolean is_mcast, - inout streamQoS qos, - inout flowSpec the_spec) - raises (streamOpDenied, noSuchFlow, - QoSRequestFailed, FPError); - // Called by the peer StreamEndPoint. The flow_spec indicates the - // flows (which contain transport addresses etc.) - - boolean modify_QoS (inout streamQoS new_qos, - in flowSpec the_flows) - raises (noSuchFlow, - QoSRequestFailed); - // Change the transport qos on a stream - - boolean set_protocol_restriction (in protocolSpec the_pspec); - // Used to restrict the set of protocols - - void disconnect(in flowSpec the_spec) - raises (noSuchFlow, - streamOpFailed); - // disconnect the flows - - void set_FPStatus (in flowSpec the_spec, - in string fp_name, - in any fp_settings) - raises (noSuchFlow, - FPError); - // Used to control the SFP parameters - - Object get_fep (in string flow_name) - raises (notSupported, - noSuchFlow); - // Not implemented in the light profile, throws notsupported - - string add_fep (in Object the_fep) - // Can fail for reasons {duplicateFepName, duplicateRef} - raises (notSupported, - streamOpFailed); - // Not implemented in the light profile, throws notsupported - - void remove_fep (in string fep_name) - raises (notSupported, - streamOpFailed); - // Not implemented in the light profile, throws notsupported - - void set_negotiator (in Negotiator new_negotiator); - // Used to "attach" a negotiator to the endpoint - - void set_key (in string flow_name, - in encryption_key the_key); - // Used for public key encryption. - - void set_source_id (in long source_id); - // Used to set a unique id for packets sent by this streamendpoint - }; - - interface StreamEndPoint_A : StreamEndPoint - // = DESCRIPTION - // The "A" side of a streamendpoint - { - - boolean multiconnect (inout streamQoS the_qos, - inout flowSpec the_spec) - raises (noSuchFlow, QoSRequestFailed, streamOpFailed); - // Used for ATM-style multicast - - boolean connect_leaf (in StreamEndPoint_B the_ep, - inout streamQoS the_qos, - in flowSpec the_flows) - raises (streamOpFailed, noSuchFlow, - QoSRequestFailed, notSupported); - // Used for ATM-style multicast - - void disconnect_leaf (in StreamEndPoint_B the_ep, - in flowSpec theSpec) - raises(streamOpFailed, noSuchFlow); - // Used for ATM-style multicast - }; - - interface StreamEndPoint_B : StreamEndPoint - { - - boolean multiconnect (inout streamQoS the_qos, - inout flowSpec the_spec) - raises (streamOpFailed, noSuchFlow, - QoSRequestFailed, FPError); - // Used for ATM-style multicast - }; - - // @@ - interface VDev : CosPropertyService::PropertySet - // interface VDev - // = DESCRIPTION - // Implements the VDev interface. One of these is created per connection, - // and represents device-specific parameters - { - boolean set_peer (in StreamCtrl the_ctrl, - in VDev the_peer_dev, - inout streamQoS the_qos, - in flowSpec the_spec) - raises (noSuchFlow, - QoSRequestFailed, - streamOpFailed); - // Called to tell the vdev who the streamctrl, peer vdev is - - boolean set_Mcast_peer (in StreamCtrl the_ctrl, - in MCastConfigIf a_mcastconfigif, - inout streamQoS the_qos, - in flowSpec the_spec) - raises (noSuchFlow, - QoSRequestFailed, - streamOpFailed); - // Used to set the streamctrl and multicast device - - void configure (in CosPropertyService::Property the_config_mesg) - raises (PropertyException, - streamOpFailed); - // Called by the peer VDev to configure the device (catch all) - - // Uses standardised by OMG and IETF - void set_format (in string flowName, - in string format_name) - raises (notSupported); - // Used to set a format on a flowname - - // Note, some of these device params are standardised by OMG - void set_dev_params (in string flowName, - in CosPropertyService::Properties new_params) - raises (PropertyException, - streamOpFailed); - // Used to set device parameters - - boolean modify_QoS (inout streamQoS the_qos, - in flowSpec the_spec) - raises (noSuchFlow, - QoSRequestFailed); - // Called to change QoS of the device - - }; - - interface MMDevice : CosPropertyService::PropertySet - // = DESCRIPTION - // Implements a factory to create Endpoints and VDevs - { - StreamEndPoint_A create_A (in StreamCtrl the_requester, - out VDev the_vdev, - inout streamQoS the_qos, - out boolean met_qos, - inout string named_vdev, - in flowSpec the_spec) - raises (streamOpFailed, - streamOpDenied, - notSupported, - QoSRequestFailed, - noSuchFlow); - // Called by StreamCtrl to create a "A" type streamendpoint and vdev - - StreamEndPoint_B create_B(in StreamCtrl the_requester, - out VDev the_vdev, - inout streamQoS the_qos, - out boolean met_qos, - inout string named_vdev, - in flowSpec the_spec) - raises (streamOpFailed, - streamOpDenied, - notSupported, - QoSRequestFailed, - noSuchFlow); - // Called by StreamCtrl to create a "B" type streamendpoint and vdev - - StreamCtrl bind (in MMDevice peer_device, - inout streamQoS the_qos, - out boolean is_met, - in flowSpec the_spec) - raises (streamOpFailed, - noSuchFlow, - QoSRequestFailed); - // Can be used to request the MMDevice to create a new StreamCtrl, - // and call bind_devs on it - - StreamCtrl bind_mcast (in MMDevice first_peer, - inout streamQoS the_qos, - out boolean is_met, - in flowSpec the_spec) - raises (streamOpFailed, - noSuchFlow, - QoSRequestFailed); - // Multicast bind - - void destroy (in StreamEndPoint the_ep, - in string vdev_name) - // ie VDev not found - raises (notSupported); - // Remove the StreamEndPoint and the related vdev - - string add_fdev (in Object the_fdev) - raises (notSupported, - streamOpFailed); - // Not supported in the light profile, raises notsupported - - Object get_fdev (in string flow_name) - raises (notSupported, - noSuchFlow); - // Not supported in the light profile, raises notsupported - - void remove_fdev (in string flow_name) - raises (notSupported, - noSuchFlow); - // Not supported in the light profile, raises notsupported - }; -}; diff --git a/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl b/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl deleted file mode 100644 index 952301d7091..00000000000 --- a/TAO/orbsvcs/orbsvcs/AVStreams_Full.idl +++ /dev/null @@ -1,250 +0,0 @@ -// $Id$ - -// IDL for Control and Management of Audio/Video Streams -// Revised Submission - -// Additional IDL for full profile -#include "AVStreams.idl" - -module AVStreams_Full -{ - exception protocolNotSupported{}; - exception formatNotSupported{}; - exception formatMismatch{}; - exception FEPMismatch{}; - exception alreadyConnected{}; - exception invalidSettings{string settings;}; - exception notConnected{}; - exception deviceQosMismatch{}; - exception failedToConnect{string reason;}; - exception failedToListen{string reason;}; - - - interface FlowProducer; - interface FlowConsumer; - interface FlowEndPoint; - interface FDev; - - interface FlowConnection : PropertyService::PropertySet - { - void stop(); - void start(); - void destroy(); - - boolean modify_QoS( - - inout AVStreams::QoS new_qos) - raises (AVStreams::QoSRequestFailed); - - boolean use_flow_protocol( - in string fp_name, - in any fp_settings) - raises (AVStreams::FPError, AVStreams::notSupported); - - oneway void push_event(in AVStreams::streamEvent the_event); - - boolean connect_devs(in FDev a_party, in FDev b_party, - inout AVStreams::QoS the_qos) - raises (AVStreams::streamOpFailed, - AVStreams::streamOpDenied, - AVStreams::QoSRequestFailed); - - boolean connect( - in FlowProducer flow_producer, - in FlowConsumer flow_consumer, - inout AVStreams::QoS the_qos) - raises (formatMismatch, FEPMismatch, alreadyConnected); - - boolean disconnect(); - - // The notSupported exception is raised where - // flow cannot have multiple producers - boolean add_producer(in FlowProducer flow_producer, - inout AVStreams::QoS the_qos) - raises (alreadyConnected, AVStreams::notSupported); - - boolean add_consumer(in FlowConsumer flow_consumer, - inout AVStreams::QoS the_qos) - raises (alreadyConnected); - - boolean drop(in FlowEndPoint target) - raises (notConnected); - }; - - interface FlowEndPoint : PropertyService::PropertySet - { - boolean lock(); - void unlock(); - - void stop(); - void start(); - void destroy(); - - // Default is a nil object reference - attribute AVStreams::StreamEndPoint related_sep; - attribute FlowConnection related_flow_connection; - - FlowEndPoint get_connected_fep() - raises (notConnected, - AVStreams::notSupported); - - // syntax of fp_name is - boolean use_flow_protocol(in string fp_name, - in any fp_settings) - raises (AVStreams::FPError, AVStreams::notSupported); - - // set_format() initializes 'format' - // as current media format e.g. MPEG. - void set_format(in string format) - raises (AVStreams::notSupported); - - void set_dev_params( - in PropertyService::Properties new_settings) - raises (PropertyService::PropertyException, - AVStreams::streamOpFailed); - - void set_protocol_restriction(in AVStreams::protocolSpec - the_spec) - raises (AVStreams::notSupported); - - boolean is_fep_compatible(in FlowEndPoint fep) - raises (formatMismatch, deviceQosMismatch); - - boolean set_peer( - in FlowConnection the_fc, - - in FlowEndPoint the_peer_fep, - inout AVStreams::QoS the_qos) - raises (AVStreams::QoSRequestFailed, - AVStreams::streamOpFailed); - - boolean set_Mcast_peer( - in FlowConnection the_fc, - in AVStreams::MCastConfigIf a_mcastconfigif, - inout AVStreams::QoS the_qos) - raises (AVStreams::QoSRequestFailed); - - }; - - interface FlowProducer : FlowEndPoint - { - boolean connect_to_peer(inout AVStreams::QoS the_qos, - in string address, - - in string use_flow_protocol) // syntax - raises(failedToConnect, - AVStreams::FPError, AVStreams::QoSRequestFailed); - - string connect_mcast(inout AVStreams::QoS the_qos, - out boolean is_met, - in string address, - in string use_flow_protocol) - raises (failedToConnect, - AVStreams::notSupported, - AVStreams::FPError, - AVStreams::QoSRequestFailed); - - string get_rev_channel(in string pcol_name); - - void set_key(in AVStreams::key the_key); - void set_source_id(in long source_id); - }; - - interface FlowConsumer : FlowEndPoint - { - - - // Needs to know its peer to choose its protocol correctly - // Also to ask for a reverse channel for credit-based flow - // control, if one is required - string go_to_listen( - inout AVStreams::QoS the_qos, - in boolean is_mcast, - in FlowProducer peer, - inout string flowProtocol)// syntax - raises(failedToListen, AVStreams::FPError, - AVStreams::QoSRequestFailed); - }; - - interface FDev : PropertyService::PropertySet { - FlowProducer create_producer( - in FlowConnection the_requester, - inout AVStreams::QoS the_qos, - out boolean met_qos, - inout string named_fdev) - raises(AVStreams::streamOpFailed, - AVStreams::streamOpDenied, - AVStreams::notSupported, - AVStreams::QoSRequestFailed); - - FlowConsumer create_consumer( - in FlowConnection the_requester, - inout AVStreams::QoS the_qos, - out boolean met_qos, - inout string named_fdev) - raises(AVStreams::streamOpFailed, - AVStreams::streamOpDenied, - AVStreams::notSupported, - AVStreams::QoSRequestFailed); - - FlowConnection bind(in FDev peer_device, - inout AVStreams::QoS the_qos, - out boolean is_met) - raises (AVStreams::streamOpFailed, - AVStreams::QoSRequestFailed); - - FlowConnection bind_mcast(in FDev first_peer, - inout AVStreams::QoS the_qos, - out boolean is_met) - raises (AVStreams::streamOpFailed, - AVStreams::QoSRequestFailed); - - void destroy(in FlowEndPoint the_ep, in string fdev_name) - // ie FDev not found - raises (AVStreams::notSupported); - }; - - enum PositionOrigin { - AbsolutePosition, RelativePosition, ModuloPosition - }; - - enum PositionKey { - ByteCount, SampleCount, MediaTime - }; - - struct Position { - PositionOrigin origin; - PositionKey key; - long value; - }; - - exception PostionKeyNotSupported { PositionKey key;}; - exception InvalidPosition { PositionKey key;}; - - // MediaControl interface is similar to - // ControlledStream interface in MSS. - // It can be inherited by flow endpoints or - // FlowConnection interfaces. - interface MediaControl{ - - exception PostionKeyNotSupported { PositionKey key;}; - - Position get_media_position( - in PositionOrigin an_origin, - in PositionKey a_key) - raises (PostionKeyNotSupported); - - void set_media_position(in Position a_position) - raises (PostionKeyNotSupported, InvalidPosition); - - void start(in Position a_position) - raises(InvalidPosition); - void pause(in Position a_position) - raises(InvalidPosition); - void resume(in Position a_position) - raises(InvalidPosition); - void stop(in Position a_position) - raises(InvalidPosition); - }; -}; - diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp b/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp deleted file mode 100644 index cfa1da318d3..00000000000 --- a/TAO/orbsvcs/orbsvcs/Channel_Clients.cpp +++ /dev/null @@ -1 +0,0 @@ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients.h b/TAO/orbsvcs/orbsvcs/Channel_Clients.h deleted file mode 100644 index 487e688eb2c..00000000000 --- a/TAO/orbsvcs/orbsvcs/Channel_Clients.h +++ /dev/null @@ -1,26 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Channel_Clients -// -// = AUTHOR -// Tim Harrison (harrison@cs.wustl.edu) -// -// ============================================================================ - -#ifndef ACE_CHANNEL_CLIENTS_H -#define ACE_CHANNEL_CLIENTS_H - -#include "orbsvcs/Channel_Clients_T.h" - -#if defined (__ACE_INLINE__) -#include "orbsvcs/Channel_Clients.i" -#endif /* __ACE_INLINE__ */ -#endif /* ACE_CHANNEL_CLIENTS_H */ - diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp deleted file mode 100644 index cc1d2ea78b9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// $Id$ - -#ifndef ACE_CHANNEL_CLIENTS_T_C -#define ACE_CHANNEL_CLIENTS_T_C - -#include "orbsvcs/Channel_Clients_T.h" - -#if !defined (__ACE_INLINE__) -#include "orbsvcs/Channel_Clients_T.i" -#endif /* __ACE_INLINE__ */ - -template void -ACE_PushConsumer_Adapter::push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env) -{ - target_->push (events, _env); -} - -template void -ACE_PushConsumer_Adapter::disconnect_push_consumer (CORBA::Environment &_env) -{ - target_->disconnect_push_consumer (_env); -} - -template void -ACE_PushSupplier_Adapter::disconnect_push_supplier (CORBA::Environment &_env) -{ - target_->disconnect_push_supplier (_env); -} - -#endif /* ACE_CHANNEL_CLIENTS_T_C */ diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h deleted file mode 100644 index b7dcf2db00d..00000000000 --- a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.h +++ /dev/null @@ -1,93 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Channel_Clients_T -// -// = AUTHOR -// Tim Harrison (harrison@cs.wustl.edu) and -// Douglas Schmidt (schmidt@cs.wustl.edu) -// -// = DESCRIPTION -// These classes allow applications to be consumer, suppliers, and -// consumer suppliers, as well as being active objects. This is -// accomplished with adapters to prevent the use of multiple -// inheritence (which is this root of all evil.) -// -// ============================================================================ - -#ifndef ACE_CHANNEL_CLIENTS_T_H -#define ACE_CHANNEL_CLIENTS_T_H - -#include "orbsvcs/RtecEventCommS.h" - -// @@ TODO: Add throw specs to this classes. - -template -class ACE_PushConsumer_Adapter : public POA_RtecEventComm::PushConsumer -// = TITLE -// ACE Push Consumer Adapter -// -// = DESCRIPTION -// Forwards all calls to the owner_. -{ -public: - ACE_PushConsumer_Adapter (TARGET *target); - // Forwards all calls to . - - virtual void push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env); - // Forwards to target_. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // Forwards to target_. - -private: - TARGET *target_; - - // g++ 2.7.2.3 on Solaris needs this copy constructor declaration: - ACE_UNIMPLEMENTED_FUNC (ACE_PushConsumer_Adapter (const ACE_PushConsumer_Adapter &)) -}; - -// ************************************************************ - -template -class ACE_PushSupplier_Adapter : public POA_RtecEventComm::PushSupplier -// = TITLE -// ACE Push Supplier Adapter -// -// = DESCRIPTION -// Forwards all calls to disconnect_push_supplier the target_. -{ -public: - ACE_PushSupplier_Adapter (TARGET *target); - // Forwards all calls to . - - virtual void disconnect_push_supplier (CORBA::Environment &); - // Forwards to target_. - -private: - TARGET *target_; - - // g++ 2.7.2.3 on Solaris needs this copy constructor declaration: - ACE_UNIMPLEMENTED_FUNC (ACE_PushSupplier_Adapter (const ACE_PushSupplier_Adapter &)) -}; - -#if defined (__ACE_INLINE__) -#include "orbsvcs/Channel_Clients_T.i" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "orbsvcs/Channel_Clients_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("Channel_Clients_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* ACE_CHANNEL_CLIENTS_T_H */ diff --git a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.i b/TAO/orbsvcs/orbsvcs/Channel_Clients_T.i deleted file mode 100644 index 620b6fd04a8..00000000000 --- a/TAO/orbsvcs/orbsvcs/Channel_Clients_T.i +++ /dev/null @@ -1,17 +0,0 @@ -// -// $Id$ -// - -template ACE_INLINE -ACE_PushConsumer_Adapter::ACE_PushConsumer_Adapter (TARGET *t) - : target_ (t) -{ -} - -template ACE_INLINE -ACE_PushSupplier_Adapter::ACE_PushSupplier_Adapter (TARGET *t) - : target_ (t) -{ -} - - diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp deleted file mode 100644 index da3a7b28898..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// CC_Lock.cpp -// -// = DESCRIPTION -// This class implements a lock used by the lock set from the -// concurrency control service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "CC_Lock.h" -#include "tao/corba.h" - -CC_Lock::CC_Lock (void) - : mode_ (CosConcurrencyControl::intention_read), - lock_held_ (0) -{ -} - -CC_Lock::CC_Lock (CosConcurrencyControl::lock_mode mode) - : mode_ (mode), - lock_held_ (0) -{ -} - -CC_Lock::~CC_Lock (void) -{ -} - -void -CC_Lock::lock (CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_Lock::lock\n")); - lock_held_++; - - // if (semaphore_.acquire () == -1) - // TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); -} - -CORBA::Boolean -CC_Lock::try_lock (CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_Lock::try_lock. ")); - - lock_held_++; - - ACE_DEBUG ((LM_DEBUG, - "lock_held_: %i, ", - lock_held_)); - - int success = 0;//semaphore_.tryacquire (); - - ACE_DEBUG ((LM_DEBUG, - "success: %i\n", success)); - - if (success == -1) - { - if (errno == EBUSY) - { - lock_held_--; - return CORBA::B_FALSE; - } - else - TAO_THROW_RETURN (CORBA::INTERNAL (CORBA::COMPLETED_NO), - CORBA::B_FALSE); - } - ACE_DEBUG ((LM_DEBUG, - "lock_held_: %i, ", - lock_held_)); - - return CORBA::B_TRUE; -} - -void -CC_Lock::unlock (CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_Lock::unlock\n")); - if (lock_held_ == 0) - TAO_THROW (CosConcurrencyControl::LockNotHeld); - - int success = 0; //semaphore_.release (); - - if (success == -1) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); - - lock_held_--; - - ACE_DEBUG ((LM_DEBUG, - "lock_held_: %i, ", - lock_held_)); -} - -void -CC_Lock::change_mode (CosConcurrencyControl::lock_mode new_mode, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_Lock::change_mode\n")); - - // @@TAO Hmmm, we cannot really do anything at present since there - // is only one lock per lock set and that lock is essentially a - // write lock - - if (lock_held_ == 0) - TAO_THROW (CosConcurrencyControl::LockNotHeld); - - this->mode_ = new_mode; -} - -void -CC_Lock::set_mode (CosConcurrencyControl::lock_mode mode) -{ - this->mode_ = mode; -} - -CORBA::Boolean -CC_Lock::Compatible (const CC_Lock &other) -{ - return this->Compatible (other.mode_); -} - -CORBA::Boolean -CC_Lock::Compatible (CosConcurrencyControl::lock_mode mode) -{ - return compatible_[this->mode_][mode]; -} - -CosConcurrencyControl::lock_mode -CC_Lock::GetMode (void) -{ - return mode_; -} - -int -CC_Lock::GetLocksHeld(void) -{ - return this->lock_held_; -} - -void -CC_Lock::DecLocksHeld(void) -{ - this->lock_held_--; -} - -void -CC_Lock::dump(void) -{ - printf("mode_ %i, lock_held_: %i\n", mode_, lock_held_); -} - -// The check of compatibility is a hard coded table statically -// allocated. This table must be changed if the number of lock modes -// or their compatibility are changed. The table here looks different -// from the table in the spec, this is due to the different ordering -// of the lock modes in the table and in the enum in the IDL. The -// first index in the array is the mode held by this lock and the -// second index is the requested mode. -// Requested mode -// Held mode R W U IR IW -// R X X -// W X X X X X -// U X X X X = conflict -// IR X -// IW X X X -// -CORBA::Boolean CC_Lock::compatible_[NUMBER_OF_LOCK_MODES][NUMBER_OF_LOCK_MODES] ={ - {CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_FALSE}, - {CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE}, - {CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_TRUE, CORBA::B_FALSE}, - {CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_TRUE}, - {CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_TRUE, CORBA::B_TRUE}}; - -// CC_LockModeterator - -CC_LockModeIterator::CC_LockModeIterator(void) - : current_ (CosConcurrencyControl::intention_read) -{ -} - -CC_LockModeIterator::~CC_LockModeIterator(void) -{ - // Do nothing -} -void CC_LockModeIterator::First(void) -{ - current_ = CosConcurrencyControl::intention_read; -} - -void CC_LockModeIterator::Next(CORBA::Environment &_env) -{ - switch(current_) - { - case CosConcurrencyControl::intention_read: - current_ = CosConcurrencyControl::read; - break; - case CosConcurrencyControl::read: - current_ = CosConcurrencyControl::upgrade; - break; - case CosConcurrencyControl::upgrade: - current_ = CosConcurrencyControl::intention_write; - break; - case CosConcurrencyControl::intention_write: - current_ = CosConcurrencyControl::write; - break; - case CosConcurrencyControl::write: - TAO_THROW(CORBA::INTERNAL (CORBA::COMPLETED_NO)); - default: - TAO_THROW(CORBA::INTERNAL (CORBA::COMPLETED_NO)); - } -} - -CORBA::Boolean -CC_LockModeIterator::IsDone(void) -{ - if(current_==CosConcurrencyControl::write) - return CORBA::B_TRUE; - else - return CORBA::B_FALSE; -} - -CosConcurrencyControl::lock_mode -CC_LockModeIterator::GetLockMode(void) -{ - return current_; -} diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.h b/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.h deleted file mode 100644 index e384b935053..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_Lock.h +++ /dev/null @@ -1,135 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// CC_Lock.h -// -// = DESCRIPTION -// This class implements a lock used by the lock set from the -// concurrency control service -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#if !defined (_CC_LOCK_H) -#define _CC_LOCK_H - -#include "ace/Synch.h" -#include "orbsvcs/CosConcurrencyControlC.h" - -#define NUMBER_OF_LOCK_MODES 5 -// This constant defines the number of lock modes. There is really no -// way to set this constant dynamically because the nuber of lock -// modes are not stated as part of the IDL. - -class TAO_ORBSVCS_Export CC_Lock -{ - // = TITLE - // CC_Lock - // - // = DESCRIPTION - // This class implements the lock concept from the concurrency - // control service. The lock holds its mode - this might later - // be changed to subclasses depending on the differences of the - // locks. At present the is only a lock-pr-thread/client-type - // which is essentially a write lock since it is not allowed to - // have more than one lock pr. servant in this implementation. -public: - CC_Lock (void); - // Creates the lock with mode = intention_read (weakest) - - CC_Lock (CosConcurrencyControl::lock_mode mode); - // Creates the lock with the desired mode - - ~CC_Lock (void); - // Deletes the lock - - void lock (CORBA::Environment &env); - // Acquires this lock. Blocks until lock is obtained - - CORBA::Boolean try_lock (CORBA::Environment &env); - // Tries to acquire this lock. If it is not possible to acquire the - // lock, false is returned - - void unlock (CORBA::Environment &env); - // Releases this lock. - - void change_mode (CosConcurrencyControl::lock_mode new_mode, - CORBA::Environment &env); - // Changes the mode of this lock. - - void set_mode (CosConcurrencyControl::lock_mode mode); - // Sets the mode_ of the lock. Used in initialization - - CORBA::Boolean Compatible (const CC_Lock &other); - // returns true if this lock is compatible with the other lock. - - CORBA::Boolean Compatible (CosConcurrencyControl::lock_mode mode); - // Returns true is this lock is compatible with the referenced mode. - - CosConcurrencyControl::lock_mode GetMode (void); - // Returns the mode of the lock. - - int GetLocksHeld(void); - // Returns the number of times this lock have been locked - - void DecLocksHeld(void); - // Decrements the number of locks held in this mode. Used by change_mode. - - void dump(void); - // Dumps the state of the object to stdout - -protected: - CosConcurrencyControl::lock_mode mode_; - // Holds the lock's mode. - -private: - int lock_held_; - // If greater than zero the lock is held (that number of times). - - static CORBA::Boolean compatible_[NUMBER_OF_LOCK_MODES][NUMBER_OF_LOCK_MODES]; - // Defines the compatibility of the locks. -}; - -class TAO_ORBSVCS_Export CC_LockModeIterator -{ - // = TITLE - // CC_LockModeIterator - // - // = DESCRIPTION - // This class implements an iterator over the lock modes in - // order to make an ordered traversal over the locks from the - // weakest (intention read) to the strongest (write). - // Ordering: IR -> R -> U -> IW -> W -public: - CC_LockModeIterator(void); - // Default constructor - - ~CC_LockModeIterator(void); - // Destructor - - void First(void); - // Reset the iterator to the first element - - void Next(CORBA::Environment &_env); - // Advance the iterator to the next element - // Throws exception if out of range - - CORBA::Boolean IsDone(void); - // Returns true if the iterator has reached the last element - - CosConcurrencyControl::lock_mode GetLockMode(void); - // Get the current element - -private: - CosConcurrencyControl::lock_mode current_; -}; - -#endif /* !defined (_CC_LOCK_H) */ diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp deleted file mode 100644 index 584faf2a210..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.cpp +++ /dev/null @@ -1,340 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CC_LockSet.cpp -// -// = AUTHOR -// Torben Worm -// -// ============================================================================ - -#include "CC_LockSet.h" - -// Default constructor. - -CC_LockSet::CC_LockSet (void) - : related_lockset_ (0) -{ - TAO_TRY - { - this->Init (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_LockSet::CC_LockSet (void)"); - } - TAO_ENDTRY; -} - -// Constructor used to create related lock sets. - -CC_LockSet::CC_LockSet (CosConcurrencyControl::LockSet_ptr related) - : related_lockset_ (related) -{ - TAO_TRY - { - this->Init (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_LockSet::CC_LockSet (...)"); - } - TAO_ENDTRY; -} - -// Initialization. - -void -CC_LockSet::Init (CORBA::Environment &_env) -{ - // Set the mode of the statically allocated locks - lock_[CC_IR] = 0; - lock_[CC_R] = 0; - lock_[CC_U] = 0; - lock_[CC_IW] = 0; - lock_[CC_W] = 0; - - // Acquire the semaphore in order to be able to put requests on hold - if (semaphore_.acquire () == -1) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); -} - -// Destructor - -CC_LockSet::~CC_LockSet (void) -{ -} - -// Returns true if the requested lock mode is compatible with the -// modes held. False otherwise. - -CORBA::Boolean CC_LockSet::compatible (CC_LockModeEnum mr) -{ - for (size_t i = CC_IR; i <= CC_W; i++) - if (this->lock_[i] > 0) - if (this->compatible_[i][mr] == CORBA::B_FALSE) - return CORBA::B_FALSE; - - return CORBA::B_TRUE; -} - -// Locks the lock in the desired mode. Blocks until success. - -void -CC_LockSet::lock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, "CC_LockSet::lock\n")); - - CC_LockModeEnum lm = lmconvert (mode); - - // Check to see if the requested mode is compatible with the modes - // held so far. If not put the request on hold. - - // @@ It's important to document somewhere that this code relies on - // the FIFO properties of ACE_Token! - if (this->lock_i (lm) == 1) - if (semaphore_.acquire () == -1) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); -} - -// Tries to lock. If it is not possible false is returned. - -CORBA::Boolean -CC_LockSet::try_lock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &_env) -{ - CC_LockModeEnum lm = lmconvert (mode); - - ACE_DEBUG ((LM_DEBUG, - "CC_LockSet::try_lock\n")); - - if (this->try_lock_i (lm) == 0) - return CORBA::B_FALSE; - else - return CORBA::B_TRUE; -} - -// Converts the enum from the spec to the internally (ordered) -// enum. - -CC_LockModeEnum -CC_LockSet::lmconvert (CosConcurrencyControl::lock_mode mode) -{ - switch (mode) - { - case CosConcurrencyControl::intention_read: - return CC_IR; - case CosConcurrencyControl::read: - return CC_R; - case CosConcurrencyControl::upgrade: - return CC_U; - case CosConcurrencyControl::intention_write: - return CC_IW; - case CosConcurrencyControl::write: - return CC_W; - default: - return CC_EM; - } -} - -// Unlock the lock - -void -CC_LockSet::unlock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_LockSet::unlock\n")); - - CC_LockModeEnum lm = lmconvert (mode); - - ACE_GUARD (ACE_Thread_Mutex, ace_mon, this->mlock_); - - TAO_TRY - { - if (lock_[lm] == 0) // This lock is not held. - TAO_THROW (CosConcurrencyControl::LockNotHeld); - else - lock_[lm]--; - - TAO_CHECK_ENV; - - // If we do not have a lock held in a weaker mode than the - // strongest held and we have requests on the semaphore signal - // the semaphore. - while (lock_queue_.size () > 0) - { - CC_LockModeEnum lock_on_queue = CC_EM; - - lock_queue_.dequeue_head (lock_on_queue); - - if (compatible (lock_on_queue) == CORBA::B_TRUE) - { - if (semaphore_.release () == -1) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); - lock_[lock_on_queue]++; - } - else - { - lock_queue_.enqueue_head (lock_on_queue); - break; - } - } - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; - this->dump (); -} - -// Changes the mode of a held lock. - -void -CC_LockSet::change_mode (CosConcurrencyControl::lock_mode held_mode, - CosConcurrencyControl::lock_mode new_mode, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, - "CC_LockSet::change_mode\n")); - CC_LockModeEnum lm_held = lmconvert (held_mode); - CC_LockModeEnum lm_new = lmconvert (new_mode); - - TAO_TRY - { - if (this->lock_held (lm_held) == 0) // This lock is not held - TAO_THROW (CosConcurrencyControl::LockNotHeld); - else if (this->change_mode_i (lm_held, lm_new)==1) - { - this->unlock (held_mode, _env); - TAO_CHECK_ENV; - - if (semaphore_.acquire () == -1) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); - } - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; - - // this->dump (); -} - -int -CC_LockSet::lock_i (CC_LockModeEnum lm) -{ - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mlock_, 1); - // If the lock is not compatible with the locks we hold allready or - // there is lock requests in the queue we cannot grant the lock and - // thus we queue the request. Otherwise update the lock count. - if (compatible (lm) == CORBA::B_FALSE || lock_queue_.size () > 0) - { - // Put the lock mode in the queue - lock_queue_.enqueue_tail (lm); - this->dump (); - return 1; // Lock the semaphore. - } - else - lock_[lm]++; - - this->dump (); - return 0; -} - -int -CC_LockSet::try_lock_i (CC_LockModeEnum lm) -{ - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mlock_, 1); - // If the lock we try is compatible with the locks we hold we just - // opdates the count. Otherwise we return false. - if (compatible (lm) == CORBA::B_FALSE) - { - this->dump (); - return 0; - } - else - lock_[lm]++; - - this->dump (); - return 1; -} - -int -CC_LockSet::change_mode_i (CC_LockModeEnum lm_held, - CC_LockModeEnum lm_new) -{ - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mlock_, 1); - // If the new mode is compatible with the modes we hold we change - // the counts for the two locks. If not we must queue the new - // request. We can decrement the count for the old mode without - // signalling the semaphore because we know we only check modes - // granted this far. - - lock_[lm_held]--; - - if (compatible (lm_new) == CORBA::B_TRUE) - { - lock_[lm_new]++; - this->dump (); - return 0; - } - else - { - lock_[lm_held]++; - lock_queue_.enqueue_tail (lm_new); - this->dump (); - return 1; - } -} - -int -CC_LockSet::lock_held (CC_LockModeEnum lm) -{ - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->mlock_, 1); - if (lock_[lm] > 0) - return 1; - else - return 0; -} - -void -CC_LockSet::dump (void) -{ - ACE_DEBUG ((LM_DEBUG, - "waiting_calls_: %i, IR: %i, R: %i, U: %i, IW: %i, W: %i\n", - lock_queue_.size (), - lock_[CC_IR], - lock_[CC_R], - lock_[CC_U], - lock_[CC_IW], - lock_[CC_W])); -} - -CORBA::Boolean CC_LockSet::compatible_[NUMBER_OF_LOCK_MODES][NUMBER_OF_LOCK_MODES] ={ - {CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_FALSE}, - {CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_FALSE}, - {CORBA::B_TRUE, CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE}, - {CORBA::B_TRUE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_TRUE, CORBA::B_FALSE}, - {CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE, CORBA::B_FALSE}}; - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Node; -template class ACE_Unbounded_Queue; -template class ACE_Unbounded_Queue_Iterator; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Node -#pragma instantiate ACE_Unbounded_Queue -#pragma instantiate ACE_Unbounded_Queue_Iterator -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.h b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.h deleted file mode 100644 index ca85025d05a..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSet.h +++ /dev/null @@ -1,169 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// CC_LockSet.h -// -// = DESCRIPTION -// This class implements the lock set interface from the -// concurrency service. -// -// In the present implementation the multiple possesion semantics -// is implemented for non-transactional clients. In future -// versions this should be changed because the multiple possesion -// semantics does not apply to non-transactional clients. This -// can be accomplished in the following manner: -// - Make a class with the same functiallity as the CC_LockSet -// class as a base class for both implementations. -// - The functionallity that should be separated out in the -// subclasses is the compatible function which should always -// return false because no locks can be held simultanously with -// non-transactional clients. -// - Use these classes from the classes that inherits the -// servant properties, i.e. the way CC_LockSet does now. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#if !defined (_CC_LOCKSET_H) -#define _CC_LOCKSET_H - -#include "ace/Synch.h" -#include "ace/Token.h" -#include "orbsvcs/CosConcurrencyControlS.h" - -#define NUMBER_OF_LOCK_MODES 5 -// This constant defines the number of lock modes. There is really no -// way to set this constant dynamically because the nuber of lock -// modes are not stated as part of the IDL. - -typedef enum {CC_EM=-1, CC_IR=0, CC_R, CC_U, CC_IW, CC_W} CC_LockModeEnum; -// Enummeration representing the lock modes. The incomming request is -// always converted to this representation. There are two reasons for -// this: Firstly the lock modes are ordered from weakest to strongest -// in the internal representation, and secondly it is possible to -// indicate a 'non-mode' (CC_EM) - -class TAO_ORBSVCS_Export CC_LockSet : public POA_CosConcurrencyControl::LockSet -{ - // = TITLE - // CC_LockSet - // - // = DESCRIPTION - // This class implements the LockSet interface that is part of - // the CosConcurrency service. Please consult the idl file for - // detailed descriptions apart from the comments in this file At - // present the lock set is not really a set, but only one lock. -public: - - // = Initialization and termination methods. - CC_LockSet (void); - // Default constructor - - CC_LockSet (CosConcurrencyControl::LockSet_ptr related); - // Constructor used if create_related is used to create the lock - // set. - - ~CC_LockSet (void); - // Destructor. - - // = CosConcurrencyControl methods - virtual void lock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &env); - // Acquires this lock. Blocks until lock is obtained - - virtual CORBA::Boolean try_lock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &env); - // Tries to acquire this lock. If it is not possible to acquire the - // lock, false is returned - - virtual void unlock (CosConcurrencyControl::lock_mode mode, - CORBA::Environment &env); - // Releases this lock. - - virtual void change_mode (CosConcurrencyControl::lock_mode held_mode, - CosConcurrencyControl::lock_mode new_mode, - CORBA::Environment &env); - // Changes the mode of this lock. - - // = Debugging methods - void dump (void); - // Dump the state of the object to stdout - -private: - CC_LockModeEnum lmconvert (CosConcurrencyControl::lock_mode mode); - // Converts the CORBA specification's lock mode to the internal - // representation - - void Init (CORBA::Environment &_env); - // Initiatlizes the lock set array and acquires the initial - // semaphore. - - CORBA::Boolean compatible (CC_LockModeEnum mr); - // Returns true if the held lock and the requested lock are compatible - - // The _i functions below ensures atomical access the the state data - // for the lock set. The functions acquires a thread lock in order - // to insure consistency within the lock set. The return value - // typically indicates whether the current thread should be - // suspended or not (by locking the semaphore. - - int lock_i (CC_LockModeEnum lm); - // Locks the access to the data and decides whether to lock or - // not. Returns 1 if the semaphore should be locked. - - // int unlock_i (CosConcurrencyControl::lock_mode lm); - // This function is not necessary because we lock access to the data - // and unlocks the semaphore until an invalid lock mode is first on - // the queue. Thereafter we release the lock. - - int try_lock_i (CC_LockModeEnum lm); - // Locks the access to the data and determines whether to return - // true or false. Returns 1 if true should be returned. - - int change_mode_i (CC_LockModeEnum lm_held, - CC_LockModeEnum lm_new); - // Locks access to the data and determines if the semaphore should - // be locked. Returns 1 if the semaphore should be locked. - - int lock_held (CC_LockModeEnum lm); - // Locks access ti the data and checks whether the lock is held. - - int lock_[NUMBER_OF_LOCK_MODES]; - // An array of lock counters that counts how many locks of that type - // that the lock set holds. - - // ACE_Thread_Semaphore semaphore_; - ACE_Token semaphore_; - // This is the semaphore for the lock set. The semaphore is used to - // queue requests for locks in modes stronger than currently - // possible to grant. Note that the provides strict - // FIFO ordering of acquisition/release of the lock. - - CosConcurrencyControl::LockSet_ptr related_lockset_; - // If this lock set is related to another lock set, this is the - // pointer to the related lock set. This is a really simple - // solution, but since transactions are not supported in the first - // version there should be no reason to drop lock sets together. The - // is not implemented (it has the - // responsibilities of dropping the locks). - - static CORBA::Boolean compatible_[NUMBER_OF_LOCK_MODES][NUMBER_OF_LOCK_MODES]; - // Mapping between requested and held lock modes. Used by compatible - // (...). Uses the internal enumeration as indices. - - ACE_Thread_Mutex mlock_; - // Lock to ensure that race conditions does not occur. - - ACE_Unbounded_Queue lock_queue_; - // Queue to hold the requested locks not yet granted. -}; - -#endif /* _CC_LOCKSET_H */ diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp deleted file mode 100644 index faffa5984f9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CC_LockSetFactory.cpp -// -// = AUTHOR -// Torben Worm -// -// ============================================================================ - -#include "CC_LockSetFactory.h" -#include "CC_LockSet.h" - -// Default constructor -CC_LockSetFactory::CC_LockSetFactory (void) -{ -} - -// Destructor. -CC_LockSetFactory::~CC_LockSetFactory (void) -{ -} - -CosConcurrencyControl::LockSet_ptr -CC_LockSetFactory::create (CORBA::Environment &_env) -{ - CC_LockSet *ls = 0; - - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, CosConcurrencyControl::LockSet::_nil ()); - - _env.exception (new CORBA::NO_MEMORY (CORBA::COMPLETED_NO)); - ACE_NEW_RETURN (ls, - CC_LockSet, - CosConcurrencyControl::LockSet::_nil ()); - _env.clear (); - - return ls->_this (_env); -} - -CosConcurrencyControl::LockSet_ptr -CC_LockSetFactory::create_related (CosConcurrencyControl::LockSet_ptr which, - CORBA::Environment &_env) -{ - CC_LockSet *ls = 0; - - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, CosConcurrencyControl::LockSet::_nil ()); - - _env.exception (new CORBA::NO_MEMORY (CORBA::COMPLETED_NO)); - ACE_NEW_RETURN (ls, - CC_LockSet (which), - CosConcurrencyControl::LockSet::_nil ()); - _env.clear (); - - return ls->_this (_env); -} diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h b/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h deleted file mode 100644 index a4e6c1fe8bc..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/CC_LockSetFactory.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// CC_LockSetFactory.h -// -// = DESCRIPTION -// This class implements the lock set factory interface from the -// concurrency service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#if !defined (_CC_LOCKSETFACTORY_H) -#define _CC_LOCKSETFACTORY_H - -// #include "tao/corba.h" -#include "orbsvcs/CosConcurrencyControlS.h" - -class TAO_ORBSVCS_Export CC_LockSetFactory : public POA_CosConcurrencyControl::LockSetFactory -{ - // = TITLE - // CC_LockSetFactory - // - // = DESCRIPTION - // This class implements the LockSetFactory interface that is - // part of the CosConcurrency service. Please consult the idl - // file for detailed descriptions apart from the comments in - // this file. -public: - - // = Initialization and termination methods. - CC_LockSetFactory (void); - // Default constructor. - - ~CC_LockSetFactory (void); - // Destructor. - - virtual CosConcurrencyControl::LockSet_ptr create (CORBA::Environment &env); - - virtual CosConcurrencyControl::LockSet_ptr create_related (CosConcurrencyControl::LockSet_ptr which, - CORBA::Environment &env); -private: - ACE_Thread_Mutex lock_; - // Lock to serialize the access to the factory. -}; - -#endif /* _CC_LOCKSETFACTORY_H */ diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp b/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp deleted file mode 100644 index 1556f245210..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.cpp +++ /dev/null @@ -1,94 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// Concurrency_Utils.cpp -// -// = AUTHOR -// Torben Worm -// -// ============================================================================ - -#include "ace/streams.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include "tao/corba.h" -#include "Concurrency_Utils.h" - -// Default constructor - -TAO_Concurrency_Server::TAO_Concurrency_Server (void) -{ -} - -// Constructor which takes an ORB and POA. - -TAO_Concurrency_Server::TAO_Concurrency_Server (CORBA::ORB_var &orb, - PortableServer::POA_var &poa) -{ - this->init (orb, poa); -} - -// Function to initialize the concurrency server object under the -// passed orb and poa. - -int -TAO_Concurrency_Server::init (CORBA::ORB_var &orb, - PortableServer::POA_var &poa) -{ - TAO_TRY - { - // Get the naming context ptr to NameService. - TAO_CHECK_ENV; - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId ("ConcurrencyService"); - - poa->activate_object_with_id (id.in (), - &lock_set_factory_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - CORBA::Object_var obj = - poa->id_to_reference (id.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "listening as object <%s>\n", - str.in ())); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Concurrency Service"); - } - TAO_ENDTRY; - return 0; -} - -// Get the lock set factory. - -CC_LockSetFactory * -TAO_Concurrency_Server::GetLockSetFactory(void) -{ - return &this->lock_set_factory_; -} - -// Destructor. - -TAO_Concurrency_Server::~TAO_Concurrency_Server (void) -{ -} - - diff --git a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h b/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h deleted file mode 100644 index 0958472b535..00000000000 --- a/TAO/orbsvcs/orbsvcs/Concurrency/Concurrency_Utils.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/Concurrency_Service -// -// = FILENAME -// Concurrency_Utils.h -// -// = DESCRIPTION -// This class implements a Concurrency Server wrapper class which -// holds a number of lock sets. The server must run in the -// thread per request concurrency model in order to let the -// clients block on the semaphores. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#if !defined (_CONCURRENCY_SERVER_H) -#define _CONCURRENCY_SERVER_H - -#include "tao/corba.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include "CC_LockSetFactory.h" - -class TAO_ORBSVCS_Export TAO_Concurrency_Server -{ - // = TITLE - // Defines a wrapper class for the implementation of the - // concurrency server. - // - // = DESCRIPTION - // This class takes an orb and Poa reference and activates the - // concurrency service lock set factory object under them. -public: - // = Initialization and termination methods. - TAO_Concurrency_Server (void); - //Default constructor. - - TAO_Concurrency_Server (CORBA::ORB_var &orb, - PortableServer::POA_var &poa); - // Takes the POA under which to register the Concurrency Service - // implementation object. - - ~TAO_Concurrency_Server (void); - // Destructor. - - int init (CORBA::ORB_var &orb, - PortableServer::POA_var &poa); - // Initialize the concurrency server under the given ORB and POA. - - CC_LockSetFactory *GetLockSetFactory(void); - // Get the lock set factory. - -private: - CC_LockSetFactory lock_set_factory_; - // This is the lock set factory activated under the POA. -}; - -#endif /* _CONCURRENCY_SERVER_H */ - diff --git a/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl b/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl deleted file mode 100644 index 9c9415c6aee..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosConcurrencyControl.idl +++ /dev/null @@ -1,194 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CosTransaction.idl -// -// = DESCRIPTION -// Described in CORBAservices: Common Object Services -// Specification, chapter 7 The concurrency service description can -// be downloaded from -// ftp://www.omg.org/pub/docs/formal/97-11-02.idl -// -// = AUTHOR -// OMG and Torben Worm -// -// ============================================================================ - -//CosConcurrencyControl Module, page 7-8 -//Includes the following interfaces: -// LockCoordinator, LockSet, TransactionalLockSet, LockSetFactory - -// The part depending on the transaction service may be included by defining -// TAO_HAS_TRANSACTION_CONTROL_SERVICE - -#if defined (TAO_HAS_TRANSACTION_CONTROL_SERVICE) -#include -#endif /* TAO_HAS_TRANSACTION_CONTROL_SERVICE */ - -module CosConcurrencyControl -{ - // = TITLE - // CosConcurrencyControl - // - // = DESCRIPTION - // This idl file describes the concurrency control service. The - // purpose of the concurrency control service is to mediate - // concurrent access to an pbject such that the consistency of - // the object is not compromised when accessed by concurrently - // executing computations. - - // = These are the different lock types supported by this module. - - // For a description of the compatability between the different lock - // types please consult the service description (OMG). - enum lock_mode - { - read, - write, - upgrade, - intention_read, - intention_write - }; - - exception LockNotHeld {}; - // The LockNotHeld exception is is raised when an operation to - // unlock or change the mode of a lock is called and the specified - // lock is not held - -#if defined (TAO_HAS_TRANSACTION_CONTROL_SERVICE) - // @@ The lock coordinator is designed for transactional lock sets, - // so we don't support it (yet). - interface LockCoordinator - { - // = TITLE - // LockCoordinator drops all locks associated with a transaction. - // = DESCRIPTION - // The LockCoordinator interface enables a transaction service to - // drop all locks held by a transaction. - - void drop_locks (); - // Releases all the locks held by the transaction. Designet to be - // used by transaction service when a transaction commits or aborts. - }; -#endif /* TAO_HAS_TRANSACTION_CONTROL_SERVICE */ - - interface LockSet - { - // = TITLE - // LockSet inteface to the concurrency service in implicit - // mode. - // - // = DESCRIPTION - // Clients operating in the implicit mode - // (i.e. non-transactional mode) acquire and release locks - // in lock sets throug this interface. The interface only - // provides operations to acquire and release locks on - // behalf of the calling thread or transaction. - - void lock (in lock_mode mode); - // Acquires a lock on the specified lock set in the specified - // mode. Blocks until lock is obtained. - - boolean try_lock (in lock_mode mode); - // Tries to acquire a lock on the specified lock set. If it is - // not possible to acquire the lock false is returned. - - void unlock (in lock_mode mode) - raises (LockNotHeld); - // Releases a single lock on the specified lock set. A lock can - // be held multiple times in the same mode. If the lock is not - // held the exception LockNotHeld is raised. - - void change_mode (in lock_mode held_mode, - in lock_mode new_mode) - raises (LockNotHeld); - // Changes the mode of the lock on the specified lock set. If a - // conflicting lock is held by another client the call blocks - // until the new mode can be granted. If the lock is not held in - // the specified mode the exception LockNotHeld is raised. - -#if defined (TAO_HAS_TRANSACTION_CONTROL_SERVICE) - LockCoordinator get_coordinator (in CosTransactions::Coordinator which); - // Returns the lock coordinator associated with the specified - // transaction. -#endif /* TAO_HAS_TRANSACTION_CONTROL_SERVICE */ - }; - -#if defined (TAO_HAS_TRANSACTION_CONTROL_SERVICE) - interface TransactionalLockSet - { - // = TITLE - // TransactionalLockSet interface to the concurrency service - // in transactional mode. - // - // = DESCRIPTION - // Clients operating in the transactional mode acquire and - // release locks in lock sets through this interface. The - // interface provides operations identical to the operations - // described in the LockSet interface section. The - // difference beeing that the coordinator for the - // transaction is explicitly passed as a reference to the - // operations. Please see the description of the LockSet - // interface for a detailed description. - - void lock (in CosTransactions::Coordinator current, - in lock_mode mode); - // See LockSet::lock - - boolean try_lock (in CosTransactions::Coordinator current, - in lock_mode mode); - // See LockSet::try_lock - - void unlock (in CosTransactions::Coordinator current, - in lock_mode mode) - raises (LockNotHeld); - // See LockSet::unlock - - void change_mode (in CosTransactions::Coordinator current, - in lock_mode held_mode, - in lock_mode new_mode) - raises (LockNotHeld); - // See LockSet::change_mode - - LockCoordinator get_coordinator (in CosTransactions::Coordinator which); - // See LockSet::get_coordinator - }; -#endif /* TAO_HAS_TRANSACTION_CONTROL_SERVICE */ - - interface LockSetFactory - { - // = TITLE - // Factory interface for the LockSet and - // TransactionalLockSet interfaces. - // - // = DESCRIPTION - // Factory for creating the lock sets. - - LockSet create (); - // Creates a new LockSet and lock coordinator - // @@TAO ??? is this correct? Lock coordinators are associated with - // transactions. - tworm - - LockSet create_related (in LockSet which); - // Creates a lock set related to the specified lock set. Related lock - // sets drop their locks together. - -#if defined (TAO_HAS_TRANSACTION_CONTROL_SERVICE) - TransactionalLockSet create_transactional (); - // Creates a new TransactionalLockSet and lock coordinator for - // transactional mode clients. - - TransactionalLockSet create_transactional_related (in TransactionalLockSet which); - // Creates a new transactional lock set related to the specified lock - // set. Related lock sets drop locks together. -#endif /* TAO_HAS_TRANSACTION_CONTROL_SERVICE */ - }; -}; - - diff --git a/TAO/orbsvcs/orbsvcs/CosLifeCycle.idl b/TAO/orbsvcs/orbsvcs/CosLifeCycle.idl deleted file mode 100644 index 0f849676df4..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosLifeCycle.idl +++ /dev/null @@ -1,119 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CosLifeCycle.idl -// -// = DESCRIPTION -// Described in CORBAservices: Common Object Services Specification, -// chapter 6. -// The life cycle service description can be downloaded from: -// ftp://www.omg.org/pub/docs/formal/97-12-13.pdf -// The original IDL file can be downloaded from: -// ftp://www.omg.org/pub/docs/formal/97-11-02.idl -// -// = AUTHOR -// OMG, Torben Worm , and Michael Kircher -// -// ============================================================================ - -// OMG IDL for CosLifeCycle Module, page 6-10 in -// Includes the following interfaces: -// FactoryFinder, LifeCycleObject, GenericFactory - -#include "CosNaming.idl" - -module CosLifeCycle -{ - // = TITLE - // CosLifeCycle - // - // = DESCRIPTION - // This idl file describes the life cycle service. - // The purpose of the life cycle service is to - - typedef CosNaming::Name Key; - typedef Object Factory; - typedef sequence Factories; - - typedef struct NVP - { - CosNaming::Istring name; - any value; - } NameValuePair; - - typedef sequence Criteria; - - exception NoFactory - { - Key search_key; - }; - exception NotCopyable { string reason; }; - exception NotMovable { string reason; }; - exception NotRemovable { string reason; }; - exception InvalidCriteria - { - Criteria invalid_criteria; - }; - exception CannotMeetCriteria - { - Criteria unmet_criteria; - }; - - interface FactoryFinder - { - // = TITLE - // @@ Please fill in. - // = DESCRIPTION - // @@ Please fill in. - - Factories find_factories (in Key factory_key) - raises (NoFactory); - }; - - interface LifeCycleObject - { - // = TITLE - // @@ Please fill in. - // = DESCRIPTION - // @@ Please fill in. - - LifeCycleObject copy (in FactoryFinder there, - in Criteria the_criteria) - raises (NoFactory, NotCopyable, InvalidCriteria, CannotMeetCriteria); - void move (in FactoryFinder there, - in Criteria the_criteria) - raises (NoFactory, NotMovable, InvalidCriteria, CannotMeetCriteria); - void remove () - raises (NotRemovable); - }; - - interface GenericFactory - { - // = TITLE - // @@ Please fill in. - // = DESCRIPTION - // @@ Please fill in. - - boolean supports (in Key k); - Object create_object (in Key k, - in Criteria the_criteria) - raises (NoFactory, InvalidCriteria, CannotMeetCriteria); - }; -}; - -// Criteria, page 6-17: -/* -typedef struct NVP -{ - CosNaming::Istring name; - any value; -} NameValuePair; - -typedef sequence Criteria; -*/ diff --git a/TAO/orbsvcs/orbsvcs/CosNaming.idl b/TAO/orbsvcs/orbsvcs/CosNaming.idl deleted file mode 100644 index e9064eec131..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosNaming.idl +++ /dev/null @@ -1,207 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// cos -// -// = FILENAME -// CosNaming.idl -// -// = AUTHOR -// Marina Spivak -// -// ============================================================================ - -module CosNaming - // = TITLE - // This module provides interface for using COS Naming Service. -{ - typedef string Istring; - struct NameComponent - { - Istring id; - // This is the name that is used to identify object references. - - Istring kind; - // Stores any addtional info about the object reference. - }; - // This is a 'simple' name. - // NOTE: both id and kind fields are used in resolving names. - - typedef sequence Name; - // This is a compound name: where c1 to cn-1 are - // the names of the nested contexts, and cn is the name of the - // object bound in cn-1. - - enum BindingType - { - nobject, - // object binding. - - ncontext - // naming context binding. - }; - - struct Binding - { - Name binding_name; - BindingType binding_type; - }; - - typedef sequence BindingList; - - interface BindingIterator; - // Forward declaration. - - interface NamingContext - // = TITLE - // Interface for managing name bindings and naming contexts. - { - // = Exceptions. - - enum NotFoundReason - { - missing_node, - not_context, - not_object - }; - - exception NotFound - { - NotFoundReason why; - Name rest_of_name; - }; - // Indicates that the name does not identify a binding. - - exception CannotProceed - { - //Commented out due to the bug in Orbix compiler - NamingContext cxt; - Name rest_of_name; - }; - // Implementation has given up for some reason. The client, - // however, may be able to continue operation at the returned - // naming context. - - exception InvalidName {}; - // A name of length 0 is invalid. - // Implementations may place further restrictions. - - exception AlreadyBound {}; - // Indicates that the specified name is already bound to some - // object. Only one object can be bound to a particular name in - // a context. To change the binding, and - // can be used. - - exception NotEmpty {}; - // Indicates that the context is not empty. - - // = Binding operations. - - void bind (in Name n, in Object obj) - raises(NotFound, CannotProceed, InvalidName, AlreadyBound); - // create a binding for name and object in the naming - // context. Compound names are treated as follows: ctx->bind - // (, obj) = (ctx->resolve ())->bind (, obj) if the there already exists a - // binding for the specified name, exception is - // thrown. Naming contexts should be bound using - // and in order to participate in name - // resolution later. - - void rebind (in Name n, in Object obj) - raises(NotFound, CannotProceed, InvalidName); - // this is similar to operation above, except for when - // the binding for the specified name already exists in the - // specified context. In that case, the existing binding is - // replaced with the new one. - - void bind_context (in Name n, in NamingContext nc) - raises(NotFound, CannotProceed, InvalidName, AlreadyBound); - // This is the version of specifically for binding naming - // contexts, so that they will participate in name resolution - // when compound names are passed to be resolved. - - void rebind_context (in Name n, in NamingContext nc) - raises(NotFound, CannotProceed, InvalidName); - // This is a version of specifically for naming - // contexts, so that they can participate in name resolution - // when compound names are passed. - - // = Resolving names. - - Object resolve (in Name n) - raises(NotFound, CannotProceed, InvalidName); - // Return object reference that is bound to the name. Compound - // name resolve is defined as follows: ctx->resolve () = ctx->resolve ()->resolve () The - // naming service does not return the type of the object. - // Clients are responsible for "narrowing" the object to the - // appropriate type. - - // = Unbinding names. - - void unbind (in Name n) - raises(NotFound, CannotProceed, InvalidName); - // Remove the name binding from the context. When compound - // names are used, unbind is defined as follows: ctx->unbind - // () = (ctx->resolve ())->unbind - // () - - // = Creating Naming Contexts. - - NamingContext new_context (); - // This operation returns a new naming context implemented by - // the same naming server in which the operation was invoked. - // The context is not bound. - - NamingContext bind_new_context (in Name n) - raises(NotFound, AlreadyBound, CannotProceed, InvalidName); - // This operation creates a new context and binds it to the name - // supplied as an argument. The newly-created context is - // implemented by the same server as the context in which it was - // bound (the name argument excluding the last component). - - // = Deleting contexts. - - void destroy () - raises (NotEmpty); - // Delete the naming context. NOTE: the user should - // any bindings in which the given context is bound to some - // names before invoking operation on it. Ignoring - // this rule may cause unexpected behaviour. deletes - // the context object if it is not bound to any names in the - // given address space. decrements the reference - // count of the context if bindings to it exist. - - // = Listing the naming context. - - void list (in unsigned long how_many, - out BindingList bl, out BindingIterator bi); - // Returns at most the requested number of bindings - // in . If the naming context contains additional bindings, - // they are returned with a BindingIterator. In the naming - // context does not contain any additional bindings - // returned as null. - }; - - interface BindingIterator - // = TITLE - // Interface for iterating over Bindings returned with the - // operation. - { - boolean next_one (out Binding b); - // This operation returns the next binding. If there are no - // more bindings false is returned. - - boolean next_n (in unsigned long how_many, - out BindingList bl); - // This operation returns at most the requested number of - // bindings. - - void destroy (); - // This operation destroys the iterator. - }; -}; diff --git a/TAO/orbsvcs/orbsvcs/CosPropertyService.idl b/TAO/orbsvcs/orbsvcs/CosPropertyService.idl deleted file mode 100644 index 55b81f81000..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosPropertyService.idl +++ /dev/null @@ -1,403 +0,0 @@ -// -*-c++-*- - -// $Id$ - -// =================================================================================== -// -// = LIBRARY -// cos -// -// = FILENAME -// CosPropertyService.idl -// -// = DESCRITION -// The property service, downloaded from ftp://ftp.omg.org/pub/docs/1995/95-06-01.ps -// -// = AUTHOR -// Alexander Babu Arulanthu -// -// ====================================================================================== - -module CosPropertyService -{ - // = TITLE - // CosPropertyService : To support properties (that are typed - // named values dynamically associated with an object, outside - // of the type system. - // - // = DESCRIPTION - // The data types and interfaces to deal with property names, property values, - // property modes etc. - - // = Data Types. - - typedef string PropertyName; - - struct Property - { - PropertyName property_name; - any property_value; - }; - - enum PropertyModeType - { - normal, - read_only, - fixed_normal, - fixed_readonly, - undefined - }; - - struct PropertyDef - { - PropertyName property_name; - any property_value; - PropertyModeType property_mode; - }; - - struct PropertyMode - { - PropertyName property_name; - PropertyModeType property_mode; - }; - - typedef sequence PropertyNames; - typedef sequence Properties; - typedef sequence PropertyDefs; - typedef sequence PropertyModes; - typedef sequence PropertyTypes; - - interface PropertyNamesIterator; - interface PropertiesIterator; - interface PropertySetFactory; - interface PropertySetDef; - interface PropertySet; - - // = Exceptions - - exception ConstraintNotSupported {}; - exception InvalidPropertyName {}; - exception ConflictingProperty {}; - exception PropertyNotFound {}; - exception UnsupportedTypeCode {}; - exception UnsupportedProperty {}; - exception UnsupportedMode {}; - exception FixedProperty {}; - exception ReadOnlyProperty {}; - - enum ExceptionReason - { - invalid_property_name, - conflicting_property, - property_not_found, - unsupported_type_code, - unsupported_property, - unsupported_mode, - fixed_property, - read_only_property - }; - - exception PropertyException - { - ExceptionReason reason; - PropertyName failing_property_name; - }; - - typedef sequence PropertyExceptions; - - exception MultipleExceptions - { - PropertyExceptions exceptions; - }; - - // = Interface Definitions. - - interface PropertySetFactory - { - // = TITLE - // Factory class for PropertySet interface. - // = DESCRIPTION - // Support for creating PropertySets with initial - // constraints and properties. - - PropertySet create_propertyset (); - // The create_propertyset operation returns a new - // PropertySet. It is considered an implementation issue as to - // whether the PropertySet contains any initial properties or - // has constraints. - - PropertySet create_constrained_propertyset (in PropertyTypes allowed_property_types, - in Properties allowed_properties) - raises (ConstraintNotSupported); - // The create_constrained_propertyset operation allows a client - // to create a new PropertySet with specific constraints. - - PropertySet create_initial_propertyset (in Properties initial_properties) - raises (MultipleExceptions); - // The create_initial_propertyset operation allows a client to - // create a new PropertySet with specific initial properties. - }; - - interface PropertySetDefFactory - { - // = TITLE - // Factory class for PropertySetDef interface. - // = DESCRIPTION - // Support for creating Propsetdefs with initial constraints - // and properties. - - PropertySetDef create_propertysetdef (); - // The create_propertysetdef operation returns a new - // PropertySetDef. - - PropertySetDef create_constrained_propertysetdef (in PropertyTypes allowed_property_types, - in PropertyDefs allowed_property_defs) - raises (ConstraintNotSupported); - // The create_constrained_propertysetdef operation allows a - // client to create a new PropertySetDef with specific - // constraints, including property modes. - - PropertySetDef create_initial_propertysetdef (in PropertyDefs initial_property_defs) - raises (MultipleExceptions); - // The create_initial_propertysetdef operation allows a client - // to create a new PropertySetDef with specific initial - // properties, including property modes. - }; - - interface PropertySet - { - // = TITLE - // The PropertySet interface provides operations to define - // and modify properties, list and get properties, and - // delete properties. - // - // = DESCRIPTION - // Provides support for defining and modifying properties, - // getting properties and their names and deleting properties. - - // = Support for defining and modifying properties. - - void define_property (in PropertyName property_name, - in any property_value) - raises (InvalidPropertyName, - ConflictingProperty, - UnsupportedTypeCode, - UnsupportedProperty, - ReadOnlyProperty); - // Will modify or add a property to the PropertySet. If the - // property already exists, then the property type is checked - // before the value is overwritten. If the property does not - // exist, then the property is added to the PropertySet. - - void define_properties (in Properties nproperties) - raises (MultipleExceptions); - // Will modify or add each of the properties in Properties - // parameter to the PropertySet. For each property in the list, - // if the property already exists, then the property type is - // checked before overwriting the value. If the property does - // not exist, then the property is added to the PropertySet. - - // = Support for Getting Properties and their Names. - - unsigned long get_number_of_properties (); - // Returns the current number of properties associated with this - // PropertySet. - - void get_all_property_names (in unsigned long how_many, - out PropertyNames property_names, - out PropertyNamesIterator rest); - // Returns all of the property names currently defined in the - // PropertySet. If the PropertySet contains more than how_many - // property names, then the remaining property names are put - // into the PropertyNamesIterator. - - any get_property_value (in PropertyName property_name) - raises (PropertyNotFound, - InvalidPropertyName); - // Returns the value of a property in the PropertySet. - - boolean get_properties (in PropertyNames property_names, - out Properties nproperties); - // Returns the values of the properties listed in - // property_names. - - void get_all_properties (in unsigned long how_many, - out Properties nproperties, - out PropertiesIterator rest); - // Returns all of the property names currently defined in the - // PropertySet. If the PropertySet contains more than how_many - // property names, then the remaining property names are put - // into the PropertyNamesIterator. - - // = Support for Deleting Properties. - - void delete_property (in PropertyName property_name) - raises (PropertyNotFound, - InvalidPropertyName, - FixedProperty); - // Deletes the specified property if it exists from a - // PropertySet. - - - void delete_properties (in PropertyNames property_names) - raises (MultipleExceptions); - // Deletes the properties defined in the property_names - // parameter. This is a batch operation that returns the - // MultipleExceptions exception if any delete failed. - - boolean delete_all_properties (); - // Variation of delete_properties. Applies to all properties. - - // = Support for Existence Check. - - boolean is_property_defined (in PropertyName property_name) - raises (InvalidPropertyName); - // The is_property_defined operation returns true if the - // property is defined in the PropertySet, and returns false - // otherwise. - }; - - interface PropertySetDef:PropertySet - { - // = TITLE - // Interface to deal with the Property Modes. - // - // = DESCRIPTION - // The PropertySetDef interface is a specialization - // (subclass) of the PropertySet interface. The - // PropertySetDef interface provides operations to retrieve - // PropertySet constraints, define and modify properties - // with modes, and to get or set property modes. - - void get_allowed_property_types (out PropertyTypes property_types); - // Indicates which types of properties are supported by this - // PropertySet. If the output sequence is empty, then there is - // no restrictions on the any TypeCode portion of the - // property_value field of a Property in this PropertySet, - // unless the get_allowed_properties output sequence is not empty. - - void get_allowed_properties (out PropertyDefs property_defs); - // Indicates which properties are supported by this - // PropertySet. If the output sequence is empty, then there is - // no restrictions on the properties that can be in this - // PropertySet, unless the get_allowed_property_types output - // sequence is not empty. - - void define_property_with_mode (in PropertyName property_name, - in any property_value, - in PropertyModeType property_mode) - raises (InvalidPropertyName, - ConflictingProperty, - UnsupportedTypeCode, - UnsupportedProperty, - UnsupportedMode, - ReadOnlyProperty); - // This operation will modify or add a property to the - // PropertySet. If the property already exists, then the - // property type is checked before the value is overwritten. The - // property mode is also checked to be sure a new value may be - // written. If the property does not exist, then the property is - // added to the PropertySet. To change the any TypeCode portion - // of the property_value of a property, a client must first - // delete_property, then invoke the define_property_with_mode. - - void define_properties_with_modes (in PropertyDefs property_defs) - raises (MultipleExceptions); - // This operation will modify or add each of the properties in - // the Properties parameter to the PropertySet. For each - // property in the list, if the property already exists, then - // the property type is checked before overwriting the - // value. The property mode is also checked to be sure a new - // value may be written. If the property does not exist, then - // the property is added to the PropertySet. This is a batch - // operation that returns the MultipleExceptions exception if - // any define operation failed. - - // = Support for Getting and Setting Property Modes. - - PropertyModeType get_property_mode (in PropertyName property_name) - raises (PropertyNotFound, - InvalidPropertyName); - // Support for Getting and Setting Property Modes. - - boolean get_property_modes (in PropertyNames property_names, - out PropertyModes property_modes); - // Support for Getting and Setting Property Modes. - - void set_property_mode (in PropertyName property_name, - in PropertyModeType property_mode) - raises (InvalidPropertyName, - PropertyNotFound, - UnsupportedMode); - // Sets the mode of a property in the PropertySet. - - void set_property_modes (in PropertyModes property_modes) - raises (MultipleExceptions); - // Sets the mode for each property in the property_modes - // parameter. This is a batch operation that returns the - // MultipleExceptions exception if any set failed. - - }; - - interface PropertyNamesIterator - { - // = TITLE - // Interface for iterating thru the Property Names. - // - // = DESCRIPTION - // The PropertyNamesIterator interface allows a client to - // iterate through the names using the next_one or next_n operations. - - void reset (); - // The reset operation resets the position in an iterator to the - // first property, if one exists. - - boolean next_one (out PropertyName property_name); - // The next_one operation returns true if an item exists at the - // current position in the iterator with an output parameter of - // a property name. A return of false signifies no more items in - // the iterator. - - boolean next_n (in unsigned long how_many, - out PropertyNames property_names); - // The next_n operation returns true if an item exists at the - // current position in the iterator and the how_many parameter - // was set greater than zero. The output is a PropertyNames - // sequence with at most the how_many number of names. A return - // of false signifies no more items in the iterator. - - void destroy (); - // The destroy operation destroys the iterator. - }; - - interface PropertiesIterator - { - // = TITLE - // Interface for iterating thru the Properties. - // - // = DESCRIPTION - // allows a client to through the name-value pairs using the - // next_one or next_n operations. - - void reset (); - // The reset operation resets the position in an iterator to the - // first property, if one exists. - - boolean next_one (out Property aproperty); - // The next_one operation returns true if an item exists at the - // current position in the iterator with an output parameter of - // a property. A return of false signifies no more items in the - // iterator. - - boolean next_n (in unsigned long how_many, - out Properties nproperties); - // The next_n operation returns true if an item exists at the - // current position in the iterator and the how_many parameter - // was set greater than zero. The output is a properties - // sequence with at most the how_many number of properties. A - // return of false signifies no more items in the iterator. - - void destroy (); - // The destroy operation destroys the iterator. - }; -}; diff --git a/TAO/orbsvcs/orbsvcs/CosTimeBase.idl b/TAO/orbsvcs/orbsvcs/CosTimeBase.idl deleted file mode 100644 index 280031306f0..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosTimeBase.idl +++ /dev/null @@ -1,62 +0,0 @@ -// -// $Id$ -// - -#ifndef COS_TIME_BASE_IDL -#define COS_TIME_BASE_IDL - -module TimeBase { - // = TITLE - // COS Time Service basic types. - // - // = DESCRIPTION - // The standard CORBA Time Service defines a number of data - // structures to manipulate and express time. - // TAO does not implement this standard service (yet), but we use - // the standard types. - // - -#if 1 - // interim definition of type ulonglong pending the - // adoption of the type extension RFP. - // @@ We also need support for 64-bit integers in TAO IDL compiler. - struct ulonglong { - unsigned long low; - unsigned long high; - }; - typedef ulonglong TimeT; -#else - typedef unsigned long long TimeT; -#endif - // As yet the IDL compiler does not support 64-bit quantities, we - // resort to the original definition of TimeT before long long - // numbers were added to IDL. - // - // Time in TimeT is expressed in units of 100 nano seconds (in - // other words 10^-7 seconds), and are relative to October 15, 1582; - // please read the spec for further details. - - typedef TimeT InaccuracyT; - // To express an error estimate for time. - - typedef short TdfT; - // Minutes of displacement from the Greenwich time. - - struct UtcT { - // = TITLE - // The UTC time structure. - TimeT time; - unsigned long inacclo; - unsigned short inacchi; - TdfT tdf; - }; - - struct IntervalT { - // = TITLE - // A time interval - TimeT lower_bound; - TimeT upper_bound; - }; -}; - -#endif /* COS_TIME_BASE_IDL */ diff --git a/TAO/orbsvcs/orbsvcs/CosTrading.idl b/TAO/orbsvcs/orbsvcs/CosTrading.idl deleted file mode 100644 index 7261d61e5b6..00000000000 --- a/TAO/orbsvcs/orbsvcs/CosTrading.idl +++ /dev/null @@ -1,717 +0,0 @@ -/* -*- C++ -*- */ - -// ======================================================================== -// $Id$ -// -// = FILENAME -// CosTrading.idl -// -// = DESCRIPTION -// Trader Service v1.0 described in CORBAservices: Common Object -// Services Specification, chapter 16 OMG IDL for Trading Function -// Module, p 16-74 -// -// ======================================================================== - - -module CosTrading { - - // forward references to our interfaces - - interface Lookup; - interface Register; - interface Link; - interface Proxy; - interface Admin; - interface OfferIterator; - interface OfferIdIterator; - - // type definitions used in more than one interface - - typedef string Istring; - typedef Object TypeRepository; - - typedef Istring PropertyName; - typedef sequence PropertyNameSeq; - typedef any PropertyValue; - struct Property { - PropertyName name; - PropertyValue value; - }; - typedef sequence PropertySeq; - - struct Offer { - Object reference; - PropertySeq properties; - }; - typedef sequence OfferSeq; - - typedef string OfferId; - typedef sequence OfferIdSeq; - - typedef Istring ServiceTypeName; // similar structure to IR::Identifier - - typedef Istring Constraint; - - enum FollowOption { - local_only, - if_no_local, - always - }; - - typedef Istring LinkName; - typedef sequence LinkNameSeq; - typedef LinkNameSeq TraderName; - - typedef string PolicyName; // policy names restricted to Latin1 - typedef sequence PolicyNameSeq; - typedef any PolicyValue; - struct Policy { - PolicyName name; - PolicyValue value; - }; - typedef sequence PolicySeq; - - // exceptions used in more than one interface - - exception UnknownMaxLeft {}; - - exception NotImplemented {}; - - exception IllegalServiceType { - ServiceTypeName type; - }; - - exception UnknownServiceType { - ServiceTypeName type; - }; - - exception IllegalPropertyName { - PropertyName name; - }; - - exception DuplicatePropertyName { - PropertyName name; - }; - exception PropertyTypeMismatch { - ServiceTypeName type; - Property prop; - }; - - exception MissingMandatoryProperty { - ServiceTypeName type; - PropertyName name; - }; - - exception ReadonlyDynamicProperty { - ServiceTypeName type; - PropertyName name; - }; - - exception IllegalConstraint { - Constraint constr; - }; - - exception InvalidLookupRef { - Lookup target; - }; - - exception IllegalOfferId { - OfferId id; - }; - - exception UnknownOfferId { - OfferId id; - }; - - exception DuplicatePolicyName { - PolicyName name; - }; - - // the interfaces - - interface TraderComponents { - - readonly attribute Lookup lookup_if; - readonly attribute Register register_if; - readonly attribute Link link_if; - readonly attribute Proxy proxy_if; - readonly attribute Admin admin_if; - }; - - interface SupportAttributes { - - readonly attribute boolean supports_modifiable_properties; - readonly attribute boolean supports_dynamic_properties; - readonly attribute boolean supports_proxy_offers; - readonly attribute TypeRepository type_repos; - }; - - interface ImportAttributes { - - readonly attribute unsigned long def_search_card; - readonly attribute unsigned long max_search_card; - readonly attribute unsigned long def_match_card; - readonly attribute unsigned long max_match_card; - readonly attribute unsigned long def_return_card; - readonly attribute unsigned long max_return_card; - readonly attribute unsigned long max_list; - readonly attribute unsigned long def_hop_count; - readonly attribute unsigned long max_hop_count; - readonly attribute FollowOption def_follow_policy; - readonly attribute FollowOption max_follow_policy; - }; - - interface LinkAttributes { - - readonly attribute FollowOption max_link_follow_policy; - }; - - interface Lookup:TraderComponents,SupportAttributes,ImportAttributes { - - typedef Istring Preference; - - enum HowManyProps { none, some, all }; - - union SpecifiedProps switch ( HowManyProps ) { - case none: boolean none_; - case some: PropertyNameSeq prop_names; - case all: boolean all_; - }; - - exception IllegalPreference { - Preference pref; - }; - - exception IllegalPolicyName { - PolicyName name; - }; - - exception PolicyTypeMismatch { - Policy the_policy; - }; - - exception InvalidPolicyValue { - Policy the_policy; - }; - - void query ( - in ServiceTypeName type, - in Constraint constr, - in Preference pref, - in PolicySeq policies, - in SpecifiedProps desired_props, - in unsigned long how_many, - out OfferSeq offers, - out OfferIterator offer_itr, - out PolicyNameSeq limits_applied - ) raises ( - IllegalServiceType, - UnknownServiceType, - IllegalConstraint, - IllegalPreference, - IllegalPolicyName, - PolicyTypeMismatch, - InvalidPolicyValue, - IllegalPropertyName, - DuplicatePropertyName, - DuplicatePolicyName - ); - }; - - interface Register : TraderComponents, SupportAttributes { - - struct OfferInfo { - Object reference; - ServiceTypeName type; - PropertySeq properties; - }; - - exception InvalidObjectRef { - Object ref; - }; - - exception UnknownPropertyName { - PropertyName name; - }; - - exception InterfaceTypeMismatch { - ServiceTypeName type; - Object reference; - }; - - exception ProxyOfferId { - OfferId id; - }; - - exception MandatoryProperty { - ServiceTypeName type; - PropertyName name; - }; - - exception ReadonlyProperty { - ServiceTypeName type; - PropertyName name; - }; - - exception NoMatchingOffers { - Constraint constr; - }; - - exception IllegalTraderName { - TraderName name; - }; - - exception UnknownTraderName { - TraderName name; - }; - - exception RegisterNotSupported { - TraderName name; - }; - - OfferId export ( - in Object reference, - in ServiceTypeName type, - in PropertySeq properties - ) raises ( - InvalidObjectRef, - IllegalServiceType, - UnknownServiceType, - InterfaceTypeMismatch, - IllegalPropertyName, // e.g. prop_name = " OctetSeq; - - readonly attribute OctetSeq request_id_stem; - - unsigned long set_def_search_card (in unsigned long value); - unsigned long set_max_search_card (in unsigned long value); - - unsigned long set_def_match_card (in unsigned long value); - unsigned long set_max_match_card (in unsigned long value); - - unsigned long set_def_return_card (in unsigned long value); - unsigned long set_max_return_card (in unsigned long value); - - unsigned long set_max_list (in unsigned long value); - - boolean set_supports_modifiable_properties (in boolean value); - boolean set_supports_dynamic_properties (in boolean value); - boolean set_supports_proxy_offers (in boolean value); - - unsigned long set_def_hop_count (in unsigned long value); - unsigned long set_max_hop_count (in unsigned long value); - - FollowOption set_def_follow_policy (in FollowOption policy); - FollowOption set_max_follow_policy (in FollowOption policy); - - FollowOption set_max_link_follow_policy (in FollowOption policy); - - TypeRepository set_type_repos (in TypeRepository repository); - - OctetSeq set_request_id_stem (in OctetSeq stem); - - void list_offers ( - in unsigned long how_many, - out OfferIdSeq ids, - out OfferIdIterator id_itr - ) raises ( - NotImplemented - ); - - void list_proxies ( - in unsigned long how_many, - out OfferIdSeq ids, - out OfferIdIterator id_itr - ) raises ( - NotImplemented - ); - }; - - interface OfferIterator { - - unsigned long max_left ( - ) raises ( - UnknownMaxLeft - ); - - boolean next_n ( - in unsigned long n, - out OfferSeq offers - ); - - void destroy (); - }; - - interface OfferIdIterator { - unsigned long max_left ( - ) raises ( - UnknownMaxLeft - ); - - boolean next_n ( - in unsigned long n, - out OfferIdSeq ids - ); - - void destroy (); - }; - -}; /* end module CosTrading */ - - -// OMG IDL for Dynamic Property Module, p 16-88 - -module CosTradingDynamic { - - exception DPEvalFailure { - CosTrading::PropertyName name; - TypeCode returned_type; - any extra_info; - }; - - interface DynamicPropEval { - - any evalDP ( - in CosTrading::PropertyName name, - in TypeCode returned_type, - in any extra_info - ) raises ( - DPEvalFailure - ); - }; - - struct DynamicProp { -#ifdef TAO_HAS_DYNAMIC_PROPERTY_BUG - string eval_if; -#else - DynamicPropEval eval_if; -#endif /* TAO_HAS_OBJECT_IN_STRUCT_MARSHAL_BUG */ - TypeCode returned_type; - any extra_info; - }; -}; /* end module CosTradingDynamic */ - - -// OMG IDL for Service Type Repository Module, p 16-89 - -module CosTradingRepos { - - interface ServiceTypeRepository { - - // local types - typedef sequence ServiceTypeNameSeq; - enum PropertyMode { - PROP_NORMAL, PROP_READONLY, - PROP_MANDATORY, PROP_MANDATORY_READONLY - }; - struct PropStruct { - CosTrading::PropertyName name; - TypeCode value_type; - PropertyMode mode; - }; - typedef sequence PropStructSeq; - - typedef CosTrading::Istring Identifier; // IR::Identifier - struct IncarnationNumber { - unsigned long high; - unsigned long low; - }; - struct TypeStruct { - Identifier if_name; - PropStructSeq props; - ServiceTypeNameSeq super_types; - boolean masked; - IncarnationNumber incarnation; - }; - - enum ListOption { all, since }; - union SpecifiedServiceTypes switch ( ListOption ) { - case since: IncarnationNumber incarnation; - }; - - // local exceptions - exception ServiceTypeExists { - CosTrading::ServiceTypeName name; - }; - exception InterfaceTypeMismatch { - CosTrading::ServiceTypeName base_service; - Identifier base_if; - CosTrading::ServiceTypeName derived_service; - Identifier derived_if; - }; - exception HasSubTypes { - CosTrading::ServiceTypeName the_type; - CosTrading::ServiceTypeName sub_type; - }; - exception AlreadyMasked { - CosTrading::ServiceTypeName name; - }; - exception NotMasked { - CosTrading::ServiceTypeName name; - }; - exception ValueTypeRedefinition { - CosTrading::ServiceTypeName type_1; - PropStruct definition_1; - CosTrading::ServiceTypeName type_2; - PropStruct definition_2; - }; - exception DuplicateServiceTypeName { - CosTrading::ServiceTypeName name; - }; - - // attributes - readonly attribute IncarnationNumber incarnation; - - // operation signatures - IncarnationNumber add_type ( - in CosTrading::ServiceTypeName name, - in Identifier if_name, - in PropStructSeq props, - in ServiceTypeNameSeq super_types - ) raises ( - CosTrading::IllegalServiceType, - ServiceTypeExists, - InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - ValueTypeRedefinition, - CosTrading::UnknownServiceType, - DuplicateServiceTypeName - ); - - void remove_type ( - in CosTrading::ServiceTypeName name - ) raises ( - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - HasSubTypes - ); - - ServiceTypeNameSeq list_types ( - in SpecifiedServiceTypes which_types - ); - - TypeStruct describe_type ( - in CosTrading::ServiceTypeName name - ) raises ( - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType - ); - - TypeStruct fully_describe_type ( - in CosTrading::ServiceTypeName name - ) raises ( - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType - ); - - void mask_type ( - in CosTrading::ServiceTypeName name - ) raises ( - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - AlreadyMasked - ); - - void unmask_type ( - in CosTrading::ServiceTypeName name - ) raises ( - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - NotMasked - ); - - }; -}; /* end module CosTradingRepos */ diff --git a/TAO/orbsvcs/orbsvcs/Event/BCU.cpp b/TAO/orbsvcs/orbsvcs/Event/BCU.cpp deleted file mode 100644 index 374fe783ef9..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/BCU.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// $Id$ - -#include "ace/ACE.h" -#include "BCU.h" - - -u_long -ACE_BCU (u_long n) -{ - const u_long ACE_BCU_PRIME_NUMBER = 9619; - - u_long retval = 0; - - while (n-- > 0) - retval = ACE::is_prime (ACE_BCU_PRIME_NUMBER, 2, ACE_BCU_PRIME_NUMBER / 2); - - return retval; -} - - -u_long -ACE_BCU (u_long number, - u_long n) -{ - u_long retval = 0; - - while (n-- > 0) - retval = ACE::is_prime (number, 2, number); - - return retval; -} diff --git a/TAO/orbsvcs/orbsvcs/Event/BCU.h b/TAO/orbsvcs/orbsvcs/Event/BCU.h deleted file mode 100644 index 07d64c46271..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/BCU.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ace ORB -// -// = FILENAME -// Benchmark Computation Units -// -// = AUTHOR -// David Levine and Tim Harrison (harrison@cs.wustl.edu) -// -// = DESCRIPTION -// -// Times how long it takes to generate each of the first N prime -// numbers. -// ============================================================================ - -#if !defined (ACE_BCU_H) -#define ACE_BCU_H - -#include "ace/OS.h" -#include "orbsvcs/orbsvcs_export.h" - - -TAO_ORBSVCS_Export u_long ACE_BCU (u_long n); -// Check if a specific, hardcoded number is prime (via ACE::is_prime) -// times. - - -TAO_ORBSVCS_Export u_long ACE_BCU (u_long number, u_long n); -// Check if is prime (via ACE::is_prime ()) times. - -#endif /* ACE_BCU_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp b/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp deleted file mode 100644 index cdffb8aa443..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp +++ /dev/null @@ -1,349 +0,0 @@ -// $Id$ - -#if !defined (ACE_CORBA_UTILS_C) -#define ACE_CORBA_UTILS_C - -#include "ace/Log_Msg.h" -#include "CORBA_Utils_T.h" - -#if !defined (__ACE_INLINE__) -#include "CORBA_Utils_T.i" -#endif /* __ACE_INLINE__ */ - -template -ACE_CORBA_Sequence::ACE_CORBA_Sequence (const ACE_CORBA_Sequence &source) - : maximum_ (0), - length_ (0), - buffer_ (0), - release_ (0) -{ - (*this) = source; -} - -template -ACE_CORBA_Sequence::ACE_CORBA_Sequence (void) - : maximum_ (0), - length_ (0), - buffer_ (0), - release_ (0) -{ -} - -template -ACE_CORBA_Sequence::~ACE_CORBA_Sequence (void) -{ - if (release_) - { - this->delete_array (buffer_, maximum_); - } -} - -template -ACE_CORBA_Sequence::ACE_CORBA_Sequence (CORBA::ULong max) - : maximum_ (max), - length_ (0), - buffer_ (0), - - release_ (0) -{ - if (maximum_ > 0) - { - buffer_ = this->new_array (maximum_); - release_ = 1; - } -} - -template TYPE * -ACE_CORBA_Sequence::new_array (size_t len) -{ - return new TYPE[len]; -} - -template void -ACE_CORBA_Sequence::delete_array (TYPE *buf, size_t) -{ - delete [] buf; -} - -template -ACE_CORBA_Sequence::ACE_CORBA_Sequence (CORBA::ULong max, - CORBA::ULong length, - TYPE* data, - CORBA::Boolean release) - : maximum_ (max), - length_ (length), - buffer_ (data), - release_ (release) -{ - if ((buffer_ == 0) && (max > 0)) - { - // @@ What should we do here? - errno = ENOMEM; - ACE_ERROR ((LM_ERROR, "No memory.\n")); - } -} - -// @@ This makes a deep copy, dig? -template ACE_CORBA_Sequence & -ACE_CORBA_Sequence::operator= (const ACE_CORBA_Sequence &source) -{ - if (source.length () > 0) - { - // If our buffer is too small, release it and allocate one just big - // enough. If buffer_ == 0, this works fine. - if (this->maximum () < source.length ()) - { - if (release_) - { - this->delete_array (buffer_, maximum_); - } - maximum_ = source.length (); - buffer_ = this->new_array (maximum_); - release_ = 1; - } - - // Copy each of the items from the source. - for (CORBA::ULong index=0; index < source.length (); index++) - (*this)[index] = source[index]; - - this->length (source.length ()); - } - - return *this; -} - -template void -ACE_CORBA_Sequence::length (CORBA::ULong len) -{ - if (len > maximum_) - { - // Allocate the space that we need. - TYPE* tmp = this->new_array (len); - // Copy over the old sequence. - for (CORBA::ULong i = 0; i < maximum_; ++i) - { - tmp[i] = buffer_[i]; - } - if (release_) - { - this->delete_array (buffer_, maximum_); - } - buffer_ = tmp; - release_ = 1; - maximum_ = len; - // The destructor of -old- will release the old buffer_ if - // necessary. - } - - length_ = len; -} - - -// g++ can't handle these operator [] functions if they're inline -template TYPE& -ACE_CORBA_Sequence::operator [] (CORBA::ULong i) -{ - // @@ Should we do bounds checking? - if (i >= maximum_) - { - ACE_ERROR ((LM_ERROR, "Trying to write past maximum.\n")); - return buffer_[maximum_ - 1]; - } - else - return buffer_[i]; -} - -template const TYPE& -ACE_CORBA_Sequence::operator [] (CORBA::ULong i) const -{ - if (i >= length_) - { - ACE_ERROR ((LM_ERROR, "Trying to read past length.\n")); - return buffer_[length_ - 1]; - } - - return buffer_[i]; -} - -// ******************** - -/* -template void -dump (const ACE_CORBA_Sequence &seq) -{ - for (CORBA::ULong index=0; index < seq.length (); index++) - dump (seq[index]); -} -*/ - -/* -template ACE_INLINE void -operator += (ACE_CORBA_Sequence &seq, - const TYPE &item) -{ - CORBA::ULong length = seq.length (); - seq.length (length + 1); - seq[length] = item; -} -*/ - -template ACE_INLINE void -operator += (ACE_CORBA_Sequence &dest, - const ACE_CORBA_Sequence &source) -{ - int old_length = dest.length (); - int new_length = old_length + source.length (); - dest.length (new_length); - - int difference = new_length - old_length; - - for (int x=0; x < difference; x++) - dest[old_length + x] = source[x]; -} - -/* -template ACE_INLINE void -remove_item (TYPE &seq, CORBA::ULong index) -{ - int new_length = seq.length () - 1; - - // Shift the set back one, starting at . - for (int x = index; x < new_length; x++) - seq[x] = seq[x+1]; - - // Set the new length. - seq.length (new_length); -} -*/ - -// ************************************************************ -// ************************************************************ -// ************************************************************ - -template -ACE_CORBA_var::ACE_CORBA_var (const ACE_CORBA_var &source) -{ - if (source.me_ != 0) - me_ = (TYPE *) source.me_->_duplicate (); - // CORBA::duplicate (source.me_); -} - -template -ACE_CORBA_var::ACE_CORBA_var (void) - : me_ (0) -{ -} - -template -ACE_CORBA_var::ACE_CORBA_var (TYPE *source) -{ - me_ = (TYPE *) source->_duplicate (); - // CORBA::duplicate (source); -} - -template -ACE_CORBA_var::~ACE_CORBA_var (void) -{ - if (me_ != 0) - me_->_release (); - //CORBA::release (me_); -} - -template ACE_CORBA_var & -ACE_CORBA_var::operator= (TYPE *source) -{ - if (me_ != source && - me_ != 0) - me_->_release (); - //CORBA::release (me_); - - me_ = (TYPE *) source->_duplicate (); - // CORBA::duplicate (source); - return *this; -} - -template ACE_CORBA_var & -ACE_CORBA_var::operator= (const ACE_CORBA_var &source) -{ - if (me_ != source.me_ && - me_ != 0) - me_->_release (); - // CORBA::release (me_); - - me_ = (TYPE *) source.me_->_duplicate (); - // CORBA::duplicate (source.me_); - return *this; -} - -template TYPE * -ACE_CORBA_var::operator->(void) -{ - return me_; -} - -template -ACE_CORBA_var::operator TYPE *(void) const -{ - return me_; -} - -/* -template -ACE_CORBA_var::operator TYPE *&(void) -{ - return me_; -} -*/ - -template -ACE_CORBA_var::operator TYPE &(void) const -{ - return *me_; -} - -// ************************************************************ -// ************************************************************ - -/* -ACE_CORBA_Object_Ref::ACE_CORBA_Object_Ref (void) - : impl_ (0) -{ -} - -ACE_CORBA_Object_Ref::ACE_CORBA_Object_Ref (IMPL *impl) - : impl_ (impl) -{ -} - -ACE_CORBA_Object_Ref::~ACE_CORBA_Object_Ref (void) - : impl_ (0) -{ -} - -ACE_CORBA_Object_Ref & -ACE_CORBA_Object_Ref::operator= (const ACE_CORBA_Object_Ref &source) -{ - return *this; -} - -IMPL * -ACE_CORBA_Object_Ref::operator->(void) -{ - return impl_; -} - -IMPL * -ACE_CORBA_Object_Ref::operator IMPL *(void) -{ - return impl_; -} - -ACE_CORBA_Object_Ref * -ACE_CORBA_Object_Ref::_duplicate (ACE_CORBA_Object_Ref *source) -{ - source->ref_count_++; - return source; -} - -*/ -#endif /* ACE_CORBA_UTILS_C */ diff --git a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h b/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h deleted file mode 100644 index 8abf180d9e1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h +++ /dev/null @@ -1,236 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// ace_orb -// -// = FILENAME -// CORBA_Utilities.h -// -// = AUTHORS -// Tim Harrison. -// -// = NOTE -// This class is a bit ackward when using a real ORB, but we cannot -// easily remove it since some of the types are used in the -// implementation of the EC. TODO -// -// ============================================================================ - -#if !defined (ACE_CORBA_UTILS_H) -#define ACE_CORBA_UTILS_H - -#include "ace/Time_Value.h" -#include "tao/corba.h" - -template -class ACE_CORBA_Sequence// : public CORBA::Object -// = TITLE -// -// = DESCRIPTION -{ -public: - - ACE_CORBA_Sequence (const ACE_CORBA_Sequence &source); - // Copy construction. - - ACE_CORBA_Sequence (CORBA::ULong max); - ACE_CORBA_Sequence (CORBA::ULong max, - CORBA::ULong length, - TYPE* data, - CORBA::Boolean release = 0); - ACE_CORBA_Sequence (void); - - virtual ~ACE_CORBA_Sequence (void); - - ACE_CORBA_Sequence &operator= (const ACE_CORBA_Sequence &); - - // static TYPE* allocbuf(CORBA::ULong nelems); - // static void freebuf(TYPE* data); - - CORBA::ULong maximum (void) const; - CORBA::ULong length (void) const; - void length (CORBA::ULong len); - - TYPE& operator [] (CORBA::ULong IT_i); - - const TYPE& operator [] (CORBA::ULong IT_i) const; - - virtual TYPE *new_array (size_t len); - // Allocates TYPE[len]. This facilitates template methods through - // template specialization to allow the use of different memory - // pools. - - virtual void delete_array (TYPE *buf, size_t len); - // delete [] . - -protected: - CORBA::ULong maximum_; - CORBA::ULong length_; - TYPE* buffer_; - unsigned char release_; -}; - -// Utility for debugging sequences. -//template -//void dump (const ACE_CORBA_Sequence &seq); - -// Utility for appending single items. Increases the length of -// and adds to the end of . -template void -operator += (ACE_CORBA_Sequence &seq, - const TYPE &item) -{ - CORBA::ULong length = seq.length (); - seq.length (length + 1); - seq[length] = item; -} - -// Utility for appending sequences. -template void -operator += (ACE_CORBA_Sequence &dest, - const ACE_CORBA_Sequence &source); - -template void -remove_item (TYPE &seq, CORBA::ULong index) -{ - int new_length = seq.length () - 1; - - // Shift the set back one, starting at . - for (int x = index; x < new_length; x++) - seq[x] = seq[x+1]; - - // Set the new length. - seq.length (new_length); -} -// Removes seq[index] by moving everything after back and -// decrementing the length. - -// ************************************************************ - -template -class ACE_CORBA_var -// = TITLE -// -// = DESCRIPTION -{ -public: - ACE_CORBA_var (const ACE_CORBA_var &source); - ACE_CORBA_var (void); - ACE_CORBA_var (TYPE *source); - ~ACE_CORBA_var (void); - ACE_CORBA_var &operator= (TYPE *source); - ACE_CORBA_var &operator= (const ACE_CORBA_var &source); - TYPE *operator->(void); - operator TYPE *(void) const; - // operator TYPE *&(void); - operator TYPE &(void) const; -private: - TYPE *me_; -}; - -// ************************************************************ - -/* -template -class ACE_CORBA_Object_Ref : public CORBA::Object -// = TITLE -// ACE CORBA Object Reference -// -// = DESCRIPTION -// A wrapper for making CORBA Object References. For a single -// address space ORB, this points directly to the IMPL -// class. This is supposed to look like a pointer to -// IMPL with an additional static _duplicate method. -{ -public: - // ACE_CORBA_Object_Ref (ACE_CORBA_Object_Ref &obj); - ACE_CORBA_Object_Ref (void); - ACE_CORBA_Object_Ref (IMPL *impl); - ~ACE_CORBA_Object_Ref (void); - // ACE_CORBA_Object_Ref &operator= (IMPL *source); - ACE_CORBA_Object_Ref &operator= - (const ACE_CORBA_Object_Ref &source); - - IMPL *operator->(void); - // A distributed ORB would require that the CORBA Object Reference - // implement all IMPL interfaces, marshall the parameters, - // and transmit over IIOP. For this single address space ORB, we'll - // just delegate method calls to the IMPL directly. - - operator IMPL *(void) const; - // operator IMPL *&(void); - // operator IMPL &(void) const; - - static ACE_CORBA_Object_Ref *_duplicate - (ACE_CORBA_Object_Ref *source); - -private: - IMPL *impl_; -}; -*/ - -// ************************************************************ - -template -class ACE_ES_Simple_Array -// = TITLE -// Simple Array -// -// = DESCRIPTION -// Wraps ITEM[SIZE] with insert and an iterator. There is no -// remove. It allows duplicates. It is truly very simple. -{ - public: - ACE_ES_Simple_Array (void); - int insert (const ITEM ©_me); - size_t size (void); - ITEM *data (void); - protected: - ITEM data_[SIZE]; - size_t size_; -}; - -template -class ACE_ES_Array_Iterator -// = TITLE -// Simple Iterator -// -// = DESCRIPTION -// Iterates through an array of ITEMs. -{ -public: - ACE_ES_Array_Iterator (ITEM *data, size_t size); - - int next (ITEM *&next_item); - // Returns 0 when all items have been seen, else 1. Sets - // to point at the next ITEM. - - int advance (void); - // Move forward by one element in the Stack. Returns 0 when all the - // items in the Stack have been seen, else 1. - - int done (void) const; - // Returns 1 when all items have been seen, else 0. - -private: - ITEM *data_; - size_t size_; - size_t index_; -}; - -#if defined (__ACE_INLINE__) -#include "CORBA_Utils_T.i" -#endif /* __ACE_INLINE__ */ - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "CORBA_Utils_T.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("CORBA_Utils_T.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* ACE_CORBA_UTILS_H */ diff --git a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i b/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i deleted file mode 100644 index c60dc7fd308..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i +++ /dev/null @@ -1,76 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -template ACE_INLINE CORBA::ULong -ACE_CORBA_Sequence::maximum (void) const -{ - return maximum_; -} - -template ACE_INLINE CORBA::ULong -ACE_CORBA_Sequence::length() const -{ - return length_; -} - - -// ************************************************************ - -template ACE_INLINE -ACE_ES_Simple_Array::ACE_ES_Simple_Array (void) : - size_ (0) -{ -} - -template ACE_INLINE int -ACE_ES_Simple_Array::insert (const ITEM ©_me) -{ - if (size_ >= SIZE) - return -1; - - data_[size_++] = copy_me; - return 0; -} - -template ACE_INLINE size_t -ACE_ES_Simple_Array::size (void) -{ - return size_; -} - -template ACE_INLINE ITEM * -ACE_ES_Simple_Array::data (void) -{ - return data_; -} - -// ************************************************************ - -template ACE_INLINE -ACE_ES_Array_Iterator::ACE_ES_Array_Iterator (ITEM *data, size_t size) : - data_ (data), - size_ (size), - index_ (0) -{ -} - -template ACE_INLINE int -ACE_ES_Array_Iterator::done (void) const -{ - return index_ < size_; -} - -template ACE_INLINE int -ACE_ES_Array_Iterator::next (ITEM *&next_item) -{ - next_item = &data_[index_]; - return this->done (); -} - -template ACE_INLINE int -ACE_ES_Array_Iterator::advance (void) -{ - index_++; - return this->done (); -} - diff --git a/TAO/orbsvcs/orbsvcs/Event/Channel_Clients.i b/TAO/orbsvcs/orbsvcs/Event/Channel_Clients.i deleted file mode 100644 index 6318deb79a0..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Channel_Clients.i +++ /dev/null @@ -1,2 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ diff --git a/TAO/orbsvcs/orbsvcs/Event/Channel_Clients_T.i b/TAO/orbsvcs/orbsvcs/Event/Channel_Clients_T.i deleted file mode 100644 index f7c0760fd86..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Channel_Clients_T.i +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -template ACE_INLINE -ACE_PushConsumer_Adapter::ACE_PushConsumer_Adapter (TARGET *target) - : target_ (target) -{ -} - -template ACE_INLINE void -ACE_PushConsumer_Adapter::push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env) -{ - target_->_push (events, _env); -} - -template ACE_INLINE void -ACE_PushConsumer_Adapter::disconnect_push_consumer (CORBA::Environment &_env) -{ - target_->_disconnect_push_consumer (_env); -} - -// ************************************************************ - -template ACE_INLINE -ACE_PushSupplier_Adapter::ACE_PushSupplier_Adapter (TARGET *target) - : target_ (target) -{ -} - -template ACE_INLINE void -ACE_PushSupplier_Adapter::disconnect_push_supplier (CORBA::Environment &_env) -{ - target_->_disconnect_push_supplier (_env); -} diff --git a/TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h b/TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h deleted file mode 100644 index ca7122d7c69..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Debug_Macros.h +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - - -#if defined (ACE_ES_NOLOGGING) -#define ACE_ES_DEBUG(X) -#define ACE_ES_DEBUG_ST(X) -#else -#define ACE_ES_DEBUG(X) \ - do { \ - ACE_Log_Msg::instance ()->log X; \ - } while (0) -#define ACE_ES_DEBUG_ST(X) X -#endif /* ACE_ES_NOLOGGING */ diff --git a/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp b/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp deleted file mode 100644 index 5f4d59a9aef..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.cpp +++ /dev/null @@ -1,645 +0,0 @@ -// $Id$ - -#include "ace/Sched_Params.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/Time_Utilities.h" -#include "Memory_Pools.h" - -#include "Dispatching_Modules.h" - -#if !defined (__ACE_INLINE__) -#include "Dispatching_Modules.i" -#endif /* __ACE_INLINE__ */ - -#include "tao/Timeprobe.h" - -#if defined (ACE_ENABLE_TIMEPROBES) - -static const char *TAO_Dispatching_Modules_Timeprobe_Description[] = -{ - "dispatch (dequeue) the event", - "push_source_type: Correlation Module", - "Priority_Dispatching::push - priority requested", - "Priority_Dispatching::push - priority obtained" -}; - -enum -{ - TAO_DISPATCHING_MODULES_DISPATCH_THE_EVENT = 5000, - TAO_DISPATCHING_MODULES_PUSH_SOURCE_TYPE_CORRELATION_MODULE, - TAO_DISPATCHING_MODULES_PRIORITY_DISPATCHING_PUSH_PRIORITY_REQUESTED, - TAO_DISPATCHING_MODULES_PRIORITY_DISPATCHING_PUSH_PRIORITY_OBTAINED -}; - -#endif /* ACE_ENABLE_TIMEPROBES */ - -// Setup Timeprobes -ACE_TIMEPROBE_EVENT_DESCRIPTIONS (TAO_Dispatching_Modules_Timeprobe_Description, - TAO_DISPATCHING_MODULES_DISPATCH_THE_EVENT); - -// ************************************************************ - -void -ACE_ES_Dispatch_Request::make_copy (RtecEventComm::EventSet &dest) const -{ - if (use_single_event_) - { - dest.length (1); - dest[0] = single_event_; - } - else - { - dest.length (event_set_.length ()); - - for (CORBA::ULong index=0; index < event_set_.length (); index++) - { - RtecEventComm::Event &dest_event = dest[index]; - ACE_ES_Event_Container_var &source_event_var = ((ACE_ES_Event_Container_var &) event_set_[index]); - dest_event = *(source_event_var.operator->()); - } - } -} - -int -ACE_ES_Dispatch_Request::execute (u_long &command_action) -{ - ACE_TIMEPROBE (TAO_DISPATCHING_MODULES_DISPATCH_THE_EVENT); - - return dispatching_module_->dispatch_event (this, command_action); -} - -#if 0 -void * -ACE_ES_Dispatch_Request::operator new (size_t nbytes) -{ - if (nbytes > sizeof (ACE_ES_Dispatch_Request)) - { - ACE_ERROR ((LM_ERROR, "nbytes = %d, sizeof (ACE_ES_Dispatch_Request_Chunk) = %d.\n", - sizeof (ACE_ES_Dispatch_Request))); - ACE_ASSERT (nbytes <= sizeof (ACE_ES_Dispatch_Request)); - } - - return ACE_ES_Memory_Pools::new_Dispatch_Request (); -} - -void -ACE_ES_Dispatch_Request::operator delete (void *mem) -{ - ACE_ES_Memory_Pools::delete_Dispatch_Request (mem); -} -#endif /* 0 */ - -// ************************************************************ - -ACE_ES_Priority_Dispatching::ACE_ES_Priority_Dispatching (ACE_EventChannel *channel, - int threads_per_queue) - : ACE_ES_Dispatching_Base (channel), - notification_strategy_ (this), - highest_priority_ (0), - shutdown_ (0), - threads_per_queue_ (threads_per_queue) -{ - // If we're single threaded, then we need to use the notification strategy. - if ((threads_per_queue_ == 0) && - (notification_strategy_.open () == -1)) - ACE_ERROR ((LM_ERROR, "%p.\n", "ACE_ES_Priority_Dispatching")); - - // Initialize the queues. - for (int x=0; x < ACE_Scheduler_MAX_PRIORITIES; x++) - { - queues_[x] = 0; - delete_me_queues_[x] = 0; - } - - this->initialize_queues (); -} - -ACE_ES_Priority_Dispatching::~ACE_ES_Priority_Dispatching (void) -{ - // Delete the queues. - for (int x=0; x < ACE_Scheduler_MAX_PRIORITIES; x++) - delete delete_me_queues_[x]; -} - - -void -ACE_ES_Priority_Dispatching::initialize_queues (void) -{ - for (int x=0; x < ACE_Scheduler_MAX_PRIORITIES; x++) - { - // Convert ACE_Scheduler_Rate (it's really a period, not a rate!) - // to a form we can easily work with. - ACE_Time_Value period_tv; - ORBSVCS_Time::TimeT_to_Time_Value (period_tv, ACE_Scheduler_Rates[x]); - - RtecScheduler::Period period = period_tv.sec () * 10000000 + - period_tv.usec () * 10; - - queues_[x] = new ACE_ES_Dispatch_Queue (this, ¬ification_strategy_); - if (queues_[x] == 0 || - queues_[x]->open_queue (period, - threads_per_queue_) == -1) - { - ACE_ERROR ((LM_ERROR, "%p.\n", "ACE_ES_Priority_Dispatching::initialize_queues")); - return; - } - - queue_count_[x] = 1; - } - - highest_priority_ = ACE_Scheduler_MAX_PRIORITIES - 1; -} - -void -ACE_ES_Priority_Dispatching::connected (ACE_Push_Consumer_Proxy *consumer, - CORBA::Environment &_env) -{ - down_->connected (consumer, _env); - - // This code does dynamic allocation of channel dispatch threads. - // It requires that consumer's priorities are known at connection - // time and that threads can request priorities from the scheduler - // at run-time. These are both antithetical to static scheduling. - // The constructor now allocates a thread per rate group. -#if 0 - // We have to tell the lower portions of the channel about the - // consumer first. This is so that any changes to the consumer's - // qos will take effect when we get the dispatch priority. - down_->connected (consumer, _env); - - RtecScheduler::OS_Priority priority = - ACE_Scheduler::instance ().preemption_priority (consumer->qos ().rt_info_); - - { - ACE_ES_GUARD ace_mon (lock_); - - // If a queue has not been created for the consumer's priority, - // create one. - if (queues_[priority] == 0) - { - // Allocate a new dispatch queue. - queues_[priority] = new ACE_ES_Dispatch_Queue (this, ¬ification_strategy_); - if (queues_[priority] == 0) - TAO_THROW (CORBA::NO_MEMORY (0, CORBA::COMPLETED_NO, - "ACE_ES_Priority_Dispatching::connected")); - - // Initialize the dispatch queue corresponding to the - // consumer's priority. With a full implementation of the - // run-time scheduler, the dispatch queue can find it's - // scheduling qos online. However, we pass the rate in case - // one is not found. The rate can be used to obtain the - // proper priority. If threads_per_queue_ == 0, then these - // queues will be passive. Otherwise, they will be active. - // This switches us between MT_ORB and ST_ORB. If we're - // single-threaded, this registers us with the ReactorEx using - // our notification_strategy_. If we're multi-threaded, this - // spawns the threads. - if (queues_[priority]->open_queue (priority, - threads_per_queue_) == -1) - TAO_THROW (DISPATCH_ERROR (0, CORBA::COMPLETED_NO, - "ACE_ES_Priority_Dispatching::connected:" - "queue open failed.\n")); - - // When this goes down to 0, we will shutdown the queue. - queue_count_[priority] = 1; - - // Keep track of this to optimize handle_signal. - if (priority > highest_priority_) - highest_priority_ = priority; - - ACE_DEBUG ((LM_DEBUG, "Created queue priority = %d.\n", priority)); - } - else - queue_count_[priority]++; - } -#endif -} - -void -ACE_ES_Priority_Dispatching::disconnected (ACE_Push_Consumer_Proxy *consumer) -{ - // We'll not dynamically close down queues. - ACE_UNUSED_ARG (consumer); - -#if 0 - RtecScheduler::OS_Priority priority = - ACE_Scheduler::instance ().preemption_priority (consumer->qos ().rt_info_); - - { - ACE_ES_GUARD ace_mon (lock_); - - // If there are no more users of this queue, then we *could* shut - // it down. However, we will not. - if (--queue_count_[priority] <= 0) - { - ACE_DEBUG ((LM_DEBUG, "(%t) unused dispatch queue priority = %d, " - "is_empty = %d.\n", - priority, queues_[priority]->msg_queue ()->is_empty ())); - - queues_[priority]->shutdown_task (); - } - } -#endif -} - -// @@ This method could have a bypass optimization. -// has been dynamically allocated by the filtering module. -void -ACE_ES_Priority_Dispatching::push (ACE_ES_Dispatch_Request *request, - CORBA::Environment &_env) -{ - ACE_TIMEPROBE (TAO_DISPATCHING_MODULES_PUSH_SOURCE_TYPE_CORRELATION_MODULE); - - RtecScheduler::OS_Priority thread_priority; - RtecScheduler::Preemption_Subpriority subpriority; - RtecScheduler::Preemption_Priority preemption_priority; - - if (request->rt_info () != 0) - { - // @@ TODO use TAO_TRY&friends - ACE_TIMEPROBE (TAO_DISPATCHING_MODULES_PRIORITY_DISPATCHING_PUSH_PRIORITY_REQUESTED); - ACE_Scheduler_Factory::server ()->priority - (request->rt_info (), - thread_priority, - subpriority, - preemption_priority, - _env); - ACE_TIMEPROBE (TAO_DISPATCHING_MODULES_PRIORITY_DISPATCHING_PUSH_PRIORITY_OBTAINED); - if (_env.exception ()) - { - return; - } - } - else - { - thread_priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_PROCESS); - subpriority = ACE_Scheduler_MIN_SUB_PRIORITY; - preemption_priority = ACE_Scheduler_MIN_PREEMPTION_PRIORITY; - } - - // If it's a request to forward an event, it needs a reference to us - // to call dispatch_event. - request->set (this, preemption_priority, subpriority); - - // Make sure that a queue exists for this priority. - if (queues_[preemption_priority] == 0) - { - ACE_ERROR ((LM_ERROR, "Push to closed queue %d, dropping event.\n", preemption_priority)); - return; -#if 0 - TAO_THROW (SYNC_ERROR (0, CORBA::COMPLETED_NO, "ACE_ES_Priority_Dispatching::push")); -#endif /* 0 */ - } - - // Enqueue the request. If we're multi-threaded, this request is a - // command object that will be called by the threads in the queue, - // or will be dequeued by this->handle_signal if we're - // single-threaded. - if (queues_[preemption_priority]->try_put (request) == -1) - { - if (ACE_ES_Dispatch_Request::release (request) != 0) - ACE_ERROR ((LM_ERROR, "ACE_ES_Priority_Dispatching::push" - " release failed.\n")); - if (errno != EPIPE) - { - TAO_THROW (CORBA::NO_MEMORY (CORBA::COMPLETED_NO)); - // @@ Orbix parameters - // 0, CORBA::COMPLETED_NO, - // "ACE_ES_Priority_Dispatching::push enqueue failed")); - } - else - { - ACE_DEBUG ((LM_DEBUG, - "Request rejected from closed queue %d.\n", - preemption_priority)); - } - } -} - -// Start at highest priority queue checking for queued events -// continuing to lowest priority queue. If an event is ever found, -// dispatch it and then start back at the highest priority queue -// again. -int -ACE_ES_Priority_Dispatching::handle_signal (int, siginfo_t *, ucontext_t *) -{ - int done; - - do - { - done = 1; - for (int x = 0; x <= highest_priority_; x++) - { - // If the queue is not empty, dispatch the request and then - // start the for loop from the beginning. - if ((queues_[x] != 0) && (!queues_[x]->msg_queue ()->is_empty ())) - { - // Dequeue and service the request. - queues_[x]->svc_one (); - - // Exit the for loop and start over. - done = 0; - break; - } - - // If we get through the whole for loop without dispatching - // anything, then we're done. - } - } - while (!done); - - - return 0; -} - -// This is only for the non-win32 single-threaded implementation. -int -ACE_ES_Priority_Dispatching::handle_input (ACE_HANDLE) -{ - return this->handle_signal (0, 0, 0); -} - -// Shutdown each queue. When each queue exits, they will call back -// this->dispatch_queue_closed which allows us to free up resources. -// When the last queue has closed, we'll delete ourselves. -void -ACE_ES_Priority_Dispatching::shutdown (void) -{ - if (shutdown_) - return; - - ACE_DEBUG ((LM_DEBUG, "(%t) ACE_ES_Priority_Dispatching " - "module shutting down.\n")); - - shutdown_ = 1; - - // If we're single threaded, then we need to shut down the - // notification strategy so it can remove itself from the reactor. - if (threads_per_queue_ == 0) - notification_strategy_.shutdown (); - - // Whether these are active or not, they must be shut down. - for (int x = 0; x <= highest_priority_; x++) - if (queues_[x] != 0) - { - ACE_DEBUG ((LM_DEBUG, "shutting down dispatch queue %d.\n", x)); - queues_[x]->shutdown_task (); - } -} - -// This gets called every time a Dispatch Queue closes down. We -// search for and delete it. If we have been told to delete -// ourself, after the last queue has been deleted, we delete -// ourselves. -void -ACE_ES_Priority_Dispatching::dispatch_queue_closed (ACE_ES_Dispatch_Queue *queue) -{ - ACE_ES_GUARD ace_mon (lock_); - - // Find the queue. - for (int x = 0; x <= highest_priority_; x++) - { - if (queues_[x] == queue) - { - ACE_DEBUG ((LM_DEBUG, "(%t) Dispatch queue %d is closed.\n", x)); - - // Store the queue for deleting in this object's destructor. - delete_me_queues_[x] = queues_[x]; - queues_[x] = 0; - - // Reset highest_priority_. - if (x == highest_priority_) - { - while ((--highest_priority_ >= 0) && - (queues_[highest_priority_] == 0)); - - if (highest_priority_ < 0) - { - ACE_DEBUG ((LM_DEBUG, "Dispatching module shut down.\n")); - up_->shutdown (); - return; - } - } - - // If we found the queue, we can exit the for loop. - break; - } - } -} - -/* -ACE_HANDLE -ACE_ES_Priority_Dispatching::get_handle (void) const -{ - ACE_ES_Priority_Dispatching *fake_this = (ACE_ES_Priority_Dispatching *) this; - return fake_this->notification_strategy_.get_handle (); -} -*/ - -// ************************************************************ - -ACE_ES_Dispatch_Queue::ACE_ES_Dispatch_Queue (ACE_ES_Dispatching_Base *dispatching_module, - ACE_ES_Notification_Strategy *notification_strategy) - : dispatching_module_ (dispatching_module), - notification_strategy_ (notification_strategy) -{ -} - -int -ACE_ES_Dispatch_Queue::open_queue (RtecScheduler::Period &period, - int threads) -{ - // First set up the correct message queue according to whether the - // dispatch queue will be active or not. - - // If there are no threads specified, we'll register with the - // reactor to be called back when someone queues a message. - if (threads == 0) - { - // Allocate a message queue that notifies a reactor when events - // arrive via the msg_queue call. If that succeeds, set the - // notification strategy in our message queue via the open call. - if (this->msg_queue () == 0 || - this->msg_queue ()->open (ACE_ES_QUEUE::DEFAULT_HWM, - ACE_ES_QUEUE::DEFAULT_LWM, - notification_strategy_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p msg_queue.open failed.\n", - "ACE_ES_Dispatch_Queue::open_queue"), -1); - } - else - { - // Allocate a message queue that does not notify. - ACE_ES_MQ *mq = new ACE_ES_MQ; - if (mq == 0) - ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", - "ACE_ES_Dispatch_Queue::open_queue"), -1); - else - { - // This deletes previous message queue. - this->msg_queue (mq); - // Set this so that the destructor of ACE_Task deletes our - // message queue. Note, this must be after the call to - // msg_queue. - delete_msg_queue_ = 1; - } - } - - // Create a name for ourselves using the period. The period is - // in 100 ns units; first convert to usec by dividing by 10. - char temp[64]; - ACE_OS::sprintf (temp, "ACE_ES_Dispatch_Queue-%u.us", period / 10); - - // Open the task. This will query the scheduler for our qos - // structure. It will also synch_threads if it succeeds. - int result = this->open_task (temp); - - switch (result) - { - case -1: - // Error. - ACE_ERROR_RETURN ((LM_ERROR, "%p.\n", - "ACE_ES_Dispatch_Queue::open_queue"), -1); - case 0: - TAO_TRY - {// @@ TODO: Handle exceptions... - ACE_Scheduler_Factory::server()->set (rt_info_, - RtecScheduler::VERY_HIGH_CRITICALITY, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - 0, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, - "ACE_ES_Dispatch_Queue::exception"), -1); - } - TAO_ENDTRY; - case 1: - // Found. - break; - } - - // Spawn threads. - return this->synch_threads (threads); -} - -// This is called back by ACE_RT_Task when all the threads have -// exited. We're going to forward this event to the dispatching -// module so it can clean up any resources. -void -ACE_ES_Dispatch_Queue::threads_closed (void) -{ - dispatching_module_->dispatch_queue_closed (this); -} - -// ************************************************************ - -ACE_ES_EFD_Dispatching::ACE_ES_EFD_Dispatching (ACE_EventChannel *channel) - : ACE_ES_Dispatching_Base (channel) -{ -} - -void -ACE_ES_EFD_Dispatching::push (ACE_ES_Dispatch_Request *request, - CORBA::Environment &) -{ - // If it's a request to forward an event, it needs a reference to us - // to call dispatch_event. - request->set (this, 0, ACE_Scheduler_MIN_SUB_PRIORITY); - - u_long command_action = ACE_RT_Task_Command::RELEASE; - - // This may be a request to delete a push consumer proxy, so we - // should execute it instead of just forwarding it. - request->execute (command_action); - - switch (command_action) - { - case ACE_RT_Task_Command::RELEASE: - // Free the request. - if (ACE_ES_Dispatch_Request::release (request) != 0) - ACE_ERROR ((LM_ERROR, "ACE_ES_EFD_Dispatching::push" - " release failed.\n")); - break; - - default: - ACE_ERROR ((LM_ERROR, "ACE_ES_EFD_Dispatching::push: unknown command action.\n")); - } -} - -// ************************************************************ - -ACE_ES_RTU_Dispatching::ACE_ES_RTU_Dispatching (ACE_EventChannel *channel) - : ACE_ES_Priority_Dispatching (channel, 0) -{ -} - -// We're called from a dispatch queue, so we can not release the request. -int -ACE_ES_RTU_Dispatching::dispatch_event (ACE_ES_Dispatch_Request *request, - u_long &command_action) -{ - // Store the priority of the task currently running. - channel_->rtu_manager ()->priority (request->priority ()); - - TAO_TRY - { - // Forward the request. - up_->push (request, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "ACE_ES_RTU_Dispatching::dispatch_event unknown exception.\n")); - } - TAO_ENDTRY; - - // Reset the priority. - channel_->rtu_manager ()->priority (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, ACE_SCOPE_PROCESS)); - - // If the task was preempted, enqueue the request on the head of the - // dispatch queue. - if (channel_->rtu_manager ()->not_done ()) - command_action = ACE_RT_Task_Command::UNGETQ; - else - // We're done with it. - command_action = ACE_RT_Task_Command::RELEASE; - - return 0; -} - -void -ACE_ES_RTU_Dispatching::push (ACE_ES_Dispatch_Request *request, - CORBA::Environment &_env) -{ - // First enqueue the message in the proper queue. - ACE_ES_Priority_Dispatching::push (request, _env); - - // If the current event is higher priority (lower value) than the - // current running task, then tell the task to preempt itself. - int request_priority = request->priority (); - int running_priority = channel_->rtu_manager ()->priority (); - if (request_priority < running_priority) - channel_->rtu_manager ()->should_preempt (1); - return; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_CORBA_Sequence >; -template void operator+=(ACE_CORBA_Sequence > &, ACE_CORBA_var const &); - -#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) - -#pragma instantiate ACE_CORBA_Sequence > -#pragma instantiate void operator+=(ACE_CORBA_Sequence > &, ACE_CORBA_var const &) - -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.h b/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.h deleted file mode 100644 index b61799d7ba1..00000000000 --- a/TAO/orbsvcs/orbsvcs/Event/Dispatching_Modules.h +++ /dev/null @@ -1,486 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// orbsvcs -// -// = FILENAME -// Dispatching_Module -// -// = AUTHOR -// Tim Harrison (harrison@cs.wustl.edu) -// -// = DESCRIPTION -// This file holds the different Event Service dispatching -// mechanisms. These include null-dispatching (EFD), -// single-threaded with (RTU) and without preemption (LAME), and a -// multithreaded implementation. -// -// ============================================================================ - -#ifndef ACE_DISPATCHING_MODULES_H -#define ACE_DISPATCHING_MODULES_H - -#include "tao/Timeprobe.h" -#include "ReactorTask.h" -#include "Event_Channel.h" - -// ************************************************************ - -// Forward declarations. -class ACE_ES_Dispatch_Queue; -class ACE_ES_Dispatch_Request; - -// ************************************************************ - -// Forward declarations. -class ACE_ES_Consumer_Module; - -class TAO_ORBSVCS_Export ACE_ES_Dispatching_Base : public ACE_Event_Handler -// = TITLE -// Event Service Dispatch Module base class -// -// = DESCRIPTION -// We inherit from ACE_Event_Handler so that we can be called back -// by the ReactorEx when requests are queued. The virtual -// dispatch_event method allows ACE_ES_Dispatch_Requests to call -// back the dispatching module when acting as command objects. When -// this implementation is used by the Event Channel it forwards all -// dispatch calls without any queuing. Therefore, it can be -// used to build an EFD. It is also inherited by the Priority -// Dispatching module. -{ -public: - ACE_ES_Dispatching_Base (ACE_EventChannel *channel); - // Default construction. - - virtual void open (ACE_ES_Consumer_Module *up, - ACE_ES_Correlation_Module *down); - // Link to adjacent modules. - - virtual void connected (ACE_Push_Consumer_Proxy *consumer, - CORBA::Environment &); - // Forward down_. - - virtual void disconnecting (ACE_Push_Consumer_Proxy *consumer, - CORBA::Environment &); - // Forward down_. - - virtual void disconnected (ACE_Push_Consumer_Proxy *consumer); - // Release any unneeded dispatching resources. - - // = Not needed. - // void connected (ACE_Push_Supplier_Proxy *supplier); - // void disconnecting (ACE_Push_Supplier_Proxy *supplier); - - virtual void push (ACE_ES_Dispatch_Request *request, - CORBA::Environment &) = 0; - // Forward up_. - - virtual int dispatch_event (ACE_ES_Dispatch_Request *request, - u_long &command_action); - // Called by ACE_ES_Dispatch_Requests when dequeued by RT_Tasks. - - virtual void dispatch_queue_closed (ACE_ES_Dispatch_Queue *q); - // Called when all the threads of a have exited. - - virtual void shutdown (void); - // This is called by the Event Channel. This will attempt to shut - // down all of its threads gracefully. Wish it luck. - -protected: - ACE_EventChannel *channel_; - // Dat der channel. - - ACE_ES_MUTEX lock_; - // To synchronize thr_count_. - - int thr_count_; - // The total number of threads in the Dispatching Module. This will - // be the sum of all the Dispatch Queue threads. - - ACE_ES_Consumer_Module *up_; - // Next module up. - - ACE_ES_Correlation_Module *down_; - // Next module down. -}; - -// ************************************************************ - -class TAO_ORBSVCS_Export ACE_ES_Dispatch_Request : public ACE_RT_Task_Command -// = TITLE -// ACE Event Service Dispatch Request -// -// = DESCRIPTION -// Encapsulates a consumer and the events that will be sent to the -// consumer. Right now, this class keeps a single_event_ that can -// be used when only one event is sent to the consumer. Since this -// is frequently the case (except for correlations), this -// optimization reduces the amount of dynamic memory allocation is -// necessary. This class is also a GOF Command object since it can -// be dequeued by an RT_Task to call back the dispatching module -// for request dispatching. -{ -public: - typedef ACE_CORBA_Sequence Event_Set; - - ACE_ES_Dispatch_Request (void); - // Default construction. - - virtual ~ACE_ES_Dispatch_Request (void); - // Default destruction. - - ACE_ES_Dispatch_Request (ACE_Push_Consumer_Proxy *consumer, - RtecScheduler::handle_t rt_info); - // All the events must be added after construction to the - // event_set. - - ACE_ES_Dispatch_Request (ACE_Push_Consumer_Proxy *consumer, - const Event_Set &event_set, - RtecScheduler::handle_t rt_info); - // Set consumer_ to and copy to event_set_. - // describes the method receiving this dispatch. - - ACE_ES_Dispatch_Request (ACE_Push_Consumer_Proxy *consumer, - const RtecEventComm::Time &time, - RtecScheduler::handle_t rt_info); - // Set consumer_ to and sets single_event_.creation_time_ - // to

    it - // is assumed to be a port number, with the IP address being - // INADDR_ANY. - // Server returns it's UDP data port number. -}; diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Makefile b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Makefile deleted file mode 100644 index a81824a1d7b..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Makefile +++ /dev/null @@ -1,134 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -LIBNAME = libmpeg_shared -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) - -# On non-Windows environment, we should at least define -# the export_include IDL flag. -FILES = $(IDL_FILES) - -DEFS = $(addsuffix .h,$(FILES)) -LSRC = $(addsuffix .cpp,$(FILES)) - - -#TAO_IDLFLAGS = -Wb,export_macro=TAO_ORBSVCS_Export -Wb,export_include=orbsvcs_export.h - -IDL_FILES = Video_ControlS Video_ControlC Audio_ControlS Audio_ControlC - -FILES += com fileio filters routine sendpt - -LDFLAGS += -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat -I$(TAO_ROOT)/orbsvcs $(TSS_ORB_FLAG)#-H - -MPEG_ROOT = $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source -CPPFLAGS += -I$(MPEG_ROOT) - -LIBS += -lTAO -lACE - -#---------------------------------------------------------------------------- -# 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 -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 -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat -I$(TAO_ROOT)/orbsvcs $(TSS_ORB_FLAG)#-H -CPPFLAGS += -DSH_MEM -DNDEBUG - -.PRECIOUS: Video_ControlS.cpp Video_ControlC.cpp Audio_ControlS.cpp Audio_ControlC.cpp - -idl_stubs: $(addsuffix .h, $(IDL_FILES)) - -clean: - -/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf $(addsuffix .h, $(IDL_FILES)) $(addsuffix .i, $(IDL_FILES)) $(addsuffix .cpp, $(IDL_FILES)) - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/com.o .obj/com.so .shobj/com.o .shobj/com.so: com.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i fileio.h \ - routine.h com.h -.obj/fileio.o .obj/fileio.so .shobj/fileio.o .shobj/fileio.so: fileio.cpp routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i fileio.h -.obj/filters.o .obj/filters.so .shobj/filters.o .shobj/filters.so: filters.cpp filters.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i -.obj/routine.o .obj/routine.so .shobj/routine.o .shobj/routine.so: routine.cpp routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i -.obj/sendpt.o .obj/sendpt.so .shobj/sendpt.o .shobj/sendpt.so: sendpt.cpp sendpt.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_Control.idl b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_Control.idl deleted file mode 100644 index 2c9a5ade7f2..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_Control.idl +++ /dev/null @@ -1,112 +0,0 @@ -// -*- C++ -*- - -// $Id$ - -interface Video_Control -{ - - typedef sequence my_seq_char; - const long VIDEO_PATTERN_SIZE = 100; - struct INITvideoPara - { - long sn; - long version; - my_seq_char videofile; - }; - - struct INITvideoReply - { - long live; - long format; - - long totalHeaders; - long totalFrames; - long totalGroups; - long horizontalSize; - long verticalSize; - long pelAspectRatio; - long pictureRate1000; - long vbvBufferSize; - long sizeIFrame; - long sizePFrame; - long sizeBFrame; - long sizeSystemHeader; - long sizeGop; - long averageFrameSize; - long firstGopFrames; - my_seq_char pattern; - }; - - /* CmdPOSITION, CmdPOSITIONrelease: followed by following parameter */ - struct POSITIONpara - { - long sn; - long nextGroup; - }; - - /* CmdSTEP: followed by following parameter */ - struct STEPpara - { - long sn; - long nextFrame; - }; - - /* CmdFF, CmdFB: followed by following parameter */ - struct FFpara - { - long sn; - long nextGroup; - long usecPerFrame; - long framesPerSecond; - long VStimeAdvance; - }; - - typedef FFpara FBpara; - - /*CmdPLAY: followed by following parameter */ - struct PLAYpara - { - long sn; - long collectStat; - long nextFrame; - long usecPerFrame; - long framesPerSecond; - long frameRateLimit1000; - long VStimeAdvance; - long sendPatternGops; - my_seq_char sendPattern; - }; - - /* CmdSPEED: parameter */ - struct SPEEDpara - { - long sn; - long usecPerFrame; - long framesPerSecond; - long frameRateLimit1000; - long sendPatternGops; - my_seq_char sendPattern; - }; - - - boolean init_video (in INITvideoPara para, - out INITvideoReply reply_para); - boolean stat_stream (out char ch, out long size); - oneway void close (); - boolean stat_sent (); - boolean fast_forward (in FFpara para); - boolean fast_backward (in FFpara para); - boolean step (in STEPpara para); - boolean play (in PLAYpara para, out long vts); - boolean position (in POSITIONpara para); - boolean speed (in SPEEDpara para); - boolean stop (in long cmdsn); - - boolean set_peer (inout string peer); - // Initializes the server to communicate to the , which can be - // "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or - // "128.252.166.57:1234"). If there is no ':' in the
    it - // is assumed to be a port number, with the IP address being - // INADDR_ANY. - // Server returns it's UDP data port number. -}; diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp deleted file mode 100644 index 3eb592b6e4b..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.cpp +++ /dev/null @@ -1,2133 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ - -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -// #include -#include "include/common.h" -#include "fileio.h" -#include "routine.h" -#include "com.h" -#include "ace/OS.h" - -#ifdef NATIVE_ATM -#include "atmcom.h" -#endif - -#define CONN_INET 1 -#define CONN_UNIX 2 -#define CONN_ATM 3 - -#define SERVER_FDTABLE_SIZE 50 -#define CLIENT_FDTABLE_SIZE 10 - -#define STATE_PENDING 1 -#define STATE_CONTROL 2 -#define STATE_DATA 3 -#define STATE_SINGLE 4 - -static int inet_port; -static char * unix_port, * atm_port; - -static struct FdTable -{ - int fd; /* -1 -- free item, >=0 -- fd value */ - int type; - unsigned stime; /* setup time, in seconds */ - int state; -} * fdTable = NULL; -static int size = 0; - -int ComInitClient(int pinet_port, char * punix_port, char * patm_port) -{ - int i; - - inet_port = pinet_port; - unix_port = punix_port; - atm_port = patm_port; - if (size) { - fprintf(stderr, - "Error ComInitClient: pid %d already done ComInitClient/Server\n", - getpid()); - return -1; - } - size = CLIENT_FDTABLE_SIZE; - fdTable = (struct FdTable *)ACE_OS::malloc(size * sizeof(*fdTable)); - if (fdTable == NULL) { - fprintf(stderr, - "Error ComInitClient: pid %d failed to allocated fdTable space:", - getpid()); - perror(""); - return -1; - } - for (i = 0; i < size; i ++) { - fdTable[i].fd = -1; - } -#ifdef NATIVE_ATM - return ATMinitClient(atm_port); -#else - return 0; -#endif -} - -void ComCloseClient(void) -{ - int i; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd >= 0) ComCloseConn(fdTable[i].fd); - } -#ifdef NATIVE_ATM - ATMcloseClient(); -#endif - return; -} - -int ComCloseFd(int fd) -{ - int i; - if (!size) { - fprintf(stderr, - "Error ComCloseFd: pid %d not done ComInitClient/Server yet.\n", - getpid()); - return -1; - } - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == fd) break; - } - if (i < size) { - fdTable[i].fd = -1; - if (fdTable[i].type == CONN_ATM) { -#ifdef NATIVE_ATM - return ATMcloseFd(fd); -#else - fprintf(stderr, - "Error ComCloseFd: pid %d CONN_ATM not supported.\n", - getpid()); - return -1; -#endif - } - else { - close(fd); - } - return 0; - } - else { - fprintf(stderr, - "Error ComCloseFd: pid %d can't find fd %d in table\n", - getpid(), fd); - return -1; - } -} - -int ComCloseConn(int fd) -{ - int i; - if (!size) { - fprintf(stderr, - "Error ComCloseConn: pid %d not done ComInitClient/Server yet.\n", - getpid()); - return -1; - } - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == fd) break; - } - if (i < size) { - fdTable[i].fd = -1; - if (fdTable[i].type == CONN_ATM) { -#ifdef NATIVE_ATM - return ATMcloseConn(fd); -#else - fprintf(stderr, - "Error ComCloseConn: pid %d CONN_ATM not supported.\n", - getpid()); - return -1; -#endif - } - else { - close(fd); - } - return 0; - } - else { - fprintf(stderr, - "Error ComCloseConn: pid %d can't find fd %d in table\n", - getpid(), fd); - return -1; - } -} - -int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size) -{ - - // This is right now called only by the audio client. - // The protocol is slightly modified as after connecting we need to - // inform that we are a audio client so that it can fork a process. - int i; - int cfd, dfd, csocktype, dsocktype; - int conn_tag = !(*max_pkt_size); - struct sockaddr_in addressIn; - struct sockaddr_un addressUn; - - if (!size) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d not done ComInitClient/Server yet.\n", - getpid()); - return -1; - } - - cfd = 0; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) cfd ++; - } - if (cfd < 2) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d no faTable entry for the pair", - getpid()); - return -1; - } - - /* tell the type of connections to establish: - If the server is on the same host, then UNIX socket is used */ - if (address[0] == 0) { - csocktype = CONN_UNIX; - dsocktype = CONN_UNIX; - } - else if (!strncasecmp(address, "atm:", 4)) { - address += 4; - csocktype = CONN_ATM; - dsocktype = CONN_ATM; - } - else if (!strncasecmp(address, "datm:", 5)) { - address += 5; - csocktype = CONN_INET; - dsocktype = CONN_ATM; - } - else { - csocktype = CONN_INET; - dsocktype = CONN_INET; - } - if (csocktype == CONN_INET || dsocktype == CONN_INET) { - struct hostent *hp; - char hostname[100]; - addressIn.sin_family = AF_INET; - if (!strncasecmp(address, "inet:", 5)) { - address += 5; - } - if (isascii(address[0]) && isdigit(address[0])) - addressIn.sin_addr.s_addr = inet_addr(address); - else { - if ((hp = gethostbyname(address)) == NULL) { /* No such host! */ - fprintf(stderr, - "Error ComOpenConnPair: pid %d host %s can't be found:", - getpid(), address); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d host %s is not of INET type address.\n", - getpid(), address); - return -1; - } - memcpy((char *)&addressIn.sin_addr.s_addr, (char *)hp->h_addr, - sizeof(addressIn.sin_addr.s_addr)); - /* - bcopy((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr)); - */ - } - if (get_hostname(hostname, 100)) { - fprintf(stderr, "Error ComOpenConnPair: pid %d failed to get_hostname:", - getpid()); - perror(""); - return -1; - } - if ((hp = gethostbyname(hostname)) == NULL) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to its own IP address:", - getpid()); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d own address is not INET type", - getpid()); - return -1; - } - - if (!memcmp((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr))) { - if (csocktype == CONN_INET) csocktype = CONN_UNIX; - if (dsocktype == CONN_INET) dsocktype = CONN_UNIX; - } - } - - /* build appropriate type of Connections to Server */ - if (csocktype == CONN_UNIX && dsocktype == CONN_UNIX) { - /* build UNIX connection to server */ - addressUn.sun_family = AF_UNIX; - strncpy(addressUn.sun_path, unix_port, - sizeof(struct sockaddr_un) - sizeof(short)); - cfd = socket(AF_UNIX, SOCK_STREAM, 0); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open UNIX cfd:", - getpid()); - perror(""); - return -1; - } - usleep(10000); /* this is for waiting for the uncaught signal mentioned - below */ - if (connect(cfd, (struct sockaddr *)&addressUn, sizeof(addressUn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn UNIX cfd to server:", - getpid()); - perror(""); - i = -3; /* I don't understand why when connect() returns EINTR, the connection - is still built, and the other end can still get what written at - this end, 'i = -3' is a garbage to be written. */ - write(cfd, &i, 4); - close(cfd); - return -1; - } - if (time_write_int(cfd, -1) == -1 || time_read_int(cfd, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write -1 to UNIX cfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - - dfd = socket(AF_UNIX, SOCK_STREAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open UNIX dfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - usleep(10000); - if (connect(dfd, (struct sockaddr *)&addressUn, sizeof(addressUn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn UNIX dfd to server:", - getpid()); - perror(""); - i = -3; - write(dfd, &i, 4); - close(cfd); - close(dfd); - return -1; - } - if (time_write_int(dfd, i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (cfd) to UNIX dfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - *max_pkt_size = 0; - } - else if (csocktype == CONN_INET && dsocktype == CONN_INET) { - /* build TCP connection to server */ - addressIn.sin_port = htons(inet_port); - cfd = socket(AF_INET, SOCK_STREAM, 0); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open TCP cfd:", - getpid()); - perror(""); - return -1; - } - usleep(10000); - if (connect(cfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn TCP cfd to server:", - getpid()); - perror(""); - i = -3; - write(cfd, &i, 4); - close(cfd); - return -1; - } - if (conn_tag) { /* create a second connection with server */ - if (time_write_int(cfd, -1) == -1 || time_read_int(cfd, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write -1 to TCP cfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - dfd = socket(AF_INET, SOCK_STREAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open TCP dfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - usleep(10000); - if (connect(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn TCP dfd to server:", - getpid()); - perror(""); - i = -3; - write(dfd, &i, 4); - close(cfd); - close(dfd); - return -1; - } - if (time_write_int(dfd, i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (cfd) to TCP dfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - *max_pkt_size = 0; - } - else { /* create a UDP socket for data */ - // Write a byte saying that we are a audio client. - - if (time_write_int(cfd,CmdINITaudio) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write -2 to TCP cfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - - dfd = socket(AF_INET, SOCK_DGRAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open UDP dfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - memset((char *)&addressIn, 0, sizeof(addressIn)); - - i = sizeof(addressIn); - if (getsockname(cfd, (struct sockaddr *)&addressIn, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to getsocketname on TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - - addressIn.sin_family = AF_INET; - addressIn.sin_port = 0; - if (bind(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to bind UDP dfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - if (time_write_int(cfd, -2) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write -2 to TCP cfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - - i = sizeof(addressIn); - if (getsockname(dfd, (struct sockaddr *)&addressIn, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to getsocketname on UDP fd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - if (time_write_bytes(cfd, (char *)&addressIn.sin_port, sizeof(short)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (port) to TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - - fprintf(stderr, "ComOpenConnPair local UDP socket: addr - %s,%d, port - %u.\n", - inet_ntoa(addressIn.sin_addr), addressIn.sin_addr.s_addr,ntohs(addressIn.sin_port)); - - - fprintf(stderr, "ComOpenConnPair UDP port %d (should be > 0)\n", - ntohs(addressIn.sin_port)); - - - i = sizeof(addressIn); - if (getsockname(cfd, (struct sockaddr *)&addressIn, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to getsocketname on TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - - if (time_write_bytes(cfd, (char *)&addressIn.sin_addr.s_addr, sizeof(int)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (IP addr) to TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - - fprintf(stderr, "ComOpenConnPair TCP cfd socket: addr - %s, port - %u.\n", - inet_ntoa(addressIn.sin_addr), ntohs(addressIn.sin_port)); - - if (time_read_bytes(cfd, (char *)&addressIn.sin_port, sizeof(short)) == -1 || - time_read_bytes(cfd, (char *)&addressIn.sin_addr.s_addr, sizeof(int)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to read (IP addr/port) from TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - usleep(10000); - if (connect(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed conn UDP dfd to peer:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - - fprintf(stderr, "ComOpenConnPair UDP dfd connects to host-%s (port %u)\n", - inet_ntoa(addressIn.sin_addr), - ntohs(addressIn.sin_port)); - -#ifndef LINUX - /* adjust the dfd REVBUF size */ - { - int len; - len = INET_SOCKET_BUFFER_SIZE + 100; - /* - if (setsockopt(dfd, SOL_SOCKET, SO_SNDBUF, (char *)&len, sizeof(len)) == -1) { - fprintf(stderr, - "Warning ComOpenConnPair: pid %d failed to set UDP dfd-snd to size %d:", - getpid(), len); - perror(""); - close(dfd); - close(cfd); - return -1; - } - */ - len = 65536; - while (setsockopt(dfd, SOL_SOCKET, SO_RCVBUF, (char *)&len, sizeof(len)) == -1) { - len -= 1024; - if (len < 8192) break; - /* - fprintf(stderr, - "Warning ComOpenConnPair: pid %d failed to set UDP dfd-rcv to size %d:", - getpid(), len); - perror(""); - close(dfd); - close(cfd); - return -1; - */ - } - if (getuid() == DEVELOPER_UID) - fprintf(stderr, "Set UDP dfd-rcv to %dB\n", len); - } -#endif - *max_pkt_size = - INET_SOCKET_BUFFER_SIZE; - /* UDP sockets on HP and SUN are discard mode */ - } - if (setsockopt(cfd, IPPROTO_TCP, TCP_NODELAY, - (const char *)&i, sizeof(i)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to setsockopt on TCP cfd with TCP_NODELAY:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - } - else if (dsocktype == CONN_ATM) { /* CONN_ATM */ -#ifdef NATIVE_ATM - if (csocktype == CONN_INET) { - /* build TCP connection to server */ - addressIn.sin_port = htons(inet_port); - cfd = socket(AF_INET, SOCK_STREAM, 0); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open TCP1 cfd:", - getpid()); - perror(""); - return -1; - } - usleep(10000); - if (connect(cfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn TCP1 cfd to server:", - getpid()); - perror(""); - i = -3; - write(cfd, &i, 4); - close(cfd); - return -1; - } - } - else if (csocktype == CONN_UNIX) { - /* build UNIX connection to server */ - addressUn.sun_family = AF_UNIX; - strncpy(addressUn.sun_path, unix_port, - sizeof(struct sockaddr_un) - sizeof(short)); - cfd = socket(AF_UNIX, SOCK_STREAM, 0); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open UNIX1 cfd:", - getpid()); - perror(""); - return -1; - } - usleep(10000); /* this is for waiting for the uncaught signal mentioned - below */ - if (connect(cfd, (struct sockaddr *)&addressUn, sizeof(addressUn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn UNIX1 cfd to server:", - getpid()); - perror(""); - i = -3; /* I don't understand why when select() returns EINTR, the connection - is still built, and the other end can still get what written at - this end, 'i = -3' is a garbage to be written. */ - write(cfd, &i, 4); - close(cfd); - return -1; - } - } - else { /* CONN_ATM */ - cfd = ATMopenConn(address, max_pkt_size); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open ATM cfd conn:", - getpid()); - perror(""); - return -1; - } - usleep(100000); /* be nice to buggy ATM driver */ - } - if (time_write_int(cfd, -1) == -1 || time_read_int(cfd, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write -1 to %s cfd:", - getpid(), - (csocktype == CONN_UNIX) ? "UNIX1" : - (csocktype == CONN_INET) ? "INET1" : "ATM"); - perror(""); - if (csocktype == CONN_ATM) ATMcloseConn(cfd); - else close(cfd); - return -1; - } - - dfd = ATMopenConn(address, max_pkt_size); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open ATM dfd conn:", - getpid()); - perror(""); - ATMcloseConn(cfd); - return -1; - } - usleep(100000); /* be nice to buggy ATM driver */ - if (time_write_int(dfd, i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (cfd) to ATM dfd:", - getpid()); - perror(""); - ATMcloseConn(cfd); - ATMcloseConn(dfd); - return -1; - } -#else - fprintf(stderr, - "Error ComOpenConnPair: pid %d addresstype %d not supported\n", - getpid(), dsocktype); - return -1; -#endif - } - for (i = 0; i < size; i ++) { /* guaranteed to succeed */ - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = cfd; - fdTable[i].type = csocktype; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_CONTROL; - } - else { - fprintf(stderr, "Error ComOpenConnPair: no entry for cfd %d\n", cfd); - return -1; - } - for (; i < size; i ++) { - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = dfd; - fdTable[i].type = dsocktype; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_DATA; - } - else { - fprintf(stderr, "Error ComOpenConnPair: no entry for dfd %d\n", dfd); - return -1; - } - *ctr_fd = cfd; - *data_fd = dfd; - ACE_DEBUG ((LM_DEBUG,"(%P|%t)Returning from ComOpenConnpair\n")); - return 0; -} - -/* address format: [ATM:|INET:]real_address | "" - - "" -- UNIX socket, reliable byte stream - [INET:]real_address -- INET sockets, reliable control byte stream, and - *max_pkt_size == 0 : reliable data byte stream, or - != 0 : unreliable packet stream; - ATM:real_address -- ATM sockets, both data and control are - unreliable packet streams; - DATM:real_address -- INET/UNIX control reliable byte stream - and ATM unreliable byte stream; - - Communication between client and server: - - ctr_fd: client --> server server --> client - -2: conn-less INET Open udp sock, send addr in net byte order - - -1: conn-orient Send value of fd, wait to be paired - cfd>=0: data sock Paired with cfd and return. - */ - -#if 0 -int VideoComOpenConnPair (char * address, - int *ctr_fd, - int *data_fd, - int *max_pkt_size) -{ - int i; - int cfd, dfd, csocktype, dsocktype; - int conn_tag = !(*max_pkt_size); - struct sockaddr_in addressIn; - struct sockaddr_un addressUn; - - ACE_DEBUG ((LM_DEBUG, - "%s %d\n", - __FILE__,__LINE__)); - - if (!size) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d not done ComInitClient/Server yet.\n", - getpid()); - return -1; - } - - cfd = 0; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) cfd ++; - } - if (cfd < 2) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d no faTable entry for the pair", - getpid()); - return -1; - } - - /* tell the type of connections to establish: - If the server is on the same host, then UNIX socket is used */ - if (address[0] == 0) { - csocktype = CONN_UNIX; - dsocktype = CONN_UNIX; - } - else if (!strncasecmp(address, "atm:", 4)) { - address += 4; - csocktype = CONN_ATM; - dsocktype = CONN_ATM; - } - else if (!strncasecmp(address, "datm:", 5)) { - address += 5; - csocktype = CONN_INET; - dsocktype = CONN_ATM; - } - else { - csocktype = CONN_INET; - dsocktype = CONN_INET; - } - if (csocktype == CONN_INET || dsocktype == CONN_INET) { - struct hostent *hp; - char hostname[100]; - addressIn.sin_family = AF_INET; - if (!strncasecmp(address, "inet:", 5)) { - address += 5; - } - if (isascii(address[0]) && isdigit(address[0])) - addressIn.sin_addr.s_addr = inet_addr(address); - else { - if ((hp = gethostbyname(address)) == NULL) { /* No such host! */ - fprintf(stderr, - "Error ComOpenConnPair: pid %d host %s can't be found:", - getpid(), address); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d host %s is not of INET type address.\n", - getpid(), address); - return -1; - } - memcpy((char *)&addressIn.sin_addr.s_addr, (char *)hp->h_addr, - sizeof(addressIn.sin_addr.s_addr)); - /* - bcopy((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr)); - */ - } - if (get_hostname(hostname, 100)) { - fprintf(stderr, "Error ComOpenConnPair: pid %d failed to get_hostname:", - getpid()); - perror(""); - return -1; - } - if ((hp = gethostbyname(hostname)) == NULL) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to its own IP address:", - getpid()); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d own address is not INET type", - getpid()); - return -1; - } - - if (!memcmp((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr))) { - if (csocktype == CONN_INET) csocktype = CONN_UNIX; - if (dsocktype == CONN_INET) dsocktype = CONN_UNIX; - } - } - - /* build appropriate type of Connections to Server */ - - if (csocktype == CONN_INET && dsocktype == CONN_INET) { - /* build TCP connection to server */ - addressIn.sin_port = htons(inet_port); - cfd = socket(AF_INET, SOCK_STREAM, 0); - if (cfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open TCP cfd:", - getpid()); - perror(""); - return -1; - } - usleep(10000); - if (connect(cfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn TCP cfd to server:", - getpid()); - perror(""); - i = -3; - write(cfd, &i, 4); - close(cfd); - return -1; - } -// if (conn_tag) { /* create a second connection with server */ -// if (time_write_int(cfd, -1) == -1 || time_read_int(cfd, &i) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write -1 to TCP cfd:", -// getpid()); -// perror(""); -// close(cfd); -// return -1; -// } - dfd = socket(AF_INET, SOCK_STREAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open TCP dfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - usleep(10000); - if (connect(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to conn TCP dfd to server:", - getpid()); - perror(""); - i = -3; - write(dfd, &i, 4); - close(cfd); - close(dfd); - return -1; - } - if (time_write_int(dfd, i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to write (cfd) to TCP dfd:", - getpid()); - perror(""); - close(cfd); - close(dfd); - return -1; - } - *max_pkt_size = 0; - } - else { /* create a UDP socket for data */ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) ::VideoComOpenConnPair: making UDP connection\n")); - dfd = socket(AF_INET, SOCK_DGRAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to open UDP dfd:", - getpid()); - perror(""); - close(cfd); - return -1; - } - memset((char *)&addressIn, 0, sizeof(addressIn)); - - i = sizeof(addressIn); - if (getsockname(cfd, (struct sockaddr *)&addressIn, &i) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to getsocketname on TCP cfd:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - -// addressIn.sin_family = AF_INET; -// addressIn.sin_port = 0; -// if (bind(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to bind UDP dfd:", -// getpid()); -// perror(""); -// close(cfd); -// close(dfd); -// return -1; -// } -// if (time_write_int(cfd, -2) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write -2 to TCP cfd:", -// getpid()); -// perror(""); -// close(cfd); -// close(dfd); -// return -1; -// } - -// i = sizeof(addressIn); -// if (getsockname(dfd, (struct sockaddr *)&addressIn, &i) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to getsocketname on UDP fd:", -// getpid()); -// perror(""); -// close(dfd); -// close(cfd); -// return -1; -// } -// if (time_write_bytes(cfd, (char *)&addressIn.sin_port, sizeof(short)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write (port) to TCP cfd:", -// getpid()); -// perror(""); -// close(dfd); -// close(cfd); -// return -1; -// } - -// fprintf(stderr, "ComOpenConnPair local UDP socket: addr - %s, port - %u.\n", -// inet_ntoa(addressIn.sin_addr), ntohs(addressIn.sin_port)); - - -// fprintf(stderr, "ComOpenConnPair UDP port %d (should be > 0)\n", -// ntohs(addressIn.sin_port)); - -// /* -// i = sizeof(addressIn); -// if (getsockname(cfd, (struct sockaddr *)&addressIn, &i) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to getsocketname on TCP cfd:", -// getpid()); -// perror(""); -// close(dfd); -// close(cfd); -// return -1; -// } -// */ -// if (time_write_bytes(cfd, (char *)&addressIn.sin_addr.s_addr, sizeof(int)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write (IP addr) to TCP cfd:", -// getpid()); -// perror(""); -// close(dfd); -// close(cfd); -// return -1; -// } - -// fprintf(stderr, "ComOpenConnPair TCP cfd socket: addr - %s, port - %u.\n", -// inet_ntoa(addressIn.sin_addr), ntohs(addressIn.sin_port)); - -// if (time_read_bytes(cfd, (char *)&addressIn.sin_port, sizeof(short)) == -1 || -// time_read_bytes(cfd, (char *)&addressIn.sin_addr.s_addr, sizeof(int)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to read (IP addr/port) from TCP cfd:", -// getpid()); -// perror(""); -// close(dfd); -// close(cfd); - // return -1; - // } - // usleep(10000); - // if (connect(dfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - // fprintf(stderr, - // "Error ComOpenConnPair: pid %d failed conn UDP dfd to peer:", - // getpid()); - // perror(""); - // close(cfd); - // close(dfd); - // return -1; - // } - - fprintf(stderr, "ComOpenConnPair UDP dfd connects to host-%s (port %u)\n", - inet_ntoa(addressIn.sin_addr), - ntohs(addressIn.sin_port)); - -#ifndef LINUX - /* adjust the dfd REVBUF size */ - { - int len; - len = INET_SOCKET_BUFFER_SIZE + 100; - /* - if (setsockopt(dfd, SOL_SOCKET, SO_SNDBUF, (char *)&len, sizeof(len)) == -1) { - fprintf(stderr, - "Warning ComOpenConnPair: pid %d failed to set UDP dfd-snd to size %d:", - getpid(), len); - perror(""); - close(dfd); - close(cfd); - return -1; - } - */ - len = 65536; - while (setsockopt(dfd, SOL_SOCKET, SO_RCVBUF, (char *)&len, sizeof(len)) == -1) { - len -= 1024; - if (len < 8192) break; - /* - fprintf(stderr, - "Warning ComOpenConnPair: pid %d failed to set UDP dfd-rcv to size %d:", - getpid(), len); - perror(""); - close(dfd); - close(cfd); - return -1; - */ - } - if (getuid() == DEVELOPER_UID) - fprintf(stderr, "Set UDP dfd-rcv to %dB\n", len); - } -#endif - *max_pkt_size = - INET_SOCKET_BUFFER_SIZE; - /* UDP sockets on HP and SUN are discard mode */ - } - if (setsockopt(cfd, IPPROTO_TCP, TCP_NODELAY, - (const char *)&i, sizeof(i)) == -1) { - fprintf(stderr, - "Error ComOpenConnPair: pid %d failed to setsockopt on TCP cfd with TCP_NODELAY:", - getpid()); - perror(""); - close(dfd); - close(cfd); - return -1; - } - // } -// else if (dsocktype == CONN_ATM) { /* CONN_ATM */ -// #ifdef NATIVE_ATM -// if (csocktype == CONN_INET) { -// /* build TCP connection to server */ -// addressIn.sin_port = htons(inet_port); -// cfd = socket(AF_INET, SOCK_STREAM, 0); -// if (cfd == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to open TCP1 cfd:", -// getpid()); -// perror(""); -// return -1; -// } -// usleep(10000); -// if (connect(cfd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to conn TCP1 cfd to server:", -// getpid()); -// perror(""); -// i = -3; -// write(cfd, &i, 4); -// close(cfd); -// return -1; -// } -// } -// else if (csocktype == CONN_UNIX) { -// /* build UNIX connection to server */ -// addressUn.sun_family = AF_UNIX; -// strncpy(addressUn.sun_path, unix_port, -// sizeof(struct sockaddr_un) - sizeof(short)); -// cfd = socket(AF_UNIX, SOCK_STREAM, 0); -// if (cfd == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to open UNIX1 cfd:", -// getpid()); -// perror(""); -// return -1; -// } -// usleep(10000); /* this is for waiting for the uncaught signal mentioned -// below */ -// if (connect(cfd, (struct sockaddr *)&addressUn, sizeof(addressUn)) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to conn UNIX1 cfd to server:", -// getpid()); -// perror(""); -// i = -3; /* I don't understand why when select() returns EINTR, the connection -// is still built, and the other end can still get what written at -// this end, 'i = -3' is a garbage to be written. */ -// write(cfd, &i, 4); -// close(cfd); -// return -1; -// } -// } -// else { /* CONN_ATM */ -// cfd = ATMopenConn(address, max_pkt_size); -// if (cfd == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to open ATM cfd conn:", -// getpid()); -// perror(""); -// return -1; -// } -// usleep(100000); /* be nice to buggy ATM driver */ -// } -// if (time_write_int(cfd, -1) == -1 || time_read_int(cfd, &i) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write -1 to %s cfd:", -// getpid(), -// (csocktype == CONN_UNIX) ? "UNIX1" : -// (csocktype == CONN_INET) ? "INET1" : "ATM"); -// perror(""); -// if (csocktype == CONN_ATM) ATMcloseConn(cfd); -// else close(cfd); -// return -1; -// } - -// dfd = ATMopenConn(address, max_pkt_size); -// if (dfd == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to open ATM dfd conn:", -// getpid()); -// perror(""); -// ATMcloseConn(cfd); -// return -1; -// } -// usleep(100000); /* be nice to buggy ATM driver */ -// if (time_write_int(dfd, i) == -1) { -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d failed to write (cfd) to ATM dfd:", -// getpid()); -// perror(""); -// ATMcloseConn(cfd); -// ATMcloseConn(dfd); -// return -1; -// } -// #else -// fprintf(stderr, -// "Error ComOpenConnPair: pid %d addresstype %d not supported\n", -// getpid(), dsocktype); -// return -1; -// #endif -// } - for (i = 0; i < size; i ++) { /* guaranteed to succeed */ - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = cfd; - fdTable[i].type = csocktype; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_CONTROL; - } - else { - fprintf(stderr, "Error ComOpenConnPair: no entry for cfd %d\n", cfd); - return -1; - } - for (; i < size; i ++) { - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = dfd; - fdTable[i].type = dsocktype; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_DATA; - } - else { - fprintf(stderr, "Error ComOpenConnPair: no entry for dfd %d\n", dfd); - return -1; - } - *ctr_fd = cfd; - *data_fd = dfd; - return 0; -} -#endif - -/* returns: -1 -- failed, >=0 -- fd */ -int ComOpenConn(char * address, int *max_pkt_size) -{ - int i; - int fd, socktype; - struct sockaddr_in addressIn; - struct sockaddr_un addressUn; - - if (!size) { - fprintf(stderr, - "Error ComOpenConn: pid %d not done ComInitClient/Server yet.\n", - getpid()); - return -1; - } - - fd = 0; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) fd ++; - } - if (fd < 1) { - fprintf(stderr, - "Error ComOpenConn: pid %d no faTable entry for the pair", - getpid()); - return -1; - } - - /* tell the type of connections to establish: - If the server is on the same host, then UNIX socket is used */ - if (address[0] == 0) { - socktype = CONN_UNIX; - } - else if (!strncasecmp(address, "atm:", 4)) { - address += 4; - socktype = CONN_ATM; - } - else if (!strncasecmp(address, "datm:", 5)) { - address += 5; - socktype = CONN_ATM; - } - else { - socktype = CONN_INET; - } - if (socktype == CONN_INET) { - struct hostent *hp; - char hostname[100]; - addressIn.sin_family = AF_INET; - if (!strncasecmp(address, "inet:", 5)) { - address += 5; - } - if (isascii(address[0]) && isdigit(address[0])) - addressIn.sin_addr.s_addr = inet_addr(address); - else { - if ((hp = gethostbyname(address)) == NULL) { /* No such host! */ - fprintf(stderr, - "Error ComOpenConn: pid %d host %s can't be found:", - getpid(), address); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConn: pid %d host %s is not of INET type address.\n", - getpid(), address); - return -1; - } - memcpy((char *)&addressIn.sin_addr.s_addr, (char *)hp->h_addr, - sizeof(addressIn.sin_addr.s_addr)); - /* - bcopy((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr)); - */ - } - if (get_hostname(hostname, 100)) { - fprintf(stderr, "Error ComOpenConn: pid %d failed to get_hostname:", - getpid()); - perror(""); - return -1; - } - if ((hp = gethostbyname(hostname)) == NULL) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to its own IP address:", - getpid()); - perror(""); - return -1; - } - if (hp->h_addrtype != AF_INET) { - fprintf(stderr, - "Error ComOpenConn: pid %d own address is not INET type", - getpid()); - return -1; - } - - if (!memcmp((char *)hp->h_addr, (char *)&addressIn.sin_addr.s_addr, - sizeof(addressIn.sin_addr.s_addr))) { - if (socktype == CONN_INET) socktype = CONN_UNIX; - } - } - - /* build appropriate type of Connections to Server */ - if (socktype == CONN_UNIX) { - /* build UNIX connection to server */ - addressUn.sun_family = AF_UNIX; - strncpy(addressUn.sun_path, unix_port, - sizeof(struct sockaddr_un) - sizeof(short)); - fd = socket(AF_UNIX, SOCK_STREAM, 0); - if (fd == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to open UNIX fd:", - getpid()); - perror(""); - return -1; - } - if (connect(fd, (struct sockaddr *)&addressUn, sizeof(addressUn)) == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to conn UNIX fd to server:", - getpid()); - perror(""); - close(fd); - return -1; - } - *max_pkt_size = 0; - } - else if (socktype == CONN_INET) { - /* build TCP connection to server */ - addressIn.sin_port = htons(inet_port); - fd = socket(AF_INET, SOCK_STREAM, 0); - if (fd == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to open TCP fd:", - getpid()); - perror(""); - return -1; - } - if (connect(fd, (struct sockaddr *)&addressIn, sizeof(addressIn)) == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to conn TCP fd to server:", - getpid()); - perror(""); - close(fd); - return -1; - } - if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, - (const char *)&i, sizeof(i)) == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to setsockopt on TCP fd with TCP_NODELAY:", - getpid()); - perror(""); - close(fd); - return -1; - } - *max_pkt_size = 0; - } - else if (socktype == CONN_ATM) { /* CONN_ATM */ -#ifdef NATIVE_ATM - /* CONN_ATM */ - fd = ATMopenConn(address, max_pkt_size); - if (fd == -1) { - fprintf(stderr, - "Error ComOpenConn: pid %d failed to open ATM fd conn:", - getpid()); - perror(""); - return -1; - } -#else - fprintf(stderr, - "Error ComOpenConn: pid %d addresstype %d not supported\n", - getpid(), socktype); - return -1; -#endif - } - for (i = 0; i < size; i ++) { /* guaranteed to succeed */ - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = fd; - fdTable[i].type = socktype; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_SINGLE; - return fd; - } - else { - fprintf(stderr, "Error ComOpenConn: no entry for fd %d\n", fd); - return -1; - } -} - - -static int fd_unix, fd_inet, fd_atm; /* for use in the server side */ - - -int ComInitServer(int pinet_port, char * punix_port, char * patm_port) -{ - int i; - - struct sockaddr_in myaddr_in; - struct sockaddr_un myaddr_un; - - inet_port = pinet_port; - unix_port = punix_port; - atm_port = patm_port; - - if (size) { - fprintf(stderr, - "Error ComInitServer: pid %d already done ComInitServer/Server\n", - getpid()); - return -1; - } - size = CLIENT_FDTABLE_SIZE; - // create and initialize the File Descriptor Table - fdTable = (struct FdTable *)ACE_OS::malloc(size * sizeof(*fdTable)); - if (fdTable == NULL) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to allocated fdTable space:", - getpid()); - perror(""); - return -1; - } - for (i = 0; i < size; i ++) { - fdTable[i].fd = -1; - } - // Set all the file descriptor for atm ,inet and unix to be -1 - fd_atm = fd_inet = fd_unix = -1; - - memset((char *)&myaddr_in, 0, sizeof(struct sockaddr_in)); - memset((char *)&myaddr_un, 0, sizeof(struct sockaddr_un)); - - myaddr_in.sin_family = AF_INET; - - myaddr_in.sin_addr.s_addr = htonl(INADDR_ANY); - myaddr_in.sin_port = htons((short)inet_port); - - /* setup INET listen socket */ - fd_inet = socket(AF_INET, SOCK_STREAM, 0); - if (fd_inet == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to open fd_inet:", - getpid()); - perror(""); - goto open_fd_unix; - } - - i = 1; - if (setsockopt(fd_inet, SOL_SOCKET, SO_REUSEADDR, - (const char *)&i, sizeof(i)) == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to setsockopt fd_inet with REUSEADDR:", - getpid()); - perror(""); - close(fd_inet); - fd_inet = -1; - goto open_fd_unix; - } - - if (bind(fd_inet, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to bind fd_inet:", - getpid()); - perror(""); - close(fd_inet); - fd_inet = -1; - goto open_fd_unix; - } - if (listen(fd_inet, 2) == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to listen on fd_inet:", - getpid()); - perror(""); - close(fd_inet); - fd_inet = -1; - goto open_fd_unix; - } - - open_fd_unix: - - myaddr_un.sun_family = AF_UNIX; - strncpy(myaddr_un.sun_path, unix_port, - (sizeof(struct sockaddr_un) - sizeof(short))); - fd_unix = socket(AF_UNIX, SOCK_STREAM, 0); - if (fd_unix == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to open fd_unix:", - getpid()); - perror(""); - goto open_fd_atm; - } - if ((bind(fd_unix, (struct sockaddr *)&myaddr_un, - sizeof(struct sockaddr_un))) == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to bind fd_unix:", - getpid()); - perror(""); - close(fd_unix); - fd_unix = -1; - goto open_fd_atm; - } - if ((listen(fd_unix, 2)) == -1) { - fprintf(stderr, - "Error ComInitServer: pid %d failed to liston on fd_unix:", - getpid()); - perror(""); - close(fd_unix); - fd_unix = -1; - goto open_fd_atm; - } - - open_fd_atm: - -#ifdef NATIVE_ATM - fd_atm = ATMinitServer(atm_port); -#endif - - if (fd_inet >= 0 || fd_unix >= 0 || fd_atm >= 0) return 0; - else return -1; -} - -void ComCloseListen(void) -{ - if (fd_atm >= 0) { -#ifdef NATIVE_ATM - /* fd_atm is not connected to a user_plane, ignore - ATMcloseFd(fd_atm); - */ - close(fd_atm); - fd_atm = -1; -#else - fprintf(stderr, "Error ComCloseListen: CONN_ATM not supported.\n"); -#endif - } - if (fd_unix >= 0) { - close(fd_unix); - fd_unix = -1; - } - if (fd_inet >= 0) { - close(fd_inet); - fd_inet = -1; - } - return; -} - -void ComCloseServer(void) -{ - int i; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd >= 0) ComCloseConn(fdTable[i].fd); - } - if (fd_atm >= 0) { -#ifdef NATIVE_ATM - /* fd_atm not connected to a user-plane, igore it - ATMcloseConn(fd_atm); - */ - close(fd_atm); - fd_atm = -1; -#else - fprintf(stderr, "Error ComCloseServer: CONN_ATM not supported.\n"); -#endif - } - if (fd_unix >= 0) { - close(fd_unix); - fd_unix = -1; - unlink(unix_port); - } - if (fd_inet >= 0) { - close(fd_inet); - fd_inet = -1; - } -#ifdef NATIVE_ATM - ATMcloseServer(); -#endif - return; -} - -static int change_option(int fd) -{ - struct linger linger = {1, 1}; - int i = 1; - if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, - (const char *)&i, sizeof(i)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to setsockopt on fd_inet:", - getpid()); - perror(""); - return -1; - } - /* data socket also NODELAY */ - if (setsockopt(fd, SOL_SOCKET, SO_LINGER, (const char *)&linger, - sizeof(linger)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to linger on fd_inet:", - getpid()); - perror(""); - return -1; - } - return 0; -} - -int ComGetConnPair(int *ctr_fd, int *data_fd, int *max_pkt_size) -{ - int i; - int fd, fdType; - int addrlen; - struct sockaddr_in peeraddr_in; - struct fd_set read_mask; - struct timeval tval; - int nfds; - - fd = 0; - addrlen = get_sec(); - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) { - fd ++; - } - else if (fdTable[i].type == STATE_PENDING && - get_duration(fdTable[i].stime, addrlen) > 10) { - fprintf(stderr, - "ComGetConnPair: pid %d closed fd %d (PENDING >= 10 sec)\n", - getpid(), fdTable[i].fd); - ComCloseConn(fdTable[i].fd); - fdTable[i].fd = -1; - fd ++; - } - } - if (fd < 2) { - fprintf(stderr, - "Error ComGetConnPair: pid %d no faTable entry for the pair", - getpid()); - return -1; - } - - FD_ZERO(&read_mask); - if (fd_inet >= 0) FD_SET(fd_inet, &read_mask); - if (fd_unix >= 0) FD_SET(fd_unix, &read_mask); - if (fd_atm >= 0) FD_SET(fd_atm, &read_mask); - - tval.tv_sec = 1; /* wait at most 1 second */ - tval.tv_usec = 0; - - - nfds = fd_inet; - if (fd_unix > nfds) nfds = fd_unix; - if (fd_atm > nfds) nfds = fd_atm; - // nfds now holds the highest numbered open file descriptor - nfds ++; // increment so that select can use o to nfds -1 no. of - // file descriptors. - errno = 0; - // fd is here used as the result of the select call -#ifdef _HPUX_SOURCE - if ((fd = select(nfds, (int *)&read_mask, NULL, NULL, &tval)) == -1) -#else - if ((fd = select(nfds, &read_mask, NULL, NULL, &tval)) == -1) -#endif - { - - if (errno == EINTR) return -1; - - fprintf(stderr, - "Error ComGetConnPair: pid %d failed on select():", - getpid()); - perror(""); - return -1; - } - if (fd == 0) return -1; /* time expire */ - - fd = -1; - // fd will be reused inside this code as the accepted socket. - if (fd == -1 && fd_unix >= 0 && FD_ISSET(fd_unix, &read_mask)) { - struct sockaddr_un peeraddr_un; - - fprintf(stderr, "Server to accept a UNIX connection.\n"); - - addrlen = sizeof(struct sockaddr_un); - fd = accept(fd_unix, (struct sockaddr *)&peeraddr_un, &addrlen); - if (fd == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to accpet on fd_unix:", - getpid()); - perror(""); - } - else fdType = CONN_UNIX; - *max_pkt_size = 0; - } - // fd here is the result of the accept for unix if fd_unix is valid - // Hence if fd_unix is present then this won't be called if the - // accept for the fd_unix succeeds. - if (fd == -1 && fd_inet >= 0 && FD_ISSET(fd_inet, &read_mask)) { - - fprintf(stderr, "Server to accept a INET connection.\n"); - - addrlen = sizeof(struct sockaddr_in); - fd = accept(fd_inet, (struct sockaddr *)&peeraddr_in, &addrlen); - if (fd == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to accpet on fd_inet:", - getpid()); - perror(""); - } - else fdType = CONN_INET; - *max_pkt_size = 0; - } - if (fd == -1 && fd_atm >= 0 && FD_ISSET(fd_atm, &read_mask)) { -#ifdef NATIVE_ATM - fd = ATMaccept(fd_atm, max_pkt_size); - fdType = CONN_ATM; -#else - fprintf(stderr, - "Error ComGetConnPair: pid %d CONN_ATM not supported.\n", - getpid()); -#endif - } - // fd = -1 implies accept failed in any of the active connections - // which came out of the select call. - if (fd == -1) return -1; - - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) break; - } - // Enter the accepted fd in the file descriptor Table - if (i < size) { - fdTable[i].fd = fd; - fdTable[i].type = fdType; - fdTable[i].stime = get_sec(); - } - else { - fprintf(stderr, "Weird\n"); - } - - // read the port number for the UDP socket of the client - if (time_read_int(fd, &nfds) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to read int from %s fd:", - getpid(), - fdType == CONN_ATM ? "ATM" : - fdType == CONN_INET ? "INET" : "UNIX"); - perror(""); - ComCloseConn(fd); - return -1; - } - fprintf (stderr, - " Received int nfds = %d \n", - nfds); - // nfds holds the int read in time_read_int - // if nfds is -1 then read int error. - fprintf(stderr, "ComGetConnPair got %s fd = %d with value %d\n", - fdType == CONN_ATM ? "ATM" : - fdType == CONN_INET ? "INET" : "UNIX", - fd, nfds); - - if (nfds >= 0) { /* can be paired and return */ - // This is the success case where you got a control fd and a data fd. - fdTable[i].state = STATE_DATA; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == nfds) break; - } - if (i < size && fdTable[i].state == STATE_PENDING) { - fdTable[i].state = STATE_CONTROL; - } - else { - if (i >= 0) fprintf(stderr, " i %d\n", i); - ComCloseConn(fd); - return -1; - } - // ???? - *ctr_fd = fdTable[i].fd; - *data_fd = fd; - return 0; - } - else if (nfds == -1) { /* wait to be paired */ - fdTable[i].state = STATE_PENDING; - // fd is the inet or unix accepted socket. - // why is anyone writing the fd to the peer? - // looks like he is indicating an error to the client!! - // is this a hack ;-( - if (time_write_int(fd, fd) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to write (fd) to %s fd:", - getpid(), - fdType == CONN_ATM ? "ATM" : - fdType == CONN_INET ? "INET" : "UNIX"); - perror(""); - ComCloseConn(fd); - return -1; - } - if (fdType == CONN_INET && change_option(fd) == -1) { - ComCloseConn(fd); - } - return -1; - } - else if (nfds == -2) { /* inet case only, UDP data sock is requested */ - int dfd; - struct sockaddr_in * in = &(peeraddr_in); - - fdTable[i].state = STATE_CONTROL; - - if (fdType == CONN_INET && change_option(fd) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to change options of TCP cfd:", - getpid()); - ComCloseConn(fd); - return -1; - } - - dfd = socket(AF_INET, SOCK_DGRAM, 0); - if (dfd == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to open dfd:", - getpid()); - perror(""); - ComCloseConn(fd); - return -1; - } - memset((char *)in, 0, sizeof(* in)); - - addrlen = sizeof(*in); - if (getsockname(fd, (struct sockaddr *)in, &addrlen) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to getsockname of fd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - - in->sin_family = AF_INET; - in->sin_port = 0; - /* - in->sin_addr.s_addr = htonl(INADDR_ANY); - */ - if (bind(dfd, (struct sockaddr *)in, sizeof(* in)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to bind dfd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - addrlen = sizeof(*in); - if (getsockname(dfd, (struct sockaddr *)in, &addrlen) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to getsockname of dfd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - if (time_write_bytes(fd, (char *)&in->sin_port, sizeof(short)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to write (dfd.port) to fd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - /* - addrlen = sizeof(*in); - if (getsockname(fd, (struct sockaddr *)in, &addrlen) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to getsockname of fd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - */ - if (time_write_bytes(fd, (char *)&in->sin_addr.s_addr, sizeof(int)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to write (dfd.IPaddr) to fd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - - fprintf(stderr, "ComGetConnPair local UDP socket: addr - %s, port - %u.\n", - inet_ntoa(in->sin_addr), ntohs(in->sin_port)); - - if (time_read_bytes(fd, (char *)&in->sin_port, sizeof(short)) == -1 || - time_read_bytes(fd, (char *)&in->sin_addr.s_addr, sizeof(int)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to read (port, IPaddr) from fd:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - usleep(10000); - if (connect(dfd, (struct sockaddr *)in, sizeof(*in)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed conn UDP dfd to peer:", - getpid()); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } -#if 0 - { - int len; - len = 65536; /* INET_SOCKET_BUFFER_SIZE + 100; */ - /* - if (setsockopt(dfd, SOL_SOCKET, SO_SNDBUF, (char *)&len, sizeof(len)) == -1) { - fprintf(stderr, - "Error ComGetConnPair: pid %d failed to set UDP dfd-snd to size %d:", - getpid(), len); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - } - */ - len = 65536; - while (setsockopt(dfd, SOL_SOCKET, SO_RCVBUF, (char *)&len, sizeof(len)) == -1) { - len -= 1024; - if (len < 8192) break; - /* - fprintf(stderr, - "Warning ComGetConnPair: pid %d failed to set UDP dfd-rcv to size %d:", - getpid(), len); - perror(""); - ComCloseConn(fd); - close(dfd); - return -1; - */ - } - if (getuid() == DEVELOPER_UID) - fprintf(stderr,"Set UDP dfd-rcv to %dB\n", len); - } -#endif - // Most common return case where the server creates a UDP socket , - // writes the port and ip addr and also gets the client's UDP - // endpoint . - *max_pkt_size = - INET_SOCKET_BUFFER_SIZE; /* UDP sockets on HP and SUN - are known to be discard mode */ - - fprintf(stderr, "ComGetConnPair UDP dfd connects to host-%s (port %u)\n", - inet_ntoa(in->sin_addr), ntohs(in->sin_port)); - - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = dfd; - fdTable[i].type = CONN_INET; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_DATA; - - *ctr_fd = fd; - *data_fd = dfd; - return 0; - } - else { - fprintf(stderr, "ComGetConnPair : no space left\n"); - return -1; - } - } - else { - fprintf(stderr, - "Error ComGetConnPair: pid %d get invalid value %d from fd\n", - getpid(), nfds); - ComCloseConn(fd); - } - return -1; -} - -/* returns: -1 -- failed, >= 0 -- fd */ -int ComGetConn(int *max_pkt_size) -{ - int i; - int fd, fdType; - int addrlen; - struct fd_set read_mask; - struct timeval tval; - int nfds; - - fd = 0; - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) { - fd ++; - } - } - if (fd < 1) { - fprintf(stderr, - "Error ComGetConn: pid %d no faTable entry for the pair", - getpid()); - return -1; - } - - FD_ZERO(&read_mask); - if (fd_inet >= 0) FD_SET(fd_inet, &read_mask); - if (fd_unix >= 0) FD_SET(fd_unix, &read_mask); - if (fd_atm >= 0) FD_SET(fd_atm, &read_mask); - - tval.tv_sec = 1; /* wait at most 1 second */ - tval.tv_usec = 0; - - nfds = fd_inet; - if (fd_unix > nfds) nfds = fd_unix; - if (fd_atm > nfds) nfds = fd_atm; - nfds ++; - errno = 0; -#ifdef _HPUX_SOURCE - if ((fd = select(nfds, (int *)&read_mask, NULL, NULL, &tval)) == -1) -#else - if ((fd = select(nfds, &read_mask, NULL, NULL, &tval)) == -1) -#endif - { - - if (errno == EINTR) return -1; - - fprintf(stderr, - "Error ComGetConn: pid %d failed on select():", - getpid()); - perror(""); - return -1; - } - if (fd == 0) return -1; /* time expire */ - - fd = -1; - - if (fd == -1 && fd_unix >= 0 && FD_ISSET(fd_unix, &read_mask)) { - struct sockaddr_un peeraddr_un; - - fprintf(stderr, "Server to accept a UNIX connection.\n"); - - addrlen = sizeof(struct sockaddr_un); - fd = accept(fd_unix, (struct sockaddr *)&peeraddr_un, &addrlen); - if (fd == -1) { - fprintf(stderr, - "Error ComGetConn: pid %d failed to accpet on fd_unix:", - getpid()); - perror(""); - } - else fdType = CONN_UNIX; - *max_pkt_size = 0; - } - if (fd == -1 && fd_inet >= 0 && FD_ISSET(fd_inet, &read_mask)) { - struct sockaddr_in peeraddr_in; - - fprintf(stderr, "Server to accept a INET connection.\n"); - - addrlen = sizeof(struct sockaddr_in); - fd = accept(fd_inet, (struct sockaddr *)&peeraddr_in, &addrlen); - if (fd == -1) { - fprintf(stderr, - "Error ComGetConn: pid %d failed to accpet on fd_inet:", - getpid()); - perror(""); - } - else fdType = CONN_INET; - *max_pkt_size = 0; - } - if (fd == -1 && fd_atm >= 0 && FD_ISSET(fd_atm, &read_mask)) { -#ifdef NATIVE_ATM - fd = ATMaccept(fd_atm, max_pkt_size); - fdType = CONN_ATM; -#else - fprintf(stderr, - "Error ComGetConn: pid %d CONN_ATM not supported.\n", - getpid()); -#endif - } - if (fd == -1) return -1; - - for (i = 0; i < size; i ++) { - if (fdTable[i].fd == -1) break; - } - if (i < size) { - fdTable[i].fd = fd; - fdTable[i].type = fdType; - fdTable[i].stime = get_sec(); - fdTable[i].state = STATE_SINGLE; - return fd; - } - else { - fprintf(stderr, "Weird\n"); - ComCloseConn(fd); - return -1; - } -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h deleted file mode 100644 index 98e82aeb26c..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h +++ /dev/null @@ -1,112 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -/* -Some assumptions about the streams created in this file: - - PACKET STREAM: - - * send(), recv() may not work, we can only use - read()/write(). - - * write(): either send the whole packet, or send nothing - - * read(): read() will read the minimun of the - requested number of bytes and current packet size. - read() can read part of a packet, but it - will not read cross packet boundaris - - There are two modes: non-discard and dicard. If a packets is - not read all its bytes, the remaining bytes will be - or not be discarded. - - This is indicated by if (*max_pkt_size) is positive - (non-discard) or negative (discard) - - BYTE_STREAM: reliable - - * write(): might write only part of requested bytes - each time. (this is the case in SunOS4) - - * read(): might read less than requested bytes. - (this is the case in SunOS4). -*/ - -/* returns: -1 -- failed, 0 -- successful */ -int ComInitClient(int inet_port, char * unix_port, char * atm_port); - -void ComCloseClient(void); - -/* address format: [ATM:|INET:]real_address | "" - - "" -- UNIX socket, reliable byte stream - [INET:]real_address -- INET sockets, reliable control byte stream, and - *max_pkt_size == 0 : reliable data byte stream, or - != 0 : unreliable packet stream; - ATM:real_address -- ATM sockets, both data and control are - unreliable packet streams; - DATM:real_address -- INET/UNIX control reliable byte stream - and ATM unreliable byte stream; - - returns: -1 -- failed, 0 -- successful - *ctr_fd -- control connection file descriptor - *data_fd -- data connection file descriptor - *max_pkt_size -- == 0 : reliable BYTE_STREAM - > 0 : unreliable non-discard PACKET STREAM - with given maximum packet size (bytes); - < 0 : unreliable discard PACKET STREAM - with given maximum packet size (bytes); - - It is suggested that if a BYTE_STREAM is not known to be discarded, - than it is safer to indicate it as discard. - */ -int ComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size); -int VideoComOpenConnPair(char * address, int *ctr_fd, int *data_fd, int *max_pkt_size); - - -/* returns: -1 -- failed, >=0 -- fd */ -int ComOpenConn(char * address, int *max_pkt_size); - -/* returns: -1 -- failed, 0 -- successful */ -int ComCloseFd(int fd); - -/* returns: -1 -- failed, 0 -- successful */ -int ComCloseConn(int fd); - -/* returns: -1 -- failed, 0 -- successful */ -int ComInitServer(int inet_port, char * unix_port, char * atm_port); - -void ComCloseListen(void); - -void ComCloseServer(void); - -/* returns: -1 -- failed, 0 -- successful - *max_pkt_size is used only for returning value -*/ -int ComGetConnPair(int *ctr_fd, int *data_fd, int *max_pkt_size); - -/* returns: -1 -- failed, >= 0 -- fd */ -int ComGetConn(int *max_pkt_size); - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.cpp deleted file mode 100644 index b016ea5ff17..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.cpp +++ /dev/null @@ -1,406 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "routine.h" -#include "fileio.h" -/* - Statfile(filename, sb) - input: filename - path name of a directory entry; - output: sb - StatBuf structure of the given directory entry; - returns: 0 - successful, -1 - failed, with errno indicating error - */ -int StatFile(char *filename, struct StatBuf * sb) -{ - struct stat statbuf; - struct passwd *pw; - struct group *grp; - - if (stat(filename, &statbuf) == -1) - return -1; - - sb->mode = statbuf.st_mode; - sb->size = statbuf.st_size; - - strcpy(sb->ctime, ctime(&(statbuf.st_ctime))); - sb->ctime[strlen(sb->ctime)-1] = 0; /* remove CR */ - - if ((pw = getpwuid(statbuf.st_uid)) == NULL) - sprintf(sb->uid, "%-10d", statbuf.st_uid); - else - strncpy(sb->uid, pw->pw_name, 32); - - if ((grp = getgrgid(statbuf.st_gid)) == NULL) - sprintf(sb->gid, "%-10d", statbuf.st_gid); - else - strncpy(sb->gid, grp->gr_name, 32); -} - -/* - read_bytes(s, buf, size) - input: s - socket to read from - buf - address of a buffer for the read - size - number of bytes to read - output: non - action: try read given number of bytes, all errors are reported, and - cause program to exit. -*/ -void read_bytes(int s, char * buf, int size) -{ - int val, remain = size; - char * ptr = buf; - - if (size == 0) return; - - for (;;) - { - val = read(s, ptr, remain); - - if (val == -1 && (errno == EINTR || errno == EAGAIN | errno == EWOULDBLOCK)) - { /* interrupted or need to wait, try again */ - if (errno == EAGAIN | errno == EWOULDBLOCK) usleep(10000); - errno = 0; - continue; - } - if (val == -1) - { - perror("Error -- Read from socket"); - exit(1); - } - if (val == 0) /* EOF encountered */ - { - fprintf(stderr, "Error -- EOF reached while trying to read %d bytes.\n", size); - exit(1); - } - ptr += val; - remain -= val; - if (remain < 0) /* weird thing is happening */ - { - fprintf(stderr, "Error: read too much from socket, %d out of %d bytes.\n", - size-remain, size); - exit(1); - } - if (remain == 0) - break; - } -} - -int wait_read_bytes(int s, char *buf, int size) -{ - int val, remain = size; - char * ptr = buf; - - if (size == 0) return 1; - - for (;;) - { - val = read(s, ptr, remain); - - if (val == -1 && (errno == EINTR || errno == EAGAIN | errno == EWOULDBLOCK)) - { /* interrupted or need to wait, try again */ - if (errno == EAGAIN | errno == EWOULDBLOCK) usleep(10000); - errno = 0; - continue; - } - if (val == -1) - { - /* - perror("Error -- wait_read from socket"); - */ - return -1; - } - if (val == 0) /* EOF encountered */ - { - /* - fprintf(stderr, "Warn pid %d -- EOF on wait_read %d bytes.\n", - getpid(), size); - */ - return 0; - } - ptr += val; - remain -= val; - if (remain < 0) /* weird thing is happening */ - { - fprintf(stderr, - "Error: weird, read too much from socket, %d out of %d bytes.\n", - size-remain, size); - return -1; - } - if (remain == 0) - break; - } - return size; -} - -#define WAIT_DURATION 5000000 - -int time_read_bytes(int s, char * buf, int size) -{ - int val, remain = size; - char * ptr = buf; - long start = get_usec(); - - int times = 0; - - if (size == 0) return 0; - - for (;;) { - struct fd_set read_mask; - struct timeval tval = {0, 0}; - - FD_ZERO(&read_mask); - FD_SET(s, &read_mask); -#ifdef _HPUX_SOURCE - if (select(s+1, (int *)&read_mask, NULL, NULL, &tval) <= 0) -#else - if (select(s+1, &read_mask, NULL, NULL, &tval) <= 0) -#endif - { - /* - if (get_duration(start, get_usec()) < WAIT_DURATION) { - usleep(10000); - continue; - } - */ - if (times < WAIT_DURATION / 10000) { - usleep(10000); - times ++; - continue; - } - else { - fprintf(stderr, "time_read_bytes() %d seconds expired\n", - WAIT_DURATION/1000000); - return -1; - } - } - - if (!(FD_ISSET(s, &read_mask))) continue; - - val = read(s, ptr, 1); - - if (val == -1 && (errno == EINTR)) - { /* interrupted or need to wait, try again */ - errno = 0; - continue; - } - if (val == -1) - { - perror("Error -- time_read_bytes() from socket"); - return -1; - } - if (val == 0) /* EOF encountered */ - { - /* - fprintf(stderr, "Error -- EOF reached while trying to read %d bytes.\n", size); - */ - return -1; - /* 'continue' causes infinite loop if the pipe is closed by peer - continue; - */ - } - ptr += val; - remain -= val; - if (remain == 0) - return 0; - } -} - -/* - write_bytes(sock, data, len): - try write len byte of data to sock, report all errors by - warning message. -*/ -void write_bytes(int sock, char * data, int len) -{ - while (len > 0) { - int res = write(sock, data, len); - if (res == -1) { - if (errno == EINTR || errno == EAGAIN) continue; - fprintf(stderr, "Error pid %d", getpid()); - perror(" -- failed to write all bytes to socket"); - exit(1); - } - len -= res; - data += res; - } -} - -int time_write_bytes(int sock, char * data, int plen) -{ - int len = plen; - while (len > 0) { - int res = write(sock, data, len); - if (res == -1) { - if (errno == EINTR || errno == EAGAIN) continue; - fprintf(stderr, "Error pid %d", getpid()); - perror(" -- failed to time_write all bytes to socket"); - return -1; - } - len -= res; - data += res; - } - return plen; -} - -int wait_write_bytes(int sock, char * data, int plen) -{ - int len = plen; - while (len > 0) { - int res = write(sock, data, len); - if (res == -1) { - if (errno == EINTR || errno == EAGAIN) continue; - /* - fprintf(stderr, "Error pid %d", getpid()); - perror(" -- failed to wait_write all bytes to socket"); - */ - return -1; - } - len -= res; - data += res; - } - return plen; -} - -/* read_byte: - read one byte from sock to buffer data */ - -void read_byte(int sock, char * data) -{ - read_bytes(sock, data, 1); -} - -/* read_short: - read a short integer from socket sock to buffer data, - byte order conversion is also done. -*/ -void read_short(int sock, short * data) -{ - read_bytes(sock, (char *)data, sizeof(short)); - *data = ntohs(*data); -} - -/* read_int: - read a integer from socket sock to buffer data, - byte order conversion is also done */ - -void read_int(int sock, int * data) -{ - read_bytes(sock, (char *)data, sizeof(int)); - *data = ntohl(*data); -} - -int time_read_int(int sock, int * data) -{ - if (time_read_bytes(sock, (char *)data, sizeof(int)) == -1) { - return -1; - } - *data = ntohl(*data); - return 0; -} - -/* read a string. Returns the length of the string. - transfer through the socket. - but the string in buffer might have been truncated. - the returned string is '\0' terminated */ - -int read_string(int sock, char *data, int maxlen) -{ - int len; - read_int(sock, &len); - if (len == 0) - { - data[0] = 0; - return 0; - } - if (len < maxlen) - { - read_bytes(sock, data, len); - data[len] = 0; - } - else - { - int i; - char tmp; - read_bytes(sock, data, maxlen-1); - data[maxlen-1] = 0; - for (i = 0; i < len - maxlen + 1; i ++) /* discard extra data */ - read_byte(sock, &tmp); - } - return len; -} - - -/* write_byte: - write a byte to socket sock */ - -void write_byte(int sock, char data) -{ - write_bytes(sock, &data, 1); -} - -/* write_short: - byte order convert the short integer in data and write to socket sock */ - -void write_short(int sock, short data) -{ - short val = htons(data); - write_bytes(sock, (char *)&val, sizeof(short)); -} - -/* write_int: - byte order convert the integer in data and write to socket sock */ -void write_int(int sock, int data) -{ - int val = htonl(data); - write_bytes(sock, (char *)&val, sizeof(int)); -} - -int time_write_int(int sock, int data) -{ - int val = htonl(data); - return time_write_bytes(sock, (char *)&val, sizeof(int)); -} - -/* write a string in data to socket sock, the string is led by a length */ - -void write_string(int sock, char *data) -{ - int len = strlen(data); - - write_int(sock, len); - write_bytes(sock, data, len); -} - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h deleted file mode 100644 index 46432a71797..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h +++ /dev/null @@ -1,100 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -/* data structure used by StatFile() */ - -#if !defined (_MPEG_FILE_IO_H) -#define _MPEG_FILE_IO_H - -struct StatBuf -{ - unsigned short mode; - long size; - char uid[32]; - char gid[32]; - char ctime[32]; -}; - -/* protocol of functions defined in shared.c */ - -int StatFile(char *filename, struct StatBuf * sb); - - - -/* Following read...()'s would exit(1) if requested bytes can not be - read, and EOF or error other than EINTR, EAGAIN or EWOULDBLOCK is - encountered */ - -void read_bytes(int s, char * buf, int size); - -void read_byte(int sock, char * data); - -void read_short(int sock, short * data); - -void read_int(int sock, int * data); - -int read_string(int sock, char *data, int maxlen); /* returns the length of a stream */ - - -/* Following write...()'s would exit(1) if requested bytes can not - be written to socket because of error has happened*/ - -void write_bytes(int sock, char * data, int len); - -void write_byte(int sock, char data); - -void write_short(int sock, short data); - -void write_int(int sock, int data); - -void write_string(int sock, char *data); - - -/* following returns: 0 -- succ, -1 -- failed. - time_read*() will wait at most 5 seconds before they return */ - -int time_read_bytes(int s, char * buf, int size); - -int time_read_int(int sock, int * data); - -int time_write_bytes(int sock, char * data, int len); - -int time_write_int(int sock, int data); - - -/* Following read...()'s would return 0/-1 if requested bytes can not - be read, and EOF (return 0) or error (return -1) other than EINTR, - EAGAIN or EWOULDBLOCK is encountered */ - -int wait_read_bytes(int s, char *buf, int size); - - -/* Following write...()'s would return 0/-1 if requested bytes can not - be written and error (return -1) other than EINTR, EAGAIN or is - encountered */ - -int wait_write_bytes(int s, char *buf, int size); - -#endif /* _MPEG_FILE_IO_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.cpp deleted file mode 100644 index 05361167127..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#include -#include /* INT_MIN, INT_MAX are defined here */ -#include -#include -#include -/* -#include -#include -#include -*/ -#include "filters.h" -#include "ace/OS.h" - -#define BUFSIZE 256 -#define maxval(a,b) ((a) > (b) ? (a) : (b)) -#define minval(a,b) ((a) < (b) ? (a) : (b)) - -static float FLOAT_MIN = (float)INT_MIN; -static float FLOAT_MAX = (float)INT_MAX; - -AverageFilter * NewAverageFilter(int nsamples) -{ - AverageFilter * f; - f = (AverageFilter *) ACE_OS::malloc(sizeof(*f)); - if (f == NULL) - return NULL; - f->type = FILTER_AVERAGE; - f->nsamples = nsamples; - f->buf = (double *)ACE_OS::malloc(nsamples * sizeof(double)); - if (f->buf == NULL) { - ACE_OS::free(f); - return NULL; - } - f->count = 0; - f->ptr = 0; - f->sum = 0; - return f; -} - -AverageFilter * ResetAverageFilter(AverageFilter *f, int nsamples) -{ - if (f->nsamples != nsamples) { - ACE_OS::free(f->buf); - f->nsamples = nsamples; - f->buf = (double *)ACE_OS::malloc(nsamples * sizeof(double)); - if (f->buf == NULL) { - ACE_OS::free(f); - return NULL; - } - } - f->count = 0; - f->ptr = 0; - f->sum = 0; - return f; -} - -void FreeAverageFilter(AverageFilter * f) -{ - ACE_OS::free(f->buf); - ACE_OS::free(f); -} - -double DoAverageFilter(AverageFilter *f, double value) -{ - int offset; - double oldval = f->buf[f->ptr]; - f->buf[f->ptr] = value; - f->ptr = (f->ptr + 1) % f->nsamples; - f->sum += value; - if (f->count >= f->nsamples) { - f->sum -= oldval; - } - else { - f->count ++; - } - return (double)(f->sum) / (double)f->count; -} - - -LowPassFilter * NewLowPassFilter(double Rvalue) -{ - LowPassFilter * f; - f = (LowPassFilter *)ACE_OS::malloc(sizeof(*f)); - if (f == NULL) { - return NULL; - } - if (Rvalue > 1.0) { - Rvalue = 1.0; - } - else if (Rvalue < 0.0) { - Rvalue = 0.0; - } - f->type = FILTER_LOWPASS; - f->count = 0; - f->maxcount = (int)(1.0 / maxval(Rvalue, 0.0001)); - f->R = Rvalue; - f->result = FLOAT_MIN; - return f; -} - -LowPassFilter * ResetLowPassFilter(LowPassFilter * f, double Rvalue) -{ - if (Rvalue > 1.0) { - Rvalue = 1.0; - } - else if (Rvalue < 0.0) { - Rvalue = 0.0; - } - f->count = 0; - f->maxcount = (int)(1.0 / maxval(Rvalue, 0.0001)); - f->R = Rvalue; - f->result = FLOAT_MIN; - return f; -} - -void FreeLowPassFilter(LowPassFilter * f) -{ - ACE_OS::free(f); -} - -double DoLowPassFilter(LowPassFilter * f, double value) -{ - if (f->count <= f->maxcount) { - if (!f->count) { - f->count ++; - return (f->result = value); - } - f->count ++; - return (f->result = (1.0 - (1.0/(double)f->count)) * f->result + - (1.0/(double)f->count) * value); - } - return (f->result = (1.0 - f->R) * f->result + f->R * value); -} - -MedianFilter * NewMedianFilter(int nsamples) -{ - int minv = 0, maxv = 1; - MedianFilter * f; - f = (MedianFilter *) ACE_OS::malloc(sizeof(*f)); - if (f == NULL) - return NULL; - f->type = FILTER_MEDIAN; - f->nsamples = nsamples; - f->max = maxval(maxv, minv); - f->min = minval(maxv, minv); - f->statsize = f->max - f->min + 1; - f->buf = (int *)ACE_OS::malloc(nsamples * sizeof(int)); - if (f->buf == NULL) { - ACE_OS::free(f); - return NULL; - } - f->stat = (int *)ACE_OS::malloc(f->statsize * sizeof(int)); - if (f->stat == NULL) { - ACE_OS::free(f->buf); - ACE_OS::free(f); - return NULL; - } - f->count = 0; - f->ptr = 0; - f->med = 0; - f->below = 0; - memset(f->stat, 0, f->statsize * sizeof(int)); - return f; -} - -MedianFilter * ResetMedianFilter(MedianFilter * f, int nsamples) -{ - if (f->nsamples != nsamples) { - ACE_OS::free(f->buf); - f->nsamples = nsamples; - f->buf = (int *)ACE_OS::malloc(nsamples * sizeof(int)); - if (f->buf == NULL) { - ACE_OS::free(f); - return NULL; - } - } - f->count = 0; - f->ptr = 0; - f->med = 0; - f->below = 0; - memset(f->stat, 0, f->statsize * sizeof(int)); - return f; -} - -void FreeMedianFilter(MedianFilter * f) -{ - ACE_OS::free(f->buf); - ACE_OS::free(f->stat); - ACE_OS::free(f); -} - -double DoMedianFilter(MedianFilter *f, double pvalue) -{ - int value = (int)pvalue; - int offset; - int oldval = f->buf[f->ptr]; - if (value > f->max) { - int * oldstat = f->stat; - int oldsize = f->statsize; - f->max = value + 10; - f->statsize = f->max - f->min + 1; - f->stat = (int *)ACE_OS::malloc(f->statsize * sizeof(int)); - if (f->stat == NULL) { - fprintf(stderr, "MedianFilter Failed to extend up stat to % items", - f->statsize); - perror(""); - exit(1); - } - memset((char *)(f->stat) + sizeof(int) * oldsize, 0, - sizeof(int) * (f->statsize - oldsize)); - memcpy(f->stat, oldstat, oldsize * sizeof(int)); - } - else if (value < f->min) { - int * oldstat = f->stat; - int oldsize = f->statsize; - f->min = value - 10; - f->statsize = f->max - f->min + 1; - f->stat = (int *)ACE_OS::malloc(f->statsize * sizeof(int)); - if (f->stat == NULL) { - fprintf(stderr, "MedianFilter Failed to extend down stat to % items", - f->statsize); - perror(""); - exit(1); - } - memset(f->stat, 0, sizeof(int) * (f->statsize - oldsize)); - memcpy((char *)(f->stat) + sizeof(int) * (f->statsize - oldsize), - oldstat, sizeof(int) * oldsize); - f->med += f->statsize - oldsize; - } - f->buf[f->ptr] = value; - f->ptr = (f->ptr + 1) % f->nsamples; - offset = value - f->min; - if (offset < 0) { - offset = 0; - } - else if (offset >= f->statsize) { - offset = f->statsize - 1; - } - f->stat[offset] ++; - if (offset < f->med) { - f->below ++; - } - if (f->count >= f->nsamples) { - offset = oldval - f->min; - if (offset < 0) { - offset = 0; - } - else if (offset >= f->statsize) { - offset = f->statsize - 1; - } - f->stat[offset] --; - if (offset < f->med) { - f->below --; - } - } - else { - f->count ++; - } - oldval = f->count >> 1; - if (f->below > oldval) { - offset = f->med - 1; - while (offset >= 0 && (f->below - f->stat[offset]) > oldval) { - f->below -= f->stat[offset]; - offset --; - } - f->med = offset + 1; - } - else { - offset = f->med; - while (offset < f->statsize && (f->below + f->stat[offset]) <= oldval) { - f->below += f->stat[offset]; - offset ++; - } - f->med = offset; - } - return (double)(f->med + f->min); -} - -Filter * NewFilter(int type, int parameter) -{ - switch (type) { - case FILTER_LOWPASS: - return (Filter *)NewLowPassFilter(1.0/(double)parameter); - case FILTER_MEDIAN: - return (Filter *)NewMedianFilter(parameter); - case FILTER_AVERAGE: - return (Filter *)NewAverageFilter(parameter); - default: - break; - } - return NULL; -} - -Filter * ResetFilter(Filter * f, int parameter) -{ - switch (f->type) { - case FILTER_LOWPASS: - return (Filter *)ResetLowPassFilter((LowPassFilter *)f, 1.0/(double)parameter); - case FILTER_MEDIAN: - return (Filter *)ResetMedianFilter((MedianFilter *)f, parameter); - case FILTER_AVERAGE: - return (Filter *)ResetAverageFilter((AverageFilter *)f, parameter); - default: - break; - } - return NULL; -} - -void FreeFilter(Filter * f) -{ - switch (f->type) { - case FILTER_LOWPASS: - FreeLowPassFilter((LowPassFilter *)f); - break; - case FILTER_MEDIAN: - FreeMedianFilter((MedianFilter *)f); - break; - case FILTER_AVERAGE: - FreeAverageFilter((AverageFilter *)f); - break; - default: - break; - } -} - -double DoFilter(Filter *f, double value) -{ - switch (f->type) { - case FILTER_LOWPASS: - return DoLowPassFilter((LowPassFilter *)f, value); - break; - case FILTER_MEDIAN: - return DoMedianFilter((MedianFilter *)f, value); - break; - case FILTER_AVERAGE: - return DoAverageFilter((AverageFilter *)f, value); - break; - default: - break; - } - return FLOAT_MIN; -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.h deleted file mode 100644 index 7befdfaa20d..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/filters.h +++ /dev/null @@ -1,85 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#define FILTER_LOWPASS 0 -#define FILTER_MEDIAN 1 -#define FILTER_AVERAGE 2 - -typedef struct MedianFilter { - int type; - int * buf; - int nsamples; - int count; - int ptr; - int * stat; - int statsize; - int max, min; - int med; /* median offset to stat */ - int below; /* total points below the med entry */ -} MedianFilter; - -typedef struct LowPassFilter { - int type; - int count; - int maxcount; - double R; - double result; -} LowPassFilter; - -typedef struct AverageFilter { - int type; - double * buf; - int nsamples; - int ptr; - double sum; - int count; -} AverageFilter; - -typedef union Filter { - int type; - MedianFilter m; - AverageFilter a; - LowPassFilter l; -} Filter; - -Filter * NewFilter(int type, int parameter); -Filter * ResetFilter(Filter * f, int parameter); -void FreeFilter(Filter * f); -double DoFilter(Filter *f, double value); - -MedianFilter * NewMedianFilter(int nsamples); -MedianFilter * ResetMedianFilter(MedianFilter * f, int nsamples); -void FreeMedianFilter(MedianFilter * f); -double DoMedianFilter(MedianFilter *f, double value); - -AverageFilter * NewAverageFilter(int nsamples); -AverageFilter * ResetAverageFilter(AverageFilter * f, int nsamples); -void FreeAverageFilter(AverageFilter * f); -double DoAverageFilter(AverageFilter *f, double value); - -LowPassFilter * NewLowPassFilter(double R); -LowPassFilter * ResetLowPassFilter(LowPassFilter * f, double R); -void FreeLowPassFilter(LowPassFilter * f); -double DoLowPassFilter(LowPassFilter *f, double value); diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.cpp deleted file mode 100644 index 198f966f2f0..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.cpp +++ /dev/null @@ -1,512 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#include -#include -#include -#include -#include -#include -#ifdef __svr4__ -#include -#endif -#ifdef _HPUX_SOURCE -#include -#elif defined(__svr4__) -#include -#include -#include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "routine.h" - -#define TEST_TYPE 1 -#define SIGSETMASK 0 -#define stacksize 10000 -#define TIME_ROUND 4000 -#define BLOCK_NUM 5 -#define DELTA_MSEC 20 - -int get_hostname(char *name, int len) -{ -#ifdef __svr4__ - if (sysinfo(SI_HOSTNAME, name, len) == -1) return -1; - else return 0; -#else - return ACE_OS::hostname(name, len); -#endif -} - -long get_usec(void) -{ - struct timeval tp; - struct timezone tzp; - int err; - if (err=gettimeofday(&tp, &tzp)) - { - return 0; - } - else { - /* - return ((long)1000000)*(tp.tv_sec%TIME_ROUND) + (tp.tv_usec); - */ - return ((long)1000000)*(tp.tv_sec) + (tp.tv_usec); - } -} - -long get_msec(void) -{ - struct timeval tp; - struct timezone tzp; - int err; - if (err=gettimeofday(&tp, &tzp)) - { - return 0; - } - else - { - return ((long)1000)*(tp.tv_sec) + (tp.tv_usec / 1000); - } -} - -long get_sec(void) -{ - struct timeval tp; - struct timezone tzp; - int err; - if (err=gettimeofday(&tp, &tzp)) - { - return 0; - } - else - { - return tp.tv_sec; - } -} - -/* returns the difference of the two usec time values */ - -long get_duration(long val1, long val2) -{ - /* - return val2>=val1 ? val2-val1 : (val2+TIME_ROUND-val1); - */ - return val2>=val1 ? val2-val1 : ((LONG_MAX - val1) + (val2 - LONG_MIN) + 1); -} - -#ifdef LINUX -#else -void usleep(unsigned int usec) -{ - struct timeval val; - - if (usec <= 0) return; - val.tv_sec = usec / 1000000; - val.tv_usec = usec % 1000000; - if (select(0, NULL, NULL, NULL, &val) == -1 && errno != 4) - { - perror("sleep with select"); - exit(1); - } -} -#endif - -void beep(void) -{ - fprintf(stderr, "\007"); -} - -#ifndef FreeBSD -#include -#endif -#include - -void remove_shmem_id(int id) -{ - shmctl(id, IPC_RMID, NULL); -#if 0 - /* weird also on some sunOs4 machines */ - /* weird, HPUX always report error on this operation */ - if (errno) - { - fprintf(stderr, "shmctl shm_id:%d to IPC_RMID error:", id); - perror(""); - } -#endif -} - -char * creat_shared_mem_id(int size, int * id) -{ - char * shm; - int shm_id; - - shm_id = shmget(IPC_PRIVATE, size, IPC_CREAT | 0666); - if (shm_id == -1) - { - shm_id = shmget(IPC_PRIVATE, 0, IPC_CREAT | 0666); - if (shm_id == -1) - { - perror("Shared MEM shmget1 error"); - exit(1); - } - else - { - if (shmctl(shm_id, IPC_RMID, NULL) == -1) - { - perror("Shared MEM shmctl error"); - exit(1); - } - shm_id = shmget(IPC_PRIVATE, 0, IPC_CREAT | 0666); - if (shm_id == -1) - { - perror("Shared MEM shmget2 error"); - exit(1); - } - } - } - shm = (char *)shmat(shm_id, (char *)0, 0); - if ((int)shm == -1) - { - perror("Shared MEM shmat error"); - exit(1); - } - *id = shm_id; - return shm; -} - -char * creat_shared_mem(int size) -{ - int shm_id; - char * shm = creat_shared_mem_id(size, &shm_id); - remove_shmem_id(shm_id); - return shm; -} - -void remove_shared_mem(char *ptr) -{ - shmdt(ptr); -} - -#define SEM_NUM 6 -static int semId = -1; -static int masterPid = -1; -static int nextSem = -1; - -void enter_cs(int semaphore_id) -{ - struct sembuf sop; - sop.sem_num = semaphore_id; - sop.sem_op = -1; - sop.sem_flg = 0; - while (semop(semId, &sop, 1) == -1) - { - if (errno == EINTR) - continue; - fprintf(stderr, "semop(enter_cs) error: pid=%d", getpid()); - perror(""); - exit(1); - } -} - -void leave_cs(int semaphore_id) -{ - struct sembuf sop; - sop.sem_num = semaphore_id; - sop.sem_op = 1; - sop.sem_flg = 0; - while (semop(semId, &sop, 1) == -1) - { - if (errno == EINTR) - continue; - fprintf(stderr, "semop(leave_cs) error, pid=%d", getpid()); - perror(""); - exit(1); - } -} - -int creat_semaphore(void) -{ - int i; - int sem_val; - int semaphore_id; - if (semId == -1) { - semId = semget(IPC_PRIVATE, SEM_NUM, IPC_CREAT | 0666); - if (semId == -1) { - perror("Semaphore semget error"); - exit(1); - } - masterPid = getpid(); - nextSem = 0; - } - else if (masterPid != getpid()) { - fprintf(stderr, "Error: this creat_semaphore() assumes semaphores are allocated\n"); - fprintf(stderr, " only in single process %d, while current pid=%d\n", - masterPid, getpid()); - exit(1); - } - semaphore_id = nextSem ++; - if (semaphore_id >= SEM_NUM) { - fprintf(stderr, "Error: all of %d semaphores used up.\n", SEM_NUM); - exit(1); - } - sem_val = semctl(semId, semaphore_id, GETVAL, 0); -/* - fprintf(stderr, "Initial semaphore value: %d\n", sem_val); -*/ - if (sem_val == 0) - leave_cs(semaphore_id); - return semaphore_id; -} - -void delete_semaphore() -{ - if (masterPid == getpid() && semId >= 0) { - semctl(semId, 0, IPC_RMID, 0); - } else { - if (masterPid != getpid()) - fprintf(stderr, "Pid %d not supposed to remove semId created by pid %d\n", - getpid(), masterPid); - else - fprintf(stderr, "The semaphore has been deleted.\n"); - } - return; -} - -void remove_semaphore(int sid) -{ - return; - // semctl(semId, semaphore_id, IPC_RMID, 0); -} - -void remove_all_semaphores (void) -{ - semctl(semId,0, IPC_RMID, 0); - return; -} - -int get_semval(int sid) -{ - int val, val1 = 0; - errno = 0; - val = semctl(semId, sid, GETVAL, 0); - if (val == -1) { - perror("getting value of a semaphore"); - exit(1); - } - /* - if (val == 0) { - fprintf(stderr, "pid %d to call semctl(%d, 0, GETZCNT)\n", getpid(), sid); - val = semctl(semId, 0, GETZCNT, 0); - if (val == -1) { - perror("getting semzcnt of a semaphore"); - exit(1); - } - - fprintf(stderr, "pid %d to call semctl(%d, 0, GETNCNT)\n", getpid(), sid); - usleep(10000000); - val1 = semctl(semId, sid, GETNCNT, 0); - if (val1 == -1) { - perror("getting semncnt of a semaphore"); - } - fprintf(stderr, "pid %d to called semctl(GETNCNT)\n", getpid()); - - fprintf(stderr, "Semval val %d, val1 %d\n", val, val1); - return (0-(val + val1)); - } - else - */ - return val; -} - -void get_full_path(char *filename, char * buffer, int bufsize) -{ - char path[MAXPATHLEN]; - - path[0] = 0; - - if (*filename == '/') - strncpy(path, filename, MAXPATHLEN); - else if (*filename == '~') - { - char * env = getenv("HOME"); - if (env != NULL) - { - strncpy(path, env, MAXPATHLEN); - strncat(path, filename+1, MAXPATHLEN - strlen(path)); - } - else - strncpy(path, filename, MAXPATHLEN); - } - else /* from current dir */ - { - getcwd(path, MAXPATHLEN); - if (errno) - strncpy(path, filename, MAXPATHLEN); - else - { - path[MAXPATHLEN-4] = 0; - strcat(path, "/"); - strncat(path, filename, MAXPATHLEN - strlen(path)); - } - } - path[MAXPATHLEN-1] = 0; - strncpy(buffer, path, bufsize); - buffer[bufsize-1] = 0; - /* - fprintf(stderr, "%s extended to %s\n", filename, buffer); - */ -} - -void setsignal(int sig, void (func)(int)) -{ -#ifdef _HPUX_SOURCE - struct sigvec sv; - - sv.sv_handler = func; - sv.sv_mask = 0; - sv.sv_flags = 0; - if (sigvector (sig, &sv, (struct sigvec *) NULL) == -1) { - fprintf(stderr, "sigvector(%d) error", sig); - perror(""); - exit(1); - } -#elif defined(__svr4__) || defined(IRIX) - if (sigset(sig, func) == SIG_ERR) { - fprintf(stderr, "sigset(%d,func) error", sig); - perror(""); - exit(1); - } -#elif defined(sun) || defined(FreeBSD) || defined(ULTRIX) || defined(LINUX) - { - struct sigaction act; - act.sa_handler = func; -#ifdef FreeBSD - act.sa_flags = SV_INTERRUPT; -#else - act.sa_flags =/* SA_INTERRUPT;*/ SA_RESTART; -#endif - // @@ Naga commented this line. - // act.sa_mask = 0; - if (!sigaction(sig, &act, NULL)) return; - fprintf(stderr, "sigaction(%d,...) error", sig); - perror(""); - exit(1); - } - /* - if (signal(sig, func) == SIG_ERR) { - fprintf(stderr, "signal(%d,func) error", sig); - perror(""); - exit(1); - } - */ -#else - fprintf(stderr, - "Error: code for setsignal(%d,func) is missing in source/mpeg_shared/routine.cpp\n", - sig); - exit(1); -#endif -} - -/* set to 'pri': 0 -lowest RT, higher value higher RT priority. -1 - Time Sharing. - For HPUX, 0 -> 127, 1 -> 127, ..., pri -> 127 - pri; - For Solaris, -> 0, 1 -> 1, pri -> pri; - - The function returns 0 on success, -1 on failure - */ -int SetRTpriority(char *msg, int pri) -{ - if (pri >= 0) { -#ifdef _HPUX_SOURCE - if (rtprio(0, 127 - pri) == -1) - { - fprintf(stderr, "%s fails to be set to RT priority %d", msg, 127 - pri); - perror(""); - return -1; - } - return 0; -#elif defined(__svr4__) - pcinfo_t pci; - pcparms_t pcp; - rtparms_t * rtp = (rtparms_t *)pcp.pc_clparms; - strcpy(pci.pc_clname, "RT"); - if (priocntl(P_PID, P_MYID, PC_GETCID, (char *)&pci) == -1) { - fprintf(stderr, "%s priocntl(PC_GETCID) failed for RT pri %d", msg, pri); - perror(""); - return -1; - } - pcp.pc_cid = pci.pc_cid; - rtp->rt_pri = pri; - rtp->rt_tqsecs = 0; - rtp->rt_tqnsecs = 10000000; /* 10 (ten) milliseconds */ - if (priocntl(P_PID, P_MYID, PC_SETPARMS, (char *)&pcp) == -1) { - fprintf(stderr, "%s priocntl(PC_SETPARMS) failed for RT pri %d", msg, pri); - perror(""); - return -1; - } - return 0; -#else - fprintf(stderr, "%s warning: RT priority not available on this arch.\n", msg); - return -1; -#endif - } - else { /* set to TS priority */ -#ifdef _HPUX_SOURCE - if (rtprio(0, RTPRIO_RTOFF) == -1) { - fprintf(stderr, "%s fails to be set to RTPRIO_RTOFF", msg); - perror(""); - return -1; - } - return 0; -#elif defined(__svr4__) - pcinfo_t pci; - pcparms_t pcp; - tsparms_t * tsp = (tsparms_t *)pcp.pc_clparms; - strcpy(pci.pc_clname, "TS"); - if (priocntl(P_PID, P_MYID, PC_GETCID, (char *)&pci) == -1) { - fprintf(stderr, "%s priocntl(PC_GETCID) failed for TS priority", msg); - perror(""); - return -1; - } - pcp.pc_cid = pci.pc_cid; - tsp->ts_uprilim = 0; - tsp->ts_upri = 0; - if (priocntl(P_PID, P_MYID, PC_SETPARMS, (char *)&pcp) == -1) { - fprintf(stderr, "%s priocntl(PC_SETPARMS) failed for TS priority", msg); - perror(""); - return -1; - } - return 0; -#endif - } -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h deleted file mode 100644 index 61a011217d9..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h +++ /dev/null @@ -1,55 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -/* routine.c */ -#if !defined (_MPEG_ROUTINE_H) -#define _MPEG_ROUTINE_H - -#include "include/common.h" -#ifdef LINUX -#else -void usleep(unsigned int usec); -#endif -void beep(void); -int get_hostname(char *name, int len); -long get_usec(void); -long get_msec(void); -long get_sec(void); -long get_duration(long valstart, long valstop); -void remove_shmem_id(int id); -char * creat_shared_mem_id(int size, int * id); -char * creat_shared_mem(int size); -void remove_shared_mem(char *ptr); -void enter_cs(int semaphore_id); -void leave_cs(int semaphore_id); -int creat_semaphore(void); -void remove_semaphore(int sid); -void remove_all_semaphores (void); -int get_semval(int sid); -void get_full_path(char *filename, char * buffer, int bufsize); -void setsignal(int sig, void (func)(int)); -int SetRTpriority(char *msg, int pri); - -#endif /* _MPEG_ROUTINE_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.cpp deleted file mode 100644 index e6e69f4228d..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#include -#include "sendpt.h" - -/* parameters: - pat -- pattern - buf -- buffer for holding sendpattern computed; - len -- length of pattern and send pattern (number of frames); - f -- number of frames to send (represented by result send pattern); -*/ -void ComputeSendPattern(char * pat, char * buf, int len, int f) -{ - memset(buf, 0, len); - if (f >= len) - { - memset(buf, 1, len); - } - else if (f <= 1) - { - buf[0] = 1; - } - else - { - int i, is = 0, ps = 0, bs = 0; - - memset(buf, 1, len); - for (i = 0; i < len; i++) - { - if (pat[i] == 'I') - is ++; - else if (pat[i] == 'P') - ps ++; - else /* B frame */ - bs ++; - } - f = len - f; /* number of frames to drop */ - if (f < bs) /* drops only B frames */ - { - double scale = (double)bs / (double)f; - int ptr = 0, ptr1 = 0; - for (i = 0; i < len; i ++) - { - if (pat[i] == 'B') - { - if ( ptr == (int) ((double)ptr1 * scale + 0.5)) - { - buf[i] = 0; - ptr1 ++; - } - ptr ++; - } - } - goto endOfCompute; - } - - /* drop all B frames */ - for (i = 0; i < len; i ++) - if (pat[i] == 'B') - buf[i] = 0; - - if (f == bs) - goto endOfCompute; - - if (f > bs && f < bs + ps) /* drop also some P frames */ - { - int ptr = len - 1; - for (i = 0; i < is; i ++) - { - int j; - for (j = 0; j < (f - bs) / is; j ++) - { - while (pat[ptr] != 'P') ptr --; - buf[ptr] = 0; - ptr --; - } - while (pat[ptr] != 'I') ptr --; - } - ptr = len - 1; - for (i = 0; i < (f - bs) % is; i ++) - { - while (pat[ptr] != 'P' || buf[ptr] == 0) ptr --; - buf[ptr] = 0; - while (pat[ptr] != 'I') ptr --; - } - goto endOfCompute; - } - - /* drop all P frames */ - for (i = 0; i < len; i ++) - if (pat[i] == 'P') - buf[i] = 0; - - if (f > bs + ps) /* needs to drop some I frames */ - { - double scale = (double)is / (double)(f - bs - ps); - int ptr = 0, ptr1 = 0; - for (i = 0; i < len; i ++) - { - if (pat[i] == 'I') - { - if ( ptr == (int) ((double)ptr1 * scale + 0.5)) - { - buf[i] = 0; - ptr1 ++; - } - ptr ++; - } - } - goto endOfCompute; - } - } - endOfCompute:; -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h deleted file mode 100644 index f6c011916ff..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h +++ /dev/null @@ -1,32 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -/* parameters: - pat -- pattern - buf -- buffer for holding sendpattern computed; - len -- length of pattern and send pattern (number of frames); - f -- number of frames to send (represented by result send pattern); -*/ -void ComputeSendPattern(char * pat, char * buf, int len, int f); diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.cpp deleted file mode 100644 index f77ad2ac2e5..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.cpp +++ /dev/null @@ -1,271 +0,0 @@ -// $Id$ - -#include "Machine_Properties.h" - -const int TAO_Machine_Properties::NUM_PROPERTIES = 10; - -const int DEFAULT_TIMEOUT_SEC = 1; -const int DEFAULT_TIMEOUT_USEC = 0; - -const char* TAO_Machine_Properties::PROP_NAMES[] = -{ - "CPU", - "Disk", - "Pages", - "Swaps", - "Packets", - "Errors", - "Context_Switches", - "Collisions", - "Interrupts", - "Load" -}; - -TAO_Machine_Properties:: -TAO_Machine_Properties (void) - : timeout_ (ACE_Time_Value (DEFAULT_TIMEOUT_SEC, DEFAULT_TIMEOUT_USEC)), - timestamp_ (0), - sample_time_ (0) -{ - this->init (); -} - - -TAO_Machine_Properties:: -TAO_Machine_Properties (const ACE_Time_Value& timeout) - : timeout_ (timeout), - timestamp_ (0), - sample_time_ (0) -{ - this->init (); -} - -void -TAO_Machine_Properties::init (void) -{ - this->rstat_client_ = - ::clnt_create("localhost", RSTATPROG, RSTATVERS_TIME, "udp"); - - if (this->rstat_client_ == 0) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %s\n", - ::clnt_spcreateerror ("localhost"))); - } - - ::memset (&this->old_stats_, 0, sizeof (statstime)); - this->retrieve_stats (); -} - -int -TAO_Machine_Properties::retrieve_stats (void) -{ - if (this->rstat_client_ == 0) - return -1; - - static struct timeval timeout = {25, 0}; - if (clnt_call (this->rstat_client_, - RSTATPROC_STATS, - xdr_void, - 0, - (xdrproc_t) xdr_statstime, - (caddr_t) &this->stats_, - timeout) != RPC_SUCCESS) - { - ACE_ERROR_RETURN ((LM_ERROR, "(%P|%t) %s\n", - ::clnt_sperror (this->rstat_client_, "localhost")), -1); - } - - this->sample_time_ = ACE_OS::gettimeofday () - this->timestamp_; - this->timestamp_ = ACE_OS::gettimeofday (); - return 0; -} - -CORBA::Any* -TAO_Machine_Properties::evalDP(const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)) -{ - CORBA::Any* return_value; - - ACE_DEBUG ((LM_DEBUG, "Evaluating machine properties.\n")); - - ACE_NEW_RETURN (return_value, CORBA::Any, 0); - - if (ACE_OS::gettimeofday () - this->timestamp_ > this->timeout_) - { - if (this->retrieve_stats () == -1) - return return_value; - } - - char* prop_name = 0; - extra_info >>= prop_name; - - if (prop_name == 0) - return return_value; - - CORBA::String_var prop_name_var (prop_name); - int elapsed_seconds = this->sample_time_.sec () + - (this->sample_time_.usec () > 500000) ? 1 : 0; - - if (ACE_OS::strcmp (prop_name, PROP_NAMES[CPU]) == 0) - this->compute_cpu (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[DISK]) == 0) - this->compute_disk (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[PAGES]) == 0) - this->compute_pages (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[SWAPS]) == 0) - this->compute_swaps (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[PACKETS]) == 0) - this->compute_packets (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[ERRORS]) == 0) - this->compute_errors (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[CONTEXT_SWITCHES]) == 0) - this->compute_context (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[COLLISIONS]) == 0) - this->compute_collisions (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[INTERRUPTS]) == 0) - this->compute_interrupts (*return_value, elapsed_seconds); - else if (ACE_OS::strcmp (prop_name, PROP_NAMES[LOAD]) == 0) - this->compute_load (*return_value, elapsed_seconds); - - ::memcpy (&this->old_stats_, &this->stats_, sizeof (statstime)); - - return return_value; -} - -void -TAO_Machine_Properties:: -export_dynamic_properties (TAO_Property_Exporter& prop_exporter, - TAO_DP_Dispatcher& dp_disp) const -{ - ACE_DEBUG ((LM_ERROR, "Adding machine properties.\n")); - for (int i = 0; i < NUM_PROPERTIES; i++) - { - CORBA::Any extra_info; - const char* name = PROP_NAMES[i]; - const CORBA::TypeCode_ptr prop_type = CORBA::_tc_float; - - extra_info <<= name; - CosTradingDynamic::DynamicProp* dp_struct = - dp_disp.construct_dynamic_prop (name, prop_type, extra_info); - - dp_disp.register_handler (name, (TAO_DP_Evaluation_Handler*) this); - prop_exporter.add_dynamic_property (name, dp_struct); - } -} - -int -TAO_Machine_Properties:: -define_properties (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset) const -{ - prop_seq.length (NUM_PROPERTIES + offset); - for (int j = prop_seq.length () - offset - 1, i = offset; j >= 0; j--, i++) - { - prop_seq[i].name = PROP_NAMES[i - offset]; - prop_seq[i].value_type = CORBA::TypeCode::_duplicate (CORBA::_tc_float); - prop_seq[i].mode = CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - } - - return NUM_PROPERTIES; -} - -void -TAO_Machine_Properties::compute_cpu (CORBA::Any& value, int elapsed_seconds) -{ - // The first three cpu stats are for user, kernal, iowait - CORBA::ULong used = 0.0; - for (int i = 0; i < RSTAT_CPUSTATES - 1; i++) - used += (this->stats_.cp_time[i] - this->old_stats_.cp_time[i]); - - // The last is the amount idle. - CORBA::ULong idle = - this->stats_.cp_time[RSTAT_CPUSTATES - 1] - - this->old_stats_.cp_time[RSTAT_CPUSTATES - 1]; - - // The CPU usage is the amount used over the total available. - value <<= (CORBA::Float) ((((CORBA::Float) used) / (used + idle)) * 100.0); -} - -void -TAO_Machine_Properties::compute_disk (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float used = 0.0; - for (int i = 0; i < RSTAT_DK_NDRIVE; i++) - used += (this->stats_.dk_xfer[i] - this->old_stats_.dk_xfer[i]); - - value <<= (CORBA::Float)(used / (float) elapsed_seconds); -} - -void -TAO_Machine_Properties::compute_pages (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float pages = - (this->stats_.v_pgpgin - this->old_stats_.v_pgpgin) + - (this->stats_.v_pgpgout - this->old_stats_.v_pgpgout); - - value <<= (CORBA::Float) (pages / elapsed_seconds); -} - -void -TAO_Machine_Properties::compute_swaps (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float swaps = - (this->stats_.v_pswpin - this->old_stats_.v_pswpin) + - (this->stats_.v_pswpout - this->old_stats_.v_pswpout); - - value <<= (CORBA::Float) (swaps / elapsed_seconds); -} - -void -TAO_Machine_Properties::compute_packets (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float packets = - (this->stats_.if_ipackets - this->old_stats_.if_ipackets) + - (this->stats_.if_opackets - this->old_stats_.if_opackets); - - value <<= (CORBA::Float) (packets / elapsed_seconds); -} - -void -TAO_Machine_Properties::compute_errors (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float packets = - (this->stats_.if_ipackets - this->old_stats_.if_ipackets) + - (this->stats_.if_opackets - this->old_stats_.if_opackets); - - value <<= (CORBA::Float) (packets / elapsed_seconds); -} - -void -TAO_Machine_Properties:: -compute_context (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float switches = (this->stats_.v_swtch - this->old_stats_.v_swtch); - value <<= (CORBA::Float) (switches / elapsed_seconds); -} - -void -TAO_Machine_Properties:: -compute_collisions (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float cols = - (this->stats_.if_collisions - this->old_stats_.if_collisions); - value <<= (CORBA::Float) (cols / elapsed_seconds); -} - -void -TAO_Machine_Properties:: -compute_interrupts (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float intr = (this->stats_.v_intr - this->old_stats_.v_intr); - value <<= (CORBA::Float) (intr / elapsed_seconds); -} - -void -TAO_Machine_Properties::compute_load (CORBA::Any& value, int elapsed_seconds) -{ - CORBA::Float load = ((CORBA::Float) this->stats_.avenrun[0]) / FSCALE; - value <<= load; -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.h deleted file mode 100644 index a6a046916c7..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Machine_Properties.h +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- C++ -*- */ - -// ============================================================================ -// $Id$ -// -// = FILENAME -// Machine_Properties.h -// -// = DESCRIPTION -// As a trading service dynamic property, retrieves machine -// statistics from the rstatd using Sun RPC. -// -// = AUTHORS -// Seth Widoff -// -// ============================================================================ - -#if (! defined TAO_MACHINE_PROPERTIES) -#define TAO_MACHINE_PROPERTIES - -#include "orbsvcs/Trader/Dynamic_Property.h" -#include "Property_Exporter.h" - -//RPC related includes -#include -#include - -class TAO_Machine_Properties : - public TAO_DP_Evaluation_Handler, - public TAO_Exportable -{ -public: - - enum PROP_TYPES - { - CPU, - DISK, - PAGES, - SWAPS, - PACKETS, - ERRORS, - CONTEXT_SWITCHES, - COLLISIONS, - INTERRUPTS, - LOAD - }; - - static const int NUM_PROPERTIES; - static const char* PROP_NAMES[]; - - TAO_Machine_Properties (void); - - TAO_Machine_Properties (const ACE_Time_Value& timeout); - - virtual CORBA::Any* evalDP(const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)); - // Return the value of a machine performance property whose name is - // contained in , which in essence is another - // demultiplexing key. - - virtual void export_dynamic_properties (TAO_Property_Exporter& prop_exporter, - TAO_DP_Dispatcher& dp_dispatcher) const; - - virtual int define_properties - (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset = 0) const; - -private: - - void init (void); - - int retrieve_stats (void); - - void compute_cpu (CORBA::Any& value, int elapsed_time); - void compute_disk (CORBA::Any& value, int elapsed_time); - void compute_pages (CORBA::Any& value, int elapsed_time); - void compute_swaps (CORBA::Any& value, int elapsed_time); - void compute_packets (CORBA::Any& value, int elapsed_time); - void compute_errors (CORBA::Any& value, int elapsed_time); - void compute_context (CORBA::Any& value, int elapsed_time); - void compute_collisions (CORBA::Any& value, int elapsed_time); - void compute_interrupts (CORBA::Any& value, int elapsed_time); - void compute_load (CORBA::Any& value, int elapsed_time); - - const ACE_Time_Value timeout_; - ACE_Time_Value timestamp_; - ACE_Time_Value sample_time_; - - statstime stats_; - statstime old_stats_; - CLIENT* rstat_client_; - -}; - -#endif /* TAO_MACHINE_PROPERTIES */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Makefile b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Makefile deleted file mode 100644 index fb3886d2c30..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Makefile +++ /dev/null @@ -1,1740 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -MAKEFILE = Makefile -BIN = augmented_server server vs as - -BUILD = $(BIN) - -AV_SERVER_OBJS = server.o -AV_AUGSERVER_OBJS = Video_RepositoryC.o augmented_server.o \ - Property_Exporter.o Machine_Properties.o \ - Video_Repository.o -AV_VS_OBJS = vs.o -AV_AS_OBJS = as.o - -# On non-Windows environment, we should at least define -# the export_include IDL flag. -IDL_FILES = Video_RepositoryC - -FILES = augmented_server server vs as Property_Exporter Machine_Properties - -DEFS = $(addsuffix .h,$(FILES)) -LSRC = $(addsuffix .cpp,$(FILES)) - - -LIBS += -lTAO -lACE -lorbsvcs -lmpeg_server -lmpeg_shared -lrpcsvc - -MPEG_ROOT = $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source -CPPFLAGS += -I$(MPEG_ROOT) - -#---------------------------------------------------------------------------- -# 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 -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) -#---------------------------------------------------------------------------- - -CPPFLAGS += -DSH_MEM -DNDEBUG -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat -I$(TAO_ROOT)/orbsvcs $(TSS_ORB_FLAG)#-H - -.PRECIOUS: Video_RepositoryC.cpp - -idl_stubs: $(addsuffix .h, $(IDL_FILES)) - - -ifdef stat -CPPFLAGS += -DSTAT -endif - -server:$(addprefix $(VDIR),$(AV_SERVER_OBJS)) - $(LINK.cc) $(LDFAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -augmented_server:$(addprefix $(VDIR),$(AV_AUGSERVER_OBJS)) - $(LINK.cc) $(LDFAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -vs:$(addprefix $(VDIR),$(AV_VS_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -as:$(addprefix $(VDIR),$(AV_AS_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o Log $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf $(addsuffix .h, $(IDL_FILES)) $(addsuffix .i, $(IDL_FILES)) $(addsuffix .cpp, $(IDL_FILES)) \ - $(addsuffix _T.h, $(IDL_FILES)) $(addsuffix _T.i, $(IDL_FILES)) $(addsuffix _T.cpp, $(IDL_FILES)) - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/augmented_server.o .obj/augmented_server.so .shobj/augmented_server.o .shobj/augmented_server.so: augmented_server.cpp augmented_server.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(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/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.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/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Acceptor.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_CODgram.h \ - $(ACE_ROOT)/ace/SOCK_CODgram.i \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h \ - $(TAO_ROOT)/tao/TAO.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(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.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.i \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Server.h \ - vs.h Property_Exporter.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Dynamic_Property.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Trader.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Attributes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.i \ - Machine_Properties.h Video_Repository.h Video_RepositoryC.h \ - Video_RepositoryC.i -.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp server.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(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/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.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/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Acceptor.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_CODgram.h \ - $(ACE_ROOT)/ace/SOCK_CODgram.i \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h \ - $(TAO_ROOT)/tao/TAO.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(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.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.i \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Server.h \ - vs.h -.obj/vs.o .obj/vs.so .shobj/vs.o .shobj/vs.so: vs.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.h \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/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/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(TAO_ROOT)/tao/TAO.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h \ - $(ACE_ROOT)/ace/SOCK_CODgram.h \ - $(ACE_ROOT)/ace/SOCK_CODgram.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ - vs.h $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.i \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h -.obj/as.o .obj/as.so .shobj/as.o .shobj/as.so: as.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Server.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/include/common.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/fileio.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/routine.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/com.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/server_proto.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Globals.h \ - $(ACE_ROOT)/ace/SOCK_CODgram.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/SOCK_CODgram.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/sendpt.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Server.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/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/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(TAO_ROOT)/tao/TAO.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Video_ControlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_State.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Video_Control_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/AVStreams_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AVStreamsS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Property/CosPropertyService_i.h \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/AV/Endpoint_Strategy.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Null_MediaCtrlS.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlC.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.h \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS_T.cpp \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_shared/Audio_ControlS.i \ - as.h $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/mpeg_server/Audio_Control_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Naming_Utils.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/IOR_Multicast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.h \ - $(ACE_ROOT)/ace/SOCK_Dgram.i \ - $(ACE_ROOT)/ace/SOCK_Dgram_Mcast.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/CosNaming_i.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Naming/Entries.h -.obj/Property_Exporter.o .obj/Property_Exporter.so .shobj/Property_Exporter.o .shobj/Property_Exporter.so: Property_Exporter.cpp Property_Exporter.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Dynamic_Property.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Trader.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Attributes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Property_Evaluator.h -.obj/Machine_Properties.o .obj/Machine_Properties.so .shobj/Machine_Properties.o .shobj/Machine_Properties.so: Machine_Properties.cpp Machine_Properties.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Dynamic_Property.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Trader.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/Trader/Attributes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.i \ - Property_Exporter.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosPropertyServiceC.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.cpp deleted file mode 100644 index 880dba456f9..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.cpp +++ /dev/null @@ -1,400 +0,0 @@ -// $Id$ - -#include "Property_Exporter.h" -#include "orbsvcs/Trader/Property_Evaluator.h" - -// ************************************************************* -// DP_Adapter -// ************************************************************* - -class DP_Adapter : public TAO_DP_Evaluation_Handler -// = TITLE -// This class links the a dynamic property in a Trading Service -// Offer with its value in a CosPropertyService::PropertySet. -{ -public: - - DP_Adapter (const char* prop_name, - CosPropertyService::PropertySet_ptr prop_set); - - ~DP_Adapter (void); - - virtual CORBA::Any* evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)); - // Call back to the Property Service interface. The Property - // Service reference is contained in the extra_info -- an - // Asynchronous Completion Token. - -private: - - const char* prop_name_; - CosPropertyService::PropertySet_var prop_set_; -}; - -DP_Adapter::DP_Adapter (const char* prop_name, - CosPropertyService::PropertySet_ptr prop_set) - : prop_name_ (prop_name), - prop_set_ (prop_set) -{ -} - -DP_Adapter::~DP_Adapter (void) -{ -} - -CORBA::Any* -DP_Adapter::evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)) -{ - TAO_TRY - { - CORBA::Any* return_value = - this->prop_set_->get_property_value (this->prop_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - return return_value; - } - TAO_CATCHANY - { - TAO_THROW_RETURN (CosTradingDynamic::DPEvalFailure - (this->prop_name_, returned_type, extra_info), - 0); - } - TAO_ENDTRY; -} - -// ************************************************************* -// TAO_Property_Exporter -// ************************************************************* - -TAO_Property_Exporter:: -TAO_Property_Exporter (CosTrading::Lookup_var lookup_if, - CosPropertyService::PropertySet_ptr prop_set, - CORBA::ULong initial_size) - : increment_ (initial_size), - lookup_ (lookup_if), - prop_set_ (prop_set), - tprops_ (initial_size), - pprops_ (initial_size), - pcount_ (0), - tcount_ (0) -{ -} - -TAO_Property_Exporter::~TAO_Property_Exporter (void) -{ -} - -void -TAO_Property_Exporter::add_static_property (const char* name, - const CORBA::Any& value) -{ - CORBA::ULong plength = this->pprops_.length (), - tlength = this->tprops_.length (); - - if (tlength == this->tcount_) - this->tprops_.length (tlength + this->increment_); - - if (plength == this->pcount_) - this->pprops_.length (plength + this->increment_); - - this->tprops_[this->tcount_].name = name; - this->tprops_[this->tcount_].value = value; - this->tcount_++; - - this->pprops_[this->pcount_].property_name = name; - this->pprops_[this->pcount_].property_value = value; - this->pcount_++; -} - - -void -TAO_Property_Exporter:: -add_dynamic_property (const char* name, - const CORBA::Any& value, - TAO_DP_Dispatcher& dynamic_prop) -{ - // Add a property to the PropSet and a dynamic property to the - // Offer. Have the dynamic property connect to the PropSet accessor - // for that name. - DP_Adapter* dp_adapter; - ACE_NEW_RETURN (dp_adapter, DP_Adapter (name, this->prop_set_),); - - CORBA::ULong plength = this->pprops_.length (), - tlength = this->tprops_.length (); - - if (tlength == this->tcount_) - this->tprops_.length (tlength + this->increment_); - - if (plength == this->pcount_) - this->pprops_.length (plength + this->increment_); - - CORBA::Any extra_info; - - CosTradingDynamic::DynamicProp* dp_struct = - dynamic_prop.construct_dynamic_prop (name, value.type (), extra_info); - - dynamic_prop.register_handler (name, dp_adapter, CORBA::B_TRUE); - - this->tprops_[this->tcount_].name = name; - this->tprops_[this->tcount_].value <<= *dp_struct; - this->tcount_++; - - this->pprops_[this->pcount_].property_name = name; - this->pprops_[this->pcount_].property_value = value; - this->pcount_++; -} - -void -TAO_Property_Exporter:: -add_dynamic_property (const char* name, - CosTradingDynamic::DynamicProp& dp_struct) -{ - CORBA::ULong tlength = this->tprops_.length (); - - if (tlength == this->tcount_) - this->tprops_.length (tlength + this->increment_); - - this->tprops_[this->tcount_].name = name; - this->tprops_[this->tcount_].value <<= dp_struct; - this->tcount_++; -} - -void -TAO_Property_Exporter:: -add_dynamic_property (const char* name, - CosTradingDynamic::DynamicProp* dp_struct) -{ - CORBA::ULong tlength = this->tprops_.length (); - - if (tlength == this->tcount_) - this->tprops_.length (tlength + this->increment_); - - this->tprops_[this->tcount_].name = name; - this->tprops_[this->tcount_].value <<= dp_struct; - this->tcount_++; -} - - -CosTrading::OfferId -TAO_Property_Exporter::export (const CORBA::Object_ptr object_ref, - const CosTrading::ServiceTypeName type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::Register::InvalidObjectRef, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::Register::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::MissingMandatoryProperty, - CosTrading::DuplicatePropertyName)) -{ - CosTrading::Register_var reg = this->lookup_->register_if (_env); - TAO_CHECK_ENV_RETURN (_env, 0); - - // Export the offer to the trader under the given type. - CosTrading::OfferId offer_id = 0; - this->tprops_.length (this->tcount_); - offer_id = reg->export (object_ref, type, this->tprops_, _env); - TAO_CHECK_ENV_RETURN (_env, 0); - - this->pprops_.length (this->pcount_); - this->prop_set_->define_properties (this->pprops_, _env); - TAO_CHECK_ENV_RETURN (_env, offer_id); - - return offer_id; -} - -CosTrading::OfferId -TAO_Property_Exporter::export (const CORBA::Object_ptr object_ref, - const CosTrading::ServiceTypeName type, - const TRADING_REPOS::PropStructSeq& props, - const TRADING_REPOS::ServiceTypeNameSeq& stypes, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - TRADING_REPOS::ServiceTypeExists, - TRADING_REPOS::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - TRADING_REPOS::ValueTypeRedefinition, - TRADING_REPOS::DuplicateServiceTypeName, - CosTrading::Register::InvalidObjectRef, - CosTrading::Register::InterfaceTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::MissingMandatoryProperty, - CosTrading::DuplicatePropertyName)) -{ - CosTrading::Register_var reg; - CosTrading::OfferId offer_id = 0; - - TAO_TRY - { - reg = this->lookup_->register_if (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->pprops_.length (this->pcount_); - this->prop_set_->define_properties (this->pprops_, TAO_TRY_ENV); - TAO_CHECK_ENV; - - /***************** UTTER HACK: REMOVE WHEN EXCEPTIONS WORK! ****/ - CosTrading::TypeRepository_ptr obj = this->lookup_->type_repos (_env); - ACE_DEBUG ((LM_DEBUG, "Attempting add_type.\n")); - CosTradingRepos::ServiceTypeRepository_var str = - CosTradingRepos::ServiceTypeRepository::_narrow (obj, _env); - TAO_CHECK_ENV_RETURN (_env, 0); - - str->add_type (type, - object_ref->_interface_repository_id (), - props, - stypes, - _env); - TAO_CHECK_ENV_RETURN (_env, 0); - /***************** UTTER HACK: REMOVE WHEN EXCEPTIONS WORK! ****/ - - // Attempt to export the offer. - ACE_DEBUG ((LM_DEBUG, "Attempting export.\n")); - this->tprops_.length (this->tcount_); - offer_id = reg->export (object_ref, type, this->tprops_, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CosTrading::UnknownServiceType, excp) - { - CosTrading::TypeRepository_ptr obj = this->lookup_->type_repos (_env); - TAO_CHECK_ENV_RETURN (_env, 0); - - ACE_DEBUG ((LM_DEBUG, "Export failed. Attempting add_type.\n")); - CosTradingRepos::ServiceTypeRepository_var str = - CosTradingRepos::ServiceTypeRepository::_narrow (obj, _env); - TAO_CHECK_ENV_RETURN (_env, 0); - - // If the ServiceTypeName wasn't found, we'll have to add the - // type to the Service Type repository ourselves. - str->add_type (type, - object_ref->_interface_repository_id (), - props, - stypes, - _env); - TAO_CHECK_ENV_RETURN (_env, 0); - - // Now we'll try again to register the offer. - ACE_DEBUG ((LM_DEBUG, "Attempting export again.\n")); - offer_id = reg->export (object_ref, type, this->tprops_, _env); - TAO_CHECK_ENV_RETURN (_env, 0); - } - TAO_CATCHANY - { - // Sigh, all our efforts were for naight. - TAO_RETHROW_RETURN (0); - } - TAO_ENDTRY; - - return offer_id; -} - -// ************************************************************* -// TAO_Property_Modifier -// ************************************************************* - -TAO_Property_Modifier:: -TAO_Property_Modifier (CosTrading::Lookup_var lookup_if, - CosPropertyService::PropertySet_ptr prop_set, - CORBA::ULong initial_size) - : increment_ (initial_size), - lookup_ (lookup_if), - prop_set_ (prop_set), - pdelete_ (initial_size), - pmodify_ (initial_size), - tdelete_ (initial_size), - tmodify_ (initial_size), - pdcount_ (0), - pmcount_ (0), - tdcount_ (0), - tmcount_ (0) -{ -} - -void -TAO_Property_Modifier::delete_property (const char* name) -{ - CORBA::ULong plength = this->pdelete_.length (), - tlength = this->tdelete_.length (); - - if (tlength == this->tdcount_) - this->tdelete_.length (tlength + this->increment_); - - if (plength == this->pdcount_) - this->pdelete_.length (plength + this->increment_); - - this->tdelete_[this->tdcount_] = name; - this->tdcount_++; - - this->pdelete_[this->pdcount_] = name; - this->pdcount_++; -} - -void -TAO_Property_Modifier::modify_property (const char* name, const Any& value) -{ - CORBA::ULong plength = this->pmodify_.length (), - tlength = this->tmodify_.length (); - - if (tlength == this->tmcount_) - this->tmodify_.length (tlength + this->increment_); - - if (plength == this->pmcount_) - this->pmodify_.length (plength + this->increment_); - - this->tmodify_[this->tmcount_].name = name; - this->tmodify_[this->tmcount_].value = value; - this->tdcount_++; - - this->pmodify_[this->pmcount_].property_name = name; - this->pmodify_[this->pmcount_].property_value = value; - this->pdcount_++; -} - -void -TAO_Property_Modifier::commit (CosTrading::OfferId id, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosPropertyService::MultipleExceptions, - CosTrading::NotImplemented, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId, - CosTrading::IllegalPropertyName, - CosTrading::Register::UnknownPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::Register::MandatoryProperty, - CosTrading::Register::ReadonlyProperty, - CosTrading::DuplicatePropertyName)) -{ - this->tdelete_.length (this->tdcount_); - this->tmodify_.length (this->tmcount_); - this->pdelete_.length (this->pdcount_); - this->pmodify_.length (this->pmcount_); - - CosTrading::Register_var reg = this->lookup_->register_if (_env); - TAO_CHECK_ENV_RETURN (_env,); - - reg->modify (id, this->tdelete_, this->tmodify_, _env); - TAO_CHECK_ENV_RETURN (_env,); - - this->prop_set_->define_properties (this->pmodify_, _env); - TAO_CHECK_ENV_RETURN (_env,); - - this->prop_set_->delete_properties (this->pdelete_, _env); - TAO_CHECK_ENV_RETURN (_env,); -} - - - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.h deleted file mode 100644 index a65a72ff092..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Property_Exporter.h +++ /dev/null @@ -1,216 +0,0 @@ -/* -*- C++ -*- */ - -// ======================================================================== -// $Id$ -// -// = LIBRARY -// TAO/orbsvcs/orbsvcs -// -// = FILENAME -// Property_Exporter.h -// -// = DESCRIPTION -// Allows a service to export properties to both a Property Set and -// a Trading Service simulatenously. -// -// = AUTHORS -// Seth Widoff -// -// ======================================================================== - -#if ! defined (TAO_PROPERTY_EXPORTER_H) -#define TAO_PROPERTY_EXPORTER_H - -#include "orbsvcs/CosTradingC.h" -#include "orbsvcs/CosPropertyServiceC.h" -#include "orbsvcs/Trader/Dynamic_Property.h" - -class TAO_Property_Exporter; - -class TAO_Exportable -// = DESCRIPTION -// Interface that allows property containers to export their -// properties to a TAO_Property_Exporter instance. -{ -public: - - virtual void - export_static_properties (TAO_Property_Exporter& prop_exporter) const {} - // Insert exportable properties into the proper_exporter. - - virtual void - export_dynamic_properties (TAO_Property_Exporter& prop_exporter, - TAO_DP_Dispatcher& dp_dispatcher) const {} - // Insert exportable properties into the proper_exporter. - - virtual int define_properties - (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset = 0) const = 0; - // Append property definitions to the service type defintition - // sequence. The is the point at which the method can begin - // placing the PropStructures. define_properties returns the number - // of properties inserted from the offset. -}; - - -class TAO_Property_Exporter -// = TITLE -// Publish public properties of a servant to a -// CosPropertyService::PropSet instance and a Trading Service -// offer. -// -// Use this class in the following way: -// 1. Instantiate. -// 2. for (int i = 0; i < num_properties; i++) add_*_property (); -// 3. export () -{ - public: - - TAO_Property_Exporter (CosTrading::Lookup_var lookup_if, - CosPropertyService::PropertySet_ptr prop_set, - CORBA::ULong initial_size = 10); - - - ~TAO_Property_Exporter (void); - // Delete all Dynamic Property adapters - - void add_static_property (const char* name, - const CORBA::Any& value); - // Add a property to the Offer and the PropSet. - - void add_dynamic_property (const char* name, - const CORBA::Any& intial_value, - TAO_DP_Dispatcher& dp); - // Add a property to the PropSet and a dynamic property to the - // Offer. Have the dynamic property connect to the PropSet accessor - // for that name. - - void add_dynamic_property (const char* name, - CosTradingDynamic::DynamicProp& dp_struct); - - void add_dynamic_property (const char* name, - CosTradingDynamic::DynamicProp* dp_struct); - - CosTrading::OfferId export (const CORBA::Object_ptr object_ref, - const CosTrading::ServiceTypeName type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosPropertyService::MultipleExceptions, - CosTrading::Register::InvalidObjectRef, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::Register::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::MissingMandatoryProperty, - CosTrading::DuplicatePropertyName)); - // Export the offer to the trader under the given type. - - typedef CosTradingRepos::ServiceTypeRepository TRADING_REPOS; - CosTrading::OfferId export (const CORBA::Object_ptr object_ref, - const CosTrading::ServiceTypeName type, - const TRADING_REPOS::PropStructSeq& props, - const TRADING_REPOS::ServiceTypeNameSeq& stypes, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosPropertyService::MultipleExceptions, - CosTrading::IllegalServiceType, - TRADING_REPOS::ServiceTypeExists, - TRADING_REPOS::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - TRADING_REPOS::ValueTypeRedefinition, - TRADING_REPOS::DuplicateServiceTypeName, - CosTrading::Register::InvalidObjectRef, - CosTrading::Register::InterfaceTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::MissingMandatoryProperty, - CosTrading::DuplicatePropertyName)); - // Export the offer to the trader under the given type. Register the - // type with the current definition if the type can't be found in - // the service type repository. - -private: - - TAO_Property_Exporter (const TAO_Property_Exporter&); - void operator= (const TAO_Property_Exporter&); - // These don't make sense on this class. - - const int increment_; - - CosTrading::Lookup_var lookup_; - CosPropertyService::PropertySet_var prop_set_; - - CORBA::ULong pcount_, tcount_; - CosTrading::PropertySeq tprops_; - CosPropertyService::Properties pprops_; -}; - -class TAO_Property_Modifier -// = TITLE -// Modify or delete properties published in a PropSet instance or as -// an offer in a Trading Service instance. -// -// = DESCRIPTION -// This interface is primarily for properties registered as static -// with the trading service, yet periodically change. The change -// isn't frequent enough to warrant the constant overhead of dynamic -// properties, which can affect the server performance. -{ -public: - - TAO_Property_Modifier (CosTrading::Lookup_var lookup_if, - CosPropertyService::PropertySet_ptr prop_set, - CORBA::ULong initial_size = 10); - - // If no Lookup Interface is provided to the constructor, then - // resolve_initial_references ("TradingService") will be used. - - void delete_property (const char* name); - // Remove a property from the current prop_set/offer. - - void modify_property (const char* name, const CORBA::Any& value); - // Modify a property from the current prop_set/offer. - - void commit (CosTrading::OfferId id, CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosPropertyService::MultipleExceptions, - CosTrading::NotImplemented, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId, - CosTrading::IllegalPropertyName, - CosTrading::Register::UnknownPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::Register::MandatoryProperty, - CosTrading::Register::ReadonlyProperty, - CosTrading::DuplicatePropertyName)); - // Commit your changes to the trading service. - - private: - - const int increment_; - - int pdcount_; - int pmcount_; - - int tdcount_; - int tmcount_; - - CosTrading::Lookup_var lookup_; - CosPropertyService::PropertySet_var prop_set_; - - CosPropertyService::PropertyNames pdelete_; - CosPropertyService::Properties pmodify_; - - CosTrading::PropertyNameSeq tdelete_; - CosTrading::PropertySeq tmodify_; - - TAO_Property_Modifier (const TAO_Property_Modifier&); - void operator= (const TAO_Property_Modifier&); - // These don't make sense on this class. -}; - -#endif /* TAO_PROPERTY_EXPORTER_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.cpp deleted file mode 100644 index 9c35ddb5eff..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.cpp +++ /dev/null @@ -1,145 +0,0 @@ -// $Id$ - -#include "Video_Repository.h" -#include "ace/Read_Buffer.h" - -const char* TAO_Video_Repository::MOVIE_INFO = "Movie_Info"; - -TAO_Video_Repository::TAO_Video_Repository (const char* file_name) - : filename_ (file_name), - movie_info_ (0), - num_movies_ (0), - lastchanged_ (0) -{ -} - -TAO_Video_Repository::~TAO_Video_Repository (void) -{ - TAO_VR::Movie_Info::freebuf (this->movie_info_); -} - -CORBA::Any* -TAO_Video_Repository::evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)) -{ - CORBA::Any* return_value = 0; - ACE_NEW_RETURN (return_value, CORBA::Any, 0); - - struct stat file_stat; - if (ACE_OS::stat (this->filename_, &file_stat) == 0) - { - if (this->lastchanged_ < file_stat.st_mtime) - { - FILE* file = ACE_OS::fopen (this->filename_, "r"); - - if (file != 0) - { - // Read the file into a buffer - ACE_Read_Buffer read_file (file, 1); - char* database = read_file.read (EOF, '\n', '%'); - - // Parse the file into a sequence and insert it into an - // Any (i.e., this->return_) - TAO_Video_Repository::parse_file (database, - read_file.replaced ()); - - ACE_Allocator* alloc = ACE_Allocator::instance (); - alloc->free (database); - - this->lastchanged_ = file_stat.st_mtime; - } - } - - TAO_VR::Movie_Info* movie_info = 0; - ACE_NEW_RETURN (movie_info, - TAO_VR::Movie_Info (this->num_movies_, - this->num_movies_, - this->movie_info_, - CORBA::B_FALSE), - 0); - - (*return_value) <<= movie_info; - } - - return return_value; -} - -void -TAO_Video_Repository::parse_file (const char* database, int num_lines) -{ - const char* delim = "%"; - CORBA::ULong i = 0; - CORBA::Any* return_value = 0; - char* current = (char *) database; - - ACE_DEBUG ((LM_DEBUG, "Recomputing the movie stats.\n")); - - TAO_VR::Movie_Info::freebuf (this->movie_info_); - - this->movie_info_ = TAO_VR::Movie_Info::allocbuf (num_lines); - - if (this->movie_info_ != 0) - { - current = ACE_OS::strtok (current, "%"); - while (current != 0) - { - TAO_VR::Movie& movie = this->movie_info_[i]; - - movie.name_ = (const char*) current; - movie.filename_ = (const char*) ACE_OS::strtok (0, delim); - movie.description_ = (const char*) ACE_OS::strtok (0, delim); - - ACE_DEBUG ((LM_DEBUG, - "Movie Name: %s\nFile Name: %s\nDescription: %s\n", - (const char *) movie.name_, - (const char *) movie.filename_, - (const char *) movie.description_)); - - // From the actual movie file, extract the techincal information. - TAO_Video_Repository:: - obtain_movie_info (movie.filename_, movie); - - current = ACE_OS::strtok (0, delim); - i++; - } - } - - this->num_movies_ = num_lines; -} - -void -TAO_Video_Repository:: -export_dynamic_properties (TAO_Property_Exporter& prop_exporter, - TAO_DP_Dispatcher& dp_dispatcher) const -{ - CORBA::Any extra_info; - - extra_info <<= MOVIE_INFO; - CosTradingDynamic::DynamicProp* dp_struct = - dp_dispatcher.construct_dynamic_prop (MOVIE_INFO, - TAO_VR::_tc_Movie_Info, - extra_info); - - dp_dispatcher.register_handler (MOVIE_INFO, (TAO_DP_Evaluation_Handler*) this); - prop_exporter.add_dynamic_property (MOVIE_INFO, dp_struct); -} - -int -TAO_Video_Repository:: -define_properties (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset) const -{ - CORBA::ULong num_props = prop_seq.length (); - - if (num_props <= offset) - prop_seq.length (offset + 1); - - prop_seq[offset].name = MOVIE_INFO; - prop_seq[offset].value_type = CORBA::TypeCode::_duplicate (TAO_VR::_tc_Movie_Info); - prop_seq[offset].mode = CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY; - - return 1; -} - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.h deleted file mode 100644 index 435ed999a36..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.h +++ /dev/null @@ -1,85 +0,0 @@ -/* -*- C++ -*- */ - -// ============================================================================ -// $Id$ -// -// -// = FILENAME -// Video_Repository.h -// -// = DESCRIPTION -// As a trading service dynamic property, creates a sequence of -// structures, each structure describing a movie in the video -// repository. -// -// = AUTHORS -// Seth Widoff -// -// ============================================================================ - -#if (! defined TAO_VIDEO_REPOSITORY_H) -#define TAO_VIDEO_REPOSITORY_H - -#include "orbsvcs/Trader/Dynamic_Property.h" - -#include "ace/OS.h" -#include "Video_RepositoryC.h" -#include "Property_Exporter.h" - -class TAO_Video_Repository : - public TAO_DP_Evaluation_Handler, - public TAO_Exportable -// = DESCRIPTION -// When evalDP is invoked by the Dynamic Property Dispatcher, the -// TAO_Video_Repository parses the database file and creates a Movie -// Sequence, each structure of which describes a movie in the -// database. The evalDP then crams the sequence into a dynamically -// allocated Any, which it returns to the dispatcher. -// -// The format of the database file is the following: -// -// %% -{ -public: - - static const char* MOVIE_INFO; - - TAO_Video_Repository (const char* filename); - // TAO_Video_Repository requires the pathname of the video - // repository database. - - ~TAO_Video_Repository (void); - - virtual CORBA::Any* evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)); - - virtual void export_dynamic_properties (TAO_Property_Exporter& prop_exporter, - TAO_DP_Dispatcher& dp_dispatcher) const; - - virtual int define_properties - (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offet = 0) const; - -private: - - void parse_file (const char* database, int num_lines); - - static void obtain_movie_info (const char* file_name, - TAO_VR::Movie& movie) {} - // Extract the techincal information from the actual MPEG file. - - TAO_Video_Repository (void) {} - TAO_Video_Repository& operator= (const TAO_Video_Repository& rep) - { return *this; } - // TAO_Video_Repository requires the path of the video repository - // database. - - const char* filename_; - TAO_VR::Movie* movie_info_; - int num_movies_; - time_t lastchanged_; -}; - -#endif /* TAO_VIDEO_REPOSITORY_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl deleted file mode 100644 index ce42c089959..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl +++ /dev/null @@ -1,31 +0,0 @@ -// ============================================================================ -// $Id$ -// -// = FILENAME -// Video_Repository.idl -// -// = DESCRIPTION -// Data Structures used by the Video_Repository to describe movies in -// the Video Repository. -// -// = AUTHORS -// Seth Widoff -// -// ============================================================================ - -module TAO_VR -{ - struct Movie - { - string name_; - string filename_; - string description_; - // string movie_format_; - // unsigned long filesize_; - // unsigned long duration_; - // unsigned long framerate_; - // unsigned long framesize_; - }; - - typedef sequence Movie_Info; -}; diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.cpp deleted file mode 100644 index 77d9e0a5dd9..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// $Id$ - -#include "mpeg_server/Audio_Server.h" -#include "as.h" - - -int -Audio_Child_Process::init (int argc, - char **argv) -{ - if (TAO_AV_Child_Process_B::init (argc,argv) == -1) - return -1; - - int max_pkt_size = -INET_SOCKET_BUFFER_SIZE; - AUDIO_GLOBAL::instance ()->serviceSocket = -1; - - AUDIO_GLOBAL::instance ()->conn_tag = max_pkt_size; - - if (max_pkt_size < 0) - max_pkt_size = -max_pkt_size; - else if (max_pkt_size == 0) - max_pkt_size = 1024 * 1024; - - AUDIO_GLOBAL::instance ()->start_time = time(NULL); - - AUDIO_GLOBAL::instance ()->fbpara = (AudioFeedBackPara *)malloc(FBBUF_SIZE); - if (AUDIO_GLOBAL::instance ()->fbpara == NULL) { - perror("AS failed to allocate mem for fbpara"); - return (-1); - } - - AUDIO_GLOBAL::instance ()->databuf_size = max_pkt_size - sizeof(AudioPacket); - if (AUDIO_GLOBAL::instance ()->databuf_size > DATABUF_SIZE) - AUDIO_GLOBAL::instance ()->databuf_size = DATABUF_SIZE; - - AUDIO_GLOBAL::instance ()->pktbuf = (AudioPacket *)malloc(sizeof(AudioPacket) + - AUDIO_GLOBAL::instance ()->databuf_size); - if (AUDIO_GLOBAL::instance ()->pktbuf == NULL) { - perror("AS failed to allocate mem for pktbuf"); - return(-1); - } -} - -int -Audio_Child_Process::make_mediactrl (Audio_Control_i *& media_ctrl) -{ - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Video_Child_Process::make_mediactrl ()\n")); - media_ctrl = AUDIO_CONTROL_I::instance (); - return 0; -} - - -int -main (int argc,char **argv) -{ - Audio_Child_Process audio_child; - - - if (audio_child.init (argc,argv) == -1) - return 1; - if (audio_child.run () == -1) - return 2; - return 0; -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.h deleted file mode 100644 index bcaf6e8f20e..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/as.h +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id$ */ - -// ============================================================================ -// -// = LIBRARY -// as -// -// = FILENAME -// as.h -// -// = DESCRIPTION -// @@ Please add a synopsis of this file. -// -// = AUTHORS -// Sumedh Mungee (sumedh@cs.wustl.edu) -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (TAO_AV_AS_H) -#define TAO_AV_AS_H - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/Svc_Handler.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_CODgram.h" -#include "ace/Select_Reactor.h" - -#include "include/common.h" -#include "mpeg_server/server_proto.h" -#include "mpeg_shared/fileio.h" -#include "mpeg_shared/routine.h" -#include "mpeg_shared/com.h" -#include "mpeg_server/Audio_Control_i.h" -#include "orbsvcs/orbsvcs/Naming/Naming_Utils.h" - -#include "mpeg_server/Audio_Server.h" -#include "orbsvcs/AV/AVStreams_i.h" - -class Audio_Child_Process - :public TAO_AV_Child_Process_B -{ -public: - int init (int argc, - char **argv); - // init the Video Singleton. - - int make_mediactrl (Audio_Control_i *&media_ctrl); -}; - - -#endif /* TAO_AV_AS_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.cpp deleted file mode 100644 index dcb99819115..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.cpp +++ /dev/null @@ -1,655 +0,0 @@ -// $Id$ - -#include "augmented_server.h" -#include "ace/Process.h" - -int AV_Server::done_; -pid_t AV_Server::current_pid_ = -1; - -const char* AV_Audio_MMDevice::NUMBER_OF_CONNECTIONS = "Number_Of_Connections"; -const char* AV_Audio_MMDevice::MAX_CONNECTIONS = "Max_Connections"; -const char* AV_Audio_MMDevice::SERVER_NAME = "Server_Name"; - -AV_Audio_MMDevice:: -AV_Audio_MMDevice (TAO_AV_Endpoint_Process_Strategy *endpoint_strategy) - :TAO_MMDevice (endpoint_strategy), - connections_ (0), - max_connections_ (10) -{ -} - -AVStreams::StreamEndPoint_B_ptr -AV_Audio_MMDevice:: -create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Audio_MMDevice::create_B called \n")); - AVStreams::StreamEndPoint_B_ptr stream_ptr; - stream_ptr = TAO_MMDevice::create_B (the_requester, - the_vdev, - the_qos, - met_qos, - named_vdev, - the_spec, - env); - if (stream_ptr != 0) - this->connections_; - return stream_ptr; -} - -CORBA::ULong -AV_Audio_MMDevice::connections (void) const -{ - return this->connections_; -} - -void -AV_Audio_MMDevice:: -export_static_properties (TAO_Property_Exporter& prop_exporter) const -{ - CORBA::Any connections, max_connections, server_name; - - connections <<= (CORBA::ULong) this->connections_; - prop_exporter.add_static_property (NUMBER_OF_CONNECTIONS, connections); - - max_connections <<= (CORBA::ULong) this->max_connections_; - prop_exporter.add_static_property (MAX_CONNECTIONS, max_connections); - - char* hostname = ACE_OS::getenv ("HOST"); - server_name <<= hostname; - prop_exporter.add_static_property (SERVER_NAME, server_name); -} - -int -AV_Audio_MMDevice:: -define_properties (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset) const -{ - CORBA::ULong num_props = prop_seq.length (); - - if (num_props <= offset + 2) - prop_seq.length (offset + 3); - - prop_seq[offset].name = NUMBER_OF_CONNECTIONS; - prop_seq[offset].value_type = CORBA::TypeCode::_duplicate (CORBA::_tc_ulong); - prop_seq[offset].mode = CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY; - prop_seq[offset + 1].name = MAX_CONNECTIONS; - prop_seq[offset + 1].value_type = CORBA::TypeCode::_duplicate (CORBA::_tc_ulong); - prop_seq[offset + 1].mode = CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY; - prop_seq[offset + 2].name = SERVER_NAME; - prop_seq[offset + 2].value_type = CORBA::TypeCode::_duplicate (CORBA::_tc_string); - prop_seq[offset + 2].mode = CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY_READONLY; - - return 3; -} - -// AV_Server_Sig_Handler routines - -AV_Server_Sig_Handler::AV_Server_Sig_Handler (const AV_Server& av_server) - : av_server_ (av_server) -{ -} - -int -AV_Server_Sig_Handler::register_handler (void) -{ - // Assign the Sig_Handler a dummy I/O descriptor. Note that even - // though we open this file "Write Only" we still need to use the - // ACE_Event_Handler::NULL_MASK when registering this with the - // ACE_Reactor (see below). - this->handle_ = ACE_OS::open (ACE_DEV_NULL, O_WRONLY); - ACE_ASSERT (this->handle_ != -1); - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) sig_handler == %d\n",this->handle_)); - - // Register signal handler object. Note that NULL_MASK is used to - // keep the ACE_Reactor from calling us back on the "/dev/null" - // descriptor. - - if (TAO_ORB_Core_instance ()->reactor ()->register_handler - (this, ACE_Event_Handler::NULL_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "register_handler"), - -1); - - // handles these signals. - // this->sig_set.fill_set (); - this->sig_set.sig_add (SIGCHLD); - this->sig_set.sig_add (SIGBUS); - this->sig_set.sig_add (SIGINT); - this->sig_set.sig_add (SIGTERM); - - // Register the signal handler object to catch the signals. if - if (TAO_ORB_Core_instance ()->reactor ()->register_handler - (this->sig_set, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "register_handler"), - -1); - return 0; -} - -// Called by the ACE_Reactor to extract the fd. -ACE_HANDLE -AV_Server_Sig_Handler::get_handle (void) const -{ - return this->handle_; -} - -int -AV_Server_Sig_Handler::handle_input (ACE_HANDLE) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) handling asynchonrous input...\n")); - return 0; -} - -int -AV_Server_Sig_Handler::shutdown (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) closing down Sig_Handler...\n")); - return 0; -} - -// This method handles all the signals that are being caught by this -// object. - -int -AV_Server_Sig_Handler::handle_signal (int signum, siginfo_t *, ucontext_t *) -{ - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) received signal %S\n", signum)); - - switch (signum) - { - case SIGCHLD: - // Handle the death of child signal. - this->clear_child (SIGCHLD); - break; - case SIGBUS: - // Handle the Bus error signal - case SIGINT: - // Handle the interrupt signal - case SIGTERM: - // Handle the process termination signal. - this->int_handler (signum); - break; - default: - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %S: not handled, returning to program\n", signum)); - break; - } - return 0; -} - -// SIGCHLD handler -void -AV_Server_Sig_Handler::clear_child (int sig) -{ - int pid; - int status; - - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) AV_Server: Reaping the children\n")); - // reap the children - while ((pid = ACE_OS::waitpid (-1, - &status, - WNOHANG)) > 0) - { - if (pid == AV_Server::current_pid_) - { - cerr << "The child currently being waited for has died\n"; - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) The child currently being waited for has died.\n")); - AV_Server::done_ = 1; - } - - // decrement the count of number of active children - Mpeg_Global::session_num --; - - if (status == 0) - continue; - - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) AV_Server: child %d (status %d)\n", pid, status)); - } - return; -} - -int -AV_Server_Sig_Handler::remove_names (void) -{ - TAO_TRY - { - /* - CORBA::Object_var naming_obj = TAO_ORB_Core_instance ()->orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Unregister the video_mmdevice with the naming service. - - CosNaming::Name video_server_mmdevice_name (1); - video_server_mmdevice_name.length (1); - video_server_mmdevice_name [0].id = CORBA::string_dup ("Video_Server_MMDevice"); - - // Register the video control object with the naming server. - naming_context->unbind (video_server_mmdevice_name, - TAO_TRY_ENV); - // Unregister the audio_mmdevice with the naming service. - - CosNaming::Name audio_server_mmdevice_name (1); - audio_server_mmdevice_name.length (1); - audio_server_mmdevice_name [0].id = CORBA::string_dup ("Audio_Server_MMDevice"); - - // Register the audio control object with the naming server. - naming_context->unbind (audio_server_mmdevice_name, - TAO_TRY_ENV); - */ - this->av_server_.shutdown (); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("AV_Server_Sig_Handler::remove_names ()"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -// ctrl-c, Bus error, interrupt sig handler -void -AV_Server_Sig_Handler::int_handler (int sig) -{ - // unbind the names from the naming service. - - this->remove_names (); - TAO_ORB_Core_instance ()->orb ()->shutdown (); - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV server killed by signal %d\n", - sig)); -} - -AV_Server_Sig_Handler::~AV_Server_Sig_Handler (void) -{ - TAO_ORB_Core_instance ()->reactor ()->remove_handler (this->sig_set); -} - -// AV_Server routines - -const char* AV_Server::SERVICE_TYPE = "MMDevice"; - -// Default Constructor -AV_Server::AV_Server (void) - : video_rep_ ("movie_database.txt"), - signal_handler_ (*this), - video_process_strategy_ (&video_process_options_), - audio_process_strategy_ (&audio_process_options_) -{ - this->video_process_options_.command_line ("./vs -ORBport 0 -ORBobjrefstyle url"); - this->audio_process_options_.command_line ("./as -ORBport 0 -ORBobjrefstyle url"); -} - -// %% move to the destructor or sig handler -void -AV_Server::on_exit_routine (void) -{ - // %% what does the following do - if (Mpeg_Global::parentpid != ACE_OS::getpid ()) - { - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Process is exiting\n")); - return; - } - - // %% what does the following do - if (Mpeg_Global::live_audio > 1) - ExitLiveAudio (); - if (Mpeg_Global::live_video > 1) - ExitLiveVideo (); - // ComCloseServer(); - - // Remove the elements from the Naming service. -} - - -// Parses the command line arguments -int -AV_Server::parse_args (int argc, - char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "rd:s:vamh"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'r': // real time flag - Mpeg_Global::rttag = 1; - break; - case 'd': // clock drift in ppm - Mpeg_Global::drift_ppm = ACE_OS::atoi (get_opts.optarg); - break; - case 's':// limit on number of sessions - Mpeg_Global::session_limit = ACE_OS::atoi (get_opts.optarg); - break; - case 'v':// live video flag - Mpeg_Global::live_video = 1; - break; - case 'a':// live audio flag - Mpeg_Global::live_audio = 1; - break; - case '?': - case 'h':// help flag - ACE_DEBUG ((LM_DEBUG, - "Usage: %s [-r ] [-m]\n" - " [-d#int(clock drift in ppm)]\n" - " [-s#int(limit on number of sessions)]\n" - " [-v] [-a] [-?] [-h]", - argv [0])); - return -1; - } - return 0; -} - - -// Initializes the mpeg server -int -AV_Server::init (int argc, - char **argv, - CORBA::Environment& env) -{ - int result; - - // Initialize the orb_manager - this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - env); - TAO_CHECK_ENV_RETURN (env, - -1); - - CORBA::ORB_var orb = - this->orb_manager_.orb (); - - PortableServer::POA_var child_poa = - this->orb_manager_.child_poa (); - - result = this->parse_args (argc, argv); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error parsing arguments"), - -1); - - // Resolve the Naming service reference. - /* - CORBA::Object_var naming_obj = orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env,-1); - */ - - // Register the video mmdevice object with the ORB - ACE_NEW_RETURN (this->video_mmdevice_, - TAO_MMDevice (&this->video_process_strategy_), - -1); - - // create the video server mmdevice with the naming service pointer. - this->orb_manager_.activate_under_child_poa ("Video_Server_MMDevice", - this->video_mmdevice_, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - /* - // Register the video_mmdevice with the naming service. - CosNaming::Name video_server_mmdevice_name (1); - video_server_mmdevice_name.length (1); - video_server_mmdevice_name [0].id = CORBA::string_dup ("Video_Server_MMDevice"); - - // Register the video control object with the naming server. - this->naming_context_->bind (video_server_mmdevice_name, - this->video_mmdevice_->_this (env), - env); - - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (video_server_mmdevice_name, - this->video_mmdevice_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env,-1); - } - - */ - // Register the audio mmdevice object with the ORB - ACE_NEW_RETURN (this->audio_mmdevice_, - AV_Audio_MMDevice (&this->audio_process_strategy_), - -1); - - // create the audio server mmdevice with the naming service pointer. - this->orb_manager_.activate_under_child_poa ("Audio_Server_MMDevice", - this->audio_mmdevice_, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - /* - // Register the audio_mmdevice with the naming service. - - CosNaming::Name audio_server_mmdevice_name (1); - audio_server_mmdevice_name.length (1); - audio_server_mmdevice_name [0].id = CORBA::string_dup ("Audio_Server_MMDevice"); - - // Register the audio control object with the naming server. - this->naming_context_->bind (audio_server_mmdevice_name, - this->audio_mmdevice_->_this (env), - env); - - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (audio_server_mmdevice_name, - this->audio_mmdevice_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env,-1); - } - - */ - // Invoke this once, passing in an object for each trading service - // service type. - if (this->resolve_trader (env) != -1) - { - // Invoke this for each offer. - this->export_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - } - - // Register the various signal handlers with the reactor. - result = this->signal_handler_.register_handler (); - - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error registering signal handler"), - -1); - - ::atexit (on_exit_routine); - return 0; -} - -// Runs the mpeg server -int -AV_Server::run (CORBA::Environment& env){ - int result; - // Run the ORB event loop - this->orb_manager_.run (env); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV_Server::run () " - "came out of the (ORB) " - "event loop %p\n", - "run_event_loop")); - return 0; - -} - -void -AV_Server::export_properties (CORBA::Environment& _env) -{ - CORBA::Object_ptr object_ptr = this->audio_mmdevice_->_this (_env); - TAO_CHECK_ENV_RETURN_VOID (_env); - - CosPropertyService::PropertySet_ptr prop_set = - CosPropertyService::PropertySet::_narrow (object_ptr, _env); - TAO_CHECK_ENV_RETURN_VOID (_env); - - // Instantiate the property exporter helper class. - TAO_Property_Exporter prop_exporter (this->trader_, prop_set); - - // Add properties to server description. - this->audio_mmdevice_->export_static_properties (prop_exporter); - this->mach_props_.export_dynamic_properties (prop_exporter, this->dp_); - this->video_rep_.export_dynamic_properties (prop_exporter, this->dp_); - - this->offer_id_ = - prop_exporter.export (object_ptr, - (CosTrading::ServiceTypeName) SERVICE_TYPE, - _env); - TAO_CHECK_ENV_RETURN_VOID (_env); -} - -int -AV_Server::resolve_trader (CORBA::Environment& _env) -{ - if (this->trader_.ptr () == 0) - { - // Bootstrap to the Lookup interface. - ACE_DEBUG ((LM_ERROR, "Bootstrap to the Lookup interface.\n")); - CORBA::Object_var trading_obj = - this->orb_manager_.orb ()->resolve_initial_references ("TradingService"); - - if (CORBA::is_nil (trading_obj.in ())) - { - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to bootstrap to the Trading Service.\n")); - return -1; - } - - // Narrow the lookup interface. - ACE_DEBUG ((LM_DEBUG, "Narrowing the lookup interface.\n")); - this->trader_ = CosTrading::Lookup::_narrow (trading_obj.in (), _env); - TAO_CHECK_ENV_RETURN (_env, -1); - - CosTrading::TypeRepository_ptr obj = this->trader_->type_repos (_env); - CosTradingRepos::ServiceTypeRepository_var str = - CosTradingRepos::ServiceTypeRepository::_narrow (obj, _env); - TAO_CHECK_ENV_RETURN (_env, -1); - - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, "Checking for the existence of type.\n")); - CosTradingRepos::ServiceTypeRepository::TypeStruct_var - type_struct = str->describe_type (SERVICE_TYPE, TAO_TRY_ENV); - TAO_CHECK_ENV; - return 0; - } - TAO_CATCH (CosTrading::UnknownServiceType, excp) - { - // Export the service types, filling in the service type - // information first. - CosTradingRepos::ServiceTypeRepository::PropStructSeq prop_seq (12); - CosTradingRepos::ServiceTypeRepository::ServiceTypeNameSeq type_name_seq; - - // Add property definitions to the service type. - CORBA::ULong offset = this->audio_mmdevice_->define_properties (prop_seq); - offset += this->mach_props_.define_properties (prop_seq, offset); - this->video_rep_.define_properties (prop_seq, offset); - - ACE_DEBUG ((LM_DEBUG, "Attempting add_type.\n")); - str->add_type (SERVICE_TYPE, - this->audio_mmdevice_->_interface_repository_id (), - prop_seq, - type_name_seq, - _env); - TAO_CHECK_ENV_RETURN (_env, -1); - return 0; - } - TAO_CATCHANY - { - ACE_DEBUG ((LM_DEBUG, "Error in describe_type.\n")); - TAO_RETHROW_RETURN (-1); - } - TAO_ENDTRY; - } -} - -AV_Server::~AV_Server (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV_Server: Removing handlers from the Reactor\n")); - - if (this->video_mmdevice_ != 0) - delete this->video_mmdevice_; - if (this->audio_mmdevice_ != 0) - delete this->audio_mmdevice_; - -} - -void -AV_Server::shutdown (void) const -{ - TAO_TRY - { - if (this->trader_.ptr () != 0) - { - CosTrading::Register_var reg = this->trader_->register_if (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Withdrawing offer...\n")); - reg->withdraw (this->offer_id_.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - ACE_DEBUG ((LM_DEBUG, "Failed to withdraw offer.")); - } - TAO_ENDTRY; -} - -int -main (int argc, char **argv) -{ - TAO_TRY - { - int return_value = - AV_SERVER::instance ()->init (argc, argv, TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (return_value != -1) - { - AV_SERVER::instance ()->run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Exception"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - - - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.h deleted file mode 100644 index 492b7a6ad46..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/augmented_server.h +++ /dev/null @@ -1,240 +0,0 @@ -/* -*- c++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// server -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// This defines the Audio/Video Server using TAO'S Audio/Video streaming service. -// -// = AUTHORS -// Sumedh Mungee (sumedh@cs.wustl.edu) -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (TAO_AV_SERVER_H) -#define TAO_AV_SERVER_H - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/Svc_Handler.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_CODgram.h" -#include "ace/Select_Reactor.h" - -#include "include/common.h" -#include "mpeg_server/server_proto.h" -#include "mpeg_shared/fileio.h" -#include "mpeg_shared/routine.h" -#include "mpeg_shared/com.h" -#include "mpeg_server/Video_Control_i.h" -#include "orbsvcs/orbsvcs/Naming/Naming_Utils.h" - -#if defined (NATIVE_ATM) -#include "atmcom.h" -#endif /* NATIVE_ATM */ - -#include "mpeg_server/Video_Server.h" -#include "mpeg_server/Audio_Server.h" -#include "orbsvcs/AV/AVStreams_i.h" -#include "orbsvcs/AV/Endpoint_Strategy.h" -#include "vs.h" - -#include "Property_Exporter.h" -#include "Machine_Properties.h" -#include "Video_Repository.h" - -class AV_Audio_MMDevice - : public TAO_MMDevice, - public TAO_Exportable -{ -public: - - static const char* NUMBER_OF_CONNECTIONS; - static const char* MAX_CONNECTIONS; - static const char* SERVER_NAME; - - AV_Audio_MMDevice (TAO_AV_Endpoint_Process_Strategy *endpoint_strategy); - // Default constructor - - virtual AVStreams::StreamEndPoint_B_ptr - create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by StreamCtrl to create a "B" type streamandpoint and vdev - - CORBA::ULong connections (void) const; - // Retrieve the number of connections. - - virtual void - export_static_properties (TAO_Property_Exporter& prop_exporter) const; - - virtual int define_properties - (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq, - CORBA::ULong offset = 0) const; - -private: - - CORBA::ULong connections_; - // Number of active connections - - CORBA::ULong max_connections_; -}; - -class AV_Server; - -class AV_Server_Sig_Handler - : public virtual ACE_Event_Handler -{ -public: - AV_Server_Sig_Handler (const AV_Server& av_server); - - virtual ACE_HANDLE get_handle (void) const; - - int register_handler (void); - // this will register this sig_handler - // with the reactor for SIGCHLD,SIGTERM,SIGINT - - virtual int shutdown (ACE_HANDLE, - ACE_Reactor_Mask); - - virtual int handle_input (ACE_HANDLE); - // handle input on the dummy handle. - - virtual int handle_signal (ACE_HANDLE signum, - siginfo_t * = 0, - ucontext_t* = 0); - // handles the SIGCHLD,SIGTERM,SIGINT for the parent process i.e - // the main thread.. - - void int_handler (int sig); - // Signal handler function for SIGTERM,SIGBUS,SIGINT - - int remove_names (void); - // Removes the audio server mmdevice and video server mmdevice from the naming service. - - void clear_child (int sig); - // Signal handler function for SIGCHLD - - ~AV_Server_Sig_Handler (void); - // Destructor - -private: - const AV_Server& av_server_; - - ACE_HANDLE handle_; - // dummy handle for the sig handler. - ACE_Sig_Set sig_set; -}; - -class AV_Server -{ - // = TITLE - // Defines a class that abstracts the functionality of a - // video and audio server. - // - // = DESCRIPTION - // Using the class is as simple as calling init () first and then - // run. It uses an acceptor with the default ACE_Reactor::instance (). -public: - - static const char* SERVICE_TYPE; - - AV_Server (void); - // constructor - - int init (int argc, - char **argv, - CORBA::Environment& env); - // Initialize the AV_Server - - int run (CORBA::Environment& env); - // Run the AV_Server - - void shutdown (void) const; - - static void on_exit_routine (void); - // Routine called when this process exits. - - static pid_t current_pid_; - // %% the pid the server is currently waiting on - - static int done_; - // %% the done flag, set by the signal handler - - ~AV_Server (void); - // Destructor - //private: -private: - int parse_args (int argcs, - char **argv); - // Parse the arguments. - - void export_properties (CORBA::Environment& _env); - - int resolve_trader (CORBA::Environment& _env); - - TAO_ORB_Manager orb_manager_; - // the TAO ORB manager. - - TAO_Machine_Properties mach_props_; - // Dynamic properties concerning the server's performance. - - TAO_Video_Repository video_rep_; - // Dynamic property that assesses the contents of the sever's video - // repository. - - TAO_DP_Dispatcher dp_; - // Demultiplexes and dispatches incoming dynamic property callbacks - // to their respective handlers. - - CosTrading::Lookup_var trader_; - // Reference to the Lookup interface of the trading service. - - CosTrading::OfferId_var offer_id_; - // Server offer id. - - CosNaming::NamingContext_var naming_context_; - // The root naming context of the naming service - - AV_Server_Sig_Handler signal_handler_; - // Signal handler for SIGCHLD,SIGINT,SIGTERM,SIGBUS - - ACE_INET_Addr server_control_addr_; - // Control (TCP) Address of this server. - - ACE_Process_Options video_process_options_; - // The process options for the process to be spawned by the process strategy - - TAO_AV_Endpoint_Process_Strategy_B video_process_strategy_; - // The proces strategy for the video. - - TAO_MMDevice *video_mmdevice_; - // The video server multimedia device - - ACE_Process_Options audio_process_options_; - // The process options for the process to be spawned by the process strategy - - TAO_AV_Endpoint_Process_Strategy_B audio_process_strategy_; - // The proces strategy for the audio. - - // TAO_MMDevice *audio_mmdevice_; - AV_Audio_MMDevice *audio_mmdevice_; - // The audio server multimedia device - -}; - -typedef ACE_Singleton AV_SERVER; - -#endif /* TAO_AV_SERVER_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp deleted file mode 100644 index eced919b58a..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.cpp +++ /dev/null @@ -1,474 +0,0 @@ -// $Id$ - -#include "server.h" -#include "ace/Process.h" - -int AV_Server::done_; -pid_t AV_Server::current_pid_ = -1; - - -Audio_MMDevice::Audio_MMDevice (TAO_AV_Endpoint_Process_Strategy *endpoint_strategy) - :TAO_MMDevice (endpoint_strategy), - connections_ (0) -{ -} - -AVStreams::StreamEndPoint_B_ptr -Audio_MMDevice::create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Audio_MMDevice::create_B called \n")); - AVStreams::StreamEndPoint_B_ptr stream_ptr; - stream_ptr = TAO_MMDevice::create_B (the_requester, - the_vdev, - the_qos, - met_qos, - named_vdev, - the_spec, - env); - if (stream_ptr != 0) - this->connections_; - return stream_ptr; -} - -int -Audio_MMDevice::connections (void) -{ - return this->connections_; -} - -// AV_Server_Sig_Handler routines - -AV_Server_Sig_Handler::AV_Server_Sig_Handler (void) -{ -} - -int -AV_Server_Sig_Handler::register_handler (void) -{ - // Assign the Sig_Handler a dummy I/O descriptor. Note that even - // though we open this file "Write Only" we still need to use the - // ACE_Event_Handler::NULL_MASK when registering this with the - // ACE_Reactor (see below). - this->handle_ = ACE_OS::open (ACE_DEV_NULL, O_WRONLY); - ACE_ASSERT (this->handle_ != -1); - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) sig_handler == %d\n",this->handle_)); - - // Register signal handler object. Note that NULL_MASK is used to - // keep the ACE_Reactor from calling us back on the "/dev/null" - // descriptor. - - if (TAO_ORB_Core_instance ()->reactor ()->register_handler - (this, ACE_Event_Handler::NULL_MASK) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "register_handler"), - -1); - - // handles these signals. - // this->sig_set.fill_set (); - this->sig_set.sig_add (SIGCHLD); - this->sig_set.sig_add (SIGBUS); - this->sig_set.sig_add (SIGINT); - this->sig_set.sig_add (SIGTERM); - - // Register the signal handler object to catch the signals. if - if (TAO_ORB_Core_instance ()->reactor ()->register_handler - (this->sig_set, this) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "register_handler"), - -1); - return 0; -} - -// Called by the ACE_Reactor to extract the fd. -ACE_HANDLE -AV_Server_Sig_Handler::get_handle (void) const -{ - return this->handle_; -} - -int -AV_Server_Sig_Handler::handle_input (ACE_HANDLE) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) handling asynchonrous input...\n")); - return 0; -} - -int -AV_Server_Sig_Handler::shutdown (ACE_HANDLE, ACE_Reactor_Mask) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) closing down Sig_Handler...\n")); - return 0; -} - -// This method handles all the signals that are being caught by this -// object. - -int -AV_Server_Sig_Handler::handle_signal (int signum, siginfo_t *, ucontext_t *) -{ - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) received signal %S\n", signum)); - - switch (signum) - { - case SIGCHLD: - // Handle the death of child signal. - this->clear_child (SIGCHLD); - break; - case SIGBUS: - // Handle the Bus error signal - case SIGINT: - // Handle the interrupt signal - case SIGTERM: - // Handle the process termination signal. - this->int_handler (signum); - break; - default: - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) %S: not handled, returning to program\n", signum)); - break; - } - return 0; -} - -// SIGCHLD handler -void -AV_Server_Sig_Handler::clear_child (int sig) -{ - int pid; - int status; - - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) AV_Server: Reaping the children\n")); - // reap the children - while ((pid = ACE_OS::waitpid (-1, - &status, - WNOHANG)) > 0) - { - if (pid == AV_Server::current_pid_) - { - cerr << "The child currently being waited for has died\n"; - // ACE_DEBUG ((LM_DEBUG,"(%P|%t) The child currently being waited for has died.\n")); - AV_Server::done_ = 1; - } - - // decrement the count of number of active children - Mpeg_Global::session_num --; - - if (status == 0) - continue; - - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) AV_Server: child %d (status %d)\n", pid, status)); - } - return; -} - -int -AV_Server_Sig_Handler::remove_names (void) -{ - TAO_TRY - { - CORBA::Object_var naming_obj = TAO_ORB_Core_instance ()->orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Unregister the video_mmdevice with the naming service. - - CosNaming::Name video_server_mmdevice_name (1); - video_server_mmdevice_name.length (1); - video_server_mmdevice_name [0].id = CORBA::string_dup ("Video_Server_MMDevice"); - - // Register the video control object with the naming server. - naming_context->unbind (video_server_mmdevice_name, - TAO_TRY_ENV); - // Unregister the audio_mmdevice with the naming service. - - CosNaming::Name audio_server_mmdevice_name (1); - audio_server_mmdevice_name.length (1); - audio_server_mmdevice_name [0].id = CORBA::string_dup ("Audio_Server_MMDevice"); - - // Register the audio control object with the naming server. - naming_context->unbind (audio_server_mmdevice_name, - TAO_TRY_ENV); - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("AV_Server_Sig_Handler::remove_names ()"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -// ctrl-c, Bus error, interrupt sig handler -void -AV_Server_Sig_Handler::int_handler (int sig) -{ - // unbind the names from the naming service. - - this->remove_names (); - TAO_ORB_Core_instance ()->orb ()->shutdown (); - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV server killed by signal %d\n", - sig)); -} - -AV_Server_Sig_Handler::~AV_Server_Sig_Handler (void) -{ - TAO_ORB_Core_instance ()->reactor ()->remove_handler (this->sig_set); -} - -// AV_Server routines - -// Default Constructor -AV_Server::AV_Server (void) - :video_process_strategy_ (&video_process_options_), - audio_process_strategy_ (&audio_process_options_) -{ - this->video_process_options_.command_line ("./vs -ORBport 0 -ORBobjrefstyle url"); - this->audio_process_options_.command_line ("./as -ORBport 0 -ORBobjrefstyle url"); -} - -// %% move to the destructor or sig handler -void -AV_Server::on_exit_routine (void) -{ - // %% what does the following do - if (Mpeg_Global::parentpid != ACE_OS::getpid ()) - { - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Process is exiting\n")); - return; - } - - // %% what does the following do - if (Mpeg_Global::live_audio > 1) - ExitLiveAudio (); - if (Mpeg_Global::live_video > 1) - ExitLiveVideo (); - // ComCloseServer(); - - // Remove the elements from the Naming service. -} - - -// Parses the command line arguments -int -AV_Server::parse_args (int argc, - char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "rd:s:vamh"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'r': // real time flag - Mpeg_Global::rttag = 1; - break; - case 'd': // clock drift in ppm - Mpeg_Global::drift_ppm = ACE_OS::atoi (get_opts.optarg); - break; - case 's':// limit on number of sessions - Mpeg_Global::session_limit = ACE_OS::atoi (get_opts.optarg); - break; - case 'v':// live video flag - Mpeg_Global::live_video = 1; - break; - case 'a':// live audio flag - Mpeg_Global::live_audio = 1; - break; - case '?': - case 'h':// help flag - ACE_DEBUG ((LM_DEBUG, - "Usage: %s [-r ] [-m]\n" - " [-d#int(clock drift in ppm)]\n" - " [-s#int(limit on number of sessions)]\n" - " [-v] [-a] [-?] [-h]", - argv [0])); - return -1; - } - return 0; -} - - -// Initializes the mpeg server -int -AV_Server::init (int argc, - char **argv, - CORBA::Environment& env) -{ - int result; - - // Initialize the orb_manager - this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - env); - TAO_CHECK_ENV_RETURN (env, - -1); - - CORBA::ORB_var orb = - this->orb_manager_.orb (); - - PortableServer::POA_var child_poa = - this->orb_manager_.child_poa (); - - result = this->parse_args (argc, argv); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error parsing arguments"), - -1); - // Resolve the Naming service reference. - - CORBA::Object_var naming_obj = orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env,-1); - - // Register the video mmdevice object with the ORB - ACE_NEW_RETURN (this->video_mmdevice_, - TAO_MMDevice (&this->video_process_strategy_), - -1); - - // create the video server mmdevice with the naming service pointer. - this->orb_manager_.activate_under_child_poa ("Video_Server_MMDevice", - this->video_mmdevice_, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - // Register the video_mmdevice with the naming service. - CosNaming::Name video_server_mmdevice_name (1); - video_server_mmdevice_name.length (1); - video_server_mmdevice_name [0].id = CORBA::string_dup ("Video_Server_MMDevice"); - - // Register the video control object with the naming server. - this->naming_context_->bind (video_server_mmdevice_name, - this->video_mmdevice_->_this (env), - env); - - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (video_server_mmdevice_name, - this->video_mmdevice_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env,-1); - } - - - // Register the audio mmdevice object with the ORB - ACE_NEW_RETURN (this->audio_mmdevice_, - Audio_MMDevice (&this->audio_process_strategy_), - -1); - - // create the audio server mmdevice with the naming service pointer. - this->orb_manager_.activate_under_child_poa ("Audio_Server_MMDevice", - this->audio_mmdevice_, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - // Register the audio_mmdevice with the naming service. - - CosNaming::Name audio_server_mmdevice_name (1); - audio_server_mmdevice_name.length (1); - audio_server_mmdevice_name [0].id = CORBA::string_dup ("Audio_Server_MMDevice"); - - // Register the audio control object with the naming server. - this->naming_context_->bind (audio_server_mmdevice_name, - this->audio_mmdevice_->_this (env), - env); - - if (env.exception () != 0) - { - env.clear (); - this->naming_context_->rebind (audio_server_mmdevice_name, - this->audio_mmdevice_->_this (env), - env); - TAO_CHECK_ENV_RETURN (env,-1); - } - - - - // Register the various signal handlers with the reactor. - result = this->signal_handler_.register_handler (); - - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Error registering signal handler"), - -1); - - ::atexit (on_exit_routine); - return 0; -} - -// Runs the mpeg server -int -AV_Server::run (CORBA::Environment& env){ - int result; - // Run the ORB event loop - this->orb_manager_.run (env); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV_Server::run () " - "came out of the (ORB) " - "event loop %p\n", - "run_event_loop")); - return 0; - -} - -AV_Server::~AV_Server (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) AV_Server: Removing handlers from the Reactor\n")); - - if (this->video_mmdevice_ != 0) - delete this->video_mmdevice_; - if (this->audio_mmdevice_ != 0) - delete this->audio_mmdevice_; - -} - -int -main (int argc, char **argv) -{ - TAO_TRY - { - if (AV_SERVER::instance ()->init (argc, argv, TAO_TRY_ENV) == -1) - return 1; - TAO_CHECK_ENV; - AV_SERVER::instance ()->run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Exception"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - - - diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h deleted file mode 100644 index 8b061caf18e..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/server.h +++ /dev/null @@ -1,187 +0,0 @@ -/* -*- c++ -*- */ -/* $Id$ */ - -// ============================================================================ -// -// = LIBRARY -// server -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// This defines the Audio/Video Server using TAO'S Audio/Video streaming service. -// -// = AUTHORS -// Sumedh Mungee (sumedh@cs.wustl.edu) -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (TAO_AV_SERVER_H) -#define TAO_AV_SERVER_H - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/Svc_Handler.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_CODgram.h" -#include "ace/Select_Reactor.h" - -#include "include/common.h" -#include "mpeg_server/server_proto.h" -#include "mpeg_shared/fileio.h" -#include "mpeg_shared/routine.h" -#include "mpeg_shared/com.h" -#include "mpeg_server/Video_Control_i.h" -#include "orbsvcs/orbsvcs/Naming/Naming_Utils.h" - -#if defined (NATIVE_ATM) -#include "atmcom.h" -#endif /* NATIVE_ATM */ - -#include "mpeg_server/Video_Server.h" -#include "mpeg_server/Audio_Server.h" -#include "orbsvcs/AV/AVStreams_i.h" -#include "orbsvcs/AV/Endpoint_Strategy.h" -#include "vs.h" - -class Audio_MMDevice - :public TAO_MMDevice -{ -public: - Audio_MMDevice (TAO_AV_Endpoint_Process_Strategy *endpoint_strategy_); - // Default constructor - - virtual AVStreams::StreamEndPoint_B_ptr create_B (AVStreams::StreamCtrl_ptr the_requester, - AVStreams::VDev_out the_vdev, - AVStreams::streamQoS &the_qos, - CORBA::Boolean_out met_qos, - char *&named_vdev, - const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Called by StreamCtrl to create a "B" type streamandpoint and vdev - - int connections (void); -private: - int connections_; - // Number of active connections -}; - -class AV_Server_Sig_Handler - : public virtual ACE_Event_Handler -{ -public: - AV_Server_Sig_Handler (void); - - virtual ACE_HANDLE get_handle (void) const; - - int register_handler (void); - // this will register this sig_handler - // with the reactor for SIGCHLD,SIGTERM,SIGINT - - virtual int shutdown (ACE_HANDLE, - ACE_Reactor_Mask); - - virtual int handle_input (ACE_HANDLE); - // handle input on the dummy handle. - - virtual int handle_signal (ACE_HANDLE signum, - siginfo_t * = 0, - ucontext_t* = 0); - // handles the SIGCHLD,SIGTERM,SIGINT for the parent process i.e - // the main thread.. - - void int_handler (int sig); - // Signal handler function for SIGTERM,SIGBUS,SIGINT - - int remove_names (void); - // Removes the audio server mmdevice and video server mmdevice from the naming service. - - void clear_child (int sig); - // Signal handler function for SIGCHLD - - ~AV_Server_Sig_Handler (void); - // Destructor - -private: - ACE_HANDLE handle_; - // dummy handle for the sig handler. - ACE_Sig_Set sig_set; -}; - -class AV_Server -{ - // = TITLE - // Defines a class that abstracts the functionality of a - // video and audio server. - // - // = DESCRIPTION - // Using the class is as simple as calling init () first and then - // run. It uses an acceptor with the default ACE_Reactor::instance (). -public: - AV_Server (void); - // constructor - - int init (int argc, - char **argv, - CORBA::Environment& env); - // Initialize the AV_Server - - int run (CORBA::Environment& env); - // Run the AV_Server - - static void on_exit_routine (void); - // Routine called when this process exits. - - static pid_t current_pid_; - // %% the pid the server is currently waiting on - - static int done_; - // %% the done flag, set by the signal handler - - ~AV_Server (void); - // Destructor - //private: -private: - int parse_args (int argcs, - char **argv); - // Parse the arguments. - - TAO_ORB_Manager orb_manager_; - // the TAO ORB manager. - - CosNaming::NamingContext_var naming_context_; - // The root naming context of the naming service - - AV_Server_Sig_Handler signal_handler_; - // Signal handler for SIGCHLD,SIGINT,SIGTERM,SIGBUS - - ACE_INET_Addr server_control_addr_; - // Control (TCP) Address of this server. - - ACE_Process_Options video_process_options_; - // The process options for the process to be spawned by the process strategy - - TAO_AV_Endpoint_Process_Strategy_B video_process_strategy_; - // The proces strategy for the video. - - TAO_MMDevice *video_mmdevice_; - // The video server multimedia device - - ACE_Process_Options audio_process_options_; - // The process options for the process to be spawned by the process strategy - - TAO_AV_Endpoint_Process_Strategy_B audio_process_strategy_; - // The proces strategy for the audio. - - // TAO_MMDevice *audio_mmdevice_; - Audio_MMDevice *audio_mmdevice_; - // The audio server multimedia device - -}; - -typedef ACE_Singleton AV_SERVER; - -#endif /* TAO_AV_SERVER_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/svc.conf b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/svc.conf deleted file mode 100644 index 0dc3a36726b..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/svc.conf +++ /dev/null @@ -1,50 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -###dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vcrs.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vcrs.cpp deleted file mode 100644 index fd232eb1a62..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vcrs.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/* $Id$ */ -/* Copyright (c) 1995 Oregon Graduate Institute of Science and Technology - * P.O.Box 91000-1000, Portland, OR 97291, USA; - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, 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 O.G.I. not be used in advertising or - * publicity pertaining to distribution of the software without specific, - * written prior permission. O.G.I. makes no representations about the - * suitability of this software for any purpose. It is provided "as is" - * without express or implied warranty. - * - * O.G.I. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING - * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL - * O.G.I. 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. - * - * Author: Shanwei Cen - * Department of Computer Science and Engineering - * email: scen@cse.ogi.edu - */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include "../include/common.h" -#include "../mpeg_shared/com.h" -#include "../mpeg_shared/routine.h" -#include "../mpeg_server/proto.h" - -#define SESSION_NUM 4 - -static int parentpid = -1; - -static int listenSocketIn = -1; -static int listenSocketUn = -1; - -static struct linger linger = {1,1}; - -static int live_audio = 0, live_video = 0; /* 0 - no, 1 - to open, 2 - opened */ - -int drift_ppm = 0; /* clock drift in ppm */ - -int session_limit = SESSION_NUM; -int session_num = 0; - -static void int_handler(int sig) -{ - /* - fprintf(stderr, "process %d killed by sig %d\n", getpid(), sig); - */ - exit(0); -} - -static void on_exit_routine(void) -{ - if (parentpid != getpid()) { - /* - fprintf(stderr, "process %d exiting...\n", getpid()); - */ - return; - } - /* - fprintf(stderr, "deamon exiting . . .\n"); - */ - if (live_audio > 1) ExitLiveAudio(); - if (live_video > 1) ExitLiveVideo(); - ComCloseServer(); -} - -static void clear_child(int sig) -{ - int pid; - int status; - - while ((pid = waitpid(-1, &status, WNOHANG)) > 0) - { - session_num --; - - if (status == 0) { - continue; - } - fprintf(stderr, "VCRS: child %d (status %d) ", pid, status); - if (WIFEXITED(status)) { - fprintf(stderr, "exited with status %d\n", WEXITSTATUS(status)); - } - else if (WIFSIGNALED(status)) { -#if defined(_HPUX_SOURCE) || defined(__svr4__) || defined(IRIX) - fprintf(stderr, "terminated at signal %d%s.\n", WTERMSIG(status), - WCOREDUMP(status) ? ", core dumped" : ""); -#else - fprintf(stderr, "terminated at signal %d.\n", WTERMSIG(status)); -#endif - } - else if (WIFSTOPPED(status)) { - fprintf(stderr, "stopped at signal %d\n", WSTOPSIG(status)); - } - - } -} - -main(int argc, char *argv[]) -{ - int i, rttag = 0; - int addrlen; - - for (i = 1; i < argc; i++) { - if (!strcmp(argv[i], "-rt")) { - rttag = 1; - } - else if (!strcmp(argv[i], "-nrt")) { - rttag = 0; - } - else if (!strncmp(argv[i], "-d", 2)) { - sscanf(&argv[i][2], "%d", &drift_ppm); - } - else if (!strncmp(argv[i], "-s", 2)) { - sscanf(&argv[i][2], "%d", &session_limit); - if (session_limit < 1) - session_limit = SESSION_NUM; - } - else if (!strcmp(argv[i], "-lv")) { - live_video = 1; - } - else if (!strcmp(argv[i], "-la")) { - live_audio = 1; - } - else if (!strcmp(argv[i], "-rm")) { - unlink(VCR_UNIX_PORT); - } - else if (!strncmp(argv[i], "-he", 3)) { - fprintf(stderr, "Usage: %s [-rt] [-nrt] [-rm]\n", argv[0]); - fprintf(stderr, " [-d#int(clock drift in ppm)]\n"); - fprintf(stderr, " [-s#int(limit on number of sessions)]\n"); - exit(1); - } - } - if (drift_ppm) { - fprintf(stderr, "Clock set to drift at %d ppm (positive is faster and neg. slower)\n", - drift_ppm); - } - - setsignal(SIGCHLD, clear_child); - setsignal(SIGPIPE, SIG_IGN); - setsignal(SIGBUS, int_handler); - setsignal(SIGINT, int_handler); - setsignal(SIGTERM, int_handler); - setsignal(SIGALRM, SIG_IGN); - - parentpid = getpid(); - - atexit(on_exit_routine); - - if (live_audio) { - if (InitLiveAudio(argc, argv) == -1) - live_audio = 0; - else - live_audio = 2; - } - - if (live_video) { - if (InitLiveVideo(argc, argv) == -1) - live_video = 0; - else - live_video = 2; - } - - ComInitServer(VCR_TCP_PORT, VCR_UNIX_PORT, VCR_ATM_PORT); - - /* - setpgrp(); - */ - { - char buf[100]; - sprintf(buf, "%s%s", LOG_DIR, "vcrsSession.log"); - if (freopen(buf, "a", stdout) == NULL) { - freopen("/dev/null", "w", stdout); - } - } - - for (;;) - { - int val; - unsigned char cmd; - int serverpid = -1; - int cfd, dfd; - int max_pkt_size; - - if (ComGetConnPair(&cfd, &dfd, &max_pkt_size) == -1) continue; - - if ((serverpid = fork()) == -1) - { - perror("VCRS error on creating service process"); - exit(1); - } - session_num ++; - if (serverpid > 0) /* parent process for forking servers */ - { - ComCloseFd(cfd); - ComCloseFd(dfd); - continue; - } - else - { - if (session_num > session_limit) { - time_t t; - char *buf; - t = time(NULL); - buf = ctime(&t); - buf[strlen(buf) - 1] = 0; - fprintf(stderr, "VCRS: %s, session_limit %d, session_number %d\n", - buf, session_limit, session_num); - } - - if ((val = read(cfd, &cmd, 1)) < 0) - { - perror("VCRS fails to read command from service socket"); - exit(1); - } - if (val == 0) { - fprintf(stderr, "Remote client has closed connection.\n"); - ComCloseConn(cfd); - ComCloseConn(dfd); - /* continue; -- I don't know why I wrote this line? scen 5-12-96 */ - exit(0); - } - ComCloseListen(); - if (cmd == CmdINITvideo) - { - /* - fprintf(stderr, "Server forked a VideoServer process.\n"); - */ - if (live_audio) LeaveLiveAudio(); - VideoServer(cfd, dfd, rttag, max_pkt_size); - fprintf(stderr, "Weird: video server returned.\n"); - } - else - { - /* - fprintf(stderr, "Server forked a AudioServer process.\n"); - */ - if (live_video) LeaveLiveVideo(); - AudioServer(cfd, dfd, rttag, max_pkt_size); - fprintf(stderr, "Weird: audio server returned.\n"); - } - exit(1); - } - } -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.cpp b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.cpp deleted file mode 100644 index 74b6b8f3393..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// $Id$ - -#include "mpeg_server/Video_Server.h" -#include "vs.h" - -int -Video_Child_Process::init (int argc, - char **argv) -{ - if (TAO_AV_Child_Process_B::init (argc,argv) == -1) - return -1; - - int max_pkt_size = -INET_SOCKET_BUFFER_SIZE; - VIDEO_SINGLETON::instance ()->serviceSocket = -1; - - VIDEO_SINGLETON::instance ()->conn_tag = max_pkt_size; - - if (max_pkt_size > 0) - VIDEO_SINGLETON::instance ()->msgsize - = max_pkt_size; - else - if (max_pkt_size < 0) - VIDEO_SINGLETON::instance ()->msgsize - = - max_pkt_size; - else - VIDEO_SINGLETON::instance ()->msgsize - = 1024 * 1024; - /* - SFprintf(stderr, "VS VIDEO_SINGLETON::instance ()->msgsize = %d\n", VIDEO_SINGLETON::instance ()->msgsize); - */ - VIDEO_SINGLETON::instance ()->msgsize -= sizeof(VideoMessage); - - VIDEO_SINGLETON::instance ()->start_time = time(NULL); - - VIDEO_SINGLETON::instance ()->lastRef [0] - = VIDEO_SINGLETON::instance ()->lastRef[1] - = -1; - - VIDEO_SINGLETON::instance ()->lastRefPtr = 0; - - -} -int -Video_Child_Process::make_mediactrl (Video_Control_i *& media_ctrl) -{ - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Video_Child_Process::make_mediactrl ()\n")); - media_ctrl = VIDEO_CONTROL_I::instance (); - return 0; -} - -int -main (int argc, char **argv) -{ - Video_Child_Process video_child; - - if (video_child.init (argc,argv) == -1) - return 1; - if (video_child.run () == -1) - return 2; - - return 0; -} diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.h b/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.h deleted file mode 100644 index 21060b26626..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/source/server/vs.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- c++ -*- */ -/* $Id$ */ - -// ============================================================================ -// -// = LIBRARY -// vs -// -// = FILENAME -// vs.h -// -// = DESCRIPTION -// @@ Please add a synopsis of this file. -// -// = AUTHORS -// Sumedh Mungee (sumedh@cs.wustl.edu) -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (TAO_AV_VS_H) -#define TAO_AV_VS_H - -#include "ace/Get_Opt.h" -#include "ace/Acceptor.h" -#include "ace/Svc_Handler.h" -#include "ace/SOCK_Acceptor.h" -#include "ace/INET_Addr.h" -#include "ace/SOCK_CODgram.h" -#include "ace/Select_Reactor.h" - -#include "include/common.h" -#include "mpeg_server/server_proto.h" -#include "mpeg_shared/fileio.h" -#include "mpeg_shared/routine.h" -#include "mpeg_shared/com.h" -#include "mpeg_server/Video_Control_i.h" -#include "orbsvcs/orbsvcs/Naming/Naming_Utils.h" - -#include "mpeg_server/Video_Server.h" -#include "orbsvcs/AV/AVStreams_i.h" - -class Video_Child_Process - :public TAO_AV_Child_Process_B -{ -public: - int init (int argc, - char **argv); - // init the Video Singleton. - - int make_mediactrl (Video_Control_i *&media_ctrl); -}; - - -#endif /* TAO_AV_VS_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 b/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 deleted file mode 100644 index 24e9688f674..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/vcr.1 +++ /dev/null @@ -1,610 +0,0 @@ -.\" Copyright (c) 1995 Oregon Graduate Institute -.TH vcr 1 "November 1995" "MPEG video audio player" - -.SH NAME -.B vcr vcrs -\- Distributed, real-time synchronized video audio player, version 2.0 -.SH SYNOPSIS - -.B vcrs -[ -.B \-rt -] [ -.B \-rm -] [ -.B \-s\fIsession_limit\fP -] [ -.B \-help -] - -.B vcr -[ -.B\-rt -] [ -.B \-shmem -] [ -.B \-rmsem -] -.ti +5n -[ -.BR \-dither " ordered\||\|ordered2\||\|fs4\||\|fs2\||\|fs2fast\||\|hybrid\||\| -.if n .ti +5n - hybrid2\||\|2x2\||\|gray\||\|color\||\|mono\||\|threshold -] -.if n .ti +5n -[ -.I X-window options -] -.if n .ti +5n -[ -.BR \-v " \fI[hostname:]video-filename\fP" -] -.if n .ti +5n -[ -.BR \-a " \fI[hostname:]audio-filename\fP" -] -.if n .ti +5n -[ -.BR \-p " \fImovie-file-name\fP" -] -.if n .ti +5n -[ -.BR \-l " \fImovie-list-file-name\fP" -] -.if n .ti +5n -[ -.BR \-quiet -] -.if n .ti +5n -[ -.BR \-help -] -.SH DESCRIPTION - -The player plays \fBMPEG\-1\fP video and \fB8\-bit mu\-law (Sun -Sparc)\fP audio. It supports -following \fBfour types\fP of playback: -.TP -\ \ \ \(bu -Plays both video and audio synchronously, in real-time mode. Video -frames, or even audio samples are dropped if needed. -.TP -\ \ \ \(bu -Plays video only, in real-time mode. Video frames are dropped if -needed. -.TP -\ \ \ \(bu -Plays video only, in best-effort mode, video frames are played as fast -as possible. -.TP -\ \ \ \(bu -Plays audio only, in real time mode. -.PP - -When video/audio is played in \fBreal-time\fP mode, play speed (defined in -terms of frames-per-second (fps) for video and samples-per-second (sps) -for audio) can be specified through a speed scale. If audio is played at a -speed other than the recording (normal) speed, samples are interpolated. - -When video is played in \fBbest-effort\fP mode, the player tries its -best to play video frame by frame, and not to drop frames. This mode -is not supported very well. Now and then some frames may be -dropped. Audio is disabled in this mode. - -As well as various types of playback, the player also supports other -common VCR functions such as fast forward, rewind, step -(forward), random positioning, etc.. - -The player is of \fBdistributed architecture\fP, with servers and -clients communicating across Internet. A \fBserver\fP resides on a -host, and services coming audio/video retrieval requests from clients. -A \fBclient\fP receives instructions from the user, makes connection -to servers, buffers incoming streams, decodes video frames, -interpolates audio samples, and outputs audio and video to -corresponding devices in a timely manner. A client can connect to -different servers for audio and video streams, and still plays them -synchronously. - - -.SH SERVER - -To start the server, type: - -.B vcrs -[ -.B \-rt -] [ -.B \-rm -] [ -.B \-s\fIsession_limit\fP -] [ -.B \-help -] - -One host can have a SINGLE server running, which responds to -connection requests from all clients to that host. Subsequent -invocation is terminated with an error message. - -\fBOptions\fP - -.IP "\fB-rt\fP" -On \fBhpux\fP, \fBsparc-sunos5.3\fP and \fBi86pc-solaris2.4\fP, if you -have real-time execution privilege, you can start the server with -the option \fB\-rt\fP to get better service. - -.IP "\fB-rm\fP" -With option \fB\-rm\fP, the server will try to remove socket names -left by previous crashed invocations before initialization. - -.IP "\fB-s\fIsession_limit\fP" - -With the option of \fB\-s\fP followed by a positive integer, e.g. -\fB-s2\fP, \fB-s4\fP or \fB-s10\fP, the number of sessions -serviced by the server at any time will be limited to be no more than -the given number. Both audio and video sessions are counted. The -default session number limit is \fB4\fI. - -.IP "\fB-help\fP" -This option tells the server to print all available options and then -quit. - -.PP - -In a video session, the server tries to find a -corresponding \fB.Info\fP file describing the structure of the MPEG -file of the session. If this fails, the server scans the MPEG file for -structure information and tries to create the \fB.Info\fP file. For -big MPEG files, this scanning process may take quite a few minutes -(some times even tens of minutes). If the \fB.Info\fP file is found, -the server simply reads structure information from it. - -.SH CLIENT - -The client program is available on \fBsun4\fP, \fBhpux\fP and -\fBi86pc-solaris2.4\fP. It needs a \fBMotif\fP environment, and -outputs audio to the default \fBAudioFile\fP server. If the client -fails to connect to the default AudioFile server, then the audio is -disabled. - -To start the client, type: - -.B vcr -[ -.B\-rt -] [ -.B \-shmem -] [ -.B \-rmsem -] -.ti +5n -[ -.BR \-dither " ordered\||\|ordered2\||\|fs4\||\|fs2\||\|fs2fast\||\|hybrid\||\| -.if n .ti +5n - hybrid2\||\|2x2\||\|gray\||\|color\||\|mono\||\|threshold -] -.if n .ti +5n -[ -.I X-window options -] -.if n .ti +5n -[ -.BR \-v " \fI[hostname:]video-filename\fP" -] -.if n .ti +5n -[ -.BR \-a " \fI[hostname:]audio-filename\fP" -] -.if n .ti +5n -[ -.BR \-p " \fImovie-file-name\fP" -] -.if n .ti +5n -[ -.BR \-l " \fImovie-list-file-name\fP" -] -.if n .ti +5n -[ -.BR \-quiet -] -.if n .ti +5n -[ -.BR \-help -] - -\fBOptions\fP - -.IP \fB-rt\fP -On \fBhpux\fP, and \fBi86pc-solaris2.4\fP, if you have real-time -execution privilege, with this option you may get better service. -.IP \fB-shmem\fP -With this option, the client tries to output video frames to the -X-server via shared memory instead of sockets. -.IP \fB-rmsem\fP -With this option, prior to initialization, the client tries to remove -\fBall\fP existing semaphore and shared memory ids you have access to. -\fBBe careful\fP, with this option, you also face the danger of -removing semaphores or shared memory ids being used by other programs, -as well as all the ones created by failed invocation of the player. See -\fBSemaphore ids and shared memory ids used up\fP in \fBKNOWN PROBLEMS\fP -section. -.IP "\fB-dither\fP ordered|ordered2|fs4|fs2|fs2fast|hybrid|" - hybrid2|2x2|gray|color|mono|threshold - -This option specifies the type of dithering performed on video frames -in order to be displayed on an X-window. The default is -\fIordered\fP. \fIcolor\fP only works with full color (24-bit) -displays. All others work with 8-bit color displays. \fImono\fP and -\fIthreshold\fP also work with mono displays. Different types of -dithering have different computational complexity and offer different -image quality. -.IP "\fIX-window options\fP" -All standard X-window Toolkit command line options are accepted -(see \fBX\fP(1)). -.IP "\fB-v\fP \fI[hostname:]video-filename\fP" -The very first program for the player can be specified in command line -with \fB-v\fP and/or \fB-a\fP options, for video and/or audio streams -respectively. - -This option specifies a video stream. If the \fIhostname\fP part is -given, the client tries to connect to a running server on the given -host, and plays the given file. If the hostname part is missing, the -client assumes there is a running server on the local host or tries to -fork one. and tries to connect to it. - -.IP "\fB-a\fP \fI[hostname:]audio-filename\fP" -This option specifies an audio stream of the very first program. -Only file names with suffix \fB.au\fP are accepted as audio files. -.IP "\fB-p\fP \fImovie-file-name\fP" -This option specifies a file specifying a movie to be played upon -client startup. A movies file contains \fBfive lines\fP lines: title, -video host name, video file path, audio host name, and audio file path. -.IP "\fB-l\fP \fImovie-list-file-name\fP" -This option specifies a movie list file to replace the default movie -list file \fI$(HOME)/.vcr/vcrPrograms\fP. A movie list file contains a -banner line, followed by a list of movies. -.IP "\fB-quiet\fP" -This option tells the client not to print any text message. This is -useful when the player is invoked from within a web browser. -.IP "\fB-help\fP" -This option tells the client to print all available options and quit. - -.PP - -\fBOperations\fP - -There are \fBtwelve buttons\fP and \fBfour scales\fP defined in the top-level window. -Buttons from left to right are: -.PP -.IP \fIExit\fP -Exits the client right away. -.IP \fIInfo\fP -Pops up a window containing information about the player. -.IP \fIPara\fP -Pops up a window with a list of parameters. Parameter values -can be viewed and modified through this window. -.IP \fIProg\fP -Pops up a window with a list of programs. You -can select a program from this list to play. -.IP \fIFile\fP -This is an alternative way to select programs. pressing this button -pops up a standard Motif file selection window. You can select -audio/video file on local host to play. The client assumes a running -server on local host, or tries to fork one. - -File names with suffix \fB.au\fP are accepted as audio, and file -names with suffices \fB.mpg\fP, or \fB.mpeg\fP (some or all letters in -the suffices can be upper-case ones) as MPEG video. Other types of -file names are rejected. - -Selection of a new program causes the current program to be discarded. -.IP \fILoop\fP -A toggle button. When pressed, the current program is played -repeatedly until stopped explicitly by the user, otherwise, playback stops when -program end is hit. This button has no effect on rewind and fast -forward. -.IP \fINorm\fP -Restores play speed to the normal (recording) speed. -.IP \fIRewind\fP -For video programs. Plays backward from the current position at a -speed given by the parameter \fI(Rewind frames-per-second)\fP. Only first -frames of MPEG picture groups (I-frames) are played. Audio is -disabled. -.IP \fIStop\fP -Stops active playback, fast forward or rewind. -.IP \fIFast-Forward\fP -For video programs. Plays forward from the current position at a speed -given by the parameter \fI(FF frames-per-second)\fP. Only first frames of MPEG -picture groups (I-frames) are played. Audio is disabled. -.IP \fIPlay\fP -Plays the program from the current position in one of the two modes, -depending on if video is involved and the value of an parameter \fI(Real -time(audio on)(tag))\fP: -.RS -.IP - -Best-effort mode, if the parameter is off (0), and video is involved. -.IP - -Real-time mode, otherwise. -.RE -.IP \fIStep\fP -Steps forward for one frame from the current position. -.PP -Clicking on buttons \fIRewind\fP, \fIFast-Forward\fP, \fIPlay\fP and -\fIStep\fP and dragging the \fIPlay-Speed\fP scale all stop current -active rewind, fast forward, or play. - -.B "Four scales \fP from left to right are:" - -.IP \fIBalance\fP -Currently not functional, because only mono audio is -supported. -.IP \fIVolume\fP -Audio volume. -.IP \fIPlay-Speed\fP -Specifies play speed for real-time mode playback. This scale is not -completely linear, with a special middle point (\fB50\fP). -.RS -.IP \fB50\fP -normal (recording) speed. -.IP "\fB[1 - 50)\fP" -linear speed value increase from zero to the normal speed. -.IP "\fB(50 - 100]\fP" -Linear speed value increase from the normal speed to the maximum -speed given by the parameter \fI(Video max frames-per-second)\fP when -video is involved in the current program, or \fI(Audio max -samples-per-second)\fP when only audio is involved. -.RE -This scale also defines the upper-limit of the best-effort playback -speed. -.IP \fIPosition\fP -This scale has multiple functionalities: -.RS -.IP - -Indicates the beginning position for rewind, fast forward and -playback. -.IP - -Shows the current position during rewind, fast forward, and playback. -.IP - -Random positioning: you can set the position by dragging the -slider. when video is involved, the first frame of the picture group -at the current position is displayed. -.RE -.PP -.B "Program list" - -.B Program list -is maintained through the \fBprogram list\fP window, which is popped up by -clicking the \fIProg\fP button in the main window. Currently only \fISelect\fP -and \fIDismiss\fP buttons are fully functional, and contents of a selected -program can be viewed (but not modified) by pressing the \fIModify\fP -button. To select a program, \fBhighlight\fP the desired item and -click \fISelect\fP. To modify the program list, edit the program file given -below. - -.B "Parameters" - -.B Parameters -are viewed and maintained through the parameter window, which is activated -by clicking the \fIPara\fP button in the main window. To update a parameter, -\fBhighlight\fP the item, enter the new value in the text window next -to the \fIUpdate\fP button, and press \fIUpdate\fP. Following parameters -are supported: - -.IP "\fIReal time (audio on)(tag)\fP" -Best-effort play mode when this parameter is 0 and video is involved -in the current program, otherwise real-time play mode. Default: 1, -range: 0, non-0. -.IP "\fIVideo max frames-per-second\fP" -For video programs, real-time mode play speed when speed scale has a -value of 100. Default: 60, range: > the normal speed. -.IP "\fIAudio max samples-per-second\fP" -For audio-only programs, play speed when speed scale has a value of -100. Default: 16000, range: > the normal speed. -.IP "\fIFF frames-per-second\fP" -Fast forward speed. Default: 150, range: > 0. -.IP "\fIRewind frames-per-second\fP" -Rewind speed. Default: 150, range: > 0. -.IP "\fIFeedback delay (msec)\fP" -Currently not used. -.IP "\fIAudio output mask\fP" -Currently not used. -.IP "\fIAudio_para.encodeType\fP" -Currently not used. -.IP "\fIAudio_para.channels\fP" -Currently not used. -.IP "\fIAudio_para.samplesPerSecond\fP" -Currently not used. -.IP "\fIAudio_para.bytesPerSamples\fP" -Currently not used. -.IP "\fIAudio timer interval (millisec)\fP" -For audio-only programs. Playback -timer interval in milliseconds. Playback of audio and video is -driven by a timer in the client. Default: 500, range: > 0. -.IP "\fIAudio buffered intervals\fP" -For audio-only programs. This number of timer intervals of audio -samples are to be buffered in the AudioFile server internal buffer. This -parameter and the previous one determine how many milliseconds of -audio samples are to be buffered in AudioFile. Buffering too -many samples reduces responsiveness, too few may degrade playback -quality. Default: 2, range: > 0. -.IP "\fIFrames per audio play\fP" -For audio+video programs, this parameter determines the ratio of the -audio timer interval over the video timer interval. Default: 4, -range: > 0. -.IP "\fIAudio forward (samples)\fP" -For audio+video programs, this number of samples of audio is -played ahead of video stream. This is supposed to compensate the -delay in AudioFile server. Default: 800, range: > 0. -.IP "\fIVS work-ahead (milli-seconds)\fP" -For video program, this number of milli-seconds the player tries to -keep the video server ahead of the client during playback, rewind and -fast forward. - -If the parameter \fISync effective\fP has a value of non-0, then this -parameter gives the initial value of the VS work-ahead time, and the -actual work ahead time is adjusted according to current network delay -jitter level. If a value less than the default is set, then the -default instead of the given one is used by the player. - -Default: 100, range: >= Default. - -.IP "\fIFrame rate limit (fps, float)\fP" -For video programs. In real-time play mode, if current play speed is -higher than the value of this parameter, then this -parameter defines the maximum frame rate the player tries to play. -Default: 60.0, range: >0. -.IP "\fICollect statistics(tag)\fP" -For video programs. If both the server and the client programs are compiled -with STAT defined, this tag indicates that, at the end of a playback -session, when \fIStop\fP button is pressed (or in loop-back mode when the -end of the program is reached) statistics is collected to file -stat.\fIn\fP in current directory (from which the client is -invoked). Default: 0, range: 0, non-0. -.IP "\fICollect video structure info(tag)\fP" -For video programs. If both the server and the client programs are compiled -with STAT defined, this tag indicates that, upon successful -initialization of a video stream, structure information of the MPEG -stream is collected to a file named struct.\fIn\fP in -current directory Default: 0, range: 0, non-0. -.IP "\fISync effective(tag)\fP" -For video programs, when set, server/client synchronization control is -effective during playback, rewind and fast forward. Default: 1, range: -0, non-0. -.IP "\fIQoS effective(tag)\fP" -For video programs, when set, automatic frame rate control is -effective during playback. Default: 1, range: 0, non-0. -.IP "\fIAudio offset(samples)\fP" -For audio+video programs. The player assumes that in a program, audio -and video are recorded strictly synchronously. But it is usually not -the case, and there is a certain amount of timing shift between audio -and video. This parameter specifies audio forward offset against video -in order to compensate the shift. Default: 0, range: integer -.IP "\fIFilter parameter(1/R or n-samples)\fP" -Parameter of the filters for client/server synchronization and frame rate -control. Default: 50, range: > 0. -.IP "\fIMax send pattern frames\fP" -This parameter sets the granularity of the frame rate control -algorithm. Default: 60, range: > 0. -.IP "\fIReliable byte-stream audio (tag)\fP" -In the case when the server is on a remote host, when this tag is set, -the client establishes a TCP connection to the server for shipping -audio samples, otherwise a UDP is used. The client always setup a TCP -connection to the server for control messages, no matter what value -the tag is. -.IP "\fIReliable byte-stream video (tag)\fP" -Similar effort as previous tag, but for video channel. -.IP "\fIVerbose message(tag)\fP" -If this tag is set, then verbose message is printed (provided that -command line option \fB-quiet\fP is not specified. Otherwise the -client will still print some, but less verbose message. -.PP -Parameter setting is for experienced user only. It is suggested that -you leave values of most parameters as default. If you like to change -some of them, be careful. It may make the player behave improperly. In -case you made some change, the player fails to work, and you are -unable to undo the change, delete the parameter file shown below and -restart the client. - -.SH FILES - -.IP "\fI($HOME)/.vcr/vcrPrograms\fP" -Program file. If this file is absent, it is created with a default -movie list of several basketball game sample movies in it. The movies -in the default movies list are maintained at CSE OGI. In a movie list -file, the first line is a banner. Following this line, each contiguous -four lines describe a movie: video host, MPEG file path, audio host, -audio file path. You may edit the movie list fileto include any movies -you like. - -.IP "\fI($HOME)/.vcr/vcrParameters\fP" -Parameter file. When absent, the system default parameter values -apply. Whenever you update a parameter, this parameter file is also -created or updated. - -.SH KNOWN PROBLEMS - -.B "The player stalls" -when or after playing audio program at very \fBlow speed\fP, or the -product of \fI(Audio timer interval)\fP and \fI(Audio buffered intervals)\fP -parameters \fBtoo large\fP, or \fI(Frames per audio play)\fP too -large. This is because the client tries to put too many audio -samples to AudioFile each time, blocking itself for output. - -In this version of the player, when an video+audio program is played, -some conditions are checked and low speed limit is enforced. You -are not able to set too low play speed (even if you set the speed -slider to 0 position). But the conditions might not be sufficient. - -.B "Play at too high speed\fP," -or \fI(Audio timer interval)\fP too small, or \fI(Video max -frames-per-second)\fP, \fI(FF frames-per-second)\fP, or \fI(Rewind -frames-per-second)\fP too high, presentation quality may be worse than -expected. This is because of the resolution limit of the UNIX interval -timer, which is about 10 milliseconds. - -.B "When Play speed jump from high to very low\fP," -a few seconds of worse-than-expected video presentation quality may be -experienced. Because at high speed, the video server usually drops -frames, and play speed changes, the player does not flush the video -pipeline. - -Various problems may be experienced if the \fBparameter\fP values are too -far from their default. The parameter values are seldomly guarded. - -.B "Audio doesn't work when played across the Internet\fP." -This is because audio is retrieved from the audio server to the -client via TCP, and the Internet TCP connection fails to provide -enough (e.g. 8KB/s) sustained bandwidth. In this case, all audio -samples would be too late showing up at the client, and thus are -dropped. - -.B "X shared memory problem\fP." -Parts of the user interface may not work correctly when the player -outputs to X-window via shared memory (with option \fB-shmem\fP). For -example, some of the buttons may not show up. Usually, the missing -buttons will show up by iconifying the user interface. - -.B "Core dump." -The player may core dump when playing a specific MPEG stream, at a -specific position. This may be because the parameters in the MPEG -stream is out of the ability of the decoder code. Upon core dump, you -may want to reproduce the problem, and recompile the player with -option -DNDEBUG, run the player again to see if any assertions fails. - -.B "Semaphore or shared memory ids used up\fP." -When this happens, an error shmget() or semget() is reported by the -player. This may happen if previous invocation(s) of the player have -exit abnormally causing core dump, and you try to run the player -again. Because semaphores and shared memory segments might not be -reclaimed when the player exits abnormally. You may run the client -with option \fB\-rmsem\fP to remove all existing semaphores and shared -memory ids accessable by you. See description of \fB\-rmsem\fP. If -\fB-rmsem\fP does not work, you may need to use tools like -\fBipcrm(1)\fP. - -.B "Undeleted UNIX socket pathes /tmp/vcrs*\fP" -Some UNIX socket names may remain in /tmp directory as "vcrs*", if the -server or the client has terminated abnormally. - -.SH BUG REPORT - -If you experience problems, look at the above KNOWN PROBLEM section -first. If the problem is not described, try to reproduce the problem, and -\fBreport bug\fP to \fBscen@cse.ogi.edu\fP. Thanks. - -.SH COPYRIGHT - -This software is covered by copyrights. It contains code contributed -by the author and several other parties. Please see the beginning of -source files and copyright file(s) in the root directory of the source -kit. - -.SH SEE ALSO - -.B "AF\fP(1), \fBX\fP(1)" - -.SH AUTHOR - - Shanwei Cen - Department of Computer Science and Engineering - Oregon Graduate Institute of Science and Technology - scen@cse.ogi.edu diff --git a/TAO/orbsvcs/tests/AVStreams/mpeg/vcrs.1 b/TAO/orbsvcs/tests/AVStreams/mpeg/vcrs.1 deleted file mode 100644 index a9769fc8944..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/mpeg/vcrs.1 +++ /dev/null @@ -1 +0,0 @@ -.so vcr.1 diff --git a/TAO/orbsvcs/tests/AVStreams/server.cpp b/TAO/orbsvcs/tests/AVStreams/server.cpp deleted file mode 100644 index 68a926f3ec0..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server.cpp +++ /dev/null @@ -1,218 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/AVStreams -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// Test server for the AVStreams demo -// -// = AUTHORS -// Sumedh Mungee -// -// ============================================================================ - -#include "server.h" -#include "Property_Exporter.h" -#include "Machine_Properties.h" -#include "orbsvcs/Trader/Dynamic_Property.h" - -// Callbacks made by the AVStreams library into the application. - -Video_Server_StreamEndPoint::Video_Server_StreamEndPoint (void) -{ -} - -int -Video_Server_StreamEndPoint::handle_stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return -1; -} - -int -Video_Server_StreamEndPoint::handle_start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return -1; -} - -int -Video_Server_StreamEndPoint::handle_destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return -1; -} - -CORBA::Boolean -Video_Server_StreamEndPoint::handle_connection_requested (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env) -{ - return 1; -} - -void -fill_service_type (CosTradingRepos::ServiceTypeRepository::PropStructSeq& prop_seq) -{ - prop_seq.length (10); - - for (int i = 0; i <= TAO_Machine_Properties::LOAD; i++) - { - prop_seq[i].name = TAO_Machine_Properties::PROP_NAMES[i]; - prop_seq[i].value_type = TAO_Machine_Properties::PROP_TYPE; - prop_seq[i].mode = CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - } -} - -int -export_properties (CORBA::ORB_ptr orb, - CORBA::Object_ptr mmdevice, - TAO_Machine_Properties& mach_props, - TAO_DP_Dispatcher& dprop) -{ - // Bootstrap to the Lookup interface. - ACE_DEBUG ((LM_ERROR, "Bootstrap to the Lookup interface.\n")); - CORBA::Object_var trading_obj = - orb->resolve_initial_references ("TradingService"); - - if (CORBA::is_nil (trading_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - TAO_TRY - { - ACE_DEBUG ((LM_ERROR, "Narrow the Lookup interface.\n")); - // Narrow the lookup interface. - ACE_DEBUG ((LM_DEBUG, "Narrowing the lookup interface.\n")); - CosTrading::Lookup_var lookup_if = - CosTrading::Lookup::_narrow (trading_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Narrow the mmdevice to a property set reference. - CORBA::Any extra_info; - CosPropertyService::PropertySet_ptr prop_set = - CosPropertyService::PropertySet::_narrow (mmdevice, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Instantiate the property exporter helper class. -#if defined TAO_HAS_DYNAMIC_PROPERTY_BUG - TAO_Property_Exporter prop_exporter (lookup_if, prop_set, orb); -#else - TAO_Property_Exporter prop_exporter (lookup_if, prop_set); -#endif /* TAO_HAS_DYNAMIC_PROPERTY_BUG */ - - // Add properties to server description. - - - // Add the machine properties. - ACE_DEBUG ((LM_ERROR, "Adding machine properties.\n")); - for (int i = (int) TAO_Machine_Properties::CPU; - i <= (int) TAO_Machine_Properties::LOAD; i++) - { - CORBA::Any extra_info; - const char* name = TAO_Machine_Properties::PROP_NAMES[i]; - const CORBA::TypeCode_ptr prop_type = TAO_Machine_Properties::PROP_TYPE; - -#if defined TAO_HAS_DYNAMIC_PROPERTY_BUG - CosTradingDynamic::DynamicProp* dp_struct = - dprop.construct_dynamic_prop (name, prop_type, extra_info, orb); -#else - CosTradingDynamic::DynamicProp* dp_struct = - dprop.construct_dynamic_prop (name, prop_type, extra_info); -#endif /* TAO_HAS_DYNAMIC_PROPERTY_BUG */ - - dprop.register_handler (name, &mach_props); - prop_exporter.add_dynamic_property (name, *dp_struct); - } - - ACE_DEBUG ((LM_ERROR, "Exporting to the Trader.\n")); - CosTradingRepos::ServiceTypeRepository::PropStructSeq prop_struct_seq; - CosTradingRepos::ServiceTypeRepository::ServiceTypeNameSeq type_name_seq; - - ::fill_service_type (prop_struct_seq); - CosTrading::OfferId_var offer_id = - prop_exporter.export (mmdevice, - "MMDevice", - prop_struct_seq, - type_name_seq, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("export_properties"); - } - TAO_ENDTRY; -} - -// Main program. - -int -main (int argc, char *argv[]) -{ - TAO_TRY - { - TAO_ORB_Manager orb_manager; - - // Initialize the ORB. - orb_manager.init (argc, - argv, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create server-side MMDevice. - TAO_Server_MMDevice *mmdevice_impl; - ACE_NEW_RETURN (mmdevice_impl, - TAO_Server_MMDevice , - -1); - - // Activate the MMDevice, i.e., register with POA. - CORBA::Object_var obj_ptr = mmdevice_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Add properties - TAO_DP_Dispatcher dprop_dispatcher; - TAO_Machine_Properties mach_props; - ::export_properties (orb_manager.orb (), - obj_ptr, - mach_props, - dprop_dispatcher); - - // Activate Dynamic Properties - CORBA::String_var dp_ior = - orb_manager.activate (&dprop_dispatcher, TAO_TRY_ENV); - - // Print the IOR. - ACE_DEBUG ((LM_DEBUG, - "\nThe IOR is: <%s>\n", - orb_manager.orb ()-> object_to_string (obj_ptr, TAO_TRY_ENV))); - TAO_CHECK_ENV; - - // Run the ORB Event loop. - orb_manager.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - ACE_DEBUG ((LM_DEBUG, - "\nServer is terminating")); - return 0; -} - diff --git a/TAO/orbsvcs/tests/AVStreams/server.h b/TAO/orbsvcs/tests/AVStreams/server.h deleted file mode 100644 index 6ffd90859b4..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/AVStreams -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// Test server for the AVStreams demo -// -// = AUTHORS -// Sumedh Mungee -// -// ============================================================================ - -#if !defined (AVSTREAMS_SERVER_H) -#define AVSTREAMS_SERVER_H - -#include "orbsvcs/AV/AVStreams_i.h" -#include "tao/TAO.h" - -class Video_Server_StreamEndPoint : public virtual TAO_Server_StreamEndPoint -{ - // = TITLE - // Server Stream Endpoint for A/V Streams demo. - // - // = DESCRIPTION - // Encapsulates server side transport functionality. -public: - Video_Server_StreamEndPoint (void); - // Constructor. - - virtual int handle_stop (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Handles stream stoppage. - - virtual int handle_start (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Handles stream start. Starts the flow of data. - - virtual int handle_destroy (const AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Handles the destruction of the stream, tears down the transport. - - virtual CORBA::Boolean handle_connection_requested (AVStreams::StreamEndPoint_ptr initiator, - CORBA::Boolean is_mcast, - AVStreams::streamQoS &qos, - AVStreams::flowSpec &the_spec, - CORBA::Environment &env); - // Handles stream bind, establishes the transport. -}; - -#endif /* AVSTREAMS_SERVER_H */ diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/Discover_Server.java b/TAO/orbsvcs/tests/AVStreams/server_discovery/Discover_Server.java deleted file mode 100644 index 0a7ea60181f..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/Discover_Server.java +++ /dev/null @@ -1,481 +0,0 @@ -// $Id$ - -import java.io.*; -import java.net.*; -import java.awt.*; -import java.awt.event.*; -import java.util.*; -import org.omg.CORBA.*; -import CosTrading.*; -import CosTradingDynamic.*; -import CosTrading.LookupPackage.*; -import Property_Evaluator; -import TS_Resolve; - -public class Discover_Server - extends Frame - implements ItemListener, ActionListener -{ - private static final String CURRENT_DIR = System.getProperty ("user.dir"); - private static String FILE_SEPARATOR = System.getProperty ("file.separator"); - private static final String SERVICE_TYPE = "MMDevice"; - private static final String REFERENCE = "Reference"; - private static final String MOVIE_INFO = "Movie_Info"; - private static final String MOVIE_NAMES = "Movie_Names"; - private static final String SERVER_NAME = "Server_Name"; - private static final String HAS_CONNECTIONS = - " Number_Of_Connections < Max_Connections"; - private static final String HTML_FILE = - CURRENT_DIR + FILE_SEPARATOR + "movie-list.html"; - private static final String STATS_FILE = - CURRENT_DIR + FILE_SEPARATOR + "movie-stats.html"; - private static final String COMPILE = " Compile "; - private static final String SELECT = " Select "; - private static final String CLOSE = " Close "; - private static final byte JAVA_INIT = 35; - private static final Font FONT = new Font ("Dialog", Font.BOLD, 14); - - private ORB orb_; - private int port_; - private Lookup lookup_; - private boolean first_click_ = true; - private String currently_shown_ = null; - private List movies_selector_ = new List (14, false); - private Hashtable movies_ = new Hashtable (); - private Button compile_ = new Button (COMPILE); - private Button select_ = new Button (SELECT); - private Button close_ = new Button (CLOSE); - - public Discover_Server (ORB orb, Lookup lookup, int port) - { - super ("Server Discovery"); - - System.out.println ("yadda"); - this.orb_ = orb; - this.port_ = port; - this.lookup_ = lookup; - - Panel button_panel = new Panel (); - button_panel.setLayout (new FlowLayout (FlowLayout.CENTER, 25, 10)); - button_panel.add (this.compile_); - button_panel.add (this.select_); - button_panel.add (this.close_); - - Panel list_panel = new Panel (); - list_panel.setLayout (new CardLayout (10, 10)); - list_panel.add ("List", this.movies_selector_); - - this.compile_.setFont (FONT); - this.select_.setFont (FONT); - this.close_.setFont (FONT); - this.movies_selector_.setFont (FONT); - - this.compile_.requestFocus (); - this.compile_.addActionListener (this); - this.select_.addActionListener (this); - this.close_.addActionListener (this); - this.movies_selector_.addItemListener (this); - this.movies_selector_.addActionListener (this); - - this.setLayout (new BorderLayout (0, 0)); - this.add ("North", list_panel); - this.add ("South", button_panel); - } - - public void compile_movies () - { - String configuration = ""; - String[] properties = new String[3]; - SpecifiedProps desired_props = new SpecifiedProps (); - OfferSeqHolder offers = new OfferSeqHolder (); - OfferIteratorHolder offer_iter = new OfferIteratorHolder (); - - properties[0] = MOVIE_INFO; - properties[1] = MOVIE_NAMES; - properties[2] = SERVER_NAME; - desired_props.prop_names (properties); - - String constraint = configuration + HAS_CONNECTIONS; - this.query_trader (constraint, "", desired_props, offers, offer_iter); - - this.movies_selector_.removeAll (); - for (int i = 0; i < offers.value.length; i++) - this.extract_movies (offers.value[i]); - - if (offer_iter.value != null) - { - boolean more_in_iter = true; - OfferSeqHolder iter_offers = new OfferSeqHolder (); - while (more_in_iter) - { - more_in_iter = offer_iter.value.next_n (10, iter_offers); - - for (int i = 0; i < iter_offers.value.length; i++) - this.extract_movies (iter_offers.value[i]); - } - } - - // Add the movies to the list. - Enumeration movie_names = this.movies_.keys (); - - // Future: alphabetize this! - while (movie_names.hasMoreElements ()) - { - String movie_name = (String) movie_names.nextElement (); - System.out.println (movie_name); - this.movies_selector_.add (movie_name); - } - } - - public void view_info (String movie_name) - { - Runtime runtime = Runtime.getRuntime (); - - try - { - if (! movie_name.equals (this.currently_shown_)) - { - this.generate_html (movie_name); - - if (! this.first_click_) - runtime.exec ("netscape-remote " + HTML_FILE); - else - { - // runtime.exec ("netscape-remote-new " + HTML_FILE); - this.first_click_ = false; - } - - this.currently_shown_ = movie_name; - } - } - catch (Exception exception) - { - System.out.println (exception); - } - } - - public void select_movie (String movie_name) - { - // This will be replaced by the server performance visualization - // stage. - - if (movie_name != null) - { - // Perform lookup to retrieve the vector of offers associated - // with this movie name. - Vector vector = (Vector) this.movies_.get (movie_name); - Hashtable props = (Hashtable) vector.elementAt (0); - - org.omg.CORBA.Object object = - (org.omg.CORBA.Object) props.get (REFERENCE); - String ior = this.orb_.object_to_string (object); - - TAO_VR.Movie movie_info = (TAO_VR.Movie) props.get (movie_name); - - System.out.println (this.port_ + " " + ior + " " + movie_info.filename_); - this.load_movie (ior, movie_info.filename_); - - // this.shutdown (); - } - } - - public void itemStateChanged (ItemEvent e) - { - Integer index = (Integer) e.getItem (); - String movie_name = this.movies_selector_.getItem (index.intValue ()); - this.view_info (movie_name); - } - - public void actionPerformed (ActionEvent e) - { - String action_command = e.getActionCommand (); - - if (action_command.equals (COMPILE)) - this.compile_movies (); - else if (action_command.equals (SELECT)) - { - String selected_movie = this.movies_selector_.getSelectedItem (); - this.select_movie (selected_movie); - } - else if (action_command.equals (CLOSE)) - { - this.shutdown (); - } - else - this.select_movie (action_command); - } - - private void query_trader (String constraint, - String preference, - SpecifiedProps desired_props, - OfferSeqHolder offers, - OfferIteratorHolder offer_itr) - { - String ior = null; - Policy[] policies = new Policy[5]; - Any boolean_true = this.orb_.create_any (); - Any cardinality = this.orb_.create_any (); - Any follow_option_any = this.orb_.create_any (); - FollowOption follow_option_rule = FollowOption.always; - PolicyNameSeqHolder limits_applied = new PolicyNameSeqHolder (); - - desired_props.all_(true); - cardinality.insert_ulong (60); - boolean_true.insert_boolean (false); - FollowOptionHelper.insert (follow_option_any, follow_option_rule); - policies[0] = new Policy ("exact_type_match", boolean_true); - policies[1] = new Policy ("link_follow_rule", follow_option_any); - policies[2] = new Policy ("return_card", cardinality); - policies[3] = new Policy ("search_card", cardinality); - policies[4] = new Policy ("match_card", cardinality); - - try - { - // Compile list of names - this.lookup_.query (SERVICE_TYPE, - constraint, - preference, - policies, - desired_props, - 10, - offers, - offer_itr, - limits_applied); - - // this.dump_all_properties (offers.value, offer_itr.value); - } - catch (Exception excp) - { - System.err.println (excp); - } - } - - private void load_movie (String ior, String movie_name) - { - try - { - InetAddress inet_addr = InetAddress.getLocalHost (); - // Open a socket to the controller process of the video client. - // Socket controller_sock = new Socket (inet_addr, - //this.port_); - Socket controller_sock = new Socket ("merengue", this.port_); - OutputStream controller_stream = controller_sock.getOutputStream (); - // DataOutputStream dos = new DataOutputStream (controller_stream); - - // Write the demultiplexing key for this controller operation: - controller_stream.write (JAVA_INIT); - // dos.writeByte (JAVA_INIT); - - // Write the length and contents of the ior string. - controller_stream.write (ior.length ()); - System.out.println ("Writing: " + ior.length ()); - controller_stream.write (ior.getBytes ()); - System.out.println ("Writing: " + ior.getBytes ()); - //dos.writeChars (ior); - - // Write the length and contents of the ior string. - controller_stream.write (movie_name.length ()); - controller_stream.write (movie_name.getBytes ()); - //dos.writeChars (movie_name); - - // Close the socket. - //controller_sock.close (); - } - catch (Exception excp) - { - System.out.println ("Failed to load movie."); - System.out.println (excp); - } - } - - private void dump_all_properties (Offer[] offers, - OfferIterator offer_iterator) - { - try - { - this.dump_properties (offers); - - if (offer_iterator != null) - { - OfferSeqHolder iter_offers = new OfferSeqHolder (); - System.out.println ("*** Dumping Properties in Iterator."); - - boolean more_in_iter = true; - while (more_in_iter) - { - System.out.println ("*** Fetching another batch of offers."); - more_in_iter = offer_iterator.next_n (10, iter_offers); - - System.out.println ("*** Length: " + iter_offers.value.length); - this.dump_properties (iter_offers.value); - } - } - } - catch (DPEvalFailure exception) - { - System.out.println (exception); - } - } - - private void dump_properties (Offer[] offer_seq) - throws DPEvalFailure - { - for (int i = 0; i < offer_seq.length; i++) - { - Property_Evaluator prop_eval = new Property_Evaluator (offer_seq[i]); - - for (int j = 0; j < offer_seq[i].properties.length; j++) - { - System.out.println ("Property: " + - offer_seq[i].properties[j].name + - " Value: " + - prop_eval.property_value (j, this.orb_)); - //prop_eval.property_to_string (j, this.orb_)); - } - - System.out.println ("----------------------------"); - } - } - - private void extract_movies (Offer offer) - { - Hashtable prop_map = new Hashtable (); - - prop_map.put (REFERENCE, offer.reference); - for (int i = 0; i < offer.properties.length; i++) - { - Property property = offer.properties[i]; - String property_name = property.name; - - // Use a hashtable to map property names to their values. - prop_map.put (property_name, property); - System.out.println ("Found property " + property_name); - if (property_name.equals (MOVIE_INFO)) - { - try - { - Property_Evaluator prop_eval = new Property_Evaluator (offer); - Any tmp = prop_eval.property_value (i, this.orb_); - TAO_VR.Movie[] movie_info = TAO_VR.Movie_InfoHelper.extract (tmp); - - // In the top level hashtable, a movie name is mapped to - // a vector where each element is reserved for an offer - // that has that movie. In that element is the - // aforementioned interior hashtable. Pretty damn - // complicated. How did I think of this? - for (int j = 0; j < movie_info.length; j++) - { - Vector movie_vector = null; - movie_vector = (Vector) this.movies_.get (movie_info[j].name_); - - if (movie_vector == null) - { - System.out.println ("Adding movie to map " + movie_info[j]); - movie_vector = new Vector (); - this.movies_.put (movie_info[j].name_, movie_vector); - } - - movie_vector.addElement (prop_map); - prop_map.put (movie_info[j].name_, movie_info[j]); - } - } - catch (DPEvalFailure dpeval) - { - System.out.println (dpeval); - } - } - } - } - - private void generate_html (String movie_name) - throws IOException - { - String first_url = null; - Vector movie_offers = (Vector) this.movies_.get (movie_name); - FileOutputStream fos = new FileOutputStream (STATS_FILE); - PrintWriter pwr = new PrintWriter (fos); - - pwr.println (""); - pwr.println (""); - pwr.println (" " + movie_name + " Availability:

    "); - - for (int i = 0; i < movie_offers.size (); i++) - { - Hashtable offer_props = (Hashtable) movie_offers.elementAt (i); - Property name_prop = (Property) offer_props.get (SERVER_NAME); - TAO_VR.Movie movie_info = (TAO_VR.Movie) offer_props.get (movie_name); - String server_name = name_prop.value.extract_string (); - - pwr.println ("Server: " + server_name + "
    "); - if (i == 0) - first_url = movie_info.description_; - - pwr.println (""); - pwr.println (" " + - movie_info.description_ + - "

    "); - pwr.println ("

  • Filename: " + - movie_info.filename_ + "
    "); - pwr.println ("
  • Format:
    "); - pwr.println ("
  • File size:
    "); - pwr.println ("
  • Duration:
    "); - pwr.println ("
  • Frame Rate:
    "); - pwr.println ("
  • Frame Size:
    "); - pwr.println ("
    "); - pwr.println ("

    "); - } - - pwr.println (""); - pwr.close (); - - fos = new FileOutputStream (HTML_FILE); - pwr = new PrintWriter (fos); - - pwr.println (""); - pwr.println (""); - pwr.println (" " + movie_name + " "); - pwr.println (""); - - pwr.println (""); - pwr.println (""); - pwr.println (""); - pwr.println (""); - pwr.println (""); - pwr.close (); - } - - private void shutdown () - { - Runtime runtime = Runtime.getRuntime (); - this.dispose (); - runtime.exit (0); - } - - public static void main (String[] args) - { - int port = 6676; - - if (args.length > 1) - port = Integer.parseInt (args[0]); - - // Initialize the ORB - java.util.Properties props = null; - ORB orb = ORB.init (args, props); - - // Resolve the Trading Service - Lookup lookup = TS_Resolve.resolve_trading_service (orb); - - if (lookup != null) - { - Discover_Server ds = new Discover_Server (orb, lookup, port); - - ds.setBounds (20, 20, 320, 350); - ds.show (); - } - } -} diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/Makefile b/TAO/orbsvcs/tests/AVStreams/server_discovery/Makefile deleted file mode 100644 index 78ffd8c486d..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -# $Id$ - -# Makefile - -.SUFFIXES: .idl .module .java .class - -.java.class: - $(VISIJAVA_ROOT)/bin/vbjc $< - -.idl.module: - $(VISIJAVA_ROOT)/bin/idl2java -DTAO_HAS_DYNAMIC_PROPERTY_BUG \ - -no_tie -no_skel -no_bind -no_comments -no_examples $< - touch $@ - -default: all - -clean: - rm -rf CosTrading CosTradingDynamic CosTradingRepos TAO_Sequences TAO_VR - rm -f *.class *.tmp *.module *~ - -IDLS = \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTrading.idl \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sequences.idl \ - $(TAO_ROOT)/orbsvcs/tests/AVStreams/mpeg/source/server/Video_Repository.idl - -MODULES = $(IDLS:.idl=.module) - -SRCS = \ - TS_Resolve.java \ - Property_Evaluator.java \ - Discover_Server.java - -CLASSES = $(SRCS:.java=.class) - -all: $(MODULES) $(CLASSES) diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/Property_Evaluator.java b/TAO/orbsvcs/tests/AVStreams/server_discovery/Property_Evaluator.java deleted file mode 100644 index 4689c9443b4..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/Property_Evaluator.java +++ /dev/null @@ -1,238 +0,0 @@ -/* -*- C++ -*- */ - -// ======================================================================== -// $Id$ -// -// = FILENAME -// Property_Evaluator.java -// -// = AUTHOR -// Seth Widoff -// -// ======================================================================== - - -import org.omg.CORBA.*; -import CosTrading.*; -import CosTradingDynamic.*; -import TAO_Sequences.*; -import TAO_VR.*; - -/** - * This is a Java port of the TAO_Property_Evaluator class in the TAO - * trading service implementation. - */ - -public class Property_Evaluator -{ - private Property[] props_; - private boolean supports_dp_ = true; - - /** - * Construct an instance of TAO_Property_Evaluator that operates on - * a PropertySeq, . - */ - Property_Evaluator (Property[] properties) - { - this.props_ = properties; - } - - /** - * Construct an instance of TAO_Property_Evaluator that operates on - * an . - */ - public Property_Evaluator (Offer offer) - { - this.props_ = offer.properties; - } - - /** - * Disable or enable the evaluation of dynamic properties. - */ - public void allow_dynamic_properties (boolean toggle) - { - this.supports_dp_ = toggle; - } - - /** - * Returns true if the property at index is dynamic. Returns a - * 0 when the index is out of bounds. - */ - public boolean is_dynamic_property (int index) - { - boolean return_value = false; - int num_properties = this.props_.length; - - if (index >= 0 && index < num_properties) - return_value = Property_Evaluator.is_dynamic_property (this.props_[index]); - - return return_value; - } - - public static boolean is_dynamic_property (Property prop) - { - boolean return_value = false; - - Any value = prop.value; - TypeCode type = value.type (); - - // Compare the type of the Any contents with the typecode - // for a dynamic property structure. - if (type.equal (DynamicPropHelper.type ())) - return_value = true; - - return return_value; - } - - /** - * Returns value of the property whose index is . If the - * property at that index is dynamic and the trader supports dynamic - * properties, then the property_value method will obtain the value - * of the dynamic property using the evalDP method on the - * CosTradingDynamic::DynamicPropEval interface, passing on a - * CosTradingDynamic::DPEvalFailure exception on failure. If the - * property index is undefined, the method returns a null pointer. - */ - public Any property_value (int index, ORB orb) - throws DPEvalFailure - { - Any return_value = null; - int num_properties = this.props_.length; - - if (index >= 0 && index < num_properties) - { - return_value = - Property_Evaluator.property_value (this.props_[index], orb); - } - - return return_value; - } - - public static Any property_value (Property prop, ORB orb) - throws DPEvalFailure - { - Any prop_value = null; - - if (! Property_Evaluator.is_dynamic_property (prop)) - prop_value = prop.value; - else - { - DynamicProp dp_struct = - DynamicPropHelper.extract (prop.value); - String prop_name = prop.name; - - // This is because of the bug in TAO: - // Now we extract the object reference from the dynamic - // property structure. - org.omg.CORBA.Object obj = - orb.string_to_object (dp_struct.eval_if); - DynamicPropEval dp_eval = DynamicPropEvalHelper.narrow (obj); - - if (dp_eval != null) - { - prop_value = dp_eval.evalDP (prop_name, - dp_struct.returned_type, - dp_struct.extra_info); - } - else - { - throw new DPEvalFailure (prop_name, - dp_struct.returned_type, - dp_struct.extra_info); - } - } - - return prop_value; - } - - /** - * Returns the type of the property whose index is . If the - * property is dynamic and the trader supports dynamic properties, - * then the method returns the field of the - * CosTradingDynamic::DynamicProp struct associated with the - * property name. If the index is out of bounds, the method returns - * a null pointer (that is, 0). - */ - - public TypeCode property_type (int index) - { - TypeCode prop_type = null; - - if (! this.is_dynamic_property (index)) - prop_type = this.props_[index].value.type (); - else - { - Any value = this.props_[index].value; - DynamicProp dp_struct = DynamicPropHelper.extract (value); - - prop_type = dp_struct.returned_type; - } - - return prop_type; - } - - public String property_to_string (int index, ORB orb) - throws DPEvalFailure - { - String return_value = null; - Any any_value = this.property_value (index, orb); - TypeCode type = any_value.type (); - int kind = type.kind ().value (); - - if (kind == TCKind._tk_null) - return_value = "Null"; - - else if (kind == TCKind._tk_void) - return_value = "Void"; - - else if (kind == TCKind._tk_short) - return_value = String.valueOf (any_value.extract_short ()); - - else if (kind == TCKind._tk_long) - return_value = String.valueOf (any_value.extract_long ()); - - else if (kind == TCKind._tk_ushort) - return_value = String.valueOf (any_value.extract_ushort ()); - - else if (kind == TCKind._tk_ulong) - return_value = String.valueOf (any_value.extract_ulong ()); - - else if (kind == TCKind._tk_float) - return_value = String.valueOf (any_value.extract_float ()); - - else if (kind == TCKind._tk_double) - return_value = String.valueOf (any_value.extract_double ()); - - else if (kind == TCKind._tk_boolean) - return_value = String.valueOf (any_value.extract_boolean ()); - - else if (kind == TCKind._tk_char) - return_value = String.valueOf (any_value.extract_char ()); - - else if (kind == TCKind._tk_string) - return_value = any_value.extract_string (); - - else if (type.equal (StringSeqHelper.type ())) - { - System.out.println ("Printing string sequence."); - String[] str_seq = StringSeqHelper.extract (any_value); - - for (int length = str_seq.length, i = 0; i < length; i++) - return_value = str_seq[i] + " "; - } - - else if (type.equal (ULongSeqHelper.type ())) - { - System.out.println ("Printing ulong sequence."); - int[] ulong_seq = ULongSeqHelper.extract (any_value); - - for (int length = ulong_seq.length, i = 0; i < length; i++) - return_value = ulong_seq[i] + " "; - } - - else - System.out.println ("TCKind" + kind); - - return return_value; - } -} diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/TS_Resolve.java b/TAO/orbsvcs/tests/AVStreams/server_discovery/TS_Resolve.java deleted file mode 100644 index 3cfcd69bc22..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/TS_Resolve.java +++ /dev/null @@ -1,104 +0,0 @@ -// $Id$ -// ============================================================================ -// -// -// = FILENAME -// NS_Resolve.java -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// = DESCRIPTION -// Resolves the initial reference to the Naming service, -// the orb has to be given as a parameter to the -// resolve_name_service call. -// -// -// ============================================================================ - -import CosTrading.*; -import org.omg.CORBA.*; -import java.net.*; -import java.io.*; - -public class TS_Resolve -{ - - private static final String ACE_DEFAULT_MULTICAST_ADDR = "224.9.9.2"; - private static final int TAO_DEFAULT_NAME_SERVER_REQUEST_PORT = 10016; - private static final int MULTICAST_SEND_PORT = 10060; - private static final int MULTICAST_RECEIVE_PORT = 10061; - private static final int TAO_SERVICEID_NAMESERVICE = 0; - private static final int TAO_SERVICEID_TRADINGSERVICE = 1; - - static public CosTrading.Lookup - resolve_trading_service (org.omg.CORBA.ORB orb) - { - try - { - // Create a message with the multicast receive port in it - ByteArrayOutputStream byte_stream_ = new ByteArrayOutputStream (); - byte_stream_.write ((int)((MULTICAST_RECEIVE_PORT&0xff00)>>>8)); - byte_stream_.write ((int)(MULTICAST_RECEIVE_PORT&0x00ff)); - byte_stream_.write ((int)((TAO_SERVICEID_TRADINGSERVICE&0xff00)>>>8)); - byte_stream_.write ((int)(TAO_SERVICEID_TRADINGSERVICE&0x00ff)); - byte[] msg = byte_stream_.toByteArray(); - - // Define the group for the multicast - - InetAddress group = InetAddress.getByName(ACE_DEFAULT_MULTICAST_ADDR); - // Create the multicast socket at any port you want - MulticastSocket multicastsocket = new MulticastSocket(MULTICAST_SEND_PORT); - // Create a socket for the answer of the Naming Service - DatagramSocket socket = new DatagramSocket (MULTICAST_RECEIVE_PORT); - // Give three seconds time for the Naming Service to respond - socket.setSoTimeout (3000); - // Build a packet with the port number in it - DatagramPacket hello = new DatagramPacket(msg, msg.length, - group, TAO_DEFAULT_NAME_SERVER_REQUEST_PORT); - - // Send the packet - multicastsocket.send (hello); - - // @@ The restriction right now is that the length of the IOR cannot be longer than 4096 - byte[] buf = new byte[4096]; - // Set up packet which can be received - DatagramPacket recv = new DatagramPacket (buf, buf.length); - // Receive a packet or time out - socket.receive (recv); - - // Determine the length of the IOR - int length; - for (length = 0; buf[length] != 0; length++); - - // Store the IOR in a String - String name_service_ior = new String (recv.getData (),0,length); - - // Convert the String into - org.omg.CORBA.Object obj = orb.string_to_object (name_service_ior); - return CosTrading.LookupHelper.narrow (obj); - } - catch (SocketException e) - { - System.err.println (e); - } - catch (java.io.InterruptedIOException e) - { - System.err.println ("TS_Resolve: The receive lasted too long"); - } - catch(org.omg.CORBA.SystemException e) - { - System.err.println(e); - } - catch (java.io.IOException e) - { - System.err.println (e); - } - return null; - } -}; - - - - - diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote b/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote deleted file mode 100755 index dbaf3ca5b18..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote +++ /dev/null @@ -1,8 +0,0 @@ -#!/pkg/gnu/bin/bash -if [ -h $HOME/.netscape/lock ] -then echo hello > /dev/console -else exec netscape $1 2>&1 > /dev/console -fi - -exec netscape -remote openURL'('$1')' 2>&1 | cat > /dev/console - diff --git a/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote-new b/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote-new deleted file mode 100755 index c46a9fff1d6..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/server_discovery/netscape-remote-new +++ /dev/null @@ -1,8 +0,0 @@ -#!/pkg/gnu/bin/bash -if [ -h $HOME/.netscape/lock ] -then echo hello > /dev/console -else exec netscape $1 2>&1 > /dev/console -fi - -exec netscape -remote openURL'('$1',new-window)' 2>&1 | cat > /dev/console - diff --git a/TAO/orbsvcs/tests/AVStreams/sfp/Makefile b/TAO/orbsvcs/tests/AVStreams/sfp/Makefile deleted file mode 100644 index 9a73f45dc64..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/sfp/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the AVStreams demo of the TAO ORB -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lorbsvcs -lTAO - -PROG_SRCS = main.cpp - -LSRC = $(PROG_SRCS) - -AVStreams_SERVER_OBJS = server.o -AVStreams_CLIENT_OBJS = client.o - -COSPROPERTY_OBJS = main.o - -BIN = client - -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -DCFLAGS = -g -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -server:$(addprefix $(VDIR),$(AVStreams_SERVER_OBJS)) - $(LINK.cc) $(LDFAGS) -o $@ $^ $(VLDLIBS) - -client:$(addprefix $(VDIR),$(AVStreams_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) - -#main: $(addprefix $(VDIR), $(COSPROPERTY_OBJS)) -# $(LINK.cc) $(LDFAGS) -o $@ $^ $(VLDLIBS) - - -realclean: clean - -/bin/rm -rf - - -# 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/TAO/orbsvcs/tests/AVStreams/sfp/client.cpp b/TAO/orbsvcs/tests/AVStreams/sfp/client.cpp deleted file mode 100644 index 487b644b8ba..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/sfp/client.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "ace/Message_Block.h" -#include "orbsvcs/AV/sfp.h" - -const char *buf = "Hello Worldasdasda sda sdasd adasdaddd\n"; - -main () -{ - - // ---------------------------------------------------------------------- - // start message - - SFP_Encoder encoder; - - ACE_Message_Block *start_message = - encoder.encode_start_message (); - - SFP_Decoder decoder; - - decoder.decode_start_message (start_message); - - // ---------------------------------------------------------------------- - // start reply - - ACE_Message_Block *start_reply_message = - encoder.encode_start_reply_message (); - - decoder.decode_start_reply_message (start_reply_message); - - - // ---------------------------------------------------------------------- - // simple frame - - ACE_Message_Block *message; - - ACE_NEW_RETURN (message, - ACE_Message_Block (buf), - -1); - - message->length (::strlen (buf)); - - ACE_Message_Block *mb = encoder.encode_simple_frame (message); - - decoder.decode_simple_frame (mb); - - return 0; -} diff --git a/TAO/orbsvcs/tests/AVStreams/sfp/svc.conf b/TAO/orbsvcs/tests/AVStreams/sfp/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/sfp/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/AVStreams/svc.conf b/TAO/orbsvcs/tests/AVStreams/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/AVStreams/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/Concurrency/CC_client.cpp b/TAO/orbsvcs/tests/Concurrency/CC_client.cpp deleted file mode 100644 index 58a8c96a698..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_client.cpp +++ /dev/null @@ -1,455 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// CC_client.h -// -// = DESCRIPTION -// This is the test class for the concurrency service. The class -// implements a client to the concurrency service. -// This file contains the main function for the test. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "ace/Read_Buffer.h" -#include "CC_client.h" - -// Constructor. -CC_Client::CC_Client (void) - : naming_service_ (0), - cc_factory_ior_file_ (0), - cc_factory_key_ (0), - f_handle_ (ACE_INVALID_HANDLE), - shutdown_ (0), - use_naming_service_ (1), - run_basic_tests_ (0), - run_extended_tests_ (0), - use_script_file_ (0), - script_file_ (0) -{ -} - -CC_Client::~CC_Client (void) -{ - // Free resources and close the ior files. - if (this->cc_factory_ior_file_) - ACE_OS::fclose (this->cc_factory_ior_file_); - - if (this->f_handle_ != ACE_INVALID_HANDLE) - ACE_OS::close (this->f_handle_); - - if (this->cc_factory_key_ != 0) - ACE_OS::free (this->cc_factory_key_); - - if (naming_service_!=0) - delete naming_service_; -} - -// Reads the lock set factory ior from a file - -int -CC_Client::read_ior (char *filename) -{ - // Open the file for reading. - this->f_handle_ = ACE_OS::open (filename,0); - - if (this->f_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - filename), - -1); - ACE_Read_Buffer ior_buffer (this->f_handle_); - this->cc_factory_key_ = ior_buffer.read (); - - if (this->cc_factory_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - return 0; -} - -// Parses the command line arguments and returns an error status. - -int -CC_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dc:sf:k:xbhe:"); - int c; - int result; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'b': // debug flag - this->run_basic_tests_ = 1; - break; - case 'c': - this->use_script_file_ = 1; - this->script_file_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'd': // debug flag - TAO_debug_level++; - break; - case 'e': // debug flag - run_extended_tests_ = 1; - this->extended_tests_params_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'f': // read the IOR from the file. - result = this->read_ior (get_opts.optarg); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'k': // read the cubit IOR from the command-line. - this->cc_factory_key_ = - ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->shutdown_ = 1; - break; - case 's': // Don't use the TAO Naming Service. - this->use_naming_service_ = 0; - break; - case 'h': - default: - print_usage (); - ACE_ERROR_RETURN ((LM_ERROR, ""), -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Execute client example code. - -int -CC_Client::run (void) -{ - int tests_run = 0; - // Tells whether any tests have been run - - int success = CC_SUCCESS; - // Did test succeed? - - if (this->run_basic_tests_ && success == CC_SUCCESS) - { - success = run_basic_tests (); - if(success==CC_FAIL) - ACE_DEBUG((LM_DEBUG, "Basic tests did not succeed\n")); - tests_run = 1; - } - - if (this->run_extended_tests_ && success == CC_SUCCESS) - { - success = run_extended_tests (this->extended_tests_params_); - if(success==CC_FAIL) - ACE_DEBUG((LM_DEBUG, "Extended tests did not succeed\n")); - tests_run = 1; - } - - if(this->use_script_file_ && success == CC_SUCCESS) - { - cmdlist = new CC_CommandList(); - FILE *f; - - // Open the command file for parsing if the filename!=stdin - if(ACE_OS::strcmp(this->script_file_, "stdin")!=0) - { - f = ACE_OS::fopen(this->script_file_, "r"); - if(f==0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s\n", - this->script_file_), - -1); - ace_cc_yyin = f; - } - ace_cc_yyparse(); - } - - // Other tests go here - // if (other_test_flag && success == CC_SUCCESS) ... - - if (this->shutdown_) - // @@TAO is this needed?? - - if (tests_run == 0) - { - print_usage (); - ACE_ERROR_RETURN ((LM_ERROR, - "No tests given\n"), - -1); - } - - return success; -} - -// This function runs basic tests concerned with only one lock set - -int -CC_Client::run_basic_tests (void) -{ - Test_Single_Lock_With_Mode t1 (naming_service_, - CosConcurrencyControl::read); - Test_Single_Lock_With_Mode t2 (naming_service_, - CosConcurrencyControl::write); - Test_Single_Lock_With_Mode t3 (naming_service_, - CosConcurrencyControl::upgrade); - Test_Single_Lock_With_Mode t4 (naming_service_, - CosConcurrencyControl::intention_read); - Test_Single_Lock_With_Mode t5 (naming_service_, - CosConcurrencyControl::intention_write); - // This test should be run for several different lock mode, but - // since we do not support - Test_Release_Not_Held_Lock t6 (naming_service_, - CosConcurrencyControl::read); - if (t1.run () == CC_SUCCESS && - t2.run () == CC_SUCCESS && - t3.run () == CC_SUCCESS && - t4.run () == CC_SUCCESS && - t5.run () == CC_SUCCESS && - t6.run () == CC_SUCCESS ) - return CC_SUCCESS; - else - return CC_FAIL; -} - -int -CC_Client::check_extended_test_params(char *params) -{ - // Format (regexp): [0-9]+;.*;.* - int no_of_params = 0; - char *cp = params; // pointer to walk along the string - enum {TAO_START, TAO_NUMBER, TAO_ARG, TAO_ERROR} state = TAO_START; - - while(*cp!='\0') - { - switch(state) - { - case TAO_START: - if(isdigit(*cp)) - state = TAO_NUMBER; - else - state = TAO_ERROR; - break; - - case TAO_NUMBER: - if((*cp)==';') - { - state = TAO_ARG; - no_of_params++; - } - else - if(!isdigit(*cp)) - state = TAO_ERROR; - break; - - case TAO_ARG: - if((*cp)==';') - { - no_of_params++; - } - break; - - case TAO_ERROR: - return -1; - // break; - - default: - ACE_ERROR_RETURN((LM_ERROR, - "CC_Client::check_extended_test_params\n"), -1); - } - cp++; - } - if (state==TAO_ERROR) // there was only one character given and it was wrong - return -1; - else - return no_of_params; -} - -int -CC_Client::run_extended_tests (char *params) -{ - int success = CC_FAIL; - int no_of_args = 0; - - ACE_DEBUG ((LM_DEBUG, - "Params: %s\n", - params)); - - no_of_args = check_extended_test_params(params); - if(no_of_args==-1) - { - ACE_ERROR_RETURN((LM_ERROR, - "Error in parameter string (%s). Format: ';;'\n", params), CC_FAIL); - } - - ACE_DEBUG((LM_DEBUG, "Number of arguments: %i\n", no_of_args)); - - char *cmd = ACE_OS::strtok (params, ";"); - char *arg1 = ACE_OS::strtok (NULL, ";"); - // char *arg2 = ACE_OS::strtok (NULL, ";"); - - // A possible scenario using test 1,2, and 3 Create and lock the - // lock set with the name 'Name' - // ./CC_client -e '1;Name' - // Try to lock the same lock set. The process will hang - // ./CC_client -e '2:Name' - // Unlocks the lock set. Now test 2 will continue. - // ./CC_client -e '3:Name' - - if (ACE_OS::strcmp (cmd, "1") == 0) - { - Test_Setup_LockSet t1 (naming_service_, arg1); - success = t1.run (); - } - - if (ACE_OS::strcmp (cmd, "2") == 0) - { - Test_Use_Already_Created_LockSet t2 (naming_service_, arg1); - success = t2.run (); - } - - if (ACE_OS::strcmp (cmd, "3") == 0) - { - Test_Unlock_Already_Created_LockSet t3 (naming_service_, arg1); - success = t3.run (); - } - - return success; -} - -void -CC_Client::print_usage (void) -{ - ACE_ERROR ((LM_ERROR, - "usage: %s" - " [-b]" - " [-c] cc-test-script" - " [-d]" - " [-f cc_factory-obj-ref-key-file]" - " [-k cc-obj-ref-key]" - " [-x]" - " [-s]" - "\n", - this->argv_ [0])); -} - -int -CC_Client::init_naming_service (void) -{ - TAO_TRY - { - ACE_NEW_RETURN (naming_service_, - CC_naming_service (this->orb_, TAO_TRY_ENV), - -1); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - return -1; - } - TAO_ENDTRY; - return 0; -} - -int -CC_Client::init (int argc, char **argv) -{ - int naming_result; - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - if (this->use_naming_service_) - { - naming_result = this->init_naming_service (); - if (naming_result < 0) - return naming_result; - } - else - { - if (this->cc_factory_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: no lock set factory key specified\n", - this->argv_[0]), - -1); - - - CORBA::Object_var factory_object = - this->orb_->string_to_object (this->cc_factory_key_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - -#if 0 - // The test cannot currently run without the naming service. - this->factory_ = - CosConcurrencyControl::LockSetFactory::_narrow - (factory_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->factory_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid factory key <%s>\n", - this->cc_factory_key_), - -1); -#endif /* 0 */ - } - - ACE_DEBUG ((LM_DEBUG, - "Factory received OK\n")); - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// This function runs the test. - -int -main (int argc, char **argv) -{ - CC_Client cc_client; - - ACE_DEBUG ((LM_DEBUG, - "\n \t CosConcurrencyControl: client \n\n")); - - if (cc_client.init (argc, argv) == -1) - { - ACE_DEBUG ((LM_DEBUG, - "Did not initialize correctly\n")); - return 1; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "Running the test\n")); - return cc_client.run (); - } -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_client.dsp b/TAO/orbsvcs/tests/Concurrency/CC_client.dsp deleted file mode 100644 index f1fc4b557ed..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_client.dsp +++ /dev/null @@ -1,141 +0,0 @@ -# Microsoft Developer Studio Project File - Name="CC_client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=CC_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 "CC_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 "CC_client.mak" CFG="CC_client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "CC_client - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "CC_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)" == "CC_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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "CC_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 "..\..\..\.." /I "..\..\.." /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "CC_client - Win32 Release" -# Name "CC_client - Win32 Debug" -# Begin Source File - -SOURCE=.\CC_client.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_client.h -# End Source File -# Begin Source File - -SOURCE=.\CC_command.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_command.h -# End Source File -# Begin Source File - -SOURCE=.\CC_command.tab.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_command.tab.h -# End Source File -# Begin Source File - -SOURCE=.\CC_naming_service.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_naming_service.h -# End Source File -# Begin Source File - -SOURCE=.\CC_test_utils.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_test_utils.h -# End Source File -# Begin Source File - -SOURCE=.\CC_tests.cpp -# End Source File -# Begin Source File - -SOURCE=.\CC_tests.h -# End Source File -# Begin Source File - -SOURCE=.\lex.CC_command.cpp -# End Source File -# Begin Source File - -SOURCE=.\tmplinst.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Concurrency/CC_client.h b/TAO/orbsvcs/tests/Concurrency/CC_client.h deleted file mode 100644 index 089b01c88ec..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_client.h +++ /dev/null @@ -1,138 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_client.h -// -// = DESCRIPTION -// This class implements a client used to test the CosConcurrency -// service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include "orbsvcs/CosNamingC.h" -#include "CC_tests.h" -#include "CC_naming_service.h" -#include "CC_command.h" -#include "CC_command.tab.h" - -#if !defined(_CC_CLIENT_H_) -#define _CC_CLIENT_H_ - -// Stuff to be used by the command file parser -int ace_cc_yyparse(void); -int line_no = 1; -char line_buf[500]; -CC_CommandList *cmdlist; -extern FILE *ace_cc_yyin; -// end of parser stuff - - -class CC_Client -{ - // = TITLE - // Defines a class that encapsulates the behaviour of a clien of - // the concurrency service. - // - // = DESCRIPTION - // This class declares an interface to run the test client for - // the concurrency service. -public: - // = Initialization and termination methods. - CC_Client (void); - // Default constructor. - - ~CC_Client (void); - // Destructor. - - int run (void); - // Run the test. - - int init (int argc, char **argv); - // Initialize the test with the parameters from the command line. - -private: - int init_naming_service (void); - // Function to initialize the naming service. - - int parse_args (void); - // Function to parse the command line arguments. - - int read_ior (char *filename); - // Function to read the ior from the given file. - - int run_basic_tests (void); - // Runs the basic tests (on a single lock set). Returns CC_SUCCESS - // upon success CC_FAIL otherwise. - - int run_extended_tests (char *params); - // Runs the extended tests (on more lock sets). Returns CC_SUCCESS - // upon success CC_FAIL otherwise. - - int check_extended_test_params(char *params); - // Checks the parameters given to the run_extended_tests() function. - // returns -1 if an error is found. - - CC_naming_service *naming_service_; - // A pointer to the naming service used for this test. - - FILE *cc_factory_ior_file_; - // File from which to obtain the IOR. - - char *cc_factory_key_; - // The factory key for the lock set factory. - - ACE_HANDLE f_handle_; - // File handle to read the IOR. - - int shutdown_; - // Flag to tell server to shutdown. - - CORBA::ORB_var orb_; - // Remember our orb. - - // CosConcurrencyControl::LockSetFactory_var factory_; - // factory pointer for the lock set. @@TAO maybe to be used when naming - // service is not used (for simple testing) - - int argc_; - // The number of arguments passed on the command line. - - char **argv_; - // The arguments from the command line. - - int use_naming_service_; - // Flag to tell the client whether to use the naming service or not - // to find the concurrency control factory. - - int run_basic_tests_; - // flag to tell which test should be run. - - int run_extended_tests_; - // flag to tell which test should be run. - - char *extended_tests_params_; - // Parameters to the extended tests. The parameters are of the - // following format: ::... - - int use_script_file_; - // Flag to tell whethter to use a script file to run the tests. - - char *script_file_; - // The script file to run - - void print_usage (void); - // Prints out the options to the program. -}; -#endif /* !defined (_CC_CLIENT_H_) */ diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.cpp b/TAO/orbsvcs/tests/Concurrency/CC_command.cpp deleted file mode 100644 index 28dcb8af982..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.cpp +++ /dev/null @@ -1,666 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// CC_command.cpp -// -// = DESCRIPTION -// This is the command classes for the test of the concurrency service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "CC_command.h" -#include "CC_test_utils.h" -#include "CC_naming_service.h" -#include "ace/ACE.h" -#include "ace/Process.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include - -CC_Command::~CC_Command(void) -{ -} - -int CC_Command::execute() -{ - return 0; -} - -CC_Command::CC_Command(void) -{ -} - -CosConcurrencyControl::LockSet_var -CC_Command::GetLockSet(char *lock_set_name, CORBA::Environment &_env) -{ - TAO_TRY - { - if(ACE_OS::strcmp(lock_set_name, "")!=0) - { - CORBA::Object_var ccls_obj = - CC_naming_service::Instance()->get_obj_from_name ("", lock_set_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosConcurrencyControl::LockSet_var ccls = - CosConcurrencyControl::LockSet::_narrow (ccls_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - return ccls; - } - else - { - // No lock set name was given. Use the global lock set. - if(cc_lockset_.in()==0) - { - TAO_TRY_ENV.clear(); - TAO_TRY_ENV.exception (new CORBA::UNKNOWN (CORBA::COMPLETED_NO)); - } - else - return cc_lockset_; - } - } - TAO_CATCHANY - { - TAO_RETHROW_RETURN(0); - } - TAO_ENDTRY; - // We should never get here - return 0; -} - -CORBA::Exception *CC_Command::excep_ = 0; - -CosConcurrencyControl::LockSet_var CC_Command::cc_lockset_(0); - -CC_Start_Cmd::CC_Start_Cmd(char *config_file_name) - : cfg_name_ (config_file_name) -{ - // printf("CC_Start_Cmd::CC_Start_Cmd: config: %s\n", config_file_name); -} - -CC_Start_Cmd::~CC_Start_Cmd() -{ - // cfg_name_ is allocated in the lexer with strdup - if(cfg_name_) - { - ACE_OS::free(cfg_name_); - cfg_name_ = 0; - } -} - -int CC_Start_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing start command (script file: %s)\n", cfg_name_); - - char cmd_line[1024]; - int success = ACE_OS::sprintf(&cmd_line[0], "%s -c %s", - "./CC_client", cfg_name_); - if(success>=1024 || success==-1) - ACE_ERROR_RETURN((LM_ERROR, "Creation of process failed: %s\n", - cmd_line), 0); - - ACE_Process new_process; - ACE_Process_Options options; - options.command_line(cmd_line); - - if(new_process.spawn(options) == -1) - { - ACE_ERROR_RETURN((LM_ERROR, "Creation of process failed: %s\n", - cmd_line), 0); - } - return 1; // CC_SUCCESS -} - -CC_CreateLockSet_Cmd::CC_CreateLockSet_Cmd(char *lock_set_name) - : name_ (lock_set_name) -{ - // printf("CC_CreateLockSet_Cmd::CC_CreateLockSet_Cmd: lock set: %s\n", - // lock_set_name); -} - -CC_CreateLockSet_Cmd::~CC_CreateLockSet_Cmd() -{ - // name_ is allocated in the lexer with strdup - if(name_) - { - ACE_OS::free(name_); - name_ = 0; - } -} - -int CC_CreateLockSet_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing create command (lock set: %s)\n", name_); - - TAO_TRY - { - CosConcurrencyControl::LockSet_ptr lock_set = - CC_TestUtils::create_lock_set(); - if(ACE_OS::strcmp(name_,"")!=0)// Do not bind an empty name - { - CC_naming_service::Instance()->bind_name(name_, - lock_set, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - else - { - // We did not specify a name => the global lock set variable is set - cc_lockset_ = lock_set; - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception("CC_CreateLockSet_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - } - TAO_ENDTRY; - - return 1; // CC_SUCCESS -} - -CC_Lock_Cmd::CC_Lock_Cmd(char *lock_set_name, - CosConcurrencyControl::lock_mode mode) - : name_(lock_set_name), mode_(mode) -{ - // printf("CC_Lock_Cmd::CC_Lock_Cmd: lock set: %s, mode: %s\n", - // lock_set_name, CC_TestUtils::get_lock_mode_name(mode)); -} - -CC_Lock_Cmd::~CC_Lock_Cmd() -{ -} - -int CC_Lock_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing lock command (lock set: %s, mode: %s)\n", - name_, CC_TestUtils::get_lock_mode_name(mode_)); - - TAO_TRY - { - CosConcurrencyControl::LockSet_var ccls = GetLockSet(name_, TAO_TRY_ENV); - TAO_CHECK_ENV; - ccls->lock (mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Lock_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - // return 0; // should be CC_FAIL - } - TAO_ENDTRY; - return 1; // CC_SUCCESS -} - -CC_UnLock_Cmd::CC_UnLock_Cmd(char *lock_set_name, - CosConcurrencyControl::lock_mode mode) - : name_(lock_set_name), mode_ (mode) -{ - // printf("CC_UnLock_Cmd::CC_UnLock_Cmd: lock set: %s, mode: %s\n", - // lock_set_name, CC_TestUtils::get_lock_mode_name(mode)); -} - -CC_UnLock_Cmd::~CC_UnLock_Cmd() -{ -} - -int CC_UnLock_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing unlock command (lock set: %s, mode: %s)\n", - name_, CC_TestUtils::get_lock_mode_name(mode_)); - - TAO_TRY - { - CosConcurrencyControl::LockSet_var ccls = GetLockSet(name_, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ccls->unlock (mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_UnLock_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - // return 0; // should be CC_FAIL - } - TAO_ENDTRY; - return 1; // CC_SUCCESS -} - -CC_TryLock_Cmd::CC_TryLock_Cmd(char *lock_set_name, - CosConcurrencyControl::lock_mode mode) - : name_ (lock_set_name), mode_ (mode) -{ - // printf("CC_TryLock_Cmd::CC_TryLock_Cmd: lock set: %s, mode %s\n", - // lock_set_name, CC_TestUtils::get_lock_mode_name(mode)); -} - -CC_TryLock_Cmd::~CC_TryLock_Cmd() -{ -} - -int CC_TryLock_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing try_lock command (lock set: %s, mode: %s)\n", - name_, CC_TestUtils::get_lock_mode_name(mode_)); - - CORBA::Boolean lock_not_held; - - TAO_TRY - { - CosConcurrencyControl::LockSet_var ccls = GetLockSet(name_, TAO_TRY_ENV); - TAO_CHECK_ENV; - - lock_not_held = ccls->try_lock (mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (lock_not_held) - { - ACE_DEBUG ((LM_DEBUG, - "%s lock not held\n", - CC_TestUtils::get_lock_mode_name (mode_))); - } - else - ACE_DEBUG ((LM_DEBUG, - "%s lock held\n", - CC_TestUtils::get_lock_mode_name (mode_))); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_TryLock_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - // return 0; // Should be CC_FAIL - } - TAO_ENDTRY; - - return 1; // CC_SUCCESS -} - -CC_ChangeMode_Cmd::CC_ChangeMode_Cmd(char *lock_set_name, - CosConcurrencyControl::lock_mode held_mode, - CosConcurrencyControl::lock_mode new_mode) - : name_(lock_set_name), held_mode_ (held_mode), new_mode_ (new_mode) -{ - // printf("CC_ChangeMode_Cmd::CC_ChangeMode_Cmd: lock set: %s, held mode: %s, new mode: %s\n", - // lock_set_name, - // CC_TestUtils::get_lock_mode_name(held_mode), - // CC_TestUtils::get_lock_mode_name(new_mode)); -} - -CC_ChangeMode_Cmd::~CC_ChangeMode_Cmd() -{ -} - -int CC_ChangeMode_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing change_mode command (lock set: %s, held_mode: %s, new_mode: %s)\n", - name_, CC_TestUtils::get_lock_mode_name(held_mode_), - CC_TestUtils::get_lock_mode_name(new_mode_)); - - TAO_TRY - { - CosConcurrencyControl::LockSet_var ccls = GetLockSet(name_, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ccls->change_mode (held_mode_, new_mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_ChangeMode_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - // return 0; // CC_FAIL - } - TAO_ENDTRY; - return 1; // CC_SUCCESS -} - -CC_Sleep_Cmd::CC_Sleep_Cmd(int seconds) - : time_ (seconds) -{ - // printf("CC_Sleep_Cmd::CC_Sleep_Cmd: time: %i\n", seconds); -} - -CC_Sleep_Cmd::~CC_Sleep_Cmd() -{ -} - -int CC_Sleep_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing sleep command (time: %i)\n", time_); - - ACE_OS::sleep(time_); - return 1; // CC_SUCCESS -} - -CC_Repeat_Cmd::CC_Repeat_Cmd(int times) - : times_ (times) -{ - // printf("CC_Repeat_Cmd::CC_Repeat_Cmd: times: %i\n", times); -} - -CC_Repeat_Cmd::~CC_Repeat_Cmd() -{ -} - -int CC_Repeat_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing repeat command (times: %i)\n", times_); - - return 1; // CC_SUCCESS -} - -CC_Wait_Cmd::CC_Wait_Cmd(char *prompt) - : prompt_ (prompt) -{ - // printf("CC_Wait_Cmd::CC_Wait_Cmd: prompt: %s\n", prompt); -} - -CC_Wait_Cmd::~CC_Wait_Cmd() -{ -} - -int CC_Wait_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing wait command\n"); - - char s[1]; - printf("%s", prompt_); - ACE_OS::gets(&s[0]); - return 1; // CC_SUCCESS -} - -CC_Excep_Cmd::CC_Excep_Cmd(char *excep) - : ex_(excep) -{ - // printf("CC_Excep_Cmd::CC_Excep_Cmd: excep: %s\n", excep); -} - -CC_Excep_Cmd::~CC_Excep_Cmd(void) -{ - if(ex_) - delete ex_; -} - -int -CC_Excep_Cmd::execute(void) -{ - printf("Executing excep command (expected: %s)\n", ex_); - // First we check to see if an exception has occured. If not we fail - // because we expected to see one - if(excep_==0) - return 0; // CC_FAIL - - // If there is an exception check that it's the expected one - if(ACE_OS::strcmp(excep_->_id(), ex_)==0) - { - delete excep_; - excep_ = 0; - return 1; // CC_SUCCESS - } - else - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } -} - -CC_Dummy_Cmd::CC_Dummy_Cmd(void) -{ -} - -CC_Dummy_Cmd::~CC_Dummy_Cmd(void) -{ -} - -int -CC_Dummy_Cmd::execute(void) -{ - return 1; // CC_SUCCESS -} - -CC_Print_Cmd::CC_Print_Cmd(char * message) - : msg_ (message) -{ -} - -CC_Print_Cmd::~CC_Print_Cmd(void) -{ - if(msg_) - { - ACE_OS::free(msg_); - msg_ = 0; - } -} - -int -CC_Print_Cmd::execute(void) -{ - printf("%s\n", msg_); - return 1; // CC_SUCCESS -} - -CC_Lookup_Cmd::CC_Lookup_Cmd(char *lock_set_name) - : name_ (lock_set_name) -{ -} - -CC_Lookup_Cmd::~CC_Lookup_Cmd() -{ - if(name_) - { - ACE_OS::free(name_); - name_ = 0; - } -} - -int -CC_Lookup_Cmd::execute(void) -{ - if(excep_) - { - printf("Exception: %s\n", excep_->_id()); - delete excep_; - excep_ = 0; - return 0; // CC_FAIL - } - - printf("Executing lookup command (lock set: %s)\n", name_); - - // Do the lookup if we haven't done it before - if(cc_lockset_.in() == 0) - { - TAO_TRY - { - CORBA::Object_var ccls_obj = - CC_naming_service::Instance()->get_obj_from_name ("", name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosConcurrencyControl::LockSet_var ccls = - CosConcurrencyControl::LockSet::_narrow (ccls_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - cc_lockset_ = ccls; - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_UnLock_Cmd::execute(void)"); - excep_ = TAO_TRY_ENV.exception(); - // return 0; // CC_FAIL - } - TAO_ENDTRY; - } - return 1; // CC_SUCCESS -} - -CC_CommandElem::CC_CommandElem(CC_Command *cmd, CC_CommandElem *next) - : next_ (next), cmd_ (cmd) -{ -} - -CC_CommandElem::~CC_CommandElem(void) -{ -} - -CC_Command *CC_CommandElem::GetCommand(void) -{ - return cmd_; -} - -CC_CommandElem * -CC_CommandElem::GetNext(void) -{ - return next_; -} - -void -CC_CommandElem::SetNext(CC_CommandElem *next) -{ - next_ = next; -} - -CC_CommandList::CC_CommandList(void) - : head_ (0), last_ (0), times_ (1) -{ - printf("CC_CommandList::CC_CommandList\n"); -} - -CC_CommandList::~CC_CommandList(void) -{ -} - -int -CC_CommandList::add(CC_Command *cmd) -{ - if(head_==0) - { - head_ = new CC_CommandElem(cmd, 0); - last_ = head_; - } - else - { - CC_CommandElem *tmp = new CC_CommandElem(cmd, 0); - last_->SetNext(tmp); - last_ = tmp; - } - return 0; -} - -int -CC_CommandList::execute(void) -{ - CC_CommandElem *current = head_; - - for(int i=0; iGetCommand()->execute()==0) // == CC_FAIL - { - return 0; // CC_FAIL - } - current = current->GetNext(); - } - } - return 1; // CC_SUCCESS -} - -void -CC_CommandList::setrepeat(int times) -{ - times_ = times; -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.h b/TAO/orbsvcs/tests/Concurrency/CC_command.h deleted file mode 100644 index e695af96a92..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.h +++ /dev/null @@ -1,471 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_command.h -// -// = DESCRIPTION -// This file implements the command possible to execute on the -// concurrency service's lock set interface. The file also contains -// an implementation of a command list used by the command parser to -// store the commands to be executed. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "orbsvcs/CosConcurrencyControlC.h" - -#ifndef _CC_COMMAND_H_ -#define _CC_COMMAND_H_ - -class CC_Command - // = TITLE - // Defines an abstact class for the commands towards the lock set - // - // = DESCRIPTION - // This class declares an interface to run a test towards one or more - // lock sets in the concurrency service. The class provides a virtual - // execute method that is common for all its subclasses. It is also the - // the base class for the auxillary commands start, wait, and sleep. -{ - public: - virtual ~CC_Command(void); - // Destructor - - virtual int execute() = 0; - // Abstract execute method - - protected: - CosConcurrencyControl::LockSet_var - GetLockSet(char *lock_set_name, CORBA::Environment &_env); - // Function to look up the lock set we are operating on, or if the - // name is "" return the global lock set variable - - CC_Command(void); - // Default constructor. We do not want instances of this class - - static CORBA::Exception *excep_; - // The last exception raised in one of the test commands. This variable - // is checked by all commands in order to determine if an exception has - // been raised. This is necessary because sometimes we want to check that - // an event caused an exception (done by the CC_Excep_Cmd command class) - // as part of the testing. - - static CosConcurrencyControl::LockSet_var cc_lockset_; - // This is the default lock set. The variable is either set by a create - // command without name or by the lookup command. - - private: -}; - -class CC_Start_Cmd:public CC_Command - // = TITLE - // Defines a class for the start command - // - // = DESCRIPTION - // This class represents the start command. The start command is used - // to start a new process with another script file in order to test the - // aspects of the concurrency service that requires several processes - // running at the same time. -{ - public: - CC_Start_Cmd(char *config_file_name); - // Constructor - - virtual ~CC_Start_Cmd(); - // Destructor - - virtual int execute(void); - // Start the child process. The current version does not wait for the - // process to terminate. - - private: - char *cfg_name_; - // The name of the script file -}; - -class CC_CreateLockSet_Cmd:public CC_Command - // = TITLE - // Defines a class for the create command on the lock set factory - // - // = DESCRIPTION - // This class represents the create command on the lock set factory. - // The lock set is registered in the naming service with the provided - // name. -{ - public: - CC_CreateLockSet_Cmd(char *lock_set_name); - // Constructor - - virtual ~CC_CreateLockSet_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. creates the lock set and binds the name - // in the naming service. - - private: - char *name_; - // The name used to bind in the naming service. -}; - -class CC_Lock_Cmd:public CC_Command - // = TITLE - // Defines a class for the lock command on the lock set - // - // = DESCRIPTION - // This class represents the lock command on the lock set. The lock set - // is looked up in the naming service. -{ - public: - CC_Lock_Cmd(char *lock_set_name, CosConcurrencyControl::lock_mode mode); - // Constructor. - - virtual ~CC_Lock_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. looks up the lock set with the requested - // name in the naming server and executes the lock command on that lock set. - - private: - char *name_; - // The name to look up in the naming service. - - CosConcurrencyControl::lock_mode mode_; - // The mode of the lock. -}; - -class CC_UnLock_Cmd:public CC_Command - // = TITLE - // Defines a class for the unlock command on the lock set - // - // = DESCRIPTION - // This class represents the unlock command on the lock set. The lock set - // is looked up in the naming service. -{ - public: - CC_UnLock_Cmd(char *lock_set_name, CosConcurrencyControl::lock_mode mode); - // Constructor. - - virtual ~CC_UnLock_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. looks up the lock set with the requested - // name in the naming server and executes the unlock command on that - // lock set. - - private: - char *name_; - // The name to look up in the naming service. - - CosConcurrencyControl::lock_mode mode_; - // The mode of the lock. -}; - -class CC_TryLock_Cmd:public CC_Command - // = TITLE - // Defines a class for the try_lock command on the lock set - // - // = DESCRIPTION - // This class represents the try_lock command on the lock set. The lock set - // is looked up in the naming service. -{ - public: - CC_TryLock_Cmd(char *lock_set_name, CosConcurrencyControl::lock_mode mode); - // Constructor - - virtual ~CC_TryLock_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. looks up the lock set with the requested - // name in the naming server and executes the try_lock command on that - // lock set. - - private: - char *name_; - // The name to look up in the naming service. - - CosConcurrencyControl::lock_mode mode_; - // The mode of the lock. -}; - -class CC_ChangeMode_Cmd:public CC_Command - // = TITLE - // Defines a class for the change_mode command on the lock set - // - // = DESCRIPTION - // This class represents the change_mode command on the lock set. - // The lock set is looked up in the naming service. -{ - public: - CC_ChangeMode_Cmd(char *lock_set_name, - CosConcurrencyControl::lock_mode held_mode, - CosConcurrencyControl::lock_mode new_mode); - // Constructor - - virtual ~CC_ChangeMode_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. looks up the lock set with the requested - // name in the naming server and executes the change_mode command on that - // lock set. - - private: - char *name_; - // The name to look up in the naming service. - - CosConcurrencyControl::lock_mode held_mode_; - // The mode of the held lock - - CosConcurrencyControl::lock_mode new_mode_; - // The new mode of the lock -}; - -class CC_Sleep_Cmd:public CC_Command - // = TITLE - // Defines a class for the sleep command - // - // = DESCRIPTION - // This class represents the sleep command. This command is used to make - // the script pause for the requested number of second, e.g. to wait for - // another process to start. -{ - public: - CC_Sleep_Cmd(int seconds); - // Constructor. - - virtual ~CC_Sleep_Cmd(); - // Destructor. - - virtual int execute(void); - // Executes the command. - - private: - int time_; - // The number of seconds to sleep -}; - -class CC_Repeat_Cmd:public CC_Command - // = TITLE - // Defines a class for the repeat command - // - // = DESCRIPTION - // This class represents the repeat command. This command is used to make - // the script repeat the test the requested number of times. - // The command is curently NOT implemented. -{ - public: - CC_Repeat_Cmd(int times); - // Constructor. - - virtual ~CC_Repeat_Cmd(); - // Destructor. - - virtual int execute(void); - // Executes the command. - private: - int times_; - // The number of times the commands should be repeated -}; - -class CC_Wait_Cmd:public CC_Command - // = TITLE - // Defines a class for the wait command - // - // = DESCRIPTION - // This class represents the wait command. This command is used to make - // the script wait for the user to press return. It is possible to print - // different prompts, e.g. instructions. -{ - public: - CC_Wait_Cmd(char *prompt); - // Constructor. - - virtual ~CC_Wait_Cmd(); - // Destructor. - - virtual int execute(void); - // Executes the command. - - private: - char *prompt_; - // The prompt to print on the screen -}; - -class CC_Excep_Cmd: public CC_Command - // = TITLE - // Defines a class for the excep command - // - // = DESCRIPTION - // This class represents the excep command. This command is used to make - // the script capable of dealing with cases where an exception is raised - // as part of the testing. -{ - public: - CC_Excep_Cmd(char *excep); - // Constructor. - - virtual ~CC_Excep_Cmd(void); - // Destructor. - - virtual int execute(void); - // Executes the command. Checks to see if the excep_ class variable is set, - // and if that's the case check that it is of the expected type. If not the - // test fails. - - private: - char *ex_; - // The string representation of the expected exception -}; - -class CC_Dummy_Cmd: public CC_Command - // = TITLE - // Defines a class for the dummy command - // - // = DESCRIPTION - // This class represents the dummy command. This command is used to - // put in a command in the chain that does nothing. -{ - public: - CC_Dummy_Cmd(void); - // Constructor. - - virtual ~CC_Dummy_Cmd(void); - // Destructor. - - virtual int execute(void); - // Executes the command, i.e. does nothing. - - private: -}; - -class CC_Print_Cmd: public CC_Command - // = TITLE - // Defines a class for the print command - // - // = DESCRIPTION - // This class represents the print command. This command is used to - // print a message on stdout -{ - public: - CC_Print_Cmd(char *message); - // Constructor. - - virtual ~CC_Print_Cmd(void); - // Destructor. - - virtual int execute(void); - // Executes the command. - - private: - char *msg_; - // Holds the message to print -}; - -class CC_Lookup_Cmd:public CC_Command - // = TITLE - // Defines a class for the lookup command. - // - // = DESCRIPTION - // This class represents the lookup command. The lock set - // is looked up in the naming service and the class variable - // cc_lockset_ is set accordingly. -{ - public: - CC_Lookup_Cmd(char *lock_set_name); - // Constructor - - virtual ~CC_Lookup_Cmd(); - // Destructor - - virtual int execute(void); - // Executes the command, i.e. looks up the lock set with the requested - // name in the naming server and sets the cc_lockset_ variable. - - private: - char *name_; - // The name to look up in the naming service. - -}; - -class CC_CommandElem - // = TITLE - // Defines a class for a command element - // - // = DESCRIPTION - // This class implements a command element used in the command list - // below. The class is a simple tupple holding a pointer to the command - // and a pointer to the next element in the list. -{ - public: - CC_CommandElem(CC_Command *cmd, CC_CommandElem *next); - // Constructor. - - ~CC_CommandElem(void); - // Destructor. - - CC_Command *GetCommand(void); - // Returns a pointer to the command in this element - - CC_CommandElem *GetNext(void); - // Returns the pointer to the next element - - void SetNext(CC_CommandElem *next); - // Sets the next pointer - - private: - CC_CommandElem *next_; - // Pointer to the next element - - CC_Command *cmd_; - // Pointer to the command element -}; - -class CC_CommandList - // = TITLE - // Defines a class for a command list - // - // = DESCRIPTION - // This class implements a command list used from the script parser - // to store the parsed commands The class implements a simple single - // linked list. -{ - public: - CC_CommandList(void); - // Constructor. - - ~CC_CommandList(void); - // Destructor. - - int add(CC_Command *cmd); - // Adds the command to the list - - int execute(void); - // Executes all the commands in the list from head to tail - - void setrepeat(int times); - // Sets the number of times to repeat the script - - private: - CC_CommandElem *head_; - // The head of the command list - - CC_CommandElem *last_; - // The last inserted element - - int times_; - // The number of times the script should be repeated -}; - -#endif /* _CC_COMMAND_H_ */ diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.l b/TAO/orbsvcs/tests/Concurrency/CC_command.l deleted file mode 100644 index 57ff98ea222..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.l +++ /dev/null @@ -1,58 +0,0 @@ -/* $id$ - * ============================================================================ - * - * = LIBRARY - * TAO/orbsvcs/tests - * - * = FILENAME - * CC_command.l - * - * = DESCRIPTION - * This is the lex file for the concurrency service script language. - * - * = AUTHORS - * Torben Worm - * - * ============================================================================ - */ -%option noyywrap nounput noinput always-interactive -%{ -#include "CC_command.h" -#include "CC_command.tab.h" -#include "ace/ACE.h" - -extern int line_no; -extern char line_buf[500]; -%} - -%% - -; return T_TERM; -start return T_START_CMD; -create return T_CREATE_CMD; -lock return T_LOCK_CMD; -unlock return T_UNLOCK_CMD; -try_lock return T_TRYLOCK_CMD; -change_mode return T_CHANGEMODE_CMD; -sleep return T_SLEEP_CMD; -wait return T_WAIT_CMD; -print return T_PRINT_CMD; -repeat return T_REPEAT_CMD; -exception return T_EXCEP_CMD; -lookup return T_LOOKUP_CMD; -read return T_READ; -intention_read return T_IREAD; -upgrade return T_UPGRADE; -write return T_WRITE; -intention_write return T_IWRITE; -\".*\" { yylval.id = ACE_OS::strdup(&yytext[1]); - yylval.id[yyleng-2]='\0'; - return Q_STRING; } -[0-9]+ { yylval.num = atoi(yytext); return T_NUM; } -[A-Za-z][A-Za-z_0-9\.:/]* { yylval.id = ACE_OS::strdup(yytext); - return T_IDENT; } -^\/\/.*\n { } -[ ]+ { } -\n.* { line_no ++; - ACE_OS::strcpy(line_buf, yytext+1); - yyless(1); } diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp b/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp deleted file mode 100644 index 3926230dd5c..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp +++ /dev/null @@ -1,866 +0,0 @@ -// $Id$ -# line 19 "CC_command.y" -#include "CC_command.h" -#include "ace/ACE.h" -#include "orbsvcs/CosConcurrencyControlC.h" - -int CC_commanderror(char *s); -int CC_commandlex(void); - -extern int line_no; -extern char line_buf[500]; -extern char *ace_cc_yytext; -extern CC_CommandList *cmdlist; - -# line 32 "CC_command.y" -typedef union -#ifdef __cplusplus - ACE_CC_YYSTYPE -#endif - { - CC_Command *command; - CosConcurrencyControl::lock_mode lock_mode; - char *id; - int num; -} ACE_CC_YYSTYPE; -# define T_START_CMD 257 -# define T_CREATE_CMD 258 -# define T_LOCK_CMD 259 -# define T_UNLOCK_CMD 260 -# define T_TRYLOCK_CMD 261 -# define T_CHANGEMODE_CMD 262 -# define T_SLEEP_CMD 263 -# define T_WAIT_CMD 264 -# define T_REPEAT_CMD 265 -# define T_EXCEP_CMD 266 -# define T_PRINT_CMD 267 -# define T_LOOKUP_CMD 268 -# define T_TERM 269 -# define T_READ 270 -# define T_IREAD 271 -# define T_UPGRADE 272 -# define T_WRITE 273 -# define T_IWRITE 274 -# define T_IDENT 275 -# define Q_STRING 276 -# define T_NUM 277 - -#ifdef __STDC__ -#include -#include -#else -#include -#include -#endif - -/* #include */ - -#ifdef __cplusplus - -#ifndef ace_cc_yyerror - void ace_cc_yyerror(const char *); -#endif - -#ifndef ace_cc_yylex -#ifdef __EXTERN_C__ - extern "C" { int ace_cc_yylex(void); } -#else - int ace_cc_yylex(void); -#endif -#endif - int ace_cc_yyparse(void); - -#endif -#define ace_cc_yyclearin ace_cc_yychar = -1 -#define ace_cc_yyerrok ace_cc_yyerrflag = 0 -extern int ace_cc_yychar; -extern int ace_cc_yyerrflag; -ACE_CC_YYSTYPE ace_cc_yylval; -ACE_CC_YYSTYPE ace_cc_yyval; -typedef int ace_cc_yytabelem; -#ifndef ACE_CC_YYMAXDEPTH -#define ACE_CC_YYMAXDEPTH 150 -#endif -#if ACE_CC_YYMAXDEPTH > 0 -int ace_cc_yy_ace_cc_yys[ACE_CC_YYMAXDEPTH], *ace_cc_yys = ace_cc_yy_ace_cc_yys; -ACE_CC_YYSTYPE ace_cc_yy_ace_cc_yyv[ACE_CC_YYMAXDEPTH], *ace_cc_yyv = ace_cc_yy_ace_cc_yyv; -#else /* user does initial allocation */ -int *ace_cc_yys; -ACE_CC_YYSTYPE *ace_cc_yyv; -#endif -static int ace_cc_yymaxdepth = ACE_CC_YYMAXDEPTH; -# define ACE_CC_YYERRCODE 256 - -# line 115 "CC_command.y" - - -int ace_cc_yyerror(char *s) -{ - printf("%d: %s at %s in:\n%s\n", - line_no, s, ace_cc_yytext, line_buf); - ACE_OS::exit(-1); - return 0; -} -ace_cc_yytabelem ace_cc_yyexca[] ={ --1, 1, - 0, -1, - -2, 0, - }; -# define ACE_CC_YYNPROD 31 -# define ACE_CC_YYLAST 102 -ace_cc_yytabelem ace_cc_yyact[]={ - - 24, 25, 26, 27, 28, 21, 4, 5, 6, 7, - 8, 9, 10, 11, 14, 15, 12, 13, 24, 25, - 26, 27, 28, 40, 36, 64, 20, 35, 38, 42, - 63, 37, 21, 21, 18, 61, 60, 59, 58, 57, - 56, 55, 54, 53, 50, 48, 46, 44, 43, 23, - 2, 3, 1, 19, 16, 41, 17, 30, 32, 34, - 22, 29, 31, 33, 0, 0, 0, 39, 0, 0, - 0, 0, 45, 0, 0, 0, 0, 0, 0, 47, - 0, 49, 0, 51, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 62 }; -ace_cc_yytabelem ace_cc_yypact[]={ - - -251,-10000000, -251,-10000000, -241, -243, -270, -270, -270, -270, - -250, -245, -248, -242, -254, -246,-10000000, -221,-10000000, -222, --10000000,-10000000, -252, -223,-10000000,-10000000,-10000000,-10000000,-10000000, -252, - -224, -252, -225, -252, -252, -226,-10000000, -227, -228, -229, - -230, -231,-10000000,-10000000,-10000000, -232,-10000000, -233,-10000000, -234, --10000000, -252, -239,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000, -244,-10000000,-10000000 }; -ace_cc_yytabelem ace_cc_yypgo[]={ - - 0, 51, 56, 53, 55, 49, 52, 50 }; -ace_cc_yytabelem ace_cc_yyr1[]={ - - 0, 6, 6, 7, 7, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 3, 4, 5, 5, 5, 5, - 5 }; -ace_cc_yytabelem ace_cc_yyr2[]={ - - 0, 0, 3, 5, 3, 7, 7, 5, 9, 7, - 9, 7, 9, 7, 11, 9, 7, 5, 7, 7, - 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, - 3 }; -ace_cc_yytabelem ace_cc_yychk[]={ - --10000000, -6, -7, -1, 257, 258, 259, 260, 261, 262, - 263, 264, 267, 268, 265, 266, -1, -2, 275, -3, - 269, 275, -3, -5, 270, 271, 272, 273, 274, -3, - -5, -3, -5, -3, -5, 277, 269, 276, 276, -3, - 277, -4, 275, 269, 269, -5, 269, -5, 269, -5, - 269, -5, -5, 269, 269, 269, 269, 269, 269, 269, - 269, 269, -5, 269, 269 }; -ace_cc_yytabelem ace_cc_yydef[]={ - - 1, -2, 2, 4, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 23, 0, - 7, 24, 0, 0, 26, 27, 28, 29, 30, 0, - 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, - 0, 0, 25, 5, 6, 0, 9, 0, 11, 0, - 13, 0, 0, 16, 18, 19, 20, 21, 22, 8, - 10, 12, 0, 15, 14 }; -typedef struct -#ifdef __cplusplus - ace_cc_yytoktype -#endif -{ char *t_name; int t_val; } ace_cc_yytoktype; -#ifndef ACE_CC_YYDEBUG -# define ACE_CC_YYDEBUG 0 /* don't allow debugging */ -#endif - -#if ACE_CC_YYDEBUG - -ace_cc_yytoktype ace_cc_yytoks[] = -{ - "T_START_CMD", 257, - "T_CREATE_CMD", 258, - "T_LOCK_CMD", 259, - "T_UNLOCK_CMD", 260, - "T_TRYLOCK_CMD", 261, - "T_CHANGEMODE_CMD", 262, - "T_SLEEP_CMD", 263, - "T_WAIT_CMD", 264, - "T_REPEAT_CMD", 265, - "T_EXCEP_CMD", 266, - "T_PRINT_CMD", 267, - "T_LOOKUP_CMD", 268, - "T_TERM", 269, - "T_READ", 270, - "T_IREAD", 271, - "T_UPGRADE", 272, - "T_WRITE", 273, - "T_IWRITE", 274, - "T_IDENT", 275, - "Q_STRING", 276, - "T_NUM", 277, - "-unknown-", -1 /* ends search */ -}; - -char * ace_cc_yyreds[] = -{ - "-no such reduction-", - "start : /* empty */", - "start : cmd_list", - "cmd_list : cmd_list cmd", - "cmd_list : cmd", - "cmd : T_START_CMD config_file_name T_TERM", - "cmd : T_CREATE_CMD lock_set_name T_TERM", - "cmd : T_CREATE_CMD T_TERM", - "cmd : T_LOCK_CMD lock_set_name lock_mode T_TERM", - "cmd : T_LOCK_CMD lock_mode T_TERM", - "cmd : T_UNLOCK_CMD lock_set_name lock_mode T_TERM", - "cmd : T_UNLOCK_CMD lock_mode T_TERM", - "cmd : T_TRYLOCK_CMD lock_set_name lock_mode T_TERM", - "cmd : T_TRYLOCK_CMD lock_mode T_TERM", - "cmd : T_CHANGEMODE_CMD lock_set_name lock_mode lock_mode T_TERM", - "cmd : T_CHANGEMODE_CMD lock_mode lock_mode T_TERM", - "cmd : T_SLEEP_CMD T_NUM T_TERM", - "cmd : T_WAIT_CMD T_TERM", - "cmd : T_WAIT_CMD Q_STRING T_TERM", - "cmd : T_PRINT_CMD Q_STRING T_TERM", - "cmd : T_LOOKUP_CMD lock_set_name T_TERM", - "cmd : T_REPEAT_CMD T_NUM T_TERM", - "cmd : T_EXCEP_CMD exception_name T_TERM", - "config_file_name : T_IDENT", - "lock_set_name : T_IDENT", - "exception_name : T_IDENT", - "lock_mode : T_READ", - "lock_mode : T_IREAD", - "lock_mode : T_UPGRADE", - "lock_mode : T_WRITE", - "lock_mode : T_IWRITE", -}; -#endif /* ACE_CC_YYDEBUG */ -# line 1 "/usr/ccs/bin/yaccpar" -/* - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - -/* #pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" */ - -/* -** Skeleton parser driver for yacc output -*/ - -/* -** yacc user known macros and defines -*/ -#define ACE_CC_YYERROR goto ace_cc_yyerrlab -#define ACE_CC_YYACCEPT return(0) -#define ACE_CC_YYABORT return(1) -#define ACE_CC_YYBACKUP( newtoken, newvalue )\ -{\ - if ( ace_cc_yychar >= 0 || ( ace_cc_yyr2[ ace_cc_yytmp ] >> 1 ) != 1 )\ - {\ - ace_cc_yyerror( "syntax error - cannot backup" );\ - goto ace_cc_yyerrlab;\ - }\ - ace_cc_yychar = newtoken;\ - ace_cc_yystate = *ace_cc_yyps;\ - ace_cc_yylval = newvalue;\ - goto ace_cc_yynewstate;\ -} -#define ACE_CC_YYRECOVERING() (!!ace_cc_yyerrflag) -#define ACE_CC_YYNEW(type) malloc(sizeof(type) * ace_cc_yynewmax) -#define ACE_CC_YYCOPY(to, from, type) \ - (type *) memcpy(to, (char *) from, ace_cc_yynewmax * sizeof(type)) -#define ACE_CC_YYENLARGE( from, type) \ - (type *) realloc((char *) from, ace_cc_yynewmax * sizeof(type)) -#ifndef ACE_CC_YYDEBUG -# define ACE_CC_YYDEBUG 1 /* make debugging available */ -#endif - -/* -** user known globals -*/ -int ace_cc_yydebug; /* set to 1 to get debugging */ - -/* -** driver internal defines -*/ -#define ACE_CC_YYFLAG (-10000000) - -/* -** global variables used by the parser -*/ -ACE_CC_YYSTYPE *ace_cc_yypv; /* top of value stack */ -int *ace_cc_yyps; /* top of state stack */ - -int ace_cc_yystate; /* current state */ -int ace_cc_yytmp; /* extra var (lasts between blocks) */ - -int ace_cc_yynerrs; /* number of errors */ -int ace_cc_yyerrflag; /* error recovery flag */ -int ace_cc_yychar; /* current input token number */ - - - -#ifdef ACE_CC_YYNMBCHARS -#define ACE_CC_YYLEX() ace_cc_yycvtok(ace_cc_yylex()) -/* -** ace_cc_yycvtok - return a token if i is a wchar_t value that exceeds 255. -** If i<255, i itself is the token. If i>255 but the neither -** of the 30th or 31st bit is on, i is already a token. -*/ -#if defined(__STDC__) || defined(__cplusplus) -int ace_cc_yycvtok(int i) -#else -int ace_cc_yycvtok(i) int i; -#endif -{ - int first = 0; - int last = ACE_CC_YYNMBCHARS - 1; - int mid; - wchar_t j; - - if(i&0x60000000){/*Must convert to a token. */ - if( ace_cc_yymbchars[last].character < i ){ - return i;/*Giving up*/ - } - while ((last>=first)&&(first>=0)) {/*Binary search loop*/ - mid = (first+last)/2; - j = ace_cc_yymbchars[mid].character; - if( j==i ){/*Found*/ - return ace_cc_yymbchars[mid].tvalue; - }else if( j= 0; - ace_cc_yy_i++ ) - { - if ( ace_cc_yytoks[ace_cc_yy_i].t_val == ace_cc_yychar ) - break; - } - printf( "%s\n", ace_cc_yytoks[ace_cc_yy_i].t_name ); - } - } -#endif /* ACE_CC_YYDEBUG */ - if ( ++ace_cc_yy_ps >= &ace_cc_yys[ ace_cc_yymaxdepth ] ) /* room on stack? */ - { - /* - ** reallocate and recover. Note that pointers - ** have to be reset, or bad things will happen - */ - int ace_cc_yyps_index = (ace_cc_yy_ps - ace_cc_yys); - int ace_cc_yypv_index = (ace_cc_yy_pv - ace_cc_yyv); - int ace_cc_yypvt_index = (ace_cc_yypvt - ace_cc_yyv); - int ace_cc_yynewmax; -#ifdef ACE_CC_YYEXPAND - ace_cc_yynewmax = ACE_CC_YYEXPAND(ace_cc_yymaxdepth); -#else - ace_cc_yynewmax = 2 * ace_cc_yymaxdepth; /* double table size */ - if (ace_cc_yymaxdepth == ACE_CC_YYMAXDEPTH) /* first time growth */ - { - char *newace_cc_yys = (char *)ACE_CC_YYNEW(int); - char *newace_cc_yyv = (char *)ACE_CC_YYNEW(ACE_CC_YYSTYPE); - if (newace_cc_yys != 0 && newace_cc_yyv != 0) - { - ace_cc_yys = ACE_CC_YYCOPY(newace_cc_yys, ace_cc_yys, int); - ace_cc_yyv = ACE_CC_YYCOPY(newace_cc_yyv, ace_cc_yyv, ACE_CC_YYSTYPE); - } - else - ace_cc_yynewmax = 0; /* failed */ - } - else /* not first time */ - { - ace_cc_yys = ACE_CC_YYENLARGE(ace_cc_yys, int); - ace_cc_yyv = ACE_CC_YYENLARGE(ace_cc_yyv, ACE_CC_YYSTYPE); - if (ace_cc_yys == 0 || ace_cc_yyv == 0) - ace_cc_yynewmax = 0; /* failed */ - } -#endif - if (ace_cc_yynewmax <= ace_cc_yymaxdepth) /* tables not expanded */ - { - ace_cc_yyerror( "yacc stack overflow" ); - ACE_CC_YYABORT; - } - ace_cc_yymaxdepth = ace_cc_yynewmax; - - ace_cc_yy_ps = ace_cc_yys + ace_cc_yyps_index; - ace_cc_yy_pv = ace_cc_yyv + ace_cc_yypv_index; - ace_cc_yypvt = ace_cc_yyv + ace_cc_yypvt_index; - } - *ace_cc_yy_ps = ace_cc_yy_state; - *++ace_cc_yy_pv = ace_cc_yyval; - - /* - ** we have a new state - find out what to do - */ - ace_cc_yy_newstate: - if ( ( ace_cc_yy_n = ace_cc_yypact[ ace_cc_yy_state ] ) <= ACE_CC_YYFLAG ) - goto ace_cc_yydefault; /* simple state */ -#if ACE_CC_YYDEBUG - /* - ** if debugging, need to mark whether new token grabbed - */ - ace_cc_yytmp = ace_cc_yychar < 0; -#endif - if ( ( ace_cc_yychar < 0 ) && ( ( ace_cc_yychar = ACE_CC_YYLEX() ) < 0 ) ) - ace_cc_yychar = 0; /* reached EOF */ -#if ACE_CC_YYDEBUG - if ( ace_cc_yydebug && ace_cc_yytmp ) - { - register int ace_cc_yy_i; - - printf( "Received token " ); - if ( ace_cc_yychar == 0 ) - printf( "end-of-file\n" ); - else if ( ace_cc_yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( ace_cc_yy_i = 0; ace_cc_yytoks[ace_cc_yy_i].t_val >= 0; - ace_cc_yy_i++ ) - { - if ( ace_cc_yytoks[ace_cc_yy_i].t_val == ace_cc_yychar ) - break; - } - printf( "%s\n", ace_cc_yytoks[ace_cc_yy_i].t_name ); - } - } -#endif /* ACE_CC_YYDEBUG */ - if ( ( ( ace_cc_yy_n += ace_cc_yychar ) < 0 ) || ( ace_cc_yy_n >= ACE_CC_YYLAST ) ) - goto ace_cc_yydefault; - if ( ace_cc_yychk[ ace_cc_yy_n = ace_cc_yyact[ ace_cc_yy_n ] ] == ace_cc_yychar ) /*valid shift*/ - { - ace_cc_yychar = -1; - ace_cc_yyval = ace_cc_yylval; - ace_cc_yy_state = ace_cc_yy_n; - if ( ace_cc_yyerrflag > 0 ) - ace_cc_yyerrflag--; - goto ace_cc_yy_stack; - } - - ace_cc_yydefault: - if ( ( ace_cc_yy_n = ace_cc_yydef[ ace_cc_yy_state ] ) == -2 ) - { -#if ACE_CC_YYDEBUG - ace_cc_yytmp = ace_cc_yychar < 0; -#endif - if ( ( ace_cc_yychar < 0 ) && ( ( ace_cc_yychar = ACE_CC_YYLEX() ) < 0 ) ) - ace_cc_yychar = 0; /* reached EOF */ -#if ACE_CC_YYDEBUG - if ( ace_cc_yydebug && ace_cc_yytmp ) - { - register int ace_cc_yy_i; - - printf( "Received token " ); - if ( ace_cc_yychar == 0 ) - printf( "end-of-file\n" ); - else if ( ace_cc_yychar < 0 ) - printf( "-none-\n" ); - else - { - for ( ace_cc_yy_i = 0; - ace_cc_yytoks[ace_cc_yy_i].t_val >= 0; - ace_cc_yy_i++ ) - { - if ( ace_cc_yytoks[ace_cc_yy_i].t_val - == ace_cc_yychar ) - { - break; - } - } - printf( "%s\n", ace_cc_yytoks[ace_cc_yy_i].t_name ); - } - } -#endif /* ACE_CC_YYDEBUG */ - /* - ** look through exception table - */ - { - register int *ace_cc_yyxi = ace_cc_yyexca; - - while ( ( *ace_cc_yyxi != -1 ) || - ( ace_cc_yyxi[1] != ace_cc_yy_state ) ) - { - ace_cc_yyxi += 2; - } - while ( ( *(ace_cc_yyxi += 2) >= 0 ) && - ( *ace_cc_yyxi != ace_cc_yychar ) ) - ; - if ( ( ace_cc_yy_n = ace_cc_yyxi[1] ) < 0 ) - ACE_CC_YYACCEPT; - } - } - - /* - ** check for syntax error - */ - if ( ace_cc_yy_n == 0 ) /* have an error */ - { - /* no worry about speed here! */ - switch ( ace_cc_yyerrflag ) - { - case 0: /* new error */ - ace_cc_yyerror( "syntax error" ); - goto skip_init; - ace_cc_yyerrlab: - /* - ** get globals into registers. - ** we have a user generated syntax type error - */ - ace_cc_yy_pv = ace_cc_yypv; - ace_cc_yy_ps = ace_cc_yyps; - ace_cc_yy_state = ace_cc_yystate; - skip_init: - ace_cc_yynerrs++; - /* FALLTHRU */ - case 1: - case 2: /* incompletely recovered error */ - /* try again... */ - ace_cc_yyerrflag = 3; - /* - ** find state where "error" is a legal - ** shift action - */ - while ( ace_cc_yy_ps >= ace_cc_yys ) - { - ace_cc_yy_n = ace_cc_yypact[ *ace_cc_yy_ps ] + ACE_CC_YYERRCODE; - if ( ace_cc_yy_n >= 0 && ace_cc_yy_n < ACE_CC_YYLAST && - ace_cc_yychk[ace_cc_yyact[ace_cc_yy_n]] == ACE_CC_YYERRCODE) { - /* - ** simulate shift of "error" - */ - ace_cc_yy_state = ace_cc_yyact[ ace_cc_yy_n ]; - goto ace_cc_yy_stack; - } - /* - ** current state has no shift on - ** "error", pop stack - */ -#if ACE_CC_YYDEBUG -# define _POP_ "Error recovery pops state %d, uncovers state %d\n" - if ( ace_cc_yydebug ) - printf( _POP_, *ace_cc_yy_ps, - ace_cc_yy_ps[-1] ); -# undef _POP_ -#endif - ace_cc_yy_ps--; - ace_cc_yy_pv--; - } - /* - ** there is no state on stack with "error" as - ** a valid shift. give up. - */ - ACE_CC_YYABORT; - case 3: /* no shift yet; eat a token */ -#if ACE_CC_YYDEBUG - /* - ** if debugging, look up token in list of - ** pairs. 0 and negative shouldn't occur, - ** but since timing doesn't matter when - ** debugging, it doesn't hurt to leave the - ** tests here. - */ - if ( ace_cc_yydebug ) - { - register int ace_cc_yy_i; - - printf( "Error recovery discards " ); - if ( ace_cc_yychar == 0 ) - printf( "token end-of-file\n" ); - else if ( ace_cc_yychar < 0 ) - printf( "token -none-\n" ); - else - { - for ( ace_cc_yy_i = 0; - ace_cc_yytoks[ace_cc_yy_i].t_val >= 0; - ace_cc_yy_i++ ) - { - if ( ace_cc_yytoks[ace_cc_yy_i].t_val - == ace_cc_yychar ) - { - break; - } - } - printf( "token %s\n", - ace_cc_yytoks[ace_cc_yy_i].t_name ); - } - } -#endif /* ACE_CC_YYDEBUG */ - if ( ace_cc_yychar == 0 ) /* reached EOF. quit */ - ACE_CC_YYABORT; - ace_cc_yychar = -1; - goto ace_cc_yy_newstate; - } - }/* end if ( ace_cc_yy_n == 0 ) */ - /* - ** reduction by production ace_cc_yy_n - ** put stack tops, etc. so things right after switch - */ -#if ACE_CC_YYDEBUG - /* - ** if debugging, print the string that is the user's - ** specification of the reduction which is just about - ** to be done. - */ - if ( ace_cc_yydebug ) - printf( "Reduce by (%d) \"%s\"\n", - ace_cc_yy_n, ace_cc_yyreds[ ace_cc_yy_n ] ); -#endif - ace_cc_yytmp = ace_cc_yy_n; /* value to switch over */ - ace_cc_yypvt = ace_cc_yy_pv; /* $vars top of value stack */ - /* - ** Look in goto table for next state - ** Sorry about using ace_cc_yy_state here as temporary - ** register variable, but why not, if it works... - ** If ace_cc_yyr2[ ace_cc_yy_n ] doesn't have the low order bit - ** set, then there is no action to be done for - ** this reduction. So, no saving & unsaving of - ** registers done. The only difference between the - ** code just after the if and the body of the if is - ** the goto ace_cc_yy_stack in the body. This way the test - ** can be made before the choice of what to do is needed. - */ - { - /* length of production doubled with extra bit */ - register int ace_cc_yy_len = ace_cc_yyr2[ ace_cc_yy_n ]; - - if ( !( ace_cc_yy_len & 01 ) ) - { - ace_cc_yy_len >>= 1; - ace_cc_yyval = ( ace_cc_yy_pv -= ace_cc_yy_len )[1]; /* $$ = $1 */ - ace_cc_yy_state = ace_cc_yypgo[ ace_cc_yy_n = ace_cc_yyr1[ ace_cc_yy_n ] ] + - *( ace_cc_yy_ps -= ace_cc_yy_len ) + 1; - if ( ace_cc_yy_state >= ACE_CC_YYLAST || - ace_cc_yychk[ ace_cc_yy_state = - ace_cc_yyact[ ace_cc_yy_state ] ] != -ace_cc_yy_n ) - { - ace_cc_yy_state = ace_cc_yyact[ ace_cc_yypgo[ ace_cc_yy_n ] ]; - } - goto ace_cc_yy_stack; - } - ace_cc_yy_len >>= 1; - ace_cc_yyval = ( ace_cc_yy_pv -= ace_cc_yy_len )[1]; /* $$ = $1 */ - ace_cc_yy_state = ace_cc_yypgo[ ace_cc_yy_n = ace_cc_yyr1[ ace_cc_yy_n ] ] + - *( ace_cc_yy_ps -= ace_cc_yy_len ) + 1; - if ( ace_cc_yy_state >= ACE_CC_YYLAST || - ace_cc_yychk[ ace_cc_yy_state = ace_cc_yyact[ ace_cc_yy_state ] ] != -ace_cc_yy_n ) - { - ace_cc_yy_state = ace_cc_yyact[ ace_cc_yypgo[ ace_cc_yy_n ] ]; - } - } - /* save until reenter driver code */ - ace_cc_yystate = ace_cc_yy_state; - ace_cc_yyps = ace_cc_yy_ps; - ace_cc_yypv = ace_cc_yy_pv; - } - /* - ** code supplied by user is placed in this switch - */ - switch( ace_cc_yytmp ) - { - -case 2: -# line 52 "CC_command.y" -{ cmdlist->add(new CC_Sleep_Cmd(0)); - /* dummy to check exeption in the last command */ - if(cmdlist->execute()!=0) //CC_FAIL - { printf(" ** Test succeded!!\n"); } - else - { printf(" ** Test FAILED!!\n"); } } break; -case 3: -# line 60 "CC_command.y" -{ cmdlist->add(ace_cc_yypvt[-0].command); } break; -case 4: -# line 61 "CC_command.y" -{ cmdlist->add(ace_cc_yypvt[-0].command); } break; -case 5: -# line 65 "CC_command.y" -{ ace_cc_yyval.command = new CC_Start_Cmd(ace_cc_yypvt[-1].id); } break; -case 6: -# line 67 "CC_command.y" -{ ace_cc_yyval.command = new CC_CreateLockSet_Cmd(ace_cc_yypvt[-1].id); } break; -case 7: -# line 69 "CC_command.y" -{ ace_cc_yyval.command = new CC_CreateLockSet_Cmd(""); } break; -case 8: -# line 71 "CC_command.y" -{ ace_cc_yyval.command = new CC_Lock_Cmd(ace_cc_yypvt[-2].id, ace_cc_yypvt[-1].lock_mode); } break; -case 9: -# line 73 "CC_command.y" -{ ace_cc_yyval.command = new CC_Lock_Cmd("", ace_cc_yypvt[-1].lock_mode); } break; -case 10: -# line 75 "CC_command.y" -{ ace_cc_yyval.command = new CC_UnLock_Cmd(ace_cc_yypvt[-2].id, ace_cc_yypvt[-1].lock_mode); } break; -case 11: -# line 77 "CC_command.y" -{ ace_cc_yyval.command = new CC_UnLock_Cmd("", ace_cc_yypvt[-1].lock_mode); } break; -case 12: -# line 79 "CC_command.y" -{ ace_cc_yyval.command = new CC_TryLock_Cmd(ace_cc_yypvt[-2].id, ace_cc_yypvt[-1].lock_mode); } break; -case 13: -# line 81 "CC_command.y" -{ ace_cc_yyval.command = new CC_TryLock_Cmd("", ace_cc_yypvt[-1].lock_mode); } break; -case 14: -# line 83 "CC_command.y" -{ ace_cc_yyval.command = new CC_ChangeMode_Cmd(ace_cc_yypvt[-3].id, ace_cc_yypvt[-2].lock_mode, ace_cc_yypvt[-1].lock_mode); } break; -case 15: -# line 85 "CC_command.y" -{ ace_cc_yyval.command = new CC_ChangeMode_Cmd("", ace_cc_yypvt[-2].lock_mode, ace_cc_yypvt[-1].lock_mode); } break; -case 16: -# line 87 "CC_command.y" -{ ace_cc_yyval.command = new CC_Sleep_Cmd(ace_cc_yypvt[-1].num); } break; -case 17: -# line 89 "CC_command.y" -{ ace_cc_yyval.command = new CC_Wait_Cmd(""); } break; -case 18: -# line 91 "CC_command.y" -{ ace_cc_yyval.command = new CC_Wait_Cmd(ace_cc_yypvt[-1].id); } break; -case 19: -# line 93 "CC_command.y" -{ ace_cc_yyval.command = new CC_Print_Cmd(ace_cc_yypvt[-1].id); } break; -case 20: -# line 95 "CC_command.y" -{ ace_cc_yyval.command = new CC_Lookup_Cmd(ace_cc_yypvt[-1].id); } break; -case 21: -# line 97 "CC_command.y" -{ cmdlist->setrepeat(ace_cc_yypvt[-1].num); - ace_cc_yyval.command = new CC_Dummy_Cmd();} break; -case 22: -# line 100 "CC_command.y" -{ ace_cc_yyval.command = new CC_Excep_Cmd(ace_cc_yypvt[-1].id); } break; -case 23: -# line 103 "CC_command.y" -{ace_cc_yyval.id = ace_cc_yypvt[-0].id; } break; -case 24: -# line 105 "CC_command.y" -{ace_cc_yyval.id = ace_cc_yypvt[-0].id; } break; -case 25: -# line 107 "CC_command.y" -{ace_cc_yyval.id = ace_cc_yypvt[-0].id; } break; -case 26: -# line 109 "CC_command.y" -{ ace_cc_yyval.lock_mode = CosConcurrencyControl::read; } break; -case 27: -# line 110 "CC_command.y" -{ ace_cc_yyval.lock_mode = CosConcurrencyControl::intention_read; } break; -case 28: -# line 111 "CC_command.y" -{ ace_cc_yyval.lock_mode = CosConcurrencyControl::upgrade; } break; -case 29: -# line 112 "CC_command.y" -{ ace_cc_yyval.lock_mode = CosConcurrencyControl::write; } break; -case 30: -# line 113 "CC_command.y" -{ ace_cc_yyval.lock_mode = CosConcurrencyControl::intention_write; } break; -# line 532 "/usr/ccs/bin/yaccpar" - } - goto ace_cc_yystack; /* reset registers in driver code */ -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp.diff b/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp.diff deleted file mode 100644 index 786b68a9afb..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.cpp.diff +++ /dev/null @@ -1,58 +0,0 @@ ---- CC_command.tab.cpp.orig Thu Jun 18 11:32:19 1998 -+++ CC_command.tab.cpp Thu Jun 18 11:31:03 1998 -@@ -1,4 +1,4 @@ -- -+// $Id$ - # line 19 "CC_command.y" - #include "CC_command.h" - #include "ace/ACE.h" -@@ -53,7 +53,7 @@ - #include - #endif - --#include -+/* #include */ - - #ifdef __cplusplus - -@@ -240,7 +240,7 @@ - * Copyright (c) 1993 by Sun Microsystems, Inc. - */ - --#pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" -+/* #pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" */ - - /* - ** Skeleton parser driver for yacc output -@@ -303,7 +303,7 @@ - #define ACE_CC_YYLEX() ace_cc_yycvtok(ace_cc_yylex()) - /* - ** ace_cc_yycvtok - return a token if i is a wchar_t value that exceeds 255. --** If i<255, i itself is the token. If i>255 but the neither -+** If i<255, i itself is the token. If i>255 but the neither - ** of the 30th or 31st bit is on, i is already a token. - */ - #if defined(__STDC__) || defined(__cplusplus) -@@ -324,7 +324,7 @@ - while ((last>=first)&&(first>=0)) {/*Binary search loop*/ - mid = (first+last)/2; - j = ace_cc_yymbchars[mid].character; -- if( j==i ){/*Found*/ -+ if( j==i ){/*Found*/ - return ace_cc_yymbchars[mid].tvalue; - }else if( jadd(new CC_Sleep_Cmd(0)); -@@ -864,4 +864,3 @@ - } - goto ace_cc_yystack; /* reset registers in driver code */ - } -- diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.h b/TAO/orbsvcs/tests/Concurrency/CC_command.tab.h deleted file mode 100644 index 045368d0674..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.tab.h +++ /dev/null @@ -1,33 +0,0 @@ -// $Id$ -typedef union -#ifdef __cplusplus - ACE_CC_YYSTYPE -#endif - { - CC_Command *command; - CosConcurrencyControl::lock_mode lock_mode; - char *id; - int num; -} ACE_CC_YYSTYPE; -extern ACE_CC_YYSTYPE ace_cc_yylval; -# define T_START_CMD 257 -# define T_CREATE_CMD 258 -# define T_LOCK_CMD 259 -# define T_UNLOCK_CMD 260 -# define T_TRYLOCK_CMD 261 -# define T_CHANGEMODE_CMD 262 -# define T_SLEEP_CMD 263 -# define T_WAIT_CMD 264 -# define T_REPEAT_CMD 265 -# define T_EXCEP_CMD 266 -# define T_PRINT_CMD 267 -# define T_LOOKUP_CMD 268 -# define T_TERM 269 -# define T_READ 270 -# define T_IREAD 271 -# define T_UPGRADE 272 -# define T_WRITE 273 -# define T_IWRITE 274 -# define T_IDENT 275 -# define Q_STRING 276 -# define T_NUM 277 diff --git a/TAO/orbsvcs/tests/Concurrency/CC_command.y b/TAO/orbsvcs/tests/Concurrency/CC_command.y deleted file mode 100644 index f12c4ee258a..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_command.y +++ /dev/null @@ -1,123 +0,0 @@ -/* $id$ - * ============================================================================ - * - * = LIBRARY - * TAO/orbsvcs/tests - * - * = FILENAME - * CC_command.y - * - * = DESCRIPTION - * This is the yacc file for the concurrency service script language. - * - * = AUTHORS - * Torben Worm - * - * ============================================================================ - */ -%{ -#include "CC_command.h" -#include "ace/ACE.h" -#include "orbsvcs/CosConcurrencyControlC.h" - -int CC_commanderror(char *s); -int CC_commandlex(void); - -extern int line_no; -extern char line_buf[500]; -extern char *yytext; -extern CC_CommandList *cmdlist; -%} - -%union { - CC_Command *command; - CosConcurrencyControl::lock_mode lock_mode; - char *id; - int num; -} - -%token T_START_CMD T_CREATE_CMD T_LOCK_CMD T_UNLOCK_CMD T_TRYLOCK_CMD -%token T_CHANGEMODE_CMD T_SLEEP_CMD T_WAIT_CMD T_REPEAT_CMD T_EXCEP_CMD -%token T_PRINT_CMD T_LOOKUP_CMD T_TERM -%token T_READ T_IREAD T_UPGRADE T_WRITE T_IWRITE -%token T_IDENT Q_STRING -%token T_NUM - -%type cmd -%type config_file_name lock_set_name exception_name -%type lock_mode - -%% -start: /* empty */ - | cmd_list { cmdlist->add(new CC_Sleep_Cmd(0)); - /* dummy to check exeption in the last command */ - if(cmdlist->execute()!=0) //CC_FAIL - { printf(" ** Test succeded!!\n"); } - else - { printf(" ** Test FAILED!!\n"); } } - ; - -cmd_list: cmd_list cmd { cmdlist->add($2); } - | cmd { cmdlist->add($1); } - ; - -cmd: T_START_CMD config_file_name T_TERM - { $$ = new CC_Start_Cmd($2); } - | T_CREATE_CMD lock_set_name T_TERM - { $$ = new CC_CreateLockSet_Cmd($2); } - | T_CREATE_CMD T_TERM - { $$ = new CC_CreateLockSet_Cmd(""); } - | T_LOCK_CMD lock_set_name lock_mode T_TERM - { $$ = new CC_Lock_Cmd($2, $3); } - | T_LOCK_CMD lock_mode T_TERM - { $$ = new CC_Lock_Cmd("", $2); } - | T_UNLOCK_CMD lock_set_name lock_mode T_TERM - { $$ = new CC_UnLock_Cmd($2, $3); } - | T_UNLOCK_CMD lock_mode T_TERM - { $$ = new CC_UnLock_Cmd("", $2); } - | T_TRYLOCK_CMD lock_set_name lock_mode T_TERM - { $$ = new CC_TryLock_Cmd($2, $3); } - | T_TRYLOCK_CMD lock_mode T_TERM - { $$ = new CC_TryLock_Cmd("", $2); } - | T_CHANGEMODE_CMD lock_set_name lock_mode lock_mode T_TERM - { $$ = new CC_ChangeMode_Cmd($2, $3, $4); } - | T_CHANGEMODE_CMD lock_mode lock_mode T_TERM - { $$ = new CC_ChangeMode_Cmd("", $2, $3); } - | T_SLEEP_CMD T_NUM T_TERM - { $$ = new CC_Sleep_Cmd($2); } - | T_WAIT_CMD T_TERM - { $$ = new CC_Wait_Cmd(""); } - | T_WAIT_CMD Q_STRING T_TERM - { $$ = new CC_Wait_Cmd($2); } - | T_PRINT_CMD Q_STRING T_TERM - { $$ = new CC_Print_Cmd($2); } - | T_LOOKUP_CMD lock_set_name T_TERM - { $$ = new CC_Lookup_Cmd($2); } - | T_REPEAT_CMD T_NUM T_TERM - { cmdlist->setrepeat($2); - $$ = new CC_Dummy_Cmd();} - | T_EXCEP_CMD exception_name T_TERM - { $$ = new CC_Excep_Cmd($2); } - ; - -config_file_name: T_IDENT {$$ = $1; } - -lock_set_name: T_IDENT {$$ = $1; } - -exception_name: T_IDENT {$$ = $1; } - -lock_mode: T_READ { $$ = CosConcurrencyControl::read; } - | T_IREAD { $$ = CosConcurrencyControl::intention_read; } - | T_UPGRADE { $$ = CosConcurrencyControl::upgrade; } - | T_WRITE { $$ = CosConcurrencyControl::write; } - | T_IWRITE { $$ = CosConcurrencyControl::intention_write; } - -%% - -int yyerror(char *s) -{ - printf("%d: %s at %s in:\n%s\n", - line_no, s, yytext, line_buf); - ACE_OS::exit(-1); - return 0; -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_naming_service.cpp b/TAO/orbsvcs/tests/Concurrency/CC_naming_service.cpp deleted file mode 100644 index 0d38eee189f..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_naming_service.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_naming_service.cpp -// -// = DESCRIPTION -// This class implements the naming services necessary to test the -// concurrency service -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "CC_naming_service.h" - -CC_naming_service::CC_naming_service (CORBA::ORB_var orb, CORBA::Environment &_env) - : naming_context_ (0), - cc_factory_key_ (0), - orb_ (0), - factory_ (0) -{ - this->Init(orb, _env); - instance_ = this; -} - -CC_naming_service::CC_naming_service(void) - : naming_context_ (0), - cc_factory_key_ (0), - orb_ (0), - factory_ (0) -{ -} - -void -CC_naming_service::Init(CORBA::ORB_var orb, CORBA::Environment &_env) -{ - this->orb_ = orb; - - int success = init_naming_service (); - if(success<0) - TAO_THROW (CORBA::INTERNAL (CORBA::COMPLETED_NO)); -} - -CC_naming_service::~CC_naming_service (void) -{ - // if(instance_!=0) - // delete instance_; - // @TAO somthing went wrong when these lines were uncommented -} - -CC_naming_service * -CC_naming_service::Instance(void) -{ - if(instance_ == 0) - { - instance_ = new CC_naming_service(); - } - return instance_; -} - -CORBA::Object_var -CC_naming_service::get_obj_from_name (char *c_name, char *name, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, "C: %s, N: %s\n", c_name, name)); - CORBA::Object_var obj; - - TAO_TRY - { - if (ACE_OS::strlen (c_name) == 0) - { - CosNaming::Name ns_name (1); - ns_name.length (1); - ns_name[0].id = CORBA::string_dup (name); - obj = naming_context_->resolve (ns_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - else - { - CosNaming::Name ns_name (2); - ns_name.length (2); - ns_name[0].id = CORBA::string_dup (c_name); - ns_name[1].id = CORBA::string_dup (name); - obj = naming_context_->resolve (ns_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::get_obj_from_name (...)"); - return 0; - } - TAO_ENDTRY; - - return obj; -} - -void -CC_naming_service::bind_name (char *n, - CORBA::Object_ptr obj, - CORBA::Environment &_env) -{ - ACE_DEBUG ((LM_DEBUG, "CC_Client::bind_name\n")); - - TAO_TRY - { - CosNaming::Name ns_name (1); - ns_name.length (1); - ns_name[0].id = CORBA::string_dup (n); - naming_context_->bind (ns_name, - obj, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::bind_name (...)"); - } - TAO_ENDTRY; -} - -CosConcurrencyControl::LockSetFactory_var -CC_naming_service::get_lock_set_factory (void) -{ - return this->factory_; -} - -int -CC_naming_service::init_naming_service (void) -{ - TAO_TRY - { - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var factory_obj = get_obj_from_name ("CosConcurrency", - "LockSetFactory", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->factory_ = - CosConcurrencyControl::LockSetFactory::_narrow - (factory_obj.in (),TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->factory_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve lock set factory in Naming service\n"), - -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::init_naming_service"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -CC_naming_service* CC_naming_service::instance_ = 0; diff --git a/TAO/orbsvcs/tests/Concurrency/CC_naming_service.h b/TAO/orbsvcs/tests/Concurrency/CC_naming_service.h deleted file mode 100644 index f040a7786db..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_naming_service.h +++ /dev/null @@ -1,86 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_naming_service.h -// -// = DESCRIPTION -// This class implements the naming services necessary to test the -// concurrency service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "tao/corba.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include "orbsvcs/CosNamingC.h" - -#if !defined (_CC_NAMING_SERVICE_H_) -#define _CC_NAMING_SERVICE_H_ - -class CC_naming_service -{ - // = TITLE - // Defines a class that encapsulates the necessary naming service - // functions for the concurrency service. - // - // = DESCRIPTION - // This class declares an interface to the naming service for the - // concurrency service tests. -public: - CC_naming_service (); - // Default constructor - - CC_naming_service (CORBA::ORB_var orb_, CORBA::Environment &_env); - // Constructor - - ~CC_naming_service (void); - // Default destructor. - - void Init (CORBA::ORB_var orb_, CORBA::Environment &_env); - // Initialization method must be called after first call of Instance() - // in order to initialize the object correctly - - CORBA::Object_var get_obj_from_name (char *c_name, char *name, - CORBA::Environment &_env); - // Lookup a name in the naming service (context, name) - - void - bind_name (char *n, - CORBA::Object_ptr obj, - CORBA::Environment &_env); - // Bind a name in the concurrency context. - - CosConcurrencyControl::LockSetFactory_var get_lock_set_factory (void); - // Gets the cc lock set factory which is common for all tests. - - static CC_naming_service *Instance(void); - // The naming service object is a singleton - -private: - int init_naming_service (void); - // Function to initialize the naming service. - - CosNaming::NamingContext_var naming_context_; - // Naming service object for this object. - - char *cc_factory_key_; - // Key of factory obj ref. - - CORBA::ORB_var orb_; - // Remember our orb. - - CosConcurrencyControl::LockSetFactory_var factory_; - // factory pointer for the lock set. - - static CC_naming_service *instance_; - // The instance of the naming service object -}; -#endif /* !defined (_CC_NAMING_SERVICE_H_) */ diff --git a/TAO/orbsvcs/tests/Concurrency/CC_test_utils.cpp b/TAO/orbsvcs/tests/Concurrency/CC_test_utils.cpp deleted file mode 100644 index c2939ed9bcc..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_test_utils.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// CC_test_utils.cpp -// -// = DESCRIPTION -// This class provides a namespace for utility functions for the -// concurrency service test. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "CC_test_utils.h" -#include "CC_naming_service.h" - - -char *CC_TestUtils::get_lock_mode_name (CosConcurrencyControl::lock_mode mode) -{ - if (mode==CosConcurrencyControl::read) - return "read"; - - if (mode==CosConcurrencyControl::write) - return "write"; - - if (mode==CosConcurrencyControl::upgrade) - return "upgrade"; - - if (mode==CosConcurrencyControl::intention_read) - return "intention_read"; - - if (mode==CosConcurrencyControl::intention_write) - return "intention_write"; - - return "unknown lock mode"; -} - -CosConcurrencyControl::LockSet_ptr -CC_TestUtils::create_lock_set (void) -{ - // Create the lock set and return an obj ref corresponding to the - // key. - CosConcurrencyControl::LockSet_ptr lock_set(0); - - TAO_TRY - { - lock_set = - CC_naming_service::Instance()->get_lock_set_factory ()->create (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (lock_set)) - ACE_ERROR_RETURN ((LM_ERROR, - "null lock set objref returned by factory\n"), - 0); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::create_lock_set"); - return 0; - } - TAO_ENDTRY; - return lock_set; -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_test_utils.h b/TAO/orbsvcs/tests/Concurrency/CC_test_utils.h deleted file mode 100644 index b5bfaa549b9..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_test_utils.h +++ /dev/null @@ -1,37 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// CC_test_utils.h -// -// = DESCRIPTION -// This class provides a namespace for utility functions for the -// concurrency service test. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "orbsvcs/CosConcurrencyControlC.h" - -#ifndef _CC_TEST_UTILS_H_ -#define _CC_TEST_UTILS_H_ - -class CC_TestUtils -{ - public: - static char *get_lock_mode_name (CosConcurrencyControl::lock_mode mode); - // Function to return a human readable string from a lock_mode enum. - - static CosConcurrencyControl::LockSet_ptr create_lock_set (void); - // Creates a lock set by means of th lock set factory in the concurrency - // service server. - private: -}; - -#endif /* _CC_TEST_UTILS_H_ */ diff --git a/TAO/orbsvcs/tests/Concurrency/CC_tests.cpp b/TAO/orbsvcs/tests/Concurrency/CC_tests.cpp deleted file mode 100644 index d44aecd7ddb..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_tests.cpp +++ /dev/null @@ -1,372 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_tests.h -// -// = DESCRIPTION -// This class implements a number of test objects to test the -// concurrency service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "CC_tests.h" - -CC_Test::CC_Test (CC_naming_service *ns) - : result (CC_FAIL), - naming_service_ (ns) -{ -} - -CC_Test::~CC_Test (void) -{ -} - -CosConcurrencyControl::LockSet_ptr -CC_Test::create_lock_set (void) -{ - // Create the lock set and return an obj ref corresponding to the - // key. - CosConcurrencyControl::LockSet_ptr lock_set(0); - - TAO_TRY - { - lock_set = - this->naming_service_->get_lock_set_factory ()->create (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (lock_set)) - ACE_ERROR_RETURN ((LM_ERROR, - "null lock set objref returned by factory\n"), - 0); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("CC_Client::create_lock_set"); - return 0; - } - TAO_ENDTRY; - return lock_set; -} - -char * -CC_Test::get_lock_mode_name (CosConcurrencyControl::lock_mode mode) -{ - if (mode==CosConcurrencyControl::read) - return "read"; - - if (mode==CosConcurrencyControl::write) - return "write"; - - if (mode==CosConcurrencyControl::upgrade) - return "upgrade"; - - if (mode==CosConcurrencyControl::intention_read) - return "intension_read"; - - if (mode==CosConcurrencyControl::intention_write) - return "intension_write"; - - return "unknown lock mode"; -} - -// ================================ -// Here the tests start. - -Test_Single_Lock_With_Mode::Test_Single_Lock_With_Mode (CC_naming_service *naming_service, - CosConcurrencyControl::lock_mode mode) - : CC_Test (naming_service), - mode_ (mode) -{ -} - -Test_Single_Lock_With_Mode::~Test_Single_Lock_With_Mode (void) -{ -} - -int -Test_Single_Lock_With_Mode::run (int times_to_run) -{ - CORBA::Boolean lock_not_held; - - CosConcurrencyControl::LockSet_ptr cc_lock_set_ = create_lock_set (); - - TAO_TRY - { - cc_lock_set_->lock (mode_, TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "%s lock set\n", - get_lock_mode_name (mode_))); - - lock_not_held = cc_lock_set_->try_lock (mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (lock_not_held) - { - ACE_DEBUG ((LM_DEBUG, - "%s lock not held\n", - get_lock_mode_name (mode_))); - return CC_FAIL; - } - else - ACE_DEBUG ((LM_DEBUG, - "%s lock held\n", - get_lock_mode_name (mode_))); - - cc_lock_set_->unlock (mode_, - TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG, - "%s lock released\n", - get_lock_mode_name (mode_))); - - lock_not_held = cc_lock_set_->try_lock (mode_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (lock_not_held) - ACE_DEBUG ((LM_DEBUG, - "%s lock not held\n", - get_lock_mode_name (mode_))); - else - { - ACE_DEBUG ((LM_DEBUG, - "%s lock held\n", - get_lock_mode_name (mode_))); - return CC_FAIL; - } - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Test_Single_Lock_With_Mode::run"); - return CC_FAIL; - } - TAO_ENDTRY; - - CORBA::release (cc_lock_set_); - - return CC_SUCCESS; -} - -// ================================ - -Test_Setup_LockSet::Test_Setup_LockSet (CC_naming_service *naming_service, - char *name) - : CC_Test (naming_service), - my_name_ (name) -{ -} - -Test_Setup_LockSet::~Test_Setup_LockSet (void) -{ -} - -int -Test_Setup_LockSet::run (int times_to_run) -{ - TAO_TRY - { - CosConcurrencyControl::LockSet_ptr cc_lock_set_ = - create_lock_set (); - this->naming_service_->bind_name (my_name_, cc_lock_set_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "Name bound\n")); - - cc_lock_set_->lock (CosConcurrencyControl::read, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "Read lock set\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Test_Against_Other_LockSet::run"); - return CC_FAIL; - } - TAO_ENDTRY; - - return CC_SUCCESS; -} - -// ================================ - -Test_Use_Already_Created_LockSet:: -Test_Use_Already_Created_LockSet (CC_naming_service *naming_service, - char *name) - : CC_Test (naming_service), - my_name_ (name) -{ -} - -Test_Use_Already_Created_LockSet::~Test_Use_Already_Created_LockSet (void) -{ -} - -int -Test_Use_Already_Created_LockSet::run (int times_to_run) -{ - TAO_TRY - { - CORBA::Object_var ccls_obj = - this->naming_service_->get_obj_from_name ("", - my_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosConcurrencyControl::LockSet_var ccls = - CosConcurrencyControl::LockSet::_narrow (ccls_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ccls->lock (CosConcurrencyControl::read, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Test_Against_Other_LockSet::run"); - return CC_FAIL; - } - TAO_ENDTRY; - - return CC_SUCCESS; -} - -// ================================ - -Test_Unlock_Already_Created_LockSet:: -Test_Unlock_Already_Created_LockSet (CC_naming_service *naming_service, - char *name) - : CC_Test (naming_service), - my_name_ (name) -{ -} - -Test_Unlock_Already_Created_LockSet::~Test_Unlock_Already_Created_LockSet (void) -{ -} - -int -Test_Unlock_Already_Created_LockSet::run (int times_to_run) -{ - TAO_TRY - { - CORBA::Object_var ccls_obj = - this->naming_service_->get_obj_from_name ("", my_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosConcurrencyControl::LockSet_var ccls = - CosConcurrencyControl::LockSet::_narrow (ccls_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ccls->unlock (CosConcurrencyControl::read, - TAO_TRY_ENV); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Test_Unlock_Already_Created_LockSet::run"); - return CC_FAIL; - } - TAO_ENDTRY; - - return CC_SUCCESS; -} - -// ================================ - -Test_Release_Not_Held_Lock::Test_Release_Not_Held_Lock (CC_naming_service *naming_service, - CosConcurrencyControl::lock_mode mode) - : CC_Test (naming_service), - mode_ (mode) -{ -} - -Test_Release_Not_Held_Lock::~Test_Release_Not_Held_Lock (void) -{ -} - -int -Test_Release_Not_Held_Lock::run (int times_to_run) -{ - CORBA::Boolean lock_not_held; - - // Create the lock set - CosConcurrencyControl::LockSet_ptr cc_lock_set_ = create_lock_set (); - - TAO_TRY - { - // lock the lock - cc_lock_set_->lock (mode_, TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG, - "%s lock set\n", - get_lock_mode_name (mode_))); - - // check to see if the lock is held - lock_not_held = cc_lock_set_->try_lock (mode_, - TAO_TRY_ENV); - - if (lock_not_held) - { - ACE_DEBUG ((LM_DEBUG, - "%s lock not held\n", - get_lock_mode_name (mode_))); - return CC_FAIL; - } - else - ACE_DEBUG ((LM_DEBUG, - "%s lock held\n", - get_lock_mode_name (mode_))); - - // release the lock - cc_lock_set_->unlock (mode_, - TAO_TRY_ENV); - ACE_DEBUG ((LM_DEBUG, - "%s lock released\n", - get_lock_mode_name (mode_))); - - // release the lock again. this should raise an exception - cc_lock_set_->unlock (mode_, - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, - "attemptet to release %s lock\n", - get_lock_mode_name (mode_))); - - TAO_CHECK_ENV; - } - TAO_CATCH(CosConcurrencyControl::LockNotHeld, userex) - { - // We should end here - ACE_UNUSED_ARG (userex); - ACE_DEBUG((LM_DEBUG, "CosConcurrencyControl::LockNotHeld\n")); - return CC_SUCCESS; - } - - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Test_Release_Not_Held_Lock::run"); - return CC_FAIL; - } - TAO_ENDTRY; - - CORBA::release (cc_lock_set_); - - return CC_FAIL; -} diff --git a/TAO/orbsvcs/tests/Concurrency/CC_tests.h b/TAO/orbsvcs/tests/Concurrency/CC_tests.h deleted file mode 100644 index 3d9bca5b57e..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/CC_tests.h +++ /dev/null @@ -1,184 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Concurrency -// -// = FILENAME -// CC_tests.h -// -// = DESCRIPTION -// This class implements a number of test objects to test the -// concurrency service. -// -// = AUTHORS -// Torben Worm -// -// ============================================================================ - -#include "tao/corba.h" -#include "orbsvcs/CosConcurrencyControlC.h" -#include "orbsvcs/CosNamingC.h" -#include "CC_naming_service.h" - -#if !defined (_CC_TESTS_H_) -#define _CC_TESTS_H_ - -// Return codes for the tests -enum -{ - CC_FAIL, - CC_SUCCESS = 1 -}; - -class CC_Test -{ - // = TITLE - // Defines an abstract base class for a test - // - // = DESCRIPTION - // This class declares an interface to run the test of the - // concurrency service. -public: - CC_Test (CC_naming_service *ns); - // Default constructor - - virtual ~CC_Test (void); - // Destructor - - virtual int run (int times_to_run = 1) = 0; - // Run the test times_to_run number of times. Returns CC_SUCCESS on - // success CC_FAIL otherwise. - - CosConcurrencyControl::LockSet_ptr create_lock_set (void); - // Create a new lock set using the default global lock set factory - // from the naming service. - - char *get_lock_mode_name (CosConcurrencyControl::lock_mode mode); - // Returns a human readable string from the lock mode enum. - -protected: - int result; - // The result of the test being performed. - - CC_naming_service *naming_service_; - // The naming service beeing used to register and look up locks -}; - -class Test_Single_Lock_With_Mode : public CC_Test -{ - // = TITLE - // This is a simple test that checks that it is possible to set - // the lock in the desired mode, try it, and release it. -public: - Test_Single_Lock_With_Mode (CC_naming_service *naming_service, - CosConcurrencyControl::lock_mode mode); - // Default constructor. The naming service must be initialized - // before calling this method. The mode is the mode of the lock to - // be tested. - - virtual ~Test_Single_Lock_With_Mode (void); - // Destructor - - virtual int run (int times_to_run = 1); - // Runs the test the specified number of times. - -private: - CosConcurrencyControl::lock_mode mode_; - // The lock mode of the lock being tested -}; - -class Test_Setup_LockSet : public CC_Test -{ - // = TITLE - // This class creates a read lock, registeres it with the naming - // service and locks it. -public: - Test_Setup_LockSet (CC_naming_service *naming_service_, - char *name); - // Default constructor. The naming service must be initialized - // before calling this method. The name is the name the lock will be - // registered under in the naming service. - - virtual ~Test_Setup_LockSet (void); - // Destructor - - virtual int run (int times_to_run = 1); - // Runs the test the specified number of times. - -private: - char *my_name_; - // The name of the lock -}; - -class Test_Use_Already_Created_LockSet : public CC_Test -{ - // = TITLE - // This class looks up the lock in the naming service and locks - // it. -public: - Test_Use_Already_Created_LockSet (CC_naming_service *naming_service_, - char *name); - // Default constructor. The naming service must be initialized - // before calling this method. The name is the name the lock will be - // looked up under in the naming service. - - virtual ~Test_Use_Already_Created_LockSet (void); - // Destructor - - virtual int run (int times_to_run = 1); - // Runs the test the specified number of times. - -private: - char *my_name_; - // The name of the lock -}; - -class Test_Unlock_Already_Created_LockSet : public CC_Test -{ - // = TITLE - // This class looks up the lock in the naming service and unlocks - // it. -public: - Test_Unlock_Already_Created_LockSet (CC_naming_service *naming_service_, - char *name); - // Default constructor. The naming service must be initialized - // before calling this method. The name is the name the lock will be - // looked up under in the naming service. - - virtual ~Test_Unlock_Already_Created_LockSet (void); - // Destructor - - virtual int run (int times_to_run = 1); - // Runs the test the specified number of times. - -private: - char *my_name_; - // The name of the lock -}; - -class Test_Release_Not_Held_Lock : public CC_Test -{ - // = TITLE - // This class tests that the LockNotHeld exception is thrown if a - // not held lock is released. -public: - Test_Release_Not_Held_Lock (CC_naming_service *naming_service_, - CosConcurrencyControl::lock_mode mode_); - // Default constructor. The naming service must be initialized - // before calling this method. The mode is the mode of the lock - - virtual ~Test_Release_Not_Held_Lock (void); - // Destructor - - virtual int run (int times_to_run = 1); - // Runs the test the specified number of times. - -private: - CosConcurrencyControl::lock_mode mode_; - // The lock mode of the lock being tested -}; - -#endif /* !defined (_CC_TESTS_H_) */ diff --git a/TAO/orbsvcs/tests/Concurrency/Concurrency.dsw b/TAO/orbsvcs/tests/Concurrency/Concurrency.dsw deleted file mode 100644 index 1dfbc8ca596..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/Concurrency.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: "CC_client"=.\CC_client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/Concurrency/Makefile b/TAO/orbsvcs/tests/Concurrency/Makefile deleted file mode 100644 index 12dd828aeda..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/Makefile +++ /dev/null @@ -1,1873 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Makefile for the concurrency service test. -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO - -PROG_SRCS = CC_client.cpp CC_tests.cpp CC_naming_service.cpp \ - tmplinst.cpp CC_command.tab.cpp \ - lex.CC_command.cpp CC_command.cpp CC_test_utils.cpp - -LSRC = $(PROG_SRCS) - -CC_CLT_OBJS = CC_client.o CC_tests.o tmplinst.o CC_naming_service.o \ - CC_command.tab.o lex.CC_command.o \ - CC_command.o CC_test_utils.o - -BIN = CC_client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/Naming_Service -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs - -lex.CC_command.cpp: CC_command.l CC_command.tab.h - $(LEX) -t -I CC_command.l > /tmp/$(USER).CC_L1 - sed -e "s/unistd/stdio/g" \ - -e "s/yy/ace_cc_yy/g" \ - -e "s/YY/ACE_CC_YY/g" \ - -e "s/free( ptr );/free( ACE_MALLOC_T (ptr) );/g" \ - -e "s/realloc( ptr, size );/realloc( ACE_MALLOC_T (ptr), size );/g" \ - \ - -e "s@#include @#include \"ace/OS.h\"@" \ - -e "s@#include <@#include /**/ <@" \ - -e "s@ECHO@ACE_CC_ECHO@" < /tmp/$(USER).CC_L1 > /tmp/$(USER).CC_L2 - cp /tmp/$(USER).CC_L2 $@ - patch < lex.CC_command.cpp.diff - $(RM) -f /tmp/$(USER).CC_L1 /tmp/$(USER).CC_L2 - -CC_command.tab.cpp CC_command.tab.h: CC_command.y - $(YACC) -d CC_command.y - sed -e "s/char \*getenv/char *ace_foo/g" \ - -e "s/= getenv/= ACE_OS::getenv/g" \ - -e "s/yynewerror://g" \ - -e "s/yy/ace_cc_yy/g" \ - -e "s/YY/ACE_CC_YY/g" \ - -e "s/y\.tab\.c/CC_command.tab.cpp/g" < y.tab.c > /tmp/$(USER).CC_Y - sed -e "s/yy/ace_cc_yy/g" \ - -e "s/YY/ACE_CC_YY/g" < y.tab.h > /tmp/$(USER).CC_YH - cp /tmp/$(USER).CC_Y CC_command.tab.cpp - cp /tmp/$(USER).CC_YH CC_command.tab.h - patch < CC_command.tab.cpp.diff - $(RM) -f /tmp/$(USER).CC_Y /tmp/$(USER).CC_YH y.tab.c y.tab.h - -CC_client: $(addprefix $(VDIR),$(CC_CLT_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/CC_client.o .obj/CC_client.so .shobj/CC_client.o .shobj/CC_client.so: CC_client.cpp \ - $(ACE_ROOT)/ace/Read_Buffer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/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 \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Read_Buffer.i \ - CC_client.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - CC_tests.h CC_naming_service.h CC_command.h CC_command.tab.h -.obj/CC_tests.o .obj/CC_tests.so .shobj/CC_tests.o .shobj/CC_tests.so: CC_tests.cpp CC_tests.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - CC_naming_service.h -.obj/CC_naming_service.o .obj/CC_naming_service.so .shobj/CC_naming_service.o .shobj/CC_naming_service.so: CC_naming_service.cpp CC_naming_service.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i -.obj/tmplinst.o .obj/tmplinst.so .shobj/tmplinst.o .shobj/tmplinst.so: tmplinst.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i -.obj/CC_command.tab.o .obj/CC_command.tab.so .shobj/CC_command.tab.o .shobj/CC_command.tab.so: CC_command.tab.cpp CC_command.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i -.obj/lex.CC_command.o .obj/lex.CC_command.so .shobj/lex.CC_command.o .shobj/lex.CC_command.so: lex.CC_command.cpp CC_command.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - CC_command.tab.h -.obj/CC_command.o .obj/CC_command.so .shobj/CC_command.o .shobj/CC_command.so: CC_command.cpp CC_command.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - CC_test_utils.h CC_naming_service.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(ACE_ROOT)/ace/Process.h \ - $(ACE_ROOT)/ace/Process.i -.obj/CC_test_utils.o .obj/CC_test_utils.so .shobj/CC_test_utils.o .shobj/CC_test_utils.so: CC_test_utils.cpp CC_test_utils.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosConcurrencyControlC.i \ - CC_naming_service.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/Concurrency/NS_client.cpp b/TAO/orbsvcs/tests/Concurrency/NS_client.cpp deleted file mode 100644 index f07333182f4..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/NS_client.cpp +++ /dev/null @@ -1,216 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/bin/Naming_Service/TAO -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple CORBA client for the CosNaming -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Sergio Flores-Gaitan -// Torben Worm -// -// ============================================================================ - -#include "NS_client.h" -#include "stdio.h" - -// constructor - -CosNaming_Client::CosNaming_Client (void) - : list_contents_ (0), - resolve_name_ (0), - name_to_resolve_ (0), - context_to_resolve_ (0), - argc_ (0), - argv_ (0), - exit_later_ (0) -{ -} - -// Parses the command line arguments and returns an error status. - -int -CosNaming_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dxn:c:l"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'l': - this->list_contents_ = 1; - break; - case 'x': - this->exit_later_++; - break; - case 'n': - this->resolve_name_ = 1; - this->name_to_resolve_ = get_opts.optarg; - break; - case 'c': - this->resolve_name_ = 1; - this->context_to_resolve_ = get_opts.optarg; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-x]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Execute client example code. - -int -CosNaming_Client::run (void) -{ - // @@ TODO, add some interesting test here, maybe creating some - // nested naming contexts and registering a number of objreferences - // in there. We could even use the iterators. - - if (this->resolve_name_) - resolve_name (this->context_to_resolve_, - this->name_to_resolve_); - - if (this->list_contents_) - list_contents (); - - return 0; -} - -CosNaming_Client::~CosNaming_Client (void) -{ -} - -int -CosNaming_Client::resolve_name (char *c, char *n) -{ - TAO_TRY - { - CosNaming::Name name (2); - name.length (2); - name[0].id = CORBA::string_dup (c); - name[1].id = CORBA::string_dup (n); - CORBA::Object_var obj = this->naming_context_->resolve (name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Could not resolve name in Naming service <%s>\n"), - -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("init"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -void -CosNaming_Client::list_contents (void) -{ - CosNaming::BindingIterator_var bi; - CosNaming::BindingList_var li; - CORBA::ULong how_many = 0; - CosNaming::Binding_var b; - CosNaming::Name n; - CORBA::ULong names = 0; - - TAO_TRY - { - this->naming_context_->list (how_many, li, bi, TAO_TRY_ENV); - - while (bi->next_one (b, TAO_TRY_ENV)) - { - n = b->binding_name; - names = n.length (); - ACE_DEBUG ((LM_DEBUG, - " (%i) Name: ", - names)); - - for (CORBA::ULong i = 0; i < names; i++) - ACE_DEBUG ((LM_DEBUG, - "%s ", - n[i].id._retn ())); - - ACE_DEBUG ((LM_DEBUG, "type: %s\n", - b->binding_type == CosNaming::ncontext ? "C" : "O")); - } - } - TAO_CATCHANY - { - } - TAO_ENDTRY; -} - -int -CosNaming_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Initialize ORB. - this->orb_ = CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb_->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - naming_context_ = CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// This function runs the test. - -int -main (int argc, char **argv) -{ - CosNaming_Client cosnaming_client; - - if (cosnaming_client.init (argc, argv) == -1) - return 1; - - return cosnaming_client.run (); -} diff --git a/TAO/orbsvcs/tests/Concurrency/NS_client.h b/TAO/orbsvcs/tests/Concurrency/NS_client.h deleted file mode 100644 index 411a314f798..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/NS_client.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// NS_client.h -// -// = DESCRIPTION -// This class tests the facilities to connect to the naming -// service and to resolve the name for the concurrency service client. -// -// = AUTHORS -// Sergio Flores-Gaitan -// Torben Worm -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "orbsvcs/orbsvcs/CosNamingC.h" - -class CosNaming_Client -{ - // = TITLE - // Defines a class that encapsulates behaviour of the CosNaming - // client example. Provides a better understanding of the logic - // in an object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // CosNaming CORBA server. All the complexity for initializing - // the server is hidden in the class. Just the run() interface - // is needed. -public: - // = Initialization and termination methods. - CosNaming_Client (void); - // Constructor. - - ~CosNaming_Client (void); - // Destructor. - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int parse_args (void); - // Parses the arguments passed on the command line. - - int resolve_name(char *c, char *n); - // Resolves the name given on the command-line (-n option). - - void list_contents(void); - // Lists the contents of the naming service. - - CORBA::ORB_var orb_; - // Our ORB. - - CosNaming::NamingContext_var naming_context_; - // Our naming context. - - int list_contents_; - // Iterate through the naming service and list the contents. - - int resolve_name_; - // Flag set by the -n option. - - char *name_to_resolve_; - // Parameter given to the -n option. - - char *context_to_resolve_; - // Parameter given to the -c option. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - int exit_later_; - // Flag to tell server to not exit immediately. -}; diff --git a/TAO/orbsvcs/tests/Concurrency/README b/TAO/orbsvcs/tests/Concurrency/README deleted file mode 100644 index 07fd0ced426..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/README +++ /dev/null @@ -1,111 +0,0 @@ -$Id$ - -This is the readme file for the tests of the concurrency service. - -The test program has been changed to use a configuration file instead of -hard coded test procedures. The old test procedures are left in the -program for backwards compatibility, but they will be removed at a later -point in time. - -The description of the old tests is in the readme file for the -concurrency service in the directory: - $TAO_ROOT/orbsvcs/Concurrency_Control -please consult this file for a decription of these tests. - -The new tests are described by this simle test language: - -start: /* empty */ - | cmd_list - ; - -cmd_list: cmd_list cmd - | cmd - ; - -cmd: start ; - | create ; - | create ; - | lock ; - | lock ; - | unlock ; - | unlock ; - | try_lock ; - | try_lock ; - | change_mode ; - | change_mode ; - | lookup ; - | sleep ; - | repeat ; - | wait ; - | wait ; - ; - -lock_mode: read | intention_read | upgrade | write | intention_write - -prompt: " string " - -If the lock set name is left out the default lock set is used. The -repeat command just sets a global variable in the test, i.e. the last -repeat command is the one that will take effect - the whole script is -run the specified number of times. - -An example of a script (assuming it's called 'test.cfg' - comments are -not supported): - - // Start a new CC_client with test.txt as script file - start test.txt; - // Create the lock set "ls1" and register it in the naming service - create ls1; - // Lock the read lock in the lock set - lock ls1 read; - // Try the read lock - try_lock ls1 read; - // sleep two seconds - sleep 2; - // Wait for the user to press enter - wait; - // Unlock the read lock in the ls1 lock set - unlock ls1 read; - // Change the mode of the read lock in the ls1 lock set to write mode - change_mode ls1 read write; - -The test can be run with the command ./CC_client -c test.cfg. - -There are currentlig the following tests in the - $TAO_ROOT/orbsvcs/tests/Concurrency -directory: - basic_tests.cfg The same as running ./CC_client -b - extended_tests.cfg The same as running ./CC_client -e '1;test' - ./CC_client -e '2;test' - ./CC_client -e '3;test' - test.dinphil Dining philosophers. Uses test.phil[1-5] - ----------------------------------------- - -THE IMPLEMENTATION - -The implementation of the concurrency service tests is located in -the $TAO_ROOT/orbsvcs/tests/Concurrency directory and consists of -the following files: - - CC_client.{h,cpp} contain initialization and the main function. - - CC_tests.{h,cpp} The old tests [-b] and [-e] options to CC_client - - CC_command.{h,cpp} The commands that can be used in the scripting - language are implemented in these files. The list of - commands to execute is also implemented here. - - CC_command.l The lex file for the script language. - - CC_command.y The yacc file for the script language. - - CC_command.tab.{h,cpp} and lex.CC_command.cpp Derived files from - the lex and yacc files. - - CC_naming_service.{h,cpp} A wrapper class around the necessary - naming service functinallity for the tests. - - CC_test_utils.{h,cpp} provides a namespace for utility functions. - - test.* Test scripts for the concurrency service. \ No newline at end of file diff --git a/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp b/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp deleted file mode 100644 index ccbf30b8145..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp +++ /dev/null @@ -1,1726 +0,0 @@ -/* A lexical scanner generated by flex */ -// $Id$ -/* Scanner skeleton version: - * Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp - */ - -#define FLEX_SCANNER -#define ACE_CC_YY_FLEX_MAJOR_VERSION 2 -#define ACE_CC_YY_FLEX_MINOR_VERSION 5 - -#include "ace/OS.h" - - -/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ -#ifdef c_plusplus -#ifndef __cplusplus -#define __cplusplus -#endif -#endif - - -#ifdef __cplusplus - -#include /**/ -#include "ace/OS.h" - -/* Use prototypes in function declarations. */ -#define ACE_CC_YY_USE_PROTOS - -/* The "const" storage-class-modifier is valid. */ -#define ACE_CC_YY_USE_CONST - -#else /* ! __cplusplus */ - -#if __STDC__ - -#define ACE_CC_YY_USE_PROTOS -#define ACE_CC_YY_USE_CONST - -#endif /* __STDC__ */ -#endif /* ! __cplusplus */ - -#ifdef __TURBOC__ - #pragma warn -rch - #pragma warn -use -#include /**/ -#include /**/ -#define ACE_CC_YY_USE_CONST -#define ACE_CC_YY_USE_PROTOS -#endif - -#ifdef ACE_CC_YY_USE_CONST -#define ace_cc_yyconst const -#else -#define ace_cc_yyconst -#endif - - -#ifdef ACE_CC_YY_USE_PROTOS -#define ACE_CC_YY_PROTO(proto) proto -#else -#define ACE_CC_YY_PROTO(proto) () -#endif - -/* Returned upon end-of-file. */ -#define ACE_CC_YY_NULL 0 - -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. - */ -#define ACE_CC_YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) - -/* Enter a start condition. This macro really ought to take a parameter, - * but we do it the disgusting crufty way forced on us by the ()-less - * definition of BEGIN. - */ -#define BEGIN ace_cc_yy_start = 1 + 2 * - -/* Translate the current start state into a value that can be later handed - * to BEGIN to return to the state. The ACE_CC_YYSTATE alias is for lex - * compatibility. - */ -#define ACE_CC_YY_START ((ace_cc_yy_start - 1) / 2) -#define ACE_CC_YYSTATE ACE_CC_YY_START - -/* Action number for EOF rule of a given start state. */ -#define ACE_CC_YY_STATE_EOF(state) (ACE_CC_YY_END_OF_BUFFER + state + 1) - -/* Special action meaning "start processing a new file". */ -#define ACE_CC_YY_NEW_FILE ace_cc_yyrestart( ace_cc_yyin ) - -#define ACE_CC_YY_END_OF_BUFFER_CHAR 0 - -/* Size of default input buffer. */ -#define ACE_CC_YY_BUF_SIZE 16384 - -typedef struct ace_cc_yy_buffer_state *ACE_CC_YY_BUFFER_STATE; - -extern int ace_cc_yyleng; -extern FILE *ace_cc_yyin, *ace_cc_yyout; - -#define EOB_ACT_CONTINUE_SCAN 0 -#define EOB_ACT_END_OF_FILE 1 -#define EOB_ACT_LAST_MATCH 2 - -/* The funky do-while in the following #define is used to turn the definition - * int a single C statement (which needs a semi-colon terminator). This - * avoids problems with code like: - * - * if ( condition_holds ) - * ace_cc_yyless( 5 ); - * else - * do_something_else(); - * - * Prior to using the do-while the compiler would get upset at the - * "else" because it interpreted the "if" statement as being all - * done when it reached the ';' after the ace_cc_yyless() call. - */ - -/* Return all but the first 'n' matched characters back to the input stream. */ - -#define ace_cc_yyless(n) \ - do \ - { \ - /* Undo effects of setting up ace_cc_yytext. */ \ - *ace_cc_yy_cp = ace_cc_yy_hold_char; \ - ACE_CC_YY_RESTORE_ACE_CC_YY_MORE_OFFSET \ - ace_cc_yy_c_buf_p = ace_cc_yy_cp = ace_cc_yy_bp + n - ACE_CC_YY_MORE_ADJ; \ - ACE_CC_YY_DO_BEFORE_ACTION; /* set up ace_cc_yytext again */ \ - } \ - while ( 0 ) - -#define unput(c) ace_cc_yyunput( c, ace_cc_yytext_ptr ) - -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - */ -typedef unsigned int ace_cc_yy_size_t; - - -struct ace_cc_yy_buffer_state - { - FILE *ace_cc_yy_input_file; - - char *ace_cc_yy_ch_buf; /* input buffer */ - char *ace_cc_yy_buf_pos; /* current position in input buffer */ - - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ - ace_cc_yy_size_t ace_cc_yy_buf_size; - - /* Number of characters read into ace_cc_yy_ch_buf, not including EOB - * characters. - */ - int ace_cc_yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to - * delete it. - */ - int ace_cc_yy_is_our_buffer; - - /* Whether this is an "interactive" input source; if so, and - * if we're using stdio for input, then we want to use getc() - * instead of fread(), to make sure we stop fetching input after - * each newline. - */ - int ace_cc_yy_is_interactive; - - /* Whether we're considered to be at the beginning of a line. - * If so, '^' rules will be active on the next match, otherwise - * not. - */ - int ace_cc_yy_at_bol; - - /* Whether to try to fill the input buffer when we reach the - * end of it. - */ - int ace_cc_yy_fill_buffer; - - int ace_cc_yy_buffer_status; -#define ACE_CC_YY_BUFFER_NEW 0 -#define ACE_CC_YY_BUFFER_NORMAL 1 - /* When an EOF's been seen but there's still some text to process - * then we mark the buffer as ACE_CC_YY_EOF_PENDING, to indicate that we - * shouldn't try reading from the input source any more. We might - * still have a bunch of tokens to match, though, because of - * possible backing-up. - * - * When we actually see the EOF, we change the status to "new" - * (via ace_cc_yyrestart()), so that the user can continue scanning by - * just pointing ace_cc_yyin at a new input file. - */ -#define ACE_CC_YY_BUFFER_EOF_PENDING 2 - }; - -static ACE_CC_YY_BUFFER_STATE ace_cc_yy_current_buffer = 0; - -/* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general - * "scanner state". - */ -#define ACE_CC_YY_CURRENT_BUFFER ace_cc_yy_current_buffer - - -/* ace_cc_yy_hold_char holds the character lost when ace_cc_yytext is formed. */ -static char ace_cc_yy_hold_char; - -static int ace_cc_yy_n_chars; /* number of characters read into ace_cc_yy_ch_buf */ - - -int ace_cc_yyleng; - -/* Points to current character in buffer. */ -static char *ace_cc_yy_c_buf_p = (char *) 0; -static int ace_cc_yy_init = 1; /* whether we need to initialize */ -static int ace_cc_yy_start = 0; /* start state number */ - -/* Flag which is used to allow ace_cc_yywrap()'s to do buffer switches - * instead of setting up a fresh ace_cc_yyin. A bit of a hack ... - */ -static int ace_cc_yy_did_buffer_switch_on_eof; - -void ace_cc_yyrestart ACE_CC_YY_PROTO(( FILE *input_file )); - -void ace_cc_yy_switch_to_buffer ACE_CC_YY_PROTO(( ACE_CC_YY_BUFFER_STATE new_buffer )); -void ace_cc_yy_load_buffer_state ACE_CC_YY_PROTO(( void )); -ACE_CC_YY_BUFFER_STATE ace_cc_yy_create_buffer ACE_CC_YY_PROTO(( FILE *file, int size )); -void ace_cc_yy_delete_buffer ACE_CC_YY_PROTO(( ACE_CC_YY_BUFFER_STATE b )); -void ace_cc_yy_init_buffer ACE_CC_YY_PROTO(( ACE_CC_YY_BUFFER_STATE b, FILE *file )); -void ace_cc_yy_flush_buffer ACE_CC_YY_PROTO(( ACE_CC_YY_BUFFER_STATE b )); -#define ACE_CC_YY_FLUSH_BUFFER ace_cc_yy_flush_buffer( ace_cc_yy_current_buffer ) - -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_buffer ACE_CC_YY_PROTO(( char *base, ace_cc_yy_size_t size )); -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_string ACE_CC_YY_PROTO(( ace_cc_yyconst char *ace_cc_yy_str )); -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_bytes ACE_CC_YY_PROTO(( ace_cc_yyconst char *bytes, int len )); - -static void *ace_cc_yy_flex_alloc ACE_CC_YY_PROTO(( ace_cc_yy_size_t )); -static void *ace_cc_yy_flex_realloc ACE_CC_YY_PROTO(( void *, ace_cc_yy_size_t )); -static void ace_cc_yy_flex_free ACE_CC_YY_PROTO(( void * )); - -#define ace_cc_yy_new_buffer ace_cc_yy_create_buffer - -#define ace_cc_yy_set_interactive(is_interactive) \ - { \ - if ( ! ace_cc_yy_current_buffer ) \ - ace_cc_yy_current_buffer = ace_cc_yy_create_buffer( ace_cc_yyin, ACE_CC_YY_BUF_SIZE ); \ - ace_cc_yy_current_buffer->ace_cc_yy_is_interactive = is_interactive; \ - } - -#define ace_cc_yy_set_bol(at_bol) \ - { \ - if ( ! ace_cc_yy_current_buffer ) \ - ace_cc_yy_current_buffer = ace_cc_yy_create_buffer( ace_cc_yyin, ACE_CC_YY_BUF_SIZE ); \ - ace_cc_yy_current_buffer->ace_cc_yy_at_bol = at_bol; \ - } - -#define ACE_CC_YY_AT_BOL() (ace_cc_yy_current_buffer->ace_cc_yy_at_bol) - - -#define ace_cc_yywrap() 1 -#define ACE_CC_YY_SKIP_ACE_CC_YYWRAP -typedef unsigned char ACE_CC_YY_CHAR; -FILE *ace_cc_yyin = (FILE *) 0, *ace_cc_yyout = (FILE *) 0; -typedef int ace_cc_yy_state_type; -extern char *ace_cc_yytext; -#define ace_cc_yytext_ptr ace_cc_yytext - -static ace_cc_yy_state_type ace_cc_yy_get_previous_state ACE_CC_YY_PROTO(( void )); -static ace_cc_yy_state_type ace_cc_yy_try_NUL_trans ACE_CC_YY_PROTO(( ace_cc_yy_state_type current_state )); -static int ace_cc_yy_get_next_buffer ACE_CC_YY_PROTO(( void )); -static void ace_cc_yy_fatal_error ACE_CC_YY_PROTO(( ace_cc_yyconst char msg[] )); - -/* Done after the current pattern has been matched and before the - * corresponding action - sets up ace_cc_yytext. - */ -#define ACE_CC_YY_DO_BEFORE_ACTION \ - ace_cc_yytext_ptr = ace_cc_yy_bp; \ - ace_cc_yyleng = (int) (ace_cc_yy_cp - ace_cc_yy_bp); \ - ace_cc_yy_hold_char = *ace_cc_yy_cp; \ - *ace_cc_yy_cp = '\0'; \ - ace_cc_yy_c_buf_p = ace_cc_yy_cp; - -#define ACE_CC_YY_NUM_RULES 25 -#define ACE_CC_YY_END_OF_BUFFER 26 -static ace_cc_yyconst short int ace_cc_yy_accept[124] = - { 0, - 0, 0, 26, 25, 24, 23, 25, 20, 1, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 25, 24, 23, 0, 19, 20, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, 0, 22, - 21, 21, 21, 21, 4, 21, 21, 14, 21, 21, - 21, 21, 21, 21, 9, 21, 21, 21, 21, 21, - 21, 10, 21, 8, 2, 21, 21, 21, 17, 21, - 3, 21, 21, 13, 11, 21, 5, 21, 21, 21, - - 21, 21, 16, 21, 21, 21, 6, 21, 12, 21, - 21, 21, 7, 21, 21, 21, 21, 21, 21, 15, - 21, 18, 0 - } ; - -static ace_cc_yyconst int ace_cc_yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 4, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 5, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 5, 8, 1, - 1, 1, 1, 1, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 1, 1, 1, 1, 10, 1, 11, 9, 12, 13, - - 14, 9, 15, 16, 17, 9, 18, 19, 20, 21, - 22, 23, 9, 24, 25, 26, 27, 9, 28, 29, - 30, 9, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1 - } ; - -static ace_cc_yyconst int ace_cc_yy_meta[31] = - { 0, - 1, 2, 1, 1, 3, 3, 3, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 - } ; - -static ace_cc_yyconst short int ace_cc_yy_base[128] = - { 0, - 0, 136, 141, 143, 0, 137, 135, 131, 143, 0, - 15, 108, 115, 113, 110, 119, 14, 108, 11, 24, - 125, 0, 127, 125, 124, 120, 0, 115, 111, 112, - 97, 24, 105, 26, 107, 109, 89, 99, 102, 99, - 98, 112, 92, 101, 97, 96, 91, 90, 86, 93, - 91, 90, 79, 92, 79, 76, 73, 72, 95, 143, - 81, 69, 71, 72, 0, 65, 65, 0, 79, 66, - 62, 68, 74, 74, 0, 70, 69, 68, 55, 54, - 56, 0, 52, 0, 0, 55, 58, 62, 0, 64, - 0, 56, 55, 0, 0, 59, 0, 56, 49, 46, - - 45, 48, 0, 43, 43, 42, 0, 49, 0, 51, - 46, 14, 0, 45, 30, 40, 30, 32, 18, 0, - 29, 0, 143, 49, 52, 38, 55 - } ; - -static ace_cc_yyconst short int ace_cc_yy_def[128] = - { 0, - 123, 1, 123, 123, 124, 123, 125, 123, 123, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 123, 124, 123, 125, 125, 123, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 127, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 127, 123, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, - 126, 126, 0, 123, 123, 123, 123 - } ; - -static ace_cc_yyconst short int ace_cc_yy_nxt[174] = - { 0, - 4, 5, 6, 7, 4, 4, 8, 9, 10, 4, - 10, 11, 10, 12, 10, 10, 13, 10, 14, 10, - 10, 10, 15, 16, 17, 18, 19, 20, 10, 10, - 28, 38, 35, 39, 40, 47, 50, 114, 29, 36, - 27, 115, 122, 121, 120, 48, 119, 41, 51, 22, - 118, 22, 24, 117, 24, 59, 59, 59, 116, 113, - 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, - 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, - 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, - 82, 81, 80, 79, 78, 77, 60, 76, 75, 74, - - 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, - 63, 62, 61, 60, 58, 57, 56, 55, 54, 53, - 52, 49, 46, 45, 44, 43, 26, 25, 25, 23, - 42, 37, 34, 33, 32, 31, 30, 26, 25, 23, - 123, 21, 3, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123 - } ; - -static ace_cc_yyconst short int ace_cc_yy_chk[174] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 11, 19, 17, 19, 20, 32, 34, 112, 11, 17, - 126, 112, 121, 119, 118, 32, 117, 20, 34, 124, - 116, 124, 125, 115, 125, 127, 127, 127, 114, 111, - 110, 108, 106, 105, 104, 102, 101, 100, 99, 98, - 96, 93, 92, 90, 88, 87, 86, 83, 81, 80, - 79, 78, 77, 76, 74, 73, 72, 71, 70, 69, - 67, 66, 64, 63, 62, 61, 59, 58, 57, 56, - - 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, - 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, - 35, 33, 31, 30, 29, 28, 26, 25, 24, 23, - 21, 18, 16, 15, 14, 13, 12, 8, 7, 6, - 3, 2, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 123, 123 - } ; - -static ace_cc_yy_state_type ace_cc_yy_last_accepting_state; -static char *ace_cc_yy_last_accepting_cpos; - -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected -#define ace_cc_yymore() ace_cc_yymore_used_but_not_detected -#define ACE_CC_YY_MORE_ADJ 0 -#define ACE_CC_YY_RESTORE_ACE_CC_YY_MORE_OFFSET -char *ace_cc_yytext; -#line 1 "CC_command.l" -#define INITIAL 0 -/* $id$ - * ============================================================================ - * - * = LIBRARY - * TAO/orbsvcs/tests - * - * = FILENAME - * CC_command.l - * - * = DESCRIPTION - * This is the lex file for the concurrency service script language. - * - * = AUTHORS - * Torben Worm - * - * ============================================================================ - */ -#define ACE_CC_YY_NO_UNPUT 1 -#define ACE_CC_YY_NO_INPUT 1 -#define ACE_CC_YY_ALWAYS_INTERACTIVE 1 -#line 20 "CC_command.l" -#include "CC_command.h" -#include "CC_command.tab.h" -#include "ace/ACE.h" - -extern int line_no; -extern char line_buf[500]; - -/* Macros after this point can all be overridden by user definitions in - * section 1. - */ - -#ifndef ACE_CC_YY_SKIP_ACE_CC_YYWRAP -#ifdef __cplusplus -extern "C" int ace_cc_yywrap ACE_CC_YY_PROTO(( void )); -#else -extern int ace_cc_yywrap ACE_CC_YY_PROTO(( void )); -#endif -#endif - -#ifndef ACE_CC_YY_NO_UNPUT -static void ace_cc_yyunput ACE_CC_YY_PROTO(( int c, char *buf_ptr )); -#endif - -#ifndef ace_cc_yytext_ptr -static void ace_cc_yy_flex_strncpy ACE_CC_YY_PROTO(( char *, ace_cc_yyconst char *, int )); -#endif - -#ifdef ACE_CC_YY_NEED_STRLEN -static int ace_cc_yy_flex_strlen ACE_CC_YY_PROTO(( ace_cc_yyconst char * )); -#endif - -#ifndef ACE_CC_YY_NO_INPUT -#ifdef __cplusplus -static int ace_cc_yyinput ACE_CC_YY_PROTO(( void )); -#else -static int input ACE_CC_YY_PROTO(( void )); -#endif -#endif - -#if ACE_CC_YY_STACK_USED -static int ace_cc_yy_start_stack_ptr = 0; -static int ace_cc_yy_start_stack_depth = 0; -static int *ace_cc_yy_start_stack = 0; -#ifndef ACE_CC_YY_NO_PUSH_STATE -static void ace_cc_yy_push_state ACE_CC_YY_PROTO(( int new_state )); -#endif -#ifndef ACE_CC_YY_NO_POP_STATE -static void ace_cc_yy_pop_state ACE_CC_YY_PROTO(( void )); -#endif -#ifndef ACE_CC_YY_NO_TOP_STATE -static int ace_cc_yy_top_state ACE_CC_YY_PROTO(( void )); -#endif - -#else -#define ACE_CC_YY_NO_PUSH_STATE 1 -#define ACE_CC_YY_NO_POP_STATE 1 -#define ACE_CC_YY_NO_TOP_STATE 1 -#endif - -#ifdef ACE_CC_YY_MALLOC_DECL -ACE_CC_YY_MALLOC_DECL -#else -#if __STDC__ -#ifndef __cplusplus -#include /**/ -#endif -#else -/* Just try to get by without declaring the routines. This will fail - * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) - * or sizeof(void*) != sizeof(int). - */ -#endif -#endif - -/* Amount of stuff to slurp up with each read. */ -#ifndef ACE_CC_YY_READ_BUF_SIZE -#define ACE_CC_YY_READ_BUF_SIZE 8192 -#endif - -/* Copy whatever the last rule matched to the standard output. */ - -#ifndef ACE_CC_ECHO -/* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ -#define ACE_CC_ECHO (void) fwrite( ace_cc_yytext, ace_cc_yyleng, 1, ace_cc_yyout ) -#endif - -/* Gets input and stuffs it into "buf". number of characters read, or ACE_CC_YY_NULL, - * is returned in "result". - */ -#ifndef ACE_CC_YY_INPUT -#define ACE_CC_YY_INPUT(buf,result,max_size) \ - if ( ace_cc_yy_current_buffer->ace_cc_yy_is_interactive ) \ - { \ - int c = '*', n; \ - for ( n = 0; n < max_size && \ - (c = getc( ace_cc_yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ - if ( c == '\n' ) \ - buf[n++] = (char) c; \ - if ( c == EOF && ferror( ace_cc_yyin ) ) \ - ACE_CC_YY_FATAL_ERROR( "input in flex scanner failed" ); \ - result = n; \ - } \ - else if ( ((result = fread( buf, 1, max_size, ace_cc_yyin )) == 0) \ - && ferror( ace_cc_yyin ) ) \ - ACE_CC_YY_FATAL_ERROR( "input in flex scanner failed" ); -#endif - -/* No semi-colon after return; correct usage is to write "ace_cc_yyterminate();" - - * we don't want an extra ';' after the "return" because that will cause - * some compilers to complain about unreachable statements. - */ -#ifndef ace_cc_yyterminate -#define ace_cc_yyterminate() return ACE_CC_YY_NULL -#endif - -/* Number of entries by which start-condition stack grows. */ -#ifndef ACE_CC_YY_START_STACK_INCR -#define ACE_CC_YY_START_STACK_INCR 25 -#endif - -/* Report a fatal error. */ -#ifndef ACE_CC_YY_FATAL_ERROR -#define ACE_CC_YY_FATAL_ERROR(msg) ace_cc_yy_fatal_error( msg ) -#endif - -/* Default declaration of generated scanner - a define so the user can - * easily add parameters. - */ -#ifndef ACE_CC_YY_DECL -#define ACE_CC_YY_DECL int ace_cc_yylex ACE_CC_YY_PROTO(( void )) -#endif - -/* Code executed at the beginning of each rule, after ace_cc_yytext and ace_cc_yyleng - * have been set up. - */ -#ifndef ACE_CC_YY_USER_ACTION -#define ACE_CC_YY_USER_ACTION -#endif - -/* Code executed at the end of each rule. */ -#ifndef ACE_CC_YY_BREAK -#define ACE_CC_YY_BREAK break; -#endif - -#define ACE_CC_YY_RULE_SETUP \ - if ( ace_cc_yyleng > 0 ) \ - ace_cc_yy_current_buffer->ace_cc_yy_at_bol = \ - (ace_cc_yytext[ace_cc_yyleng - 1] == '\n'); \ - ACE_CC_YY_USER_ACTION - -ACE_CC_YY_DECL - { - register ace_cc_yy_state_type ace_cc_yy_current_state; - register char *ace_cc_yy_cp, *ace_cc_yy_bp; - register int ace_cc_yy_act; - -#line 28 "CC_command.l" - - - - if ( ace_cc_yy_init ) - { - ace_cc_yy_init = 0; - -#ifdef ACE_CC_YY_USER_INIT - ACE_CC_YY_USER_INIT; -#endif - - if ( ! ace_cc_yy_start ) - ace_cc_yy_start = 1; /* first start state */ - - if ( ! ace_cc_yyin ) - ace_cc_yyin = stdin; - - if ( ! ace_cc_yyout ) - ace_cc_yyout = stdout; - - if ( ! ace_cc_yy_current_buffer ) - ace_cc_yy_current_buffer = - ace_cc_yy_create_buffer( ace_cc_yyin, ACE_CC_YY_BUF_SIZE ); - - ace_cc_yy_load_buffer_state(); - } - - while ( 1 ) /* loops until end-of-file is reached */ - { - ace_cc_yy_cp = ace_cc_yy_c_buf_p; - - /* Support of ace_cc_yytext. */ - *ace_cc_yy_cp = ace_cc_yy_hold_char; - - /* ace_cc_yy_bp points to the position in ace_cc_yy_ch_buf of the start of - * the current run. - */ - ace_cc_yy_bp = ace_cc_yy_cp; - - ace_cc_yy_current_state = ace_cc_yy_start; - ace_cc_yy_current_state += ACE_CC_YY_AT_BOL(); -ace_cc_yy_match: - do - { - register ACE_CC_YY_CHAR ace_cc_yy_c = ace_cc_yy_ec[ACE_CC_YY_SC_TO_UI(*ace_cc_yy_cp)]; - if ( ace_cc_yy_accept[ace_cc_yy_current_state] ) - { - ace_cc_yy_last_accepting_state = ace_cc_yy_current_state; - ace_cc_yy_last_accepting_cpos = ace_cc_yy_cp; - } - while ( ace_cc_yy_chk[ace_cc_yy_base[ace_cc_yy_current_state] + ace_cc_yy_c] != ace_cc_yy_current_state ) - { - ace_cc_yy_current_state = (int) ace_cc_yy_def[ace_cc_yy_current_state]; - if ( ace_cc_yy_current_state >= 124 ) - ace_cc_yy_c = ace_cc_yy_meta[(unsigned int) ace_cc_yy_c]; - } - ace_cc_yy_current_state = ace_cc_yy_nxt[ace_cc_yy_base[ace_cc_yy_current_state] + (unsigned int) ace_cc_yy_c]; - ++ace_cc_yy_cp; - } - while ( ace_cc_yy_base[ace_cc_yy_current_state] != 143 ); - -ace_cc_yy_find_action: - ace_cc_yy_act = ace_cc_yy_accept[ace_cc_yy_current_state]; - if ( ace_cc_yy_act == 0 ) - { /* have to back up */ - ace_cc_yy_cp = ace_cc_yy_last_accepting_cpos; - ace_cc_yy_current_state = ace_cc_yy_last_accepting_state; - ace_cc_yy_act = ace_cc_yy_accept[ace_cc_yy_current_state]; - } - - ACE_CC_YY_DO_BEFORE_ACTION; - - -do_action: /* This label is used only to access EOF actions. */ - - - switch ( ace_cc_yy_act ) - { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of ACE_CC_YY_DO_BEFORE_ACTION */ - *ace_cc_yy_cp = ace_cc_yy_hold_char; - ace_cc_yy_cp = ace_cc_yy_last_accepting_cpos; - ace_cc_yy_current_state = ace_cc_yy_last_accepting_state; - goto ace_cc_yy_find_action; - -case 1: -ACE_CC_YY_RULE_SETUP -#line 30 "CC_command.l" -return T_TERM; - /* ACE_CC_YY_BREAK */ -case 2: -ACE_CC_YY_RULE_SETUP -#line 31 "CC_command.l" -return T_START_CMD; - /* ACE_CC_YY_BREAK */ -case 3: -ACE_CC_YY_RULE_SETUP -#line 32 "CC_command.l" -return T_CREATE_CMD; - /* ACE_CC_YY_BREAK */ -case 4: -ACE_CC_YY_RULE_SETUP -#line 33 "CC_command.l" -return T_LOCK_CMD; - /* ACE_CC_YY_BREAK */ -case 5: -ACE_CC_YY_RULE_SETUP -#line 34 "CC_command.l" -return T_UNLOCK_CMD; - /* ACE_CC_YY_BREAK */ -case 6: -ACE_CC_YY_RULE_SETUP -#line 35 "CC_command.l" -return T_TRYLOCK_CMD; - /* ACE_CC_YY_BREAK */ -case 7: -ACE_CC_YY_RULE_SETUP -#line 36 "CC_command.l" -return T_CHANGEMODE_CMD; - /* ACE_CC_YY_BREAK */ -case 8: -ACE_CC_YY_RULE_SETUP -#line 37 "CC_command.l" -return T_SLEEP_CMD; - /* ACE_CC_YY_BREAK */ -case 9: -ACE_CC_YY_RULE_SETUP -#line 38 "CC_command.l" -return T_WAIT_CMD; - /* ACE_CC_YY_BREAK */ -case 10: -ACE_CC_YY_RULE_SETUP -#line 39 "CC_command.l" -return T_PRINT_CMD; - /* ACE_CC_YY_BREAK */ -case 11: -ACE_CC_YY_RULE_SETUP -#line 40 "CC_command.l" -return T_REPEAT_CMD; - /* ACE_CC_YY_BREAK */ -case 12: -ACE_CC_YY_RULE_SETUP -#line 41 "CC_command.l" -return T_EXCEP_CMD; - /* ACE_CC_YY_BREAK */ -case 13: -ACE_CC_YY_RULE_SETUP -#line 42 "CC_command.l" -return T_LOOKUP_CMD; - /* ACE_CC_YY_BREAK */ -case 14: -ACE_CC_YY_RULE_SETUP -#line 43 "CC_command.l" -return T_READ; - /* ACE_CC_YY_BREAK */ -case 15: -ACE_CC_YY_RULE_SETUP -#line 44 "CC_command.l" -return T_IREAD; - /* ACE_CC_YY_BREAK */ -case 16: -ACE_CC_YY_RULE_SETUP -#line 45 "CC_command.l" -return T_UPGRADE; - /* ACE_CC_YY_BREAK */ -case 17: -ACE_CC_YY_RULE_SETUP -#line 46 "CC_command.l" -return T_WRITE; - /* ACE_CC_YY_BREAK */ -case 18: -ACE_CC_YY_RULE_SETUP -#line 47 "CC_command.l" -return T_IWRITE; - /* ACE_CC_YY_BREAK */ -case 19: -ACE_CC_YY_RULE_SETUP -#line 48 "CC_command.l" -{ ace_cc_yylval.id = ACE_OS::strdup(&ace_cc_yytext[1]); - ace_cc_yylval.id[ace_cc_yyleng-2]='\0'; - return Q_STRING; } - /* ACE_CC_YY_BREAK */ -case 20: -ACE_CC_YY_RULE_SETUP -#line 51 "CC_command.l" -{ ace_cc_yylval.num = atoi(ace_cc_yytext); return T_NUM; } - /* ACE_CC_YY_BREAK */ -case 21: -ACE_CC_YY_RULE_SETUP -#line 52 "CC_command.l" -{ ace_cc_yylval.id = ACE_OS::strdup(ace_cc_yytext); - return T_IDENT; } - /* ACE_CC_YY_BREAK */ -case 22: -ACE_CC_YY_RULE_SETUP -#line 54 "CC_command.l" -{ } - ACE_CC_YY_BREAK -case 23: -ACE_CC_YY_RULE_SETUP -#line 55 "CC_command.l" -{ } - ACE_CC_YY_BREAK -case 24: -ACE_CC_YY_RULE_SETUP -#line 56 "CC_command.l" -{ line_no ++; - ACE_OS::strcpy(line_buf, ace_cc_yytext+1); - ace_cc_yyless(1); } - ACE_CC_YY_BREAK -case 25: -ACE_CC_YY_RULE_SETUP -#line 59 "CC_command.l" -ACE_CC_ECHO; - ACE_CC_YY_BREAK -case ACE_CC_YY_STATE_EOF(INITIAL): - ace_cc_yyterminate(); - - case ACE_CC_YY_END_OF_BUFFER: - { - /* Amount of text matched not including the EOB char. */ - int ace_cc_yy_amount_of_matched_text = (int) (ace_cc_yy_cp - ace_cc_yytext_ptr) - 1; - - /* Undo the effects of ACE_CC_YY_DO_BEFORE_ACTION. */ - *ace_cc_yy_cp = ace_cc_yy_hold_char; - ACE_CC_YY_RESTORE_ACE_CC_YY_MORE_OFFSET - - if ( ace_cc_yy_current_buffer->ace_cc_yy_buffer_status == ACE_CC_YY_BUFFER_NEW ) - { - /* We're scanning a new file or input source. It's - * possible that this happened because the user - * just pointed ace_cc_yyin at a new source and called - * ace_cc_yylex(). If so, then we have to assure - * consistency between ace_cc_yy_current_buffer and our - * globals. Here is the right place to do so, because - * this is the first action (other than possibly a - * back-up) that will match for the new input source. - */ - ace_cc_yy_n_chars = ace_cc_yy_current_buffer->ace_cc_yy_n_chars; - ace_cc_yy_current_buffer->ace_cc_yy_input_file = ace_cc_yyin; - ace_cc_yy_current_buffer->ace_cc_yy_buffer_status = ACE_CC_YY_BUFFER_NORMAL; - } - - /* Note that here we test for ace_cc_yy_c_buf_p "<=" to the position - * of the first EOB in the buffer, since ace_cc_yy_c_buf_p will - * already have been incremented past the NUL character - * (since all states make transitions on EOB to the - * end-of-buffer state). Contrast this with the test - * in input(). - */ - if ( ace_cc_yy_c_buf_p <= &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars] ) - { /* This was really a NUL. */ - ace_cc_yy_state_type ace_cc_yy_next_state; - - ace_cc_yy_c_buf_p = ace_cc_yytext_ptr + ace_cc_yy_amount_of_matched_text; - - ace_cc_yy_current_state = ace_cc_yy_get_previous_state(); - - /* Okay, we're now positioned to make the NUL - * transition. We couldn't have - * ace_cc_yy_get_previous_state() go ahead and do it - * for us because it doesn't know how to deal - * with the possibility of jamming (and we don't - * want to build jamming into it because then it - * will run more slowly). - */ - - ace_cc_yy_next_state = ace_cc_yy_try_NUL_trans( ace_cc_yy_current_state ); - - ace_cc_yy_bp = ace_cc_yytext_ptr + ACE_CC_YY_MORE_ADJ; - - if ( ace_cc_yy_next_state ) - { - /* Consume the NUL. */ - ace_cc_yy_cp = ++ace_cc_yy_c_buf_p; - ace_cc_yy_current_state = ace_cc_yy_next_state; - goto ace_cc_yy_match; - } - - else - { - ace_cc_yy_cp = ace_cc_yy_c_buf_p; - goto ace_cc_yy_find_action; - } - } - - else switch ( ace_cc_yy_get_next_buffer() ) - { - case EOB_ACT_END_OF_FILE: - { - ace_cc_yy_did_buffer_switch_on_eof = 0; - - if ( ace_cc_yywrap() ) - { - /* Note: because we've taken care in - * ace_cc_yy_get_next_buffer() to have set up - * ace_cc_yytext, we can now set up - * ace_cc_yy_c_buf_p so that if some total - * hoser (like flex itself) wants to - * call the scanner after we return the - * ACE_CC_YY_NULL, it'll still work - another - * ACE_CC_YY_NULL will get returned. - */ - ace_cc_yy_c_buf_p = ace_cc_yytext_ptr + ACE_CC_YY_MORE_ADJ; - - ace_cc_yy_act = ACE_CC_YY_STATE_EOF(ACE_CC_YY_START); - goto do_action; - } - - else - { - if ( ! ace_cc_yy_did_buffer_switch_on_eof ) - ACE_CC_YY_NEW_FILE; - } - break; - } - - case EOB_ACT_CONTINUE_SCAN: - ace_cc_yy_c_buf_p = - ace_cc_yytext_ptr + ace_cc_yy_amount_of_matched_text; - - ace_cc_yy_current_state = ace_cc_yy_get_previous_state(); - - ace_cc_yy_cp = ace_cc_yy_c_buf_p; - ace_cc_yy_bp = ace_cc_yytext_ptr + ACE_CC_YY_MORE_ADJ; - goto ace_cc_yy_match; - - case EOB_ACT_LAST_MATCH: - ace_cc_yy_c_buf_p = - &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars]; - - ace_cc_yy_current_state = ace_cc_yy_get_previous_state(); - - ace_cc_yy_cp = ace_cc_yy_c_buf_p; - ace_cc_yy_bp = ace_cc_yytext_ptr + ACE_CC_YY_MORE_ADJ; - goto ace_cc_yy_find_action; - } - break; - } - - default: - ACE_CC_YY_FATAL_ERROR( - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ - } /* end of ace_cc_yylex */ - - -/* ace_cc_yy_get_next_buffer - try to read in a new buffer - * - * Returns a code representing an action: - * EOB_ACT_LAST_MATCH - - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position - * EOB_ACT_END_OF_FILE - end of file - */ - -static int ace_cc_yy_get_next_buffer() - { - register char *dest = ace_cc_yy_current_buffer->ace_cc_yy_ch_buf; - register char *source = ace_cc_yytext_ptr; - register int number_to_move, i; - int ret_val; - - if ( ace_cc_yy_c_buf_p > &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars + 1] ) - ACE_CC_YY_FATAL_ERROR( - "fatal flex scanner internal error--end of buffer missed" ); - - if ( ace_cc_yy_current_buffer->ace_cc_yy_fill_buffer == 0 ) - { /* Don't try to fill the buffer, so this is an EOF. */ - if ( ace_cc_yy_c_buf_p - ace_cc_yytext_ptr - ACE_CC_YY_MORE_ADJ == 1 ) - { - /* We matched a single character, the EOB, so - * treat this as a final EOF. - */ - return EOB_ACT_END_OF_FILE; - } - - else - { - /* We matched some text prior to the EOB, first - * process it. - */ - return EOB_ACT_LAST_MATCH; - } - } - - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ - number_to_move = (int) (ace_cc_yy_c_buf_p - ace_cc_yytext_ptr) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); - - if ( ace_cc_yy_current_buffer->ace_cc_yy_buffer_status == ACE_CC_YY_BUFFER_EOF_PENDING ) - /* don't do the read, it's not guaranteed to return an EOF, - * just force an EOF - */ - ace_cc_yy_current_buffer->ace_cc_yy_n_chars = ace_cc_yy_n_chars = 0; - - else - { - int num_to_read = - ace_cc_yy_current_buffer->ace_cc_yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ -#ifdef ACE_CC_YY_USES_REJECT - ACE_CC_YY_FATAL_ERROR( -"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); -#else - - /* just a shorter name for the current buffer */ - ACE_CC_YY_BUFFER_STATE b = ace_cc_yy_current_buffer; - - int ace_cc_yy_c_buf_p_offset = - (int) (ace_cc_yy_c_buf_p - b->ace_cc_yy_ch_buf); - - if ( b->ace_cc_yy_is_our_buffer ) - { - int new_size = b->ace_cc_yy_buf_size * 2; - - if ( new_size <= 0 ) - b->ace_cc_yy_buf_size += b->ace_cc_yy_buf_size / 8; - else - b->ace_cc_yy_buf_size *= 2; - - b->ace_cc_yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - ace_cc_yy_flex_realloc( (void *) b->ace_cc_yy_ch_buf, - b->ace_cc_yy_buf_size + 2 ); - } - else - /* Can't grow it, we don't own it. */ - b->ace_cc_yy_ch_buf = 0; - - if ( ! b->ace_cc_yy_ch_buf ) - ACE_CC_YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - ace_cc_yy_c_buf_p = &b->ace_cc_yy_ch_buf[ace_cc_yy_c_buf_p_offset]; - - num_to_read = ace_cc_yy_current_buffer->ace_cc_yy_buf_size - - number_to_move - 1; -#endif - } - - if ( num_to_read > ACE_CC_YY_READ_BUF_SIZE ) - num_to_read = ACE_CC_YY_READ_BUF_SIZE; - - /* Read in more data. */ - ACE_CC_YY_INPUT( (&ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[number_to_move]), - ace_cc_yy_n_chars, num_to_read ); - - ace_cc_yy_current_buffer->ace_cc_yy_n_chars = ace_cc_yy_n_chars; - } - - if ( ace_cc_yy_n_chars == 0 ) - { - if ( number_to_move == ACE_CC_YY_MORE_ADJ ) - { - ret_val = EOB_ACT_END_OF_FILE; - ace_cc_yyrestart( ace_cc_yyin ); - } - - else - { - ret_val = EOB_ACT_LAST_MATCH; - ace_cc_yy_current_buffer->ace_cc_yy_buffer_status = - ACE_CC_YY_BUFFER_EOF_PENDING; - } - } - - else - ret_val = EOB_ACT_CONTINUE_SCAN; - - ace_cc_yy_n_chars += number_to_move; - ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars] = ACE_CC_YY_END_OF_BUFFER_CHAR; - ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars + 1] = ACE_CC_YY_END_OF_BUFFER_CHAR; - - ace_cc_yytext_ptr = &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[0]; - - return ret_val; - } - - -/* ace_cc_yy_get_previous_state - get the state just before the EOB char was reached */ - -static ace_cc_yy_state_type ace_cc_yy_get_previous_state() - { - register ace_cc_yy_state_type ace_cc_yy_current_state; - register char *ace_cc_yy_cp; - - ace_cc_yy_current_state = ace_cc_yy_start; - ace_cc_yy_current_state += ACE_CC_YY_AT_BOL(); - - for ( ace_cc_yy_cp = ace_cc_yytext_ptr + ACE_CC_YY_MORE_ADJ; ace_cc_yy_cp < ace_cc_yy_c_buf_p; ++ace_cc_yy_cp ) - { - register ACE_CC_YY_CHAR ace_cc_yy_c = (*ace_cc_yy_cp ? ace_cc_yy_ec[ACE_CC_YY_SC_TO_UI(*ace_cc_yy_cp)] : 1); - if ( ace_cc_yy_accept[ace_cc_yy_current_state] ) - { - ace_cc_yy_last_accepting_state = ace_cc_yy_current_state; - ace_cc_yy_last_accepting_cpos = ace_cc_yy_cp; - } - while ( ace_cc_yy_chk[ace_cc_yy_base[ace_cc_yy_current_state] + ace_cc_yy_c] != ace_cc_yy_current_state ) - { - ace_cc_yy_current_state = (int) ace_cc_yy_def[ace_cc_yy_current_state]; - if ( ace_cc_yy_current_state >= 124 ) - ace_cc_yy_c = ace_cc_yy_meta[(unsigned int) ace_cc_yy_c]; - } - ace_cc_yy_current_state = ace_cc_yy_nxt[ace_cc_yy_base[ace_cc_yy_current_state] + (unsigned int) ace_cc_yy_c]; - } - - return ace_cc_yy_current_state; - } - - -/* ace_cc_yy_try_NUL_trans - try to make a transition on the NUL character - * - * synopsis - * next_state = ace_cc_yy_try_NUL_trans( current_state ); - */ - -#ifdef ACE_CC_YY_USE_PROTOS -static ace_cc_yy_state_type ace_cc_yy_try_NUL_trans( ace_cc_yy_state_type ace_cc_yy_current_state ) -#else -static ace_cc_yy_state_type ace_cc_yy_try_NUL_trans( ace_cc_yy_current_state ) -ace_cc_yy_state_type ace_cc_yy_current_state; -#endif - { - register int ace_cc_yy_is_jam; - register char *ace_cc_yy_cp = ace_cc_yy_c_buf_p; - - register ACE_CC_YY_CHAR ace_cc_yy_c = 1; - if ( ace_cc_yy_accept[ace_cc_yy_current_state] ) - { - ace_cc_yy_last_accepting_state = ace_cc_yy_current_state; - ace_cc_yy_last_accepting_cpos = ace_cc_yy_cp; - } - while ( ace_cc_yy_chk[ace_cc_yy_base[ace_cc_yy_current_state] + ace_cc_yy_c] != ace_cc_yy_current_state ) - { - ace_cc_yy_current_state = (int) ace_cc_yy_def[ace_cc_yy_current_state]; - if ( ace_cc_yy_current_state >= 124 ) - ace_cc_yy_c = ace_cc_yy_meta[(unsigned int) ace_cc_yy_c]; - } - ace_cc_yy_current_state = ace_cc_yy_nxt[ace_cc_yy_base[ace_cc_yy_current_state] + (unsigned int) ace_cc_yy_c]; - ace_cc_yy_is_jam = (ace_cc_yy_current_state == 123); - - return ace_cc_yy_is_jam ? 0 : ace_cc_yy_current_state; - } - - -#ifndef ACE_CC_YY_NO_UNPUT -#ifdef ACE_CC_YY_USE_PROTOS -static void ace_cc_yyunput( int c, register char *ace_cc_yy_bp ) -#else -static void ace_cc_yyunput( c, ace_cc_yy_bp ) -int c; -register char *ace_cc_yy_bp; -#endif - { - register char *ace_cc_yy_cp = ace_cc_yy_c_buf_p; - - /* undo effects of setting up ace_cc_yytext */ - *ace_cc_yy_cp = ace_cc_yy_hold_char; - - if ( ace_cc_yy_cp < ace_cc_yy_current_buffer->ace_cc_yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ - register int number_to_move = ace_cc_yy_n_chars + 2; - register char *dest = &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ - ace_cc_yy_current_buffer->ace_cc_yy_buf_size + 2]; - register char *source = - &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[number_to_move]; - - while ( source > ace_cc_yy_current_buffer->ace_cc_yy_ch_buf ) - *--dest = *--source; - - ace_cc_yy_cp += (int) (dest - source); - ace_cc_yy_bp += (int) (dest - source); - ace_cc_yy_current_buffer->ace_cc_yy_n_chars = - ace_cc_yy_n_chars = ace_cc_yy_current_buffer->ace_cc_yy_buf_size; - - if ( ace_cc_yy_cp < ace_cc_yy_current_buffer->ace_cc_yy_ch_buf + 2 ) - ACE_CC_YY_FATAL_ERROR( "flex scanner push-back overflow" ); - } - - *--ace_cc_yy_cp = (char) c; - - - ace_cc_yytext_ptr = ace_cc_yy_bp; - ace_cc_yy_hold_char = *ace_cc_yy_cp; - ace_cc_yy_c_buf_p = ace_cc_yy_cp; - } -#endif /* ifndef ACE_CC_YY_NO_UNPUT */ - -#ifndef ACE_CC_YY_NO_INPUT -#ifdef __cplusplus -static int ace_cc_yyinput() -#else -static int input() -#endif - { - int c; - - *ace_cc_yy_c_buf_p = ace_cc_yy_hold_char; - - if ( *ace_cc_yy_c_buf_p == ACE_CC_YY_END_OF_BUFFER_CHAR ) - { - /* ace_cc_yy_c_buf_p now points to the character we want to return. - * If this occurs *before* the EOB characters, then it's a - * valid NUL; if not, then we've hit the end of the buffer. - */ - if ( ace_cc_yy_c_buf_p < &ace_cc_yy_current_buffer->ace_cc_yy_ch_buf[ace_cc_yy_n_chars] ) - /* This was really a NUL. */ - *ace_cc_yy_c_buf_p = '\0'; - - else - { /* need more input */ - int offset = ace_cc_yy_c_buf_p - ace_cc_yytext_ptr; - ++ace_cc_yy_c_buf_p; - - switch ( ace_cc_yy_get_next_buffer() ) - { - case EOB_ACT_LAST_MATCH: - /* This happens because ace_cc_yy_g_n_b() - * sees that we've accumulated a - * token and flags that we need to - * try matching the token before - * proceeding. But for input(), - * there's no matching to consider. - * So convert the EOB_ACT_LAST_MATCH - * to EOB_ACT_END_OF_FILE. - */ - - /* Reset buffer status. */ - ace_cc_yyrestart( ace_cc_yyin ); - - /* fall through */ - - case EOB_ACT_END_OF_FILE: - { - if ( ace_cc_yywrap() ) - return EOF; - - /* if ( ! ace_cc_yy_did_buffer_switch_on_eof ) - ACE_CC_YY_NEW_FILE; -#ifdef __cplusplus - return ace_cc_yyinput(); -#else - return input(); - #endif */ - } - - case EOB_ACT_CONTINUE_SCAN: - ace_cc_yy_c_buf_p = ace_cc_yytext_ptr + offset; - break; - } - } - } - - c = *(unsigned char *) ace_cc_yy_c_buf_p; /* cast for 8-bit char's */ - *ace_cc_yy_c_buf_p = '\0'; /* preserve ace_cc_yytext */ - ace_cc_yy_hold_char = *++ace_cc_yy_c_buf_p; - - ace_cc_yy_current_buffer->ace_cc_yy_at_bol = (c == '\n'); - - return c; - } -#endif /* ! ACE_CC_YY_NO_INPUT */ - - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yyrestart( FILE *input_file ) -#else -void ace_cc_yyrestart( input_file ) -FILE *input_file; -#endif - { - if ( ! ace_cc_yy_current_buffer ) - ace_cc_yy_current_buffer = ace_cc_yy_create_buffer( ace_cc_yyin, ACE_CC_YY_BUF_SIZE ); - - ace_cc_yy_init_buffer( ace_cc_yy_current_buffer, input_file ); - ace_cc_yy_load_buffer_state(); - } - - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yy_switch_to_buffer( ACE_CC_YY_BUFFER_STATE new_buffer ) -#else -void ace_cc_yy_switch_to_buffer( new_buffer ) -ACE_CC_YY_BUFFER_STATE new_buffer; -#endif - { - if ( ace_cc_yy_current_buffer == new_buffer ) - return; - - if ( ace_cc_yy_current_buffer ) - { - /* Flush out information for old buffer. */ - *ace_cc_yy_c_buf_p = ace_cc_yy_hold_char; - ace_cc_yy_current_buffer->ace_cc_yy_buf_pos = ace_cc_yy_c_buf_p; - ace_cc_yy_current_buffer->ace_cc_yy_n_chars = ace_cc_yy_n_chars; - } - - ace_cc_yy_current_buffer = new_buffer; - ace_cc_yy_load_buffer_state(); - - /* We don't actually know whether we did this switch during - * EOF (ace_cc_yywrap()) processing, but the only time this flag - * is looked at is after ace_cc_yywrap() is called, so it's safe - * to go ahead and always set it. - */ - ace_cc_yy_did_buffer_switch_on_eof = 1; - } - - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yy_load_buffer_state( void ) -#else -void ace_cc_yy_load_buffer_state() -#endif - { - ace_cc_yy_n_chars = ace_cc_yy_current_buffer->ace_cc_yy_n_chars; - ace_cc_yytext_ptr = ace_cc_yy_c_buf_p = ace_cc_yy_current_buffer->ace_cc_yy_buf_pos; - ace_cc_yyin = ace_cc_yy_current_buffer->ace_cc_yy_input_file; - ace_cc_yy_hold_char = *ace_cc_yy_c_buf_p; - } - - -#ifdef ACE_CC_YY_USE_PROTOS -ACE_CC_YY_BUFFER_STATE ace_cc_yy_create_buffer( FILE *file, int size ) -#else -ACE_CC_YY_BUFFER_STATE ace_cc_yy_create_buffer( file, size ) -FILE *file; -int size; -#endif - { - ACE_CC_YY_BUFFER_STATE b; - - b = (ACE_CC_YY_BUFFER_STATE) ace_cc_yy_flex_alloc( sizeof( struct ace_cc_yy_buffer_state ) ); - if ( ! b ) - ACE_CC_YY_FATAL_ERROR( "out of dynamic memory in ace_cc_yy_create_buffer()" ); - - b->ace_cc_yy_buf_size = size; - - /* ace_cc_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_cc_yy_ch_buf = (char *) ace_cc_yy_flex_alloc( b->ace_cc_yy_buf_size + 2 ); - if ( ! b->ace_cc_yy_ch_buf ) - ACE_CC_YY_FATAL_ERROR( "out of dynamic memory in ace_cc_yy_create_buffer()" ); - - b->ace_cc_yy_is_our_buffer = 1; - - ace_cc_yy_init_buffer( b, file ); - - return b; - } - - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yy_delete_buffer( ACE_CC_YY_BUFFER_STATE b ) -#else -void ace_cc_yy_delete_buffer( b ) -ACE_CC_YY_BUFFER_STATE b; -#endif - { - if ( ! b ) - return; - - if ( b == ace_cc_yy_current_buffer ) - ace_cc_yy_current_buffer = (ACE_CC_YY_BUFFER_STATE) 0; - - if ( b->ace_cc_yy_is_our_buffer ) - ace_cc_yy_flex_free( (void *) b->ace_cc_yy_ch_buf ); - - ace_cc_yy_flex_free( (void *) b ); - } - - -#ifndef ACE_CC_YY_ALWAYS_INTERACTIVE -#ifndef ACE_CC_YY_NEVER_INTERACTIVE -extern int isatty ACE_CC_YY_PROTO(( int )); -#endif -#endif - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yy_init_buffer( ACE_CC_YY_BUFFER_STATE b, FILE *file ) -#else -void ace_cc_yy_init_buffer( b, file ) -ACE_CC_YY_BUFFER_STATE b; -FILE *file; -#endif - - - { - ace_cc_yy_flush_buffer( b ); - - b->ace_cc_yy_input_file = file; - b->ace_cc_yy_fill_buffer = 1; - -#if ACE_CC_YY_ALWAYS_INTERACTIVE - b->ace_cc_yy_is_interactive = 1; -#else -#if ACE_CC_YY_NEVER_INTERACTIVE - b->ace_cc_yy_is_interactive = 0; -#else - b->ace_cc_yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; -#endif -#endif - } - - -#ifdef ACE_CC_YY_USE_PROTOS -void ace_cc_yy_flush_buffer( ACE_CC_YY_BUFFER_STATE b ) -#else -void ace_cc_yy_flush_buffer( b ) -ACE_CC_YY_BUFFER_STATE b; -#endif - - { - if ( ! b ) - return; - - b->ace_cc_yy_n_chars = 0; - - /* We always need two end-of-buffer characters. The first causes - * a transition to the end-of-buffer state. The second causes - * a jam in that state. - */ - b->ace_cc_yy_ch_buf[0] = ACE_CC_YY_END_OF_BUFFER_CHAR; - b->ace_cc_yy_ch_buf[1] = ACE_CC_YY_END_OF_BUFFER_CHAR; - - b->ace_cc_yy_buf_pos = &b->ace_cc_yy_ch_buf[0]; - - b->ace_cc_yy_at_bol = 1; - b->ace_cc_yy_buffer_status = ACE_CC_YY_BUFFER_NEW; - - if ( b == ace_cc_yy_current_buffer ) - ace_cc_yy_load_buffer_state(); - } - - -#ifndef ACE_CC_YY_NO_SCAN_BUFFER -#ifdef ACE_CC_YY_USE_PROTOS -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_buffer( char *base, ace_cc_yy_size_t size ) -#else -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_buffer( base, size ) -char *base; -ace_cc_yy_size_t size; -#endif - { - ACE_CC_YY_BUFFER_STATE b; - - if ( size < 2 || - base[size-2] != ACE_CC_YY_END_OF_BUFFER_CHAR || - base[size-1] != ACE_CC_YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ - return 0; - - b = (ACE_CC_YY_BUFFER_STATE) ace_cc_yy_flex_alloc( sizeof( struct ace_cc_yy_buffer_state ) ); - if ( ! b ) - ACE_CC_YY_FATAL_ERROR( "out of dynamic memory in ace_cc_yy_scan_buffer()" ); - - b->ace_cc_yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ - b->ace_cc_yy_buf_pos = b->ace_cc_yy_ch_buf = base; - b->ace_cc_yy_is_our_buffer = 0; - b->ace_cc_yy_input_file = 0; - b->ace_cc_yy_n_chars = b->ace_cc_yy_buf_size; - b->ace_cc_yy_is_interactive = 0; - b->ace_cc_yy_at_bol = 1; - b->ace_cc_yy_fill_buffer = 0; - b->ace_cc_yy_buffer_status = ACE_CC_YY_BUFFER_NEW; - - ace_cc_yy_switch_to_buffer( b ); - - return b; - } -#endif - - -#ifndef ACE_CC_YY_NO_SCAN_STRING -#ifdef ACE_CC_YY_USE_PROTOS -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_string( ace_cc_yyconst char *ace_cc_yy_str ) -#else -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_string( ace_cc_yy_str ) -ace_cc_yyconst char *ace_cc_yy_str; -#endif - { - int len; - for ( len = 0; ace_cc_yy_str[len]; ++len ) - ; - - return ace_cc_yy_scan_bytes( ace_cc_yy_str, len ); - } -#endif - - -#ifndef ACE_CC_YY_NO_SCAN_BYTES -#ifdef ACE_CC_YY_USE_PROTOS -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_bytes( ace_cc_yyconst char *bytes, int len ) -#else -ACE_CC_YY_BUFFER_STATE ace_cc_yy_scan_bytes( bytes, len ) -ace_cc_yyconst char *bytes; -int len; -#endif - { - ACE_CC_YY_BUFFER_STATE b; - char *buf; - ace_cc_yy_size_t n; - int i; - - /* Get memory for full buffer, including space for trailing EOB's. */ - n = len + 2; - buf = (char *) ace_cc_yy_flex_alloc( n ); - if ( ! buf ) - ACE_CC_YY_FATAL_ERROR( "out of dynamic memory in ace_cc_yy_scan_bytes()" ); - - for ( i = 0; i < len; ++i ) - buf[i] = bytes[i]; - - buf[len] = buf[len+1] = ACE_CC_YY_END_OF_BUFFER_CHAR; - - b = ace_cc_yy_scan_buffer( buf, n ); - if ( ! b ) - ACE_CC_YY_FATAL_ERROR( "bad buffer in ace_cc_yy_scan_bytes()" ); - - /* It's okay to grow etc. this buffer, and we should throw it - * away when we're done. - */ - b->ace_cc_yy_is_our_buffer = 1; - - return b; - } -#endif - - -#ifndef ACE_CC_YY_NO_PUSH_STATE -#ifdef ACE_CC_YY_USE_PROTOS -static void ace_cc_yy_push_state( int new_state ) -#else -static void ace_cc_yy_push_state( new_state ) -int new_state; -#endif - { - if ( ace_cc_yy_start_stack_ptr >= ace_cc_yy_start_stack_depth ) - { - ace_cc_yy_size_t new_size; - - ace_cc_yy_start_stack_depth += ACE_CC_YY_START_STACK_INCR; - new_size = ace_cc_yy_start_stack_depth * sizeof( int ); - - if ( ! ace_cc_yy_start_stack ) - ace_cc_yy_start_stack = (int *) ace_cc_yy_flex_alloc( new_size ); - - else - ace_cc_yy_start_stack = (int *) ace_cc_yy_flex_realloc( - (void *) ace_cc_yy_start_stack, new_size ); - - if ( ! ace_cc_yy_start_stack ) - ACE_CC_YY_FATAL_ERROR( - "out of memory expanding start-condition stack" ); - } - - ace_cc_yy_start_stack[ace_cc_yy_start_stack_ptr++] = ACE_CC_YY_START; - - BEGIN(new_state); - } -#endif - - -#ifndef ACE_CC_YY_NO_POP_STATE -static void ace_cc_yy_pop_state() - { - if ( --ace_cc_yy_start_stack_ptr < 0 ) - ACE_CC_YY_FATAL_ERROR( "start-condition stack underflow" ); - - BEGIN(ace_cc_yy_start_stack[ace_cc_yy_start_stack_ptr]); - } -#endif - - -#ifndef ACE_CC_YY_NO_TOP_STATE -static int ace_cc_yy_top_state() - { - return ace_cc_yy_start_stack[ace_cc_yy_start_stack_ptr - 1]; - } -#endif - -#ifndef ACE_CC_YY_EXIT_FAILURE -#define ACE_CC_YY_EXIT_FAILURE 2 -#endif - -#ifdef ACE_CC_YY_USE_PROTOS -static void ace_cc_yy_fatal_error( ace_cc_yyconst char msg[] ) -#else -static void ace_cc_yy_fatal_error( msg ) -char msg[]; -#endif - { - (void) fprintf( stderr, "%s\n", msg ); - exit( ACE_CC_YY_EXIT_FAILURE ); - } - - - -/* Redefine ace_cc_yyless() so it works in section 3 code. */ - -#undef ace_cc_yyless -#define ace_cc_yyless(n) \ - do \ - { \ - /* Undo effects of setting up ace_cc_yytext. */ \ - ace_cc_yytext[ace_cc_yyleng] = ace_cc_yy_hold_char; \ - ace_cc_yy_c_buf_p = ace_cc_yytext + n; \ - ace_cc_yy_hold_char = *ace_cc_yy_c_buf_p; \ - *ace_cc_yy_c_buf_p = '\0'; \ - ace_cc_yyleng = n; \ - } \ - while ( 0 ) - - -/* Internal utility routines. */ - -#ifndef ace_cc_yytext_ptr -#ifdef ACE_CC_YY_USE_PROTOS -static void ace_cc_yy_flex_strncpy( char *s1, ace_cc_yyconst char *s2, int n ) -#else -static void ace_cc_yy_flex_strncpy( s1, s2, n ) -char *s1; -ace_cc_yyconst char *s2; -int n; -#endif - { - register int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; - } -#endif - -#ifdef ACE_CC_YY_NEED_STRLEN -#ifdef ACE_CC_YY_USE_PROTOS -static int ace_cc_yy_flex_strlen( ace_cc_yyconst char *s ) -#else -static int ace_cc_yy_flex_strlen( s ) -ace_cc_yyconst char *s; -#endif - { - register int n; - for ( n = 0; s[n]; ++n ) - ; - - return n; - } -#endif - - -#ifdef ACE_CC_YY_USE_PROTOS -static void *ace_cc_yy_flex_alloc( ace_cc_yy_size_t size ) -#else -static void *ace_cc_yy_flex_alloc( size ) -ace_cc_yy_size_t size; -#endif - { - return (void *) malloc( size ); - } - -#ifdef ACE_CC_YY_USE_PROTOS -static void *ace_cc_yy_flex_realloc( void *ptr, ace_cc_yy_size_t size ) -#else -static void *ace_cc_yy_flex_realloc( ptr, size ) -void *ptr; -ace_cc_yy_size_t size; -#endif - { - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter - * because both ANSI C and C++ allow castless assignment from - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ - return (void *) realloc( (char *) ptr, size ); - } - -#ifdef ACE_CC_YY_USE_PROTOS -static void ace_cc_yy_flex_free( void *ptr ) -#else -static void ace_cc_yy_flex_free( ptr ) -void *ptr; -#endif - { - free( ACE_MALLOC_T (ptr) ); - } - -#if ACE_CC_YY_MAIN -int main() - { - ace_cc_yylex(); - return 0; - } -#endif -#line 59 "CC_command.l" diff --git a/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff b/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff deleted file mode 100644 index 5144d9a7310..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/lex.CC_command.cpp.diff +++ /dev/null @@ -1,177 +0,0 @@ ---- lex.CC_command.cpp.orig Fri Jun 19 16:04:06 1998 -+++ lex.CC_command.cpp Fri Jun 19 16:04:24 1998 -@@ -1,7 +1,7 @@ - /* A lexical scanner generated by flex */ -- -+// $Id$ - /* Scanner skeleton version: -- * $Header$ -+ * Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp - */ - - #define FLEX_SCANNER -@@ -709,110 +709,110 @@ - ACE_CC_YY_RULE_SETUP - #line 30 "CC_command.l" - return T_TERM; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 2: - ACE_CC_YY_RULE_SETUP - #line 31 "CC_command.l" - return T_START_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 3: - ACE_CC_YY_RULE_SETUP - #line 32 "CC_command.l" - return T_CREATE_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 4: - ACE_CC_YY_RULE_SETUP - #line 33 "CC_command.l" - return T_LOCK_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 5: - ACE_CC_YY_RULE_SETUP - #line 34 "CC_command.l" - return T_UNLOCK_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 6: - ACE_CC_YY_RULE_SETUP - #line 35 "CC_command.l" - return T_TRYLOCK_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 7: - ACE_CC_YY_RULE_SETUP - #line 36 "CC_command.l" - return T_CHANGEMODE_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 8: - ACE_CC_YY_RULE_SETUP - #line 37 "CC_command.l" - return T_SLEEP_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 9: - ACE_CC_YY_RULE_SETUP - #line 38 "CC_command.l" - return T_WAIT_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 10: - ACE_CC_YY_RULE_SETUP - #line 39 "CC_command.l" - return T_PRINT_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 11: - ACE_CC_YY_RULE_SETUP - #line 40 "CC_command.l" - return T_REPEAT_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 12: - ACE_CC_YY_RULE_SETUP - #line 41 "CC_command.l" - return T_EXCEP_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 13: - ACE_CC_YY_RULE_SETUP - #line 42 "CC_command.l" - return T_LOOKUP_CMD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 14: - ACE_CC_YY_RULE_SETUP - #line 43 "CC_command.l" - return T_READ; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 15: - ACE_CC_YY_RULE_SETUP - #line 44 "CC_command.l" - return T_IREAD; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 16: - ACE_CC_YY_RULE_SETUP - #line 45 "CC_command.l" - return T_UPGRADE; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 17: - ACE_CC_YY_RULE_SETUP - #line 46 "CC_command.l" - return T_WRITE; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 18: - ACE_CC_YY_RULE_SETUP - #line 47 "CC_command.l" - return T_IWRITE; -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 19: - ACE_CC_YY_RULE_SETUP - #line 48 "CC_command.l" - { ace_cc_yylval.id = ACE_OS::strdup(&ace_cc_yytext[1]); - ace_cc_yylval.id[ace_cc_yyleng-2]='\0'; - return Q_STRING; } -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 20: - ACE_CC_YY_RULE_SETUP - #line 51 "CC_command.l" - { ace_cc_yylval.num = atoi(ace_cc_yytext); return T_NUM; } -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 21: - ACE_CC_YY_RULE_SETUP - #line 52 "CC_command.l" - { ace_cc_yylval.id = ACE_OS::strdup(ace_cc_yytext); - return T_IDENT; } -- ACE_CC_YY_BREAK -+ /* ACE_CC_YY_BREAK */ - case 22: - ACE_CC_YY_RULE_SETUP - #line 54 "CC_command.l" -@@ -1216,7 +1216,7 @@ - } - #endif /* ifndef ACE_CC_YY_NO_UNPUT */ - -- -+#ifndef ACE_CC_YY_NO_INPUT - #ifdef __cplusplus - static int ace_cc_yyinput() - #else -@@ -1265,13 +1265,13 @@ - if ( ace_cc_yywrap() ) - return EOF; - -- if ( ! ace_cc_yy_did_buffer_switch_on_eof ) -+ /* if ( ! ace_cc_yy_did_buffer_switch_on_eof ) - ACE_CC_YY_NEW_FILE; - #ifdef __cplusplus - return ace_cc_yyinput(); - #else - return input(); --#endif -+ #endif */ - } - - case EOB_ACT_CONTINUE_SCAN: -@@ -1289,6 +1289,7 @@ - - return c; - } -+#endif /* ! ACE_CC_YY_NO_INPUT */ - - - #ifdef ACE_CC_YY_USE_PROTOS diff --git a/TAO/orbsvcs/tests/Concurrency/svc.conf b/TAO/orbsvcs/tests/Concurrency/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/Concurrency/test.basic b/TAO/orbsvcs/tests/Concurrency/test.basic deleted file mode 100644 index d0e5ee8e650..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.basic +++ /dev/null @@ -1,21 +0,0 @@ -create test; -lock test read; -try_lock test read; -unlock test read; -unlock test read; -lock test write; -try_lock test write; -unlock test write; -lock test upgrade; -try_lock test upgrade; -unlock test upgrade; -lock test intention_read; -try_lock test intention_read; -unlock test intention_read; -unlock test intention_read; -lock test intention_write; -try_lock test intention_write; -unlock test intention_write; -create ls2; -unlock ls2 write; -exception IDL:CosConcurrencyControl/LockNotHeld:1.0; diff --git a/TAO/orbsvcs/tests/Concurrency/test.dinphil b/TAO/orbsvcs/tests/Concurrency/test.dinphil deleted file mode 100644 index 81b02f90ee7..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.dinphil +++ /dev/null @@ -1,12 +0,0 @@ -print "Creating lock sets"; -create fork1; -create fork2; -create fork3; -create fork4; -create fork5; -print "Running the tests"; -start test.phil1; -start test.phil2; -start test.phil3; -start test.phil4; -start test.phil5; diff --git a/TAO/orbsvcs/tests/Concurrency/test.e1 b/TAO/orbsvcs/tests/Concurrency/test.e1 deleted file mode 100644 index 1c1e4517680..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.e1 +++ /dev/null @@ -1,2 +0,0 @@ -wait "Press return"; -unlock ls1 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.extended b/TAO/orbsvcs/tests/Concurrency/test.extended deleted file mode 100644 index 330f03e39c5..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.extended +++ /dev/null @@ -1,4 +0,0 @@ -create ls1; -lock ls1 write; -wait "Run test.e1 - then press return"; -lock ls1 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.phil1 b/TAO/orbsvcs/tests/Concurrency/test.phil1 deleted file mode 100644 index 19d25e04ef9..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.phil1 +++ /dev/null @@ -1,6 +0,0 @@ -repeat 100; -lock fork2 write; -lock fork1 write; -print "Phil 1 eating"; -unlock fork2 write; -unlock fork1 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.phil2 b/TAO/orbsvcs/tests/Concurrency/test.phil2 deleted file mode 100644 index 7f02934cf4d..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.phil2 +++ /dev/null @@ -1,6 +0,0 @@ -repeat 100; -lock fork2 write; -lock fork3 write; -print "Phil 2 eating"; -unlock fork2 write; -unlock fork3 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.phil3 b/TAO/orbsvcs/tests/Concurrency/test.phil3 deleted file mode 100644 index 4d808e88ac7..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.phil3 +++ /dev/null @@ -1,6 +0,0 @@ -repeat 100; -lock fork3 write; -lock fork4 write; -print "Phil 3 eating"; -unlock fork3 write; -unlock fork4 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.phil4 b/TAO/orbsvcs/tests/Concurrency/test.phil4 deleted file mode 100644 index 36910b9a9aa..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.phil4 +++ /dev/null @@ -1,6 +0,0 @@ -repeat 100; -lock fork4 write; -lock fork5 write; -print "Phil 4 eating"; -unlock fork4 write; -unlock fork5 write; diff --git a/TAO/orbsvcs/tests/Concurrency/test.phil5 b/TAO/orbsvcs/tests/Concurrency/test.phil5 deleted file mode 100644 index b5f5058eac6..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/test.phil5 +++ /dev/null @@ -1,6 +0,0 @@ -repeat 100; -lock fork5 write; -lock fork1 write; -print "Phil 5 eating"; -unlock fork5 write; -unlock fork1 write; diff --git a/TAO/orbsvcs/tests/Concurrency/tmplinst.cpp b/TAO/orbsvcs/tests/Concurrency/tmplinst.cpp deleted file mode 100644 index 00d8fe722c2..00000000000 --- a/TAO/orbsvcs/tests/Concurrency/tmplinst.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "orbsvcs/orbsvcs/CosConcurrencyControlC.h" - -#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/tests/CosPropertyService/Makefile b/TAO/orbsvcs/tests/CosPropertyService/Makefile deleted file mode 100644 index 963cd8708c6..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the AVStreams demo of the TAO ORB -# -#---------------------------------------------------------------------------- - -#--------------- -# STL (start) -#--------------- - -include $(STL_ROOT)/config/local.cfg - -CC_INCLUDES += -I$(STD) -CC_INCLUDES += -pta - -CPPFLAGS += \ - -I$(TOOLKIT) \ - $(CC_INCLUDES) \ - $(CC_FLAGS) \ - $(CC_DEFINES) \ - $(CC_EH) \ - $(CC_MT) - -ifndef exceptions -CPPFLAGS += -DOS_NO_EXCEPTION_SPECIFIER -else -CPPFLAGS += -DOS_STL_ASSERT -endif - -LDFLAGS += -L$(STL_ROOT)/lib - -#--------------- -# STL (end) -#--------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lorbsvcs -lospace -lTAO -lrpcsvc - -AVStreams_SERVER_OBJS = server.o -AVStreams_CLIENT_OBJS = client.o - -COSPROPERTY_OBJS = main.o - -BIN = server client -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -server:$(addprefix $(VDIR),$(AVStreams_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client:$(addprefix $(VDIR),$(AVStreams_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf - - -# 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/TAO/orbsvcs/tests/CosPropertyService/client.cpp b/TAO/orbsvcs/tests/CosPropertyService/client.cpp deleted file mode 100644 index c4d0c39770f..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/client.cpp +++ /dev/null @@ -1,754 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// Test client for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#include "client.h" - -Client::Client (void) -{ -} - -// initialize the ORB, get a grip on the remote mmdevice, and store it -// in this->remote_mmdevice_. Also create a stream controlller and a -// local mmdevice. - -int -Client::init (int argc, - char *argv[], - CORBA::Environment &env) -{ - // Init the ORB. - manager_.init (argc, - argv, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Open the ORB. - manager_.orb ()->open (); - - // Naming service. - CORBA::Object_var naming_obj = - manager_.orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Bind PropertySetDef Object. - - CosNaming::Name propsetdef_name (1); - propsetdef_name.length (1); - propsetdef_name [0].id = CORBA::string_dup ("PropertySetDef"); - CORBA::Object_var propsetdef_obj = naming_context->resolve (propsetdef_name, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - ACE_DEBUG ((LM_DEBUG, "Naming resolve done\n")); - - this->propsetdef_ = CosPropertyService::PropertySetDef::_narrow (propsetdef_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - if (CORBA::is_nil (this->propsetdef_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Couldnot resolve propsetdef in Naming server"), - -1); -} - -// Testing the methods of the property service. - -int -Client::property_tester (CORBA::Environment &env) -{ - // = Testing PropertySet & Iterators. - - // Testing define_property () of PropertySet interface. - this->test_define_property (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_property_names. - this->test_get_all_property_names (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test get_property_value. - this->test_get_property_value (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing delete property. - this->test_delete_property ("no_property",env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_properties. - this->test_get_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing delete_properties. - this->test_delete_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing define_properties. - this->test_define_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_property_names. - this->test_get_all_property_names (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_properties. - this->test_get_all_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // = Testing PropertySetDef & Iterators. - - // Testing define_property_with_mode. - this->test_define_property_with_mode (env); - TAO_CHECK_ENV_RETURN (env, -1); - -} - -// Testing define_property. - -int -Client::test_define_property (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - this->propsetdef_->define_property ("char_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - propsetdef_->define_property ("short_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - propsetdef_->define_property ("long_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - propsetdef_->define_property ("float_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - propsetdef_->define_property ("string_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("string_property"); - env.clear (); - } - - return 0; -} - -// Testing get_all_property_names of the PropertySet. - -int -Client::test_get_all_property_names (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nTesting get_all_property_names ()\n")); - - // Get the size. - CORBA::ULong num_of_properties = - propsetdef_->get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get half on the names and half of on the iterator. - CORBA::ULong how_many = num_of_properties / 2; - CosPropertyService::PropertyNames_var names_var; - CosPropertyService::PropertyNamesIterator_var iterator_var; - propsetdef_->get_all_property_names (how_many, - names_var.out (), - iterator_var.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print out the names in the names-sequence. - if (names_var.ptr () != 0) - { - CORBA::ULong len = names_var->length (); - - for (CORBA::ULong ni = 0; ni < len; ni++) - ACE_DEBUG ((LM_DEBUG, - "%s\n", - (const char *) names_var [ni])); - } - - // Iterate thru and print out the names in the iterator, if any. - if (iterator_var.ptr () != 0) - { - CosPropertyService::PropertyName_var name_var; - - while (iterator_var->next_one (name_var.out (), env) == CORBA::B_TRUE) - { - TAO_CHECK_ENV_RETURN (env, -1); - ACE_DEBUG ((LM_DEBUG, "%s\n", name_var.in ())); - } - - TAO_CHECK_ENV_RETURN (env, -1); - } -} - -// Test get_properties. Give a sequence of names and get all their -// properties. - -int -Client::test_get_properties (CORBA::Environment &env) -{ - // Get float_property, string_property and no_property. If return - // value is false and type is tc_void then that name is not there in - // the PropertySet. - ACE_DEBUG ((LM_DEBUG, "\nTesting get_properties\n")); - CosPropertyService::PropertyNames_var names; - CosPropertyService::PropertyNames_ptr names_ptr; - - ACE_NEW_RETURN (names_ptr, - CosPropertyService::PropertyNames, - -1); - names = names_ptr; - - names->length (3); - names [0] = CORBA::string_dup ("float_property"); - //names [1] = CORBA::string_dup ("string_property"); - names [1] = CORBA::string_dup ("long_property"); - names [2] = CORBA::string_dup ("char_property"); - //names [2] = CORBA::string_dup ("no_property"); - - CosPropertyService::Properties_var properties; - - // Get the properties. - CORBA::Boolean return_val = propsetdef_->get_properties (names.in (), - properties.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - if (properties.ptr () != 0) - { - // Go thru the properties and print them out, if they are not - // _tc_void typed values. - CORBA::ULong len = properties->length (); - - for (CORBA::ULong pi = 0; pi < len; pi++) - { - // Print the name. - ACE_DEBUG ((LM_DEBUG, - "%s : ", - (const char *) properties [pi].property_name.in ())); - - // Print the value. - CORBA::Any::dump (properties [pi].property_value); - } - } - return 0; -} - -// Testing, get_number_of_properties. - -int -Client::test_get_number_of_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nNumber of props : %d\n", - this->propsetdef_->get_number_of_properties (env))); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Test delete_property. - -int -Client::test_delete_property (CORBA::String property_name, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\nDeleting %s\n",property_name)); - - TAO_TRY - { - this->propsetdef_->delete_property (property_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::UserException, ex) - { - TAO_TRY_ENV.print_exception ("User exception"); - return -1; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Not an user exception"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// Test delete_properties. -// Make a sequence of property names and delete them from the -// PropertySet. Deleting char, short, long, float and string -// properties. - -int -Client::test_delete_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_properties\n")); - CosPropertyService::PropertyNames prop_names; - prop_names.length (4); - prop_names [0] = CORBA::string_dup ("char_property"); - prop_names [1] = CORBA::string_dup ("short_property"); - prop_names [2] = CORBA::string_dup ("long_property"); - prop_names [3] = CORBA::string_dup ("no_property"); - ACE_DEBUG ((LM_DEBUG, - "Length of sequence %d, Maxlength : %d\n", - prop_names.length (), - prop_names.maximum ())); - this->propsetdef_->delete_properties (prop_names, - env); - TAO_CHECK_ENV_RETURN (env, 0); - - return 0; -} - -// Defines a sequnce of properties containing, char, short, long, -// float in the property set. - -int -Client::test_define_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_properties\n")); - CosPropertyService::Properties nproperties; - nproperties.length (4); - CORBA::Any anyval; - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - nproperties[0].property_name = CORBA::string_copy ("char_property"); - nproperties[0].property_value <<= from_char (ch); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - nproperties[1].property_name = CORBA::string_copy ("short_property"); - nproperties[1].property_value <<= s; - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - nproperties[2].property_name = CORBA::string_copy ("long_property"); - nproperties[2].property_value <<= l; - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - nproperties[3].property_name = CORBA::string_copy ("float_property"); - nproperties[3].property_value <<= f; - - // Define this sequence of properties now. - this->propsetdef_->define_properties (nproperties, env); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Test get_all_properties. - -int -Client::test_get_all_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nTesting get_all_properties\n")); - // Get the number of current properties. - CORBA::ULong num_of_properties = - this->propsetdef_->get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get half on the properties and half of on the iterator. - CORBA::ULong how_many = 0; - CosPropertyService::Properties_var properties; - CosPropertyService::PropertiesIterator_var iterator; - propsetdef_->get_all_properties (how_many, - properties.out (), - iterator.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print out the properties now. - if (properties.ptr () != 0) - { - CORBA::ULong len = properties->length (); - - for (CORBA::ULong pi = 0; pi < len; pi++) - { - // Print the property_name. - ACE_DEBUG ((LM_DEBUG, - "%s : ", - properties [pi].property_name.in ())); - - // Print the value if type is not tk_void. - if (properties [pi].property_value.type () == CORBA::_tc_void) - ACE_DEBUG ((LM_DEBUG,"Void\n")); - - if (properties [pi].property_value.type () == CORBA::_tc_float) - { - CORBA::Float f; - properties [pi].property_value >>= f; - ACE_DEBUG ((LM_DEBUG,"%f\n", f)); - } - - if (properties [pi].property_value.type () == CORBA::_tc_string) - { - CORBA::String str; - properties [pi].property_value >>= str; - ACE_DEBUG ((LM_DEBUG,"%s\n", str)); - } - - if (properties [pi].property_value.type () == CORBA::_tc_long) - { - CORBA::Long l; - properties [pi].property_value >>= l; - ACE_DEBUG ((LM_DEBUG,"%d\n", l)); - } - } - } - - // Pass thru the iterator. - if (iterator.ptr () != 0) - { - CosPropertyService::Property_var property; - - while (iterator->next_one (property.out (), env) != CORBA::B_FALSE) - { - ACE_DEBUG ((LM_DEBUG, "Iteration over PropertyIterartor")); - TAO_CHECK_ENV_RETURN (env, -1); - ACE_DEBUG ((LM_DEBUG, - "%s : ", - property->property_name.in ())); - - // Print the property_value. - if (property->property_value.type () == CORBA::_tc_char) - { - CORBA::Char c; - property->property_value >>= to_char (c); - ACE_DEBUG ((LM_DEBUG,"%c\n", c)); - } - - if (property->property_value.type () == CORBA::_tc_short) - { - CORBA::Short s; - property->property_value >>= s; - ACE_DEBUG ((LM_DEBUG,"%d\n", s)); - } - - if (property->property_value.type () == CORBA::_tc_float) - { - CORBA::Float f; - property->property_value >>= f; - ACE_DEBUG ((LM_DEBUG,"%f\n", f)); - } - - if (property->property_value.type () == CORBA::_tc_string) - { - CORBA::String str; - property->property_value >>= str; - ACE_DEBUG ((LM_DEBUG,"%s\n", str)); - } - - if (property->property_value.type () == CORBA::_tc_long) - { - CORBA::Long l; - property->property_value >>= l; - ACE_DEBUG ((LM_DEBUG,"%d\n", l)); - } - } - TAO_CHECK_ENV_RETURN (env, -1); - } -} - -// Testing define property with mode. -// Defines char, short, long and float properties with different modes. -int -Client::test_define_property_with_mode (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property_with_mode\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - this->propsetdef_->define_property_with_mode ("char_property", - anyval, - CosPropertyService::normal, - env); - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - propsetdef_->define_property_with_mode ("short_property", - anyval, - CosPropertyService::read_only, - env); - // Check if that is an user exception, if so, print it out. - if (env.exception () != 0) - { - env.print_exception ("char_property"); - if (CORBA::UserException::_narrow (env.exception ()) != 0) - env.clear (); - else - return -1; - } - - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - propsetdef_->define_property_with_mode ("long_property", - anyval, - CosPropertyService::fixed_normal, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - propsetdef_->define_property_with_mode ("float_property", - anyval, - CosPropertyService::fixed_readonly, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - propsetdef_->define_property ("string_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, -1); -} - -int -Client::test_get_property_value (CORBA::Environment &env) -{ - TAO_TRY - { - // Get the ior property. - CORBA::Any_ptr any_ptr = this->propsetdef_->get_property_value ("PropertySetDef_IOR", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Property value received successfully\n")); - - // Check whether the IOR is fine. - CORBA::Object_var propsetdef_object; - (*any_ptr) >>= to_object (propsetdef_object); - - CosPropertyService::PropertySetDef_var propsetdef = - CosPropertyService::PropertySetDef::_narrow (propsetdef_object.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (propsetdef.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid object reference\n"), - -1); - - ACE_DEBUG ((LM_DEBUG, "IOR retrieved. Seems to be in good shape\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("get_property_value"); - return -1; - } - TAO_ENDTRY; -} - -int -main (int argc, char **argv) -{ - TAO_TRY - { - Client client; - - if (client.init (argc, - argv, - TAO_TRY_ENV) == -1) - return 1; - TAO_CHECK_ENV; - - // client.run (TAO_TRY_ENV); - client.property_tester (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("AVStreams: client"); - return -1; - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/CosPropertyService/client.h b/TAO/orbsvcs/tests/CosPropertyService/client.h deleted file mode 100644 index c9933e868e2..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/client.h +++ /dev/null @@ -1,99 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// client.h -// -// = DESCRIPTION -// Test client for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#if !defined (COSPROPERTYSERVICE_CLIENT_H) -#define COSPROPERTYSERVICE_CLIENT_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "tao/TAO.h" -#include "orbsvcs/Property/CosPropertyService_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Client -{ - // = TITLE - // Client for A/V Streams demo. - // - // = DESCRIPTION - // Encapsulates client functionality. -public: - Client (void); - // Constructor. - - int init (int argc, - char **argv, - CORBA::Environment &env); - // Initialize the ORB etc, and bind the MMDevices. - - int run (CORBA::Environment &env); - // Run the client. This will call StreamCtrl::bind_devs. - - int property_tester (CORBA::Environment &env); - // Testing the property service methods. - -protected: - int bind_to_remote_mmdevice (int argc, - char *argv[], - CORBA::Environment &env); - // Bind to the remote MMDevice. - - // = Property Testing. - - int test_define_property (CORBA::Environment &env); - // Testing the define property method. - - int test_get_number_of_properties (CORBA::Environment &env); - // Testing the number of properties, currently in the Property Set. - - int test_get_all_property_names (CORBA::Environment &env); - //Testing get_all_property_names. - - int test_get_property_value (CORBA::Environment &env); - // Testing get_property_value. - - int test_get_properties (CORBA::Environment &env); - //Testing get_properties. Give the names and get their properties. - - int test_get_all_properties (CORBA::Environment &env); - // Testing get_all_properties. - - int test_delete_property (CORBA::String property_name, - CORBA::Environment &env); - // Testing delete_property. - - int test_delete_properties (CORBA::Environment &env); - // Testing delete_properties. - - int test_define_properties (CORBA::Environment &env); - // Defining a sequence of properties. - - int test_define_property_with_mode (CORBA::Environment &env); - // Defines properties with various modes. - - TAO_ORB_Manager manager_; - // The ORB manager, handles ORB initialization etc. - - CosPropertyService::PropertySetDef_var propsetdef_; - // To test propertySetDef interface. -}; - -#endif /* COSPROPERTYSERVICE_CLIENT_H */ diff --git a/TAO/orbsvcs/tests/CosPropertyService/main.cpp b/TAO/orbsvcs/tests/CosPropertyService/main.cpp deleted file mode 100644 index 893bbe06bbb..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/main.cpp +++ /dev/null @@ -1,589 +0,0 @@ -// $Id$ - -// ========================================================================================================= -// -// = FILE -// Program to test the property services. -// -// = DESCRIPTION -// Here all the objects are at one address space. See the -// client.cpp and server.cpp to see property calls on remote -// objects. -// -// = AUTHOR -// Alexander Babu Arulanthu -// -// ========================================================================================================= - -#include "orbsvcs/CosPropertyServiceS.h" -#include "orbsvcs/Property/CosPropertyService_i.h" - -class TAO_PropertySet_Tester -{ - // = TITLE - // The testing code for the PropertySet interface are grouped - // under the functions of this class. - // - // = DESCRIPTION - // Go thru the functions to understand the usage of the various - // methods of the PropertySet interaface. -public: - friend class TAO_PropertyNamesIterator_Tester; - // He has to instantiate TAO_NamesIterator class using the instance - // of TAO_PropertySet. - - TAO_PropertySet_Tester (void); - // Constructor. - - ~TAO_PropertySet_Tester (void); - // Destructor. - - int test_define_property (CORBA::Environment &env); - // Defines a char,a short, a long, a float and a string property. - - int test_get_number_of_properties (CORBA::Environment &env); - // Gets the number of properties currently defined in the PropertySet. - - int test_delete_property (const char *property_name, - CORBA::Environment &env); - // Delete a given property. - - int test_is_property_defined (CORBA::Environment &env); - // Check the following properties are defined or - // no. "char_property", "short_property" and a "string_property". - - int test_get_property_value (CORBA::Environment &env); - // Get the "float_property" and "string_property" and print them - // out. - - int test_delete_properties (CORBA::Environment &env); - // Delete char, short,long, and string properties. - - int test_delete_all_properties (CORBA::Environment &env); - // Delete all the properties. - - int test_define_properties (CORBA::Environment &env); - // Define a sequence of properties. a char, a short, a long, a float - // and a string. - -private: - TAO_PropertySet property_set_; - // The PropertySet. -}; - -class TAO_PropertyNamesIterator_Tester -{ - // = TITLE - // The testing code for the PropertyNamesIterator interface are grouped - // under the functions of this class. - // - // = DESCRIPTION - // Go thru the functions to understand the usage of the various - // methods of the PropertyNamesIterator interaface. -public: - TAO_PropertyNamesIterator_Tester (TAO_PropertySet_Tester &propertyset_tester); - // Constructor. To make names iterator from the property set object. - - ~TAO_PropertyNamesIterator_Tester (void); - // Destructor. - - int test_next_one (CORBA::Environment &env); - // Test next one method. Iterate thru all the names in the - // PropertySet and print them out. - - int test_reset (CORBA::Environment &env); - // Test the reset method. - - int test_next_n (size_t n, CORBA::Environment &env); - // Test the next_n method. -private: - TAO_PropertyNamesIterator iterator_; - // Our names iterator. -}; - - -// Constructor. -TAO_PropertySet_Tester::TAO_PropertySet_Tester (void) -{ -} - -// Destructor. -TAO_PropertySet_Tester::~TAO_PropertySet_Tester (void) -{ -} - -// Defines a char, a short, a long, a float and a string. -int -TAO_PropertySet_Tester::test_define_property (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - property_set_.define_property ("char_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - property_set_.define_property ("short_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - - property_set_.define_property ("long_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - property_set_.define_property ("float_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - property_set_.define_property ("string_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Testing, get_number_of_properties. -int -TAO_PropertySet_Tester::test_get_number_of_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "Main : Number of props : %d\n", - property_set_.get_number_of_properties (env))); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Testing the delete_property. Delets property, with the given name, -// if that exsists. -int -TAO_PropertySet_Tester::test_delete_property (const char *property_name, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\nChecking delete_property\n")); - property_set_.delete_property (property_name, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Gets the value of "short_property" and "string_property". - -int -TAO_PropertySet_Tester::test_get_property_value (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking get_property_value\n")); - - CORBA::Any_ptr anyptr = property_set_.get_property_value ("short_property", - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Get the short value. - if (anyptr != 0) - { - CORBA::Short s; - *anyptr >>= s; - ACE_DEBUG ((LM_DEBUG, - "Short %d\n", - s)); - } - else - ACE_DEBUG ((LM_DEBUG, - "Short property not found\n")); - // Get the string. - anyptr = property_set_.get_property_value ("string_property", - env); - TAO_CHECK_ENV_RETURN (env, 1); - if (anyptr != 0) - { - CORBA::String str; - *anyptr >>= str; - ACE_DEBUG ((LM_DEBUG, - "Str %s\n", str)); - } - else - ACE_DEBUG ((LM_DEBUG, - "string_property not found\n")); - return 0; -} - -// Check the following properties are defined or no. "short_property", -// "string_property" and "char_property". - -int -TAO_PropertySet_Tester::test_is_property_defined (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking is_property_defined ()\n")); - if (property_set_.is_property_defined ("short_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "short_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "short_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - if (property_set_.is_property_defined ("string_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "string_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "string_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - if (property_set_.is_property_defined ("char_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "char_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "char_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Make a sequence of property names and delete them from the -// PropertySet. Deleting char, short, long, float and string -// properties. -int -TAO_PropertySet_Tester::test_delete_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_properties == Deleting a sequence of Properties\n")); - CosPropertyService::PropertyNames prop_names; - prop_names.length (4); - prop_names [0] = CORBA::string_dup ("char_property"); - prop_names [1] = CORBA::string_dup ("short_property"); - prop_names [2] = CORBA::string_dup ("long_property"); - prop_names [3] = CORBA::string_dup ("float_property"); - ACE_DEBUG ((LM_DEBUG, - "Length of sequence %d, Maxlength : %d\n", - prop_names.length (), - prop_names.maximum ())); - property_set_.delete_properties (prop_names, - env); - TAO_CHECK_ENV_RETURN (env, 0); - - return 0; -} - -// Defines a sequnce of properties containing, char, short, long, -// float and string property in the property set. -int -TAO_PropertySet_Tester::test_define_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_properties == Defining sequence of properties\n")); - // TAO_TRY - // { - CosPropertyService::Properties nproperties; - nproperties.length (5); - CORBA::Any anyval; - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - nproperties[0].property_name = CORBA::string_copy ("char_property"); - nproperties[0].property_value <<= from_char (ch); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - nproperties[1].property_name = CORBA::string_copy ("short_property"); - nproperties[1].property_value <<= s; - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - nproperties[2].property_name = CORBA::string_copy ("long_property"); - nproperties[2].property_value <<= l; - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - nproperties[3].property_name = CORBA::string_copy ("float_property"); - nproperties[3].property_value <<= f; - - // Prepare a String and "define" that in the PropertySet. - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - nproperties[4].property_name = CORBA::string_copy ("string_property"); - nproperties[4].property_value <<= strvar.in (); - - // Define this sequence of properties now. - property_set_.define_properties (nproperties, env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Delete all the properties. -int -TAO_PropertySet_Tester::test_delete_all_properties (CORBA::Environment &env) -{ - // Deleting all the properties - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_all_properties\n")); - if (property_set_.delete_all_properties (env) == CORBA::B_TRUE) - ACE_DEBUG ((LM_DEBUG, - "All properties deleted, I guess\n")); - else - ACE_DEBUG ((LM_DEBUG, - "delete_all_properties failed\n")); - return 0; -} - -// Constructor. To make names iterator from the property set object. -TAO_PropertyNamesIterator_Tester::TAO_PropertyNamesIterator_Tester (TAO_PropertySet_Tester &propertyset_tester) - : iterator_ (propertyset_tester.property_set_) -{ -} - -// Destructor. -TAO_PropertyNamesIterator_Tester::~TAO_PropertyNamesIterator_Tester (void) -{ -} - -// Test next one method. Iterate thru all the names in the -// PropertySet and print them out. -int -TAO_PropertyNamesIterator_Tester::test_next_one (CORBA::Environment &env) -{ - CORBA::String_var strvar; - ACE_DEBUG ((LM_DEBUG, - "\nTesting next_one of NamesIterator, Iterating thru names.\n")); - // Let us iterate, now. - while (iterator_.next_one (strvar.out (), env) != CORBA::B_FALSE) - { - TAO_CHECK_ENV_RETURN (env, 1); - ACE_DEBUG ((LM_DEBUG, "Str : %s\n", strvar.in ())); - } - return 0; -} - -// Reset the names iterator. -int -TAO_PropertyNamesIterator_Tester::test_reset (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "Resetting (reset ()) the NamesIterator.")); - iterator_.reset (env); - TAO_CHECK_ENV_RETURN (env, 1); - return 0; -} - -// Test the next_n method. Get the next n names and print them all. -int -TAO_PropertyNamesIterator_Tester::test_next_n (size_t n, - CORBA::Environment &env) -{ - CosPropertyService::PropertyNames_var pnames_var; - ACE_DEBUG ((LM_DEBUG, - "Checking next_n (), next %d\n", - n)); - if (iterator_.next_n (n, pnames_var.out (), env) == CORBA::B_FALSE) - { - // Return if no more items in the iterator. - TAO_CHECK_ENV_RETURN (env, 1); - ACE_DEBUG ((LM_DEBUG, - "Iterator has no more items\n")); - return 0; - } - TAO_CHECK_ENV_RETURN (env, 1); - for (size_t i = 0; i < pnames_var.in ().length (); i++) - ACE_DEBUG ((LM_DEBUG, - "str %s \n", - (const char *) pnames_var[i])); - return 0; -} - -int -main (int argc, char *argv []) -{ - TAO_TRY - { - CORBA::ORB_var orb_var = CORBA::ORB_init (argc, - argv, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // = Checking PropertySet interface. - - ACE_DEBUG ((LM_DEBUG, - "\nTAO_PropertySet Testing\n")); - TAO_PropertySet_Tester propertyset_tester; - - // Checking define_property. define a char, a short,a long, a float - // and a string. - propertyset_tester.test_define_property (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test delete property. Delete "string_property" - propertyset_tester.test_delete_property ("string_property", TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test delete_properties. Delete char, short, long and float. - propertyset_tester.test_delete_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Define a sequence of properties. char, short, long, float and - // string. - propertyset_tester.test_define_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking get_property_value. get the value of short and string. - propertyset_tester.test_get_property_value (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking delete_all_properties. - propertyset_tester.test_delete_all_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Define a sequence of properties. char, short, long, float and - // string. - propertyset_tester.test_define_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // = Checking the PropertyNamesIterator interface. - - ACE_DEBUG ((LM_DEBUG, - "\nTAO_PropertyNamesIterator Testing\n")); - - // Construct the names iterator from the PropertySet object. - TAO_PropertyNamesIterator_Tester names_iterator_tester (propertyset_tester); - - // Checking next_one. Iterate thru the property names. - names_iterator_tester.test_next_one (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking the reset () method. - names_iterator_tester.test_reset (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Iterating again thru the property names. - names_iterator_tester.test_next_one (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Reset again. - names_iterator_tester.test_reset (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking next_n. Prints out all the names it has got. - names_iterator_tester.test_next_n (6, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Try next_n without resetting. - names_iterator_tester.test_next_n (6, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} - - - - - - - - - - diff --git a/TAO/orbsvcs/tests/CosPropertyService/server.cpp b/TAO/orbsvcs/tests/CosPropertyService/server.cpp deleted file mode 100644 index f137e062c58..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/server.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// Test server for the CosPropertyService -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#include "server.h" - -// Main program - -int -main (int argc, char ** argv) -{ - TAO_TRY - { - TAO_ORB_Manager m; - - // Initialize the ORB. - m.init_child_poa (argc, - argv, - "child_poa", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Using naming server. - TAO_Naming_Server my_name_server; - if (my_name_server.init (m.orb (), - m.child_poa ()) < 0) - return 1; - - ACE_DEBUG ((LM_DEBUG, "Name init done\n")); - - // Create PropertySetDef object and register. - TAO_PropertySetDef *propsetdef_impl; - ACE_NEW_RETURN (propsetdef_impl, - TAO_PropertySetDef, - -1); - CosPropertyService::PropertySetDef_var propsetdef = - propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name propsetdef_name (1); - propsetdef_name.length (1); - propsetdef_name[0].id = CORBA::string_dup ("PropertySetDef"); - my_name_server->bind (propsetdef_name, - propsetdef.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Make this IOR as one of the properties in there. - CORBA::Any any_val; - any_val <<= propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - -#if 0 - // Make this IOR as one of the properties in there. - CORBA::Object_var ior = propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - CORBA::Object_ptr ior_ptr = ior.in (); - any_val.replace (CORBA::_tc_Object, - &ior_ptr, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; -#endif - - propsetdef_impl->define_property_with_mode ("PropertySetDef_IOR", - any_val, - CosPropertyService::fixed_readonly, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create PropertySet factory and then register. - TAO_PropertySetFactory *propset_factory_impl; - ACE_NEW_RETURN (propset_factory_impl, - TAO_PropertySetFactory, - -1); - CosPropertyService::PropertySetFactory_var propset_factory = - propset_factory_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name propset_factory_name (1); - propset_factory_name.length (1); - propset_factory_name[0].id = CORBA::string_dup ("PropertySetFactory"); - my_name_server->bind (propset_factory_name, - propset_factory.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the ORB Event loop. - m.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return 1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return 1; - } - TAO_ENDTRY; - ACE_DEBUG ((LM_DEBUG, - "\nServer is terminating")); - return 0; -} diff --git a/TAO/orbsvcs/tests/CosPropertyService/server.h b/TAO/orbsvcs/tests/CosPropertyService/server.h deleted file mode 100644 index 06f6b41a455..00000000000 --- a/TAO/orbsvcs/tests/CosPropertyService/server.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// Test server for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#if !defined (COSPROPERTYSERVICE_SERVER_H) -#define COSPROPERTYSERVICE_SERVER_H - -#include "tao/TAO.h" -#include "orbsvcs/Property/CosPropertyService_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -#endif /* COSPROPERTYSERVICE_SERVER_H */ diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp deleted file mode 100644 index 5ab7de648ba..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.cpp +++ /dev/null @@ -1,1584 +0,0 @@ -// $Id$ - -#include "ace/Get_Opt.h" -#include "ace/Auto_Ptr.h" -#include "ace/Sched_Params.h" - -#include "tao/Timeprobe.h" -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/Time_Utilities.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "orbsvcs/Sched/Config_Scheduler.h" -#include "orbsvcs/Runtime_Scheduler.h" -#include "orbsvcs/Event/Event_Channel.h" -#include "EC_Multiple.h" - -#include "Scheduler_Runtime1.h" -#include "Scheduler_Runtime2.h" - -#if defined (sun) -# include /* for _lwp_self */ -#endif /* sun */ - -Test_ECG::Test_ECG (void) - : lcl_name_ ("Test_ECG"), - rmt_name_ (0), - scheduling_type_ (Test_ECG::ss_runtime), - consumer_disconnects_ (0), - supplier_disconnects_ (0), - short_circuit_ (0), - hp_suppliers_ (1), - hp_consumers_ (1), - hp_workload_ (10), - hp_interval_ (25000), - hp_message_count_ (200), - hps_event_a_ (ACE_ES_EVENT_UNDEFINED), - hps_event_b_ (ACE_ES_EVENT_UNDEFINED + 1), - hpc_event_a_ (ACE_ES_EVENT_UNDEFINED), - hpc_event_b_ (ACE_ES_EVENT_UNDEFINED + 1), - lp_suppliers_ (0), - lp_consumers_ (0), - lp_workload_ (0), - lp_interval_ (100000), - lp_message_count_ (50), - lps_event_a_ (0), - lps_event_b_ (0), - lpc_event_a_ (0), - lpc_event_b_ (0), - schedule_file_ (0), - pid_file_name_ (0), - ready_ (0), - ready_cnd_ (ready_mtx_) -{ -} - - - -void -print_priority_info (const char *const name) -{ -#if defined (ACE_HAS_PTHREADS) || defined (sun) -#if defined (ACE_HAS_PTHREADS) - struct sched_param param; - int policy, status; - - if ((status = pthread_getschedparam (pthread_self (), &policy, - ¶m)) == 0) { -# ifdef sun - ACE_DEBUG ((LM_DEBUG, - "%s (%lu|%u); policy is %d, priority is %d\n", - name, - getpid (), - _lwp_self (), - pthread_self (), - policy, param.sched_priority)); -# else /* ! sun */ - ACE_DEBUG ((LM_DEBUG, - "%s (%lu|%u); policy is %d, priority is %d\n", - name, - getpid (), - 0, - pthread_self (), - policy, param.sched_priority )); -# endif /* ! sun */ - } else { - ACE_DEBUG ((LM_DEBUG,"pthread_getschedparam failed: %d\n", status)); - } -#endif /* ACE_HAS_PTHREADS */ - -#ifdef sun - // Find what scheduling class the thread's LWP is in. - ACE_Sched_Params sched_params (ACE_SCHED_OTHER, 0); - if (ACE_OS::lwp_getparams (sched_params) == -1) - { - ACE_OS::perror ("ACE_OS::lwp_getparams"); - return; - } - else if (sched_params.policy () == ACE_SCHED_FIFO || - sched_params.policy () == ACE_SCHED_RR) - { - // This thread's LWP is in the RT class. - ACE_DEBUG ((LM_DEBUG, - "RT class; priority: %d, quantum: %u msec\n", - sched_params.priority (), - sched_params.quantum ().msec ())); - } - else - { - ACE_DEBUG ((LM_DEBUG, - "TS class; priority: %d\n", - sched_params.priority ())); - } -#endif /* sun */ -#endif /* ACE_HAS_PTHREADS */ -} - - - - -int -Test_ECG::run (int argc, char* argv[]) -{ - TAO_TRY - { - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (this->parse_args (argc, argv)) - return 1; - - ACE_DEBUG ((LM_DEBUG, - "Execution parameters:\n" - " lcl name = <%s>\n" - " rmt name = <%s>\n" - " scheduler type = <%d>\n" - " consumer disconnects = <%d>\n" - " supplier disconnects = <%d>\n" - " short circuit EC = <%d>\n" - " HP suppliers = <%d>\n" - " HP consumers = <%d>\n" - " HP workload = <%d> (iterations)\n" - " HP interval between events = <%d> (usecs)\n" - " HP message count = <%d>\n" - " HP supplier Event A = <%d>\n" - " HP supplier Event B = <%d>\n" - " HP consumer Event A = <%d>\n" - " HP consumer Event B = <%d>\n" - " LP suppliers = <%d>\n" - " LP consumers = <%d>\n" - " LP workload = <%d> (iterations)\n" - " LP interval between events = <%d> (usecs)\n" - " LP message count = <%d>\n" - " LP supplier Event A = <%d>\n" - " LP supplier Event B = <%d>\n" - " LP consumer Event A = <%d>\n" - " LP consumer Event B = <%d>\n" - " schedule_file = <%s>\n" - " pid file name = <%s>\n", - this->lcl_name_?this->lcl_name_:"nil", - this->rmt_name_?this->rmt_name_:"nil", - this->scheduling_type_, - this->consumer_disconnects_, - this->supplier_disconnects_, - this->short_circuit_, - - this->hp_suppliers_, - this->hp_consumers_, - this->hp_workload_, - this->hp_interval_, - this->hp_message_count_, - this->hps_event_a_, - this->hps_event_b_, - this->hpc_event_a_, - this->hpc_event_b_, - - this->lp_suppliers_, - this->lp_consumers_, - this->lp_workload_, - this->lp_interval_, - this->lp_message_count_, - this->lps_event_a_, - this->lps_event_b_, - this->lpc_event_a_, - this->lpc_event_b_, - - this->schedule_file_?this->schedule_file_:"nil", - this->pid_file_name_?this->pid_file_name_:"nil") ); - - print_priority_info ("Test_ECG::run (Main)"); - - if (this->pid_file_name_ != 0) - { - FILE* pid = ACE_OS::fopen (this->pid_file_name_, "w"); - if (pid != 0) - { - ACE_OS::fprintf (pid, "%d\n", ACE_OS::getpid ()); - ACE_OS::fclose (pid); - } - } - - int min_priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO); - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - - if (ACE_OS::sched_params (ACE_Sched_Params (ACE_SCHED_FIFO, - min_priority, - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_DEBUG, - "%s: user is not superuser, " - "so remain in time-sharing class\n", argv[0])); - else - ACE_ERROR ((LM_ERROR, - "%s: ACE_OS::sched_params failed\n", argv[0])); - } - - if (ACE_OS::thr_setprio (min_priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) main thr_setprio failed\n")); - } - - print_priority_info ("Test_ECG::run (Main after thr_setprio)"); - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to get the Naming Service.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - auto_ptr scheduler_impl; - RtecScheduler::Scheduler_var scheduler; - - switch (this->scheduling_type_) - { - default: - ACE_ERROR ((LM_WARNING, "Unknown scheduling type %d\n", - this->scheduling_type_)); - /*FALLTHROUGH*/ - case Test_ECG::ss_global: - break; - - case Test_ECG::ss_local: - scheduler_impl = - auto_ptr(new ACE_Config_Scheduler); - if (scheduler_impl.get () == 0) - return -1; - scheduler = scheduler_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - break; - - case Test_ECG::ss_runtime: - if (ACE_OS::strcmp (this->lcl_name_, "ECM1") == 0) - { - scheduler_impl = - auto_ptr - (new ACE_Runtime_Scheduler (runtime_infos_1_size, - runtime_infos_1)); - if (scheduler_impl.get () == 0) - return -1; - scheduler = scheduler_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - else if (ACE_OS::strcmp (this->lcl_name_, "ECM2") == 0) - { - scheduler_impl = - auto_ptr - (new ACE_Runtime_Scheduler (runtime_infos_2_size, - runtime_infos_2)); - if (scheduler_impl.get () == 0) - return -1; - scheduler = scheduler_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - else - { - ACE_ERROR ((LM_WARNING, - "Unknown name <%s> defaulting to " - "config scheduler\n", this->lcl_name_)); - scheduler_impl = - auto_ptr(new ACE_Config_Scheduler); - if (scheduler_impl.get () == 0) - return -1; - scheduler = scheduler_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - break; - - } - - // We use this buffer to generate the names of the local - // services. - const int bufsize = 512; - char buf[bufsize]; - - // Register the scheduler with the naming service. - switch (this->scheduling_type_) - { - default: - case Test_ECG::ss_global: - break; - - case Test_ECG::ss_local: - case Test_ECG::ss_runtime: - { - CORBA::String_var str = - orb->object_to_string (scheduler.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, "The (local) scheduler IOR is <%s>\n", - str.in ())); - - ACE_OS::strcpy (buf, "ScheduleService@"); - ACE_OS::strcat (buf, this->lcl_name_); - - // Register the servant with the Naming Context.... - CosNaming::Name schedule_name (1); - schedule_name.length (1); - schedule_name[0].id = CORBA::string_dup (buf); - naming_context->bind (schedule_name, scheduler.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (ACE_Scheduler_Factory::use_config (naming_context.in (), - buf) == -1) - return -1; - } - break; - } - - // Register Event_Service with Naming Service. - ACE_EventChannel ec_impl; - - RtecEventChannelAdmin::EventChannel_var ec = - ec_impl._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_OS::sleep (5); - ACE_DEBUG ((LM_DEBUG, "The (local) EC IOR is <%s>\n", str.in ())); - - ACE_OS::strcpy (buf, "EventChannel@"); - ACE_OS::strcat (buf, this->lcl_name_); - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup (buf); - naming_context->bind (channel_name, ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "waiting to start\n")); - - ACE_Time_Value tv (15, 0); - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (this->rmt_name_ != 0) - { - if (orb->run (&tv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); - } - - ACE_DEBUG ((LM_DEBUG, "starting....\n")); - - RtecEventChannelAdmin::EventChannel_var local_ec = - this->get_ec (naming_context.in (), - this->lcl_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "located local EC\n")); - - for (int sd = 0; sd < this->supplier_disconnects_; ++sd) - { - this->connect_suppliers (local_ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - this->disconnect_suppliers (TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_OS::sleep (5); - ACE_DEBUG ((LM_DEBUG, "Supplier disconnection %d\n", sd)); - } - - this->connect_suppliers (local_ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "connected supplier\n")); - - if (this->rmt_name_ != 0) - { - tv.set (5, 0); - if (orb->run (&tv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); - - RtecEventChannelAdmin::EventChannel_var remote_ec = - this->get_ec (naming_context.in (), - this->rmt_name_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, "located remote EC\n")); - - CosNaming::Name rsch_name (1); - rsch_name.length (1); - ACE_OS::strcpy (buf, "ScheduleService"); - if (this->scheduling_type_ != Test_ECG::ss_global) - { - ACE_OS::strcat (buf, "@"); - ACE_OS::strcat (buf, this->rmt_name_); - } - rsch_name[0].id = CORBA::string_dup (buf); - CORBA::Object_var tmpobj = - naming_context->resolve (rsch_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecScheduler::Scheduler_var remote_sch = - RtecScheduler::Scheduler::_narrow (tmpobj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->connect_ecg (local_ec.in (), - remote_ec.in (), - remote_sch.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "connected proxy\n")); - - tv.set (5, 0); - if (orb->run (&tv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); - - ec_impl.add_gateway (&this->ecg_); - } - - for (int cd = 0; cd < this->consumer_disconnects_; ++cd) - { - this->connect_consumers (local_ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - this->disconnect_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_OS::sleep (5); - ACE_DEBUG ((LM_DEBUG, "Consumer disconnection %d\n", cd)); - } - this->connect_consumers (local_ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "connected consumer\n")); - - this->activate_suppliers (local_ec.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "suppliers are active\n")); - - this->running_suppliers_ = this->hp_suppliers_ + this->lp_suppliers_; - - // Acquire the mutex for the ready mutex, blocking any supplier - // that may start after this point. - ACE_GUARD_RETURN (ACE_SYNCH_MUTEX, ready_mon, this->ready_mtx_, 1); - this->ready_ = 1; - this->test_start_ = ACE_OS::gethrtime (); - ready_mon.release (); - this->ready_cnd_.broadcast (); - - ACE_DEBUG ((LM_DEBUG, "running EC test\n")); - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); - - this->test_stop_ = ACE_OS::gethrtime (); - - // Wait for EC threads to terminate.... - ACE_DEBUG ((LM_DEBUG, "waiting for EC threads\n")); - if (ACE_Thread_Manager::instance ()->wait () == -1) - return -1; - - ACE_DEBUG ((LM_DEBUG, "shutdown grace period\n")); - tv.set (5, 0); - if (orb->run (&tv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "orb->run"), -1); - - this->dump_results (); - - if (this->schedule_file_ != 0) - { - RtecScheduler::RT_Info_Set_var infos; - -#if defined (__SUNPRO_CC) - // Sun C++ 4.2 warns with the code below: - // Warning (Anachronism): Temporary used for non-const - // reference, now obsolete. - // Note: Type "CC -migration" for more on anachronisms. - // Warning (Anachronism): The copy constructor for argument - // infos of type RtecScheduler::RT_Info_Set_out should take - // const RtecScheduler::RT_Info_Set_out&. - // But, this code is not CORBA conformant, because users should - // not define instances of _out types. - - RtecScheduler::RT_Info_Set_out infos_out (infos); - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos_out, TAO_TRY_ENV); -#else /* ! __SUNPRO_CC */ - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos.out (), TAO_TRY_ENV); -#endif /* ! __SUNPRO_CC */ - - TAO_CHECK_ENV; - ACE_Scheduler_Factory::dump_schedule (infos.in (), - this->schedule_file_); - } - } - TAO_CATCH (CORBA::SystemException, sys_ex) - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("NON SYS EX"); - } - TAO_ENDTRY; - return 0; -} - -RtecEventChannelAdmin::EventChannel_ptr -Test_ECG::get_ec (CosNaming::NamingContext_ptr naming_context, - const char* process_name, - CORBA::Environment &_env) -{ - const int bufsize = 512; - char buf[bufsize]; - ACE_OS::strcpy (buf, "EventChannel@"); - ACE_OS::strcat (buf, process_name); - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup (buf); - - CORBA::Object_var ec_ptr = - naming_context->resolve (channel_name, _env); - if (_env.exception () != 0 || CORBA::is_nil (ec_ptr.in ())) - return RtecEventChannelAdmin::EventChannel::_nil (); - - return RtecEventChannelAdmin::EventChannel::_narrow (ec_ptr.in (), - _env); -} - -void -Test_ECG::disconnect_suppliers (CORBA::Environment &_env) -{ - for (int i = 0; i < this->hp_suppliers_ + this->lp_suppliers_; ++i) - { - this->suppliers_[i]->close (_env); - if (_env.exception () != 0) return; - } -} - -void -Test_ECG::connect_suppliers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env) -{ - TAO_TRY - { - int i; - for (i = 0; i < this->hp_suppliers_; ++i) - { - // Limit the number of messages sent by each supplier - int mc = this->hp_message_count_ / this->hp_suppliers_; - if (mc == 0) - mc = 1; - - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "hp_supplier_%02.2d@%s", i, this->lcl_name_); - - ACE_NEW (this->suppliers_[i], - Test_Supplier (this, this->suppliers_ + i)); - - this->suppliers_[i]->open (buf, - this->hps_event_a_, - this->hps_event_b_, - mc, - this->hp_interval_ * 10, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - - for (; i < this->hp_suppliers_ + this->lp_suppliers_; ++i) - { - // Limit the number of messages sent by each supplier - int mc = this->lp_message_count_ / this->lp_suppliers_; - if (mc == 0) - mc = 1; - - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "lp_supplier_%02.2d@%s", - i - this->hp_suppliers_, this->lcl_name_); - - ACE_NEW (this->suppliers_[i], - Test_Supplier (this, this->suppliers_ + i)); - - this->suppliers_[i]->open (buf, - this->lps_event_a_, - this->lps_event_b_, - mc, - this->lp_interval_ * 10, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_ECG::disconnect_consumers (CORBA::Environment &_env) -{ - for (int i = 0; i < this->hp_consumers_ + this->lp_consumers_; ++i) - { - this->consumers_[i]->close (_env); - if (_env.exception () != 0) return; - } -} - -void -Test_ECG::activate_suppliers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env) -{ - TAO_TRY - { - int i; - for (i = 0; i < this->hp_suppliers_; ++i) - { - // Limit the number of messages sent by each supplier - int mc = this->hp_message_count_ / this->hp_suppliers_; - if (mc == 0) - mc = 1; - - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "hp_supplier_%02.2d@%s", i, this->lcl_name_); - - this->suppliers_[i]->activate (buf, - this->hp_interval_ * 10, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - - for (; i < this->hp_suppliers_ + this->lp_suppliers_; ++i) - { - // Limit the number of messages sent by each supplier - int mc = this->lp_message_count_ / this->lp_suppliers_; - if (mc == 0) - mc = 1; - - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "lp_supplier_%02.2d@%s", - i - this->hp_suppliers_, this->lcl_name_); - - this->suppliers_[i]->activate (buf, - this->lp_interval_ * 10, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_ECG::connect_consumers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env) -{ - TAO_TRY - { - int i; - for (i = 0; i < this->hp_consumers_; ++i) - { - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "hp_consumer_%02.2d@%s", i, this->lcl_name_); - - ACE_NEW (this->consumers_[i], - Test_Consumer (this, this->consumers_ + i)); - - this->consumers_[i]->open (buf, - this->hpc_event_a_, - this->hpc_event_b_, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - this->stats_[i].total_time_ = 0; - this->stats_[i].lcl_count_ = 0; - this->stats_[i].rmt_count_ = 0; - } - - for (; i < this->hp_consumers_ + this->lp_consumers_; ++i) - { - char buf[BUFSIZ]; - ACE_OS::sprintf (buf, "lp_consumer_%02.2d@%s", - i - this->hp_consumers_, this->lcl_name_); - - ACE_NEW (this->consumers_[i], - Test_Consumer (this, this->consumers_ + i)); - - this->consumers_[i]->open (buf, - this->lpc_event_a_, - this->lpc_event_b_, - local_ec, - TAO_TRY_ENV); - TAO_CHECK_ENV; - this->stats_[i].total_time_ = 0; - this->stats_[i].lcl_count_ = 0; - this->stats_[i].rmt_count_ = 0; - } - this->running_consumers_ = this->hp_consumers_ + this->lp_consumers_; - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_ECG::connect_ecg (RtecEventChannelAdmin::EventChannel_ptr local_ec, - RtecEventChannelAdmin::EventChannel_ptr remote_ec, - RtecScheduler::Scheduler_ptr remote_sch, - CORBA::Environment &_env) -{ - TAO_TRY - { - RtecScheduler::Scheduler_ptr local_sch = - ACE_Scheduler_Factory::server (); - - // ECG name. - const int bufsize = 512; - char ecg_name[bufsize]; - ACE_OS::strcpy (ecg_name, "ecg_"); - ACE_OS::strcat (ecg_name, this->lcl_name_); - - // We could use the same name on the local and remote scheduler, - // but that fails when using a global scheduler. - char rmt[BUFSIZ]; - ACE_OS::strcpy (rmt, ecg_name); - ACE_OS::strcat (rmt, "@"); - ACE_OS::strcat (rmt, this->rmt_name_); - - // We could use the same name on the local and remote scheduler, - // but that fails when using a global scheduler. - char lcl[bufsize]; - ACE_OS::strcpy (lcl, ecg_name); - ACE_OS::strcat (lcl, "@"); - ACE_OS::strcat (lcl, this->lcl_name_); - - this->ecg_.init (remote_ec, local_ec, remote_sch, local_sch, - rmt, lcl, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_ECG::push_supplier (void * /* cookie */, - RtecEventChannelAdmin::ProxyPushConsumer_ptr consumer, - const RtecEventComm::EventSet &events, - CORBA::Environment & _env) -{ - this->wait_until_ready (); - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) events sent by supplier\n")); - // @@ TODO we could keep somekind of stats here... - if (!this->short_circuit_) - { - consumer->push (events, _env); - } - else - { - int i = 0; - for (; i < this->hp_consumers_ && !_env.exception (); ++i) - { - this->consumers_[i]->push (events, _env); - } - for (; i < this->hp_consumers_ + this->lp_consumers_ && !_env.exception (); ++i) - { - this->consumers_[i]->push (events, _env); - } - } -} - -void -Test_ECG::push_consumer (void *consumer_cookie, - ACE_hrtime_t arrival, - const RtecEventComm::EventSet &events, - CORBA::Environment &) -{ - int ID = - (ACE_reinterpret_cast(Test_Consumer**,consumer_cookie) - - this->consumers_); - - // ACE_DEBUG ((LM_DEBUG, "(%P|%t) events received by consumer %d\n", ID)); - - if (events.length () == 0) - { - // ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - - // ACE_DEBUG ((LM_DEBUG, "%d event(s)\n", events.length ())); - -#if 0 - const int bufsize = 128; - char buf[bufsize]; - ACE_OS::sprintf (buf, "Consumer %d receives event in thread: ", ID); - print_priority_info (buf); -#endif - - for (u_int i = 0; i < events.length (); ++i) - { - const RtecEventComm::Event& e = events[i]; - - if (e.type_ == ACE_ES_EVENT_SHUTDOWN) - { - this->shutdown_consumer (ID); - continue; - } - - ACE_hrtime_t s; - ORBSVCS_Time::TimeT_to_hrtime (s, e.creation_time_); - ACE_hrtime_t nsec = arrival - s; - if (this->local_source (e.source_)) - { - int& count = this->stats_[ID].lcl_count_; - - this->stats_[ID].lcl_latency_[count] = nsec; - int workload = this->hp_workload_; - int interval = this->hp_interval_; - if (ID >= this->hp_consumers_) - { - workload = this->lp_workload_; - interval = this->lp_interval_; - } - - for (int j = 0; j < workload; ++j) - { - // Eat a little CPU so the Utilization test can measure the - // consumed time.... - /* takes about 40.2 usecs on a 167 MHz Ultra2 */ - u_long n = 1279UL; - ACE::is_prime (n, 2, n / 2); - } - // Increment the elapsed time on this consumer. - ACE_hrtime_t now = ACE_OS::gethrtime (); - this->stats_[ID].total_time_ += now - arrival; - this->stats_[ID].end_[count] = now; - - // We estimate our laxity based on the event creation - // time... it may not be very precise, but will do; other - // strategies include: - // + Keep track of the "current frame", then then deadline - // is the end of the frame. - // + Use the start of the test to keep the current frame. - // + Use the last execution. - - // Work around MSVC++ bug, it does not not how to convert an - // unsigned 64 bit int into a long.... - CORBA::ULong tmp = ACE_static_cast(CORBA::ULong,(s - now)); - this->stats_[ID].laxity_[count] = 1 + tmp/1000.0/interval; - count++; - } - else - { - int& count = this->stats_[ID].rmt_count_; - this->stats_[ID].rmt_latency_[count] = nsec; - count++; - } - } -} - -void -Test_ECG::wait_until_ready (void) -{ - ACE_GUARD (ACE_Thread_Mutex, ready_mon, this->ready_mtx_); - while (!this->ready_) - this->ready_cnd_.wait (); -} - -void -Test_ECG::shutdown_supplier (void* /* supplier_cookie */, - RtecEventComm::PushConsumer_ptr consumer, - CORBA::Environment& _env) -{ - - this->running_suppliers_--; - if (this->running_suppliers_ == 0) - { - // We propagate a shutdown event through the system... - RtecEventComm::EventSet shutdown (1); - shutdown.length (1); - RtecEventComm::Event& s = shutdown[0]; - - s.source_ = 0; - s.ttl_ = 1; - - ACE_hrtime_t t = ACE_OS::gethrtime (); - ORBSVCS_Time::hrtime_to_TimeT (s.creation_time_, t); - s.ec_recv_time_ = ORBSVCS_Time::zero; - s.ec_send_time_ = ORBSVCS_Time::zero; - s.data_.x = 0; - s.data_.y = 0; - s.type_ = ACE_ES_EVENT_SHUTDOWN; - consumer->push (shutdown, _env); - } -} - -void -Test_ECG::shutdown_consumer (int id) -{ - ACE_DEBUG ((LM_DEBUG, "Shutdown consumer %d\n", id)); - this->running_consumers_--; - if (this->running_consumers_ == 0) - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} - -int -Test_ECG::shutdown (CORBA::Environment& _env) -{ - ACE_DEBUG ((LM_DEBUG, "Shutting down the multiple EC test\n")); - - if (this->rmt_name_ != 0) - { - this->ecg_.shutdown (_env); - if (_env.exception () != 0) return -1; - } - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - return 0; -} - -void -Test_ECG::dump_results (void) -{ - const int bufsize = 512; - char buf[bufsize]; - - int i; - for (i = 0; i < this->hp_consumers_; ++i) - { - ACE_OS::sprintf (buf, "HP%02.2d", i); - this->dump_results (buf, this->stats_[i]); - } - for (i = 0; i < this->lp_consumers_; ++i) - { - ACE_OS::sprintf (buf, "LP%02.2d", i); - this->dump_results (buf, this->stats_[i + this->hp_consumers_]); - } - // the cast is to workaround a msvc++ bug... - CORBA::ULong tmp = ACE_static_cast(CORBA::ULong, - this->test_stop_ - this->test_start_); - double usec = tmp / 1000.0; - ACE_DEBUG ((LM_DEBUG, "Time[TOTAL]: %.3f\n", usec)); -} - -void -Test_ECG::dump_results (const char* name, Stats& stats) -{ - // @@ We are reporting the information without specifics about - // the cast is to workaround a msvc++ bug... - double usec = ACE_static_cast(CORBA::ULong,stats.total_time_) / 1000.0; - ACE_DEBUG ((LM_DEBUG, "Time[LCL,%s]: %.3f\n", name, usec)); - int i; - for (i = 1; i < stats.lcl_count_ - 1; ++i) - { - // the cast is to workaround a msvc++ bug... - usec = ACE_static_cast(CORBA::ULong,stats.lcl_latency_[i]) / 1000.0; - ACE_DEBUG ((LM_DEBUG, "Latency[LCL,%s]: %.3f\n", name, usec)); - - double percent = stats.laxity_[i] * 100.0; - ACE_DEBUG ((LM_DEBUG, "Laxity[LCL,%s]: %.3f\n", name, percent)); - - // the cast is to workaround a msvc++ bug... - usec = ACE_static_cast(CORBA::ULong,stats.end_[i] - this->test_start_) / 1000.0; - ACE_DEBUG ((LM_DEBUG, "Completion[LCL,%s]: %.3f\n", name, usec)); - } - for (i = 1; i < stats.rmt_count_ - 1; ++i) - { - // the cast is to workaround a msvc++ bug... - double usec = ACE_static_cast(CORBA::ULong,stats.rmt_latency_[i]) / 1000.0; - ACE_DEBUG ((LM_DEBUG, "Latency[RMT,%s]: %.3f\n", name, usec)); - } -} - -int -Test_ECG::local_source (RtecEventComm::EventSourceID id) const -{ - for (int i = 0; i < this->hp_suppliers_ + this->lp_suppliers_; ++i) - { - if (this->suppliers_[i]->supplier_id () == id) - return 1; - } - return 0; -} - -int -Test_ECG::parse_args (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "l:r:s:i:xh:w:p:d:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'l': - this->lcl_name_ = get_opt.optarg; - break; - - case 'r': - this->rmt_name_ = get_opt.optarg; - break; - - case 's': - if (ACE_OS::strcasecmp (get_opt.optarg, "global") == 0) - { - this->scheduling_type_ = Test_ECG::ss_global; - } - else if (ACE_OS::strcasecmp (get_opt.optarg, "local") == 0) - { - this->scheduling_type_ = Test_ECG::ss_local; - } - else if (ACE_OS::strcasecmp (get_opt.optarg, "runtime") == 0) - { - this->scheduling_type_ = Test_ECG::ss_runtime; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "Unknown scheduling type <%s> " - "defaulting to local\n", - get_opt.optarg)); - this->scheduling_type_ = Test_ECG::ss_local; - } - break; - - case 'x': - this->short_circuit_ = 1; - break; - - case 'i': - { - char* aux; - char* arg = ACE_OS::strtok_r (get_opt.optarg, ",", &aux); - this->consumer_disconnects_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->supplier_disconnects_ = ACE_OS::atoi (arg); - } - break; - - case 'h': - { - char* aux; - char* arg = ACE_OS::strtok_r (get_opt.optarg, ",", &aux); - - this->hp_suppliers_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hp_consumers_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hp_workload_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hp_interval_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hp_message_count_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hps_event_a_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hps_event_b_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hpc_event_a_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->hpc_event_b_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - } - break; - - case 'w': - { - char* aux; - char* arg = ACE_OS::strtok_r (get_opt.optarg, ",", &aux); - - this->lp_suppliers_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lp_consumers_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lp_workload_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lp_interval_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lp_message_count_ = ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lps_event_a_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lps_event_b_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lpc_event_a_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - arg = ACE_OS::strtok_r (0, ",", &aux); - this->lpc_event_b_ = ACE_ES_EVENT_UNDEFINED + ACE_OS::atoi (arg); - } - break; - - case 'p': - this->pid_file_name_ = get_opt.optarg; - break; - case 'd': - this->schedule_file_ = get_opt.optarg; - break; - - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "[ORB options] " - "-l " - "-r " - "-s " - "-i " - "-x (short circuit EC) " - "-h " - "-w " - "-p " - "-d " - "\n", - argv[0])); - return -1; - } - } - - if (this->hp_message_count_ < 0 - || this->hp_message_count_ >= Test_ECG::MAX_EVENTS) - { - ACE_DEBUG ((LM_DEBUG, - "%s: HP event count (%d) is out of range, " - "reset to default (%d)\n", - argv[0], this->lp_message_count_, - 160)); - this->hp_message_count_ = 160; - } - - if (this->lp_message_count_ < 0 - || this->lp_message_count_ >= Test_ECG::MAX_EVENTS) - { - ACE_DEBUG ((LM_DEBUG, - "%s: LP event count (%d) is out of range, " - "reset to default (%d)\n", - argv[0], this->lp_message_count_, - 4)); - this->lp_message_count_ = 4; - } - - if (this->hp_consumers_ <= 0 - || this->lp_consumers_ < 0 - || this->hp_consumers_ + this->lp_consumers_ >= Test_ECG::MAX_CONSUMERS - || this->hp_suppliers_ <= 0 - || this->lp_suppliers_ < 0 - || this->hp_suppliers_ + this->lp_suppliers_ >= Test_ECG::MAX_SUPPLIERS) - { - ACE_ERROR_RETURN ((LM_DEBUG, - "%s: number of consumers or " - "suppliers out of range\n", argv[0]), -1); - } - - return 0; -} - -// **************************************************************** - -Test_Supplier::Test_Supplier (Test_ECG *test, - void *cookie) - : test_ (test), - cookie_ (cookie), - consumer_ (this) -{ -} - -void -Test_Supplier::open (const char* name, - int event_a, - int event_b, - int message_count, - const RtecScheduler::Period& rate, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment &_env) -{ - this->event_a_ = event_a; - this->event_b_ = event_b; - this->message_count_ = message_count; - - TAO_TRY - { - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - RtecScheduler::handle_t rt_info = - server->create (name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // The execution times are set to reasonable values, but - // actually they are changed on the real execution, i.e. we - // lie to the scheduler to obtain right priorities; but we - // don't care if the set is schedulable. - ACE_Time_Value tv (0, 2000); - TimeBase::TimeT time; - ORBSVCS_Time::Time_Value_to_TimeT (time, tv); - server->set (rt_info, - RtecScheduler::VERY_HIGH_CRITICALITY, - time, time, time, - rate, - RtecScheduler::VERY_LOW_IMPORTANCE, - time, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->supplier_id_ = ACE::crc32 (name); - ACE_DEBUG ((LM_DEBUG, "ID for <%s> is %04.4x\n", name, - this->supplier_id_)); - - ACE_SupplierQOS_Factory qos; - qos.insert (this->supplier_id_, - this->event_a_, - rt_info, 1); - qos.insert (this->supplier_id_, - this->event_b_, - rt_info, 1); - qos.insert (this->supplier_id_, - ACE_ES_EVENT_SHUTDOWN, - rt_info, 1); - - RtecEventChannelAdmin::SupplierAdmin_var supplier_admin = - ec->for_suppliers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->consumer_proxy_ = - supplier_admin->obtain_push_consumer (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushSupplier_var objref = this->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->consumer_proxy_->connect_push_supplier (objref.in (), - qos.get_SupplierQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_Supplier::close (CORBA::Environment &_env) -{ - if (CORBA::is_nil (this->consumer_proxy_.in ())) - return; - - this->consumer_proxy_->disconnect_push_consumer (_env); - if (_env.exception () != 0) return; - - this->consumer_proxy_ = 0; -} - -void -Test_Supplier::activate (const char* name, - const RtecScheduler::Period& rate, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment &_env) -{ - TAO_TRY - { - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - const int bufsize = 512; - char buf[bufsize]; - ACE_OS::strcpy (buf, "consumer_"); - ACE_OS::strcat (buf, name); - RtecScheduler::handle_t rt_info = - server->create (buf, TAO_TRY_ENV); - TAO_CHECK_ENV; - - - // The execution times are set to reasonable values, but - // actually they are changed on the real execution, i.e. we - // lie to the scheduler to obtain right priorities; but we - // don't care if the set is schedulable. - ACE_Time_Value tv (0, 2000); - TimeBase::TimeT time; - ORBSVCS_Time::Time_Value_to_TimeT (time, tv); - server->set (rt_info, - RtecScheduler::VERY_HIGH_CRITICALITY, - time, time, time, - rate, - RtecScheduler::VERY_LOW_IMPORTANCE, - time, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Also connect our consumer for timeout events from the EC. - int interval = rate / 10; - ACE_Time_Value tv_timeout (interval / ACE_ONE_SECOND_IN_USECS, - interval % ACE_ONE_SECOND_IN_USECS); - TimeBase::TimeT timeout; - ORBSVCS_Time::Time_Value_to_TimeT (timeout, tv_timeout); - - ACE_ConsumerQOS_Factory consumer_qos; - consumer_qos.start_disjunction_group (); - consumer_qos.insert_time (ACE_ES_EVENT_INTERVAL_TIMEOUT, - timeout, - rt_info); - - // = Connect as a consumer. - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin = - ec->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->supplier_proxy_ = - consumer_admin->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushConsumer_var cref = - this->consumer_._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->supplier_proxy_->connect_push_consumer (cref.in (), - consumer_qos.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_Supplier::push (const RtecEventComm::EventSet& events, - CORBA::Environment& _env) -{ -#if 0 - const int bufsize = 128; - char buf[bufsize]; - ACE_OS::sprintf (buf, "Supplier %d receives event in thread: ", - this->supplier_id_); - print_priority_info (buf); -#endif - - if (events.length () == 0 || this->message_count_ < 0) - { - // ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - - RtecEventComm::EventSet sent (events.length ()); - sent.length (events.length ()); - - for (u_int i = 0; i < events.length (); ++i) - { - const RtecEventComm::Event& e = events[i]; - if (e.type_ != ACE_ES_EVENT_INTERVAL_TIMEOUT) - continue; - - // ACE_DEBUG ((LM_DEBUG, "Test_Supplier - timeout (%t)\n")); - - RtecEventComm::Event& s = sent[i]; - s.source_ = this->supplier_id_; - s.ttl_ = 1; - - ACE_hrtime_t t = ACE_OS::gethrtime (); - ORBSVCS_Time::hrtime_to_TimeT (s.creation_time_, t); - s.ec_recv_time_ = ORBSVCS_Time::zero; - s.ec_send_time_ = ORBSVCS_Time::zero; - - s.data_.x = 0; - s.data_.y = 0; - - this->message_count_--; - - if (this->message_count_ < 0) - { - //this->supplier_proxy_->disconnect_push_supplier (_env); - //if (_env.exception () != 0) return; - this->test_->shutdown_supplier (this->cookie_, - this->consumer_proxy_.in (), - _env); - } - if (this->message_count_ % 2 == 0) - { - // Generate an A event... - s.type_ = this->event_a_; - } - else - { - s.type_ = this->event_b_; - } - } - this->test_->push_supplier (this->cookie_, - this->consumer_proxy_.in (), - sent, - _env); -} - -void -Test_Supplier::disconnect_push_supplier (CORBA::Environment& _env) -{ - this->supplier_proxy_->disconnect_push_supplier (_env); -} - -void -Test_Supplier::disconnect_push_consumer (CORBA::Environment &) -{ -} - -int Test_Supplier::supplier_id (void) const -{ - return this->supplier_id_; -} - -// **************************************************************** - -Test_Consumer::Test_Consumer (Test_ECG *test, - void *cookie) - : test_ (test), - cookie_ (cookie) -{ -} - -void -Test_Consumer::open (const char* name, - int event_a, int event_b, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment& _env) -{ - TAO_TRY - { - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - RtecScheduler::handle_t rt_info = - server->create (name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // The worst case execution time is far less than 2 - // milliseconds, but that is a safe estimate.... - ACE_Time_Value tv (0, 2000); - TimeBase::TimeT time; - ORBSVCS_Time::Time_Value_to_TimeT (time, tv); - server->set (rt_info, - RtecScheduler::VERY_HIGH_CRITICALITY, - time, time, time, - 0, - RtecScheduler::VERY_LOW_IMPORTANCE, - time, - 0, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_ConsumerQOS_Factory qos; - qos.start_disjunction_group (); - qos.insert_type (ACE_ES_EVENT_SHUTDOWN, rt_info); - qos.insert_type (event_a, rt_info); - qos.insert_type (event_b, rt_info); - - // = Connect as a consumer. - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin = - ec->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->supplier_proxy_ = - consumer_admin->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushConsumer_var objref = this->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->supplier_proxy_->connect_push_consumer (objref.in (), - qos.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -Test_Consumer::close (CORBA::Environment &_env) -{ - if (CORBA::is_nil (this->supplier_proxy_.in ())) - return; - - this->supplier_proxy_->disconnect_push_supplier (_env); - if (_env.exception () != 0) return; - - this->supplier_proxy_ = 0; -} - -void -Test_Consumer::push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env) -{ - ACE_hrtime_t arrival = ACE_OS::gethrtime (); - this->test_->push_consumer (this->cookie_, arrival, events, _env); -} - -void -Test_Consumer::disconnect_push_consumer (CORBA::Environment &) -{ -} - -// **************************************************************** - -int -main (int argc, char *argv []) -{ - Test_ECG test; - return test.run (argc, argv); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Auto_Basic_Ptr; -template class ACE_Condition; -template class ACE_PushConsumer_Adapter; -template class auto_ptr; -#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Auto_Basic_Ptr -#pragma instantiate ACE_Condition -#pragma instantiate ACE_PushConsumer_Adapter -#pragma instantiate auto_ptr -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsp b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsp deleted file mode 100644 index b97209fbf91..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsp +++ /dev/null @@ -1,110 +0,0 @@ -# Microsoft Developer Studio Project File - Name="EC_Multiple" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=EC_Multiple - 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 "EC_Multiple.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 "EC_Multiple.mak" CFG="EC_Multiple - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "EC_Multiple - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "EC_Multiple - 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)" == "EC_Multiple - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "EC_Multiple - 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 "." /I "../.." /I "../../.." /I "../../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "EC_Multiple - Win32 Release" -# Name "EC_Multiple - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\EC_Multiple.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\EC_Multiple.h -# End Source File -# Begin Source File - -SOURCE=.\Scheduler_Runtime1.h -# End Source File -# Begin Source File - -SOURCE=.\Scheduler_Runtime2.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsw b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.dsw deleted file mode 100644 index 016d97619a5..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.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: "EC_Multiple"=.\EC_Multiple.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h b/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h deleted file mode 100644 index b9b727473e1..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/EC_Multiple.h +++ /dev/null @@ -1,377 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ -// -// ============================================================================ -// -// = DESCRIPTION -// This test attempts to communicate several Event Channels. -// The test hardcodes all the objects involved (consumers, -// suppliers, proxies, etc.); the objective is to gain understanding -// on the architecture needed to exploit locality in the Event -// cycle, not to provide a definite solution. -// -// ============================================================================ - -#if !defined (EC_MULTIPLE_H) -#define EC_MULTIPLE_H - -#include "ace/SString.h" -#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.h" - -class Test_ECG; - -class Test_Supplier : public POA_RtecEventComm::PushSupplier -{ - // - // = TITLE - // Helper class to implement the different tests within Test_ECG. - // - // = DESCRIPTION - // Test_ECG can be configured to have a single or multiple - // suppliers, to use the EC or short-circuit it, to use the - // Gateway or not; this class connects as a consumer for timeouts - // in the EC, at each timeout it delegates on the Test_ECG class - // to execute the proper test. -public: - Test_Supplier (Test_ECG* test, void* cookie); - - void open (const char* name, - int event_a, int event_b, - int message_count, - const RtecScheduler::Period& rate, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment& _env); - // This method connects the supplier to the EC. - - void close (CORBA::Environment &_env); - // Disconnect from the EC. - - void activate (const char* name, - const RtecScheduler::Period& rate, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment& _env); - - void push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env); - void disconnect_push_consumer (CORBA::Environment &); - // Implement the callbacks for our consumer personality. - - - virtual void disconnect_push_supplier (CORBA::Environment &); - // The methods in the skeleton. - - RtecEventComm::EventSourceID supplier_id (void) const; - // The supplier ID. - -private: - Test_ECG* test_; - - void *cookie_; - // The test provide us a cookie so we can give back our identity. - - RtecEventComm::EventSourceID supplier_id_; - // We generate an id based on the name.... - - int event_a_; - int event_b_; - // The two types of events we may generate... - - int message_count_; - // The number of events sent by this supplier. - - RtecEventChannelAdmin::ProxyPushConsumer_var consumer_proxy_; - // We talk to the EC (as a supplier) using this proxy. - - ACE_PushConsumer_Adapter 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 Test_Consumer : public POA_RtecEventComm::PushConsumer -{ - // - // = TITLE - // Helper class to implement the different tests within Test_ECG. - // - // = DESCRIPTION - // Test_ECG must collect events destined to many consumers, but - // needs to distinguish through which consumer it is receiving the - // event. The easiest way is to create a shallow class that - // forwards the events to the EC, but passing back some cookie to - // identify the consumer. -public: - Test_Consumer (Test_ECG* test, void *cookie); - - void open (const char* name, - int event_a, int event_b, - RtecEventChannelAdmin::EventChannel_ptr ec, - CORBA::Environment& _env); - // This method connects the consumer to the EC. - - void close (CORBA::Environment &_env); - // Disconnect from the EC. - - virtual void push (const RtecEventComm::EventSet& events, - CORBA::Environment &_env); - virtual void disconnect_push_consumer (CORBA::Environment &); - // The skeleton methods. - -private: - Test_ECG* test_; - // The test class. - - void *cookie_; - // The magic cookie that serves as our ID. - - RtecEventChannelAdmin::ProxyPushSupplier_var supplier_proxy_; - // We talk to the EC using this proxy. -}; - -class Test_ECG -{ - // - // = TITLE - // Test and demonstrate the use of TAO_EC_Gateway. - // - // = DESCRIPTION - // This class is design to exercise several features of the EC_Gateway - // class and the multiple EC architecture. - // We want to create two EC, each one having a single supplier and a - // single consumer. - // + To test the remote facilities the consumer register for both a - // local event and a remote one. - // + To test the remote filtering features the remote consumer only - // wants one of the local events, and this event is generated less - // frequently. - // - // This class creates the local EC_Gateway a consumer and a - // supplier, it uses the command line to figure the subscriptions - // and publications list. - // -public: - Test_ECG (void); - - enum { - MAX_EVENTS = 1024, - // Maximum number of events to send... - - MAX_CONSUMERS = 16, - // Maximum number of consumers. - - MAX_SUPPLIERS = 16 - // Maximum number of suppliers. - }; - - int run (int argc, char* argv[]); - // Execute the test. - - void push_supplier (void* supplier_cookie, - RtecEventChannelAdmin::ProxyPushConsumer_ptr consumer, - const RtecEventComm::EventSet &events, - CORBA::Environment &); - // Callback method for suppliers, we push for them to their - // consumers and take statistics on the way. - // It is possible that we ignore the parameter when - // testing the short-circuit case. - - void push_consumer (void* consumer_cookie, - ACE_hrtime_t arrival, - const RtecEventComm::EventSet& events, - CORBA::Environment&); - // Callback method for consumers, if any of our consumers has - // received events it will invoke this method. - - void shutdown_supplier (void* supplier_cookie, - RtecEventComm::PushConsumer_ptr consumer, - CORBA::Environment& _env); - // One of the suppliers has completed its work. - -private: - RtecEventChannelAdmin::EventChannel_ptr - get_ec (CosNaming::NamingContext_ptr naming_context, - const char* ec_name, - CORBA::Environment &_env); - // Helper routine to obtain an EC given its name. - - void connect_suppliers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env); - void disconnect_suppliers (CORBA::Environment &_env); - // Connect the suppliers. - - void activate_suppliers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env); - // Activate the suppliers, i.e. they start generating events. - - void connect_ecg (RtecEventChannelAdmin::EventChannel_ptr local_ec, - RtecEventChannelAdmin::EventChannel_ptr remote_ec, - RtecScheduler::Scheduler_ptr remote_sch, - CORBA::Environment &_env); - // Connect the EC gateway, it builds the Subscriptions and the - // Publications list. - - void connect_consumers (RtecEventChannelAdmin::EventChannel_ptr local_ec, - CORBA::Environment &_env); - void disconnect_consumers (CORBA::Environment &_env); - // Connect and disconnect the consumers. - - int shutdown (CORBA::Environment&); - // Called when the main thread (i.e. not the scavenger thread) is - // shutting down. - - int parse_args (int argc, char* argv[]); - // parse the command line args - - void dump_results (void); - // Dump the results to the standard output. - - void wait_until_ready (void); - // Block event delivery until all the consumers are ready. - - struct Stats; - void dump_results (const char* name, Stats& stats); - // Dump the results for a particular consumer. - - int local_source (RtecEventComm::EventSourceID id) const; - // Check if correspond to a local supplier. - - void shutdown_consumer (int id); - // One of the consumers has completed its work. - -private: - char* lcl_name_; - // The name of the "local" EC. - - char* rmt_name_; - // The name of the "remote" EC. - - TAO_EC_Gateway_IIOP ecg_; - // The proxy used to connect both event channels. - - enum { - ss_global, - ss_local, - ss_runtime - }; - int scheduling_type_; - // The type of scheduling service to use: - // "global" is a remote scheduling service, usually to perform - // simultaneous scheduling across all the processes. - // "local" instantiate a local config time scheduling service. - // "runtime" instantiates a local rumtime scheduling service. - - int consumer_disconnects_; - int supplier_disconnects_; - // How many times to disconnect the consumers (and suppliers) before - // the final connection. This is useful to test the disconnection in - // the EC. - - int short_circuit_; - // Don't send the messages through the EC. This is needed to measure - // the overhead introduced by the EC. - - Test_Supplier* suppliers_[Test_ECG::MAX_SUPPLIERS]; - Test_Consumer* consumers_[Test_ECG::MAX_CONSUMERS]; - // The suppliers and consumer arrays, the sizes are controlled using - // {lp,hp}_{suppliers,consumers}_ - - // @@ TODO it looks like the HP and LP data could be encapsulated. - - int hp_suppliers_; - // The number of high priority suppliers in this test. - - int hp_consumers_; - // The number of high priority consumers. - - int hp_workload_; - // The number of iterations of ACE::is_prime() to execute in high - // priority consumers. - - int hp_interval_; - // The high priority events are generated using this interval. - - int hp_message_count_; - // How many messages we will send in the HP suppliers - - int hps_event_a_; - int hps_event_b_; - int hpc_event_a_; - int hpc_event_b_; - // Each supplier send two types of events, each consumer receives - // two other types. The types for high-priority clients can be - // different from the types to low priority clients. - - int lp_suppliers_; - // The number of low priority suppliers in this test. - - int lp_consumers_; - // The number of low priority consumers. - - int lp_workload_; - // The number of iterations of ACE::is_prime() to execute in low - // priority consumers. - - int lp_interval_; - // The low priority events are generated using this interval. - - int lp_message_count_; - // How many messages we will send in the LP suppliers - - int lps_event_a_; - int lps_event_b_; - int lpc_event_a_; - int lpc_event_b_; - // Each supplier send two types of events, each consumer receives - // two other types. The types for high-priority clients can be - // different from the types to low priority clients. - - const char* schedule_file_; - // Ask the schedule to compute and dump its schedule after the test - // execution. - - const char* pid_file_name_; - // The name of a file where the process stores its pid - - struct Stats { - ACE_hrtime_t total_time_; - float laxity_[MAX_EVENTS]; - ACE_hrtime_t lcl_latency_[MAX_EVENTS]; - ACE_hrtime_t end_[MAX_EVENTS]; - int lcl_count_; - // We keep laxity and total_time stats only for the local events. - - ACE_hrtime_t rmt_latency_[MAX_EVENTS]; - int rmt_count_; - }; - Stats stats_[Test_ECG::MAX_CONSUMERS]; - // Store the measurements for local and remote events.. - - int ready_; - ACE_SYNCH_MUTEX ready_mtx_; - ACE_Condition ready_cnd_; - // Before accepting any events the suppliers must wait for the test - // to setup all the consumers. - // The suppliers wait on the condition variable. - - ACE_Atomic_Op running_suppliers_; - // keep track of how many suppliers are still running so we shutdown - // at the right moment. - - ACE_Atomic_Op running_consumers_; - // keep track of how many consumers are still running so we shutdown - // at the right moment. - - ACE_hrtime_t test_start_; - ACE_hrtime_t test_stop_; - // Measure the test elapsed time as well as mark the beginning of - // the frames. -}; - -#endif /* EC_MULTIPLE_H */ diff --git a/TAO/orbsvcs/tests/EC_Multiple/Makefile b/TAO/orbsvcs/tests/EC_Multiple/Makefile deleted file mode 100644 index 344d21125f7..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/Makefile +++ /dev/null @@ -1,345 +0,0 @@ -# $Id$ - -BIN = EC_Multiple -BUILD = $(BIN) -SRC = $(BIN:%=%$(VAR).cpp) -LDLIBS= -lorbsvcs -lTAO - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs \ - -I$(TAO_ROOT) - -ifdef quantify - CCFLAGS += -Dquantify - CPPFLAGS += -I/pkg/purify/quantify-2.1-solaris2 -endif # quantify - -#---------------------------------------------------------------------------- -# 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 -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_Multiple.o .obj/EC_Multiple.so .shobj/EC_Multiple.o .shobj/EC_Multiple.so: EC_Multiple.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(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 \ - $(TAO_ROOT)/tao/Timeprobe.h \ - $(ACE_ROOT)/ace/Timeprobe.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.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_Utilities.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Config_Scheduler.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Scheduler_Generic.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Scheduler.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Scheduler.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Scheduler_Generic.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Config_Scheduler.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Runtime_Scheduler.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Event_Channel.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Local_ESTypes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ - $(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/RtecEventChannelAdminS.h \ - $(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/Local_ESTypes.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/CORBA_Utils_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Task_Manager.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/RT_Task.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/RT_Task.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Task_Manager.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/ReactorTask.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Fast_Reactor.h \ - $(ACE_ROOT)/ace/Select_Reactor.h \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/Select_Reactor.i \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.cpp \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_List_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event/Event_Channel.i \ - EC_Multiple.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.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.h \ - Scheduler_Runtime1.h Scheduler_Runtime2.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/EC_Multiple/README b/TAO/orbsvcs/tests/EC_Multiple/README deleted file mode 100644 index 7ccee6997eb..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/README +++ /dev/null @@ -1,34 +0,0 @@ -# $Id$ - - This test ilustrates how to connect multiple ECs; it has many -options and can be configured to run a single EC, two ECs connected -through a Gateway, short-circuit the EC, use a global, local or -precomputed schedule, etc. - Please see the scripts for typical configurations. - - A simple test is that will use a pre-computed schedule would -be: - -# Run the Naming Service -$ ../../Naming_Service/Naming_Service -ORBport 20000 \ - -p NameService.pid -o NameService.ior -# If the multicast location does not work for your use: -# -# NameService=`cat NameService.ior` -# export NameService -# -# or other commands that suit your shell. -# - -# Run the first EC, supplier generates events <1> and <2> consumer -# subscribes to events <1> and <3> -$ ./EC_Multiple -ORBport 20010 -l ECM1 -r ECM2 -s runtime -p ECM1.pid \ - -h 1,1,1,250000,100,1,2,1,3 - -# Run the second EC, supplier generates events <4> and <3> consumer -# subscribes to events <4> and <2> -$ ./EC_Multiple -ORBport 20020 -l ECM2 -r ECM1 -s runtime -p ECM2.pid \ - -h 1,1,1,250000,100,4,3,4,2 - -# Notice how the consumer receives both local and remote events, but -# not all the local neither all the remote events. diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h deleted file mode 100644 index 412a081cf1d..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime1.h +++ /dev/null @@ -1,157 +0,0 @@ -// This file was automatically generated by Scheduler_Factory -// before editing the file please consider generating it again -// $Id$ - -#include "orbsvcs/Scheduler_Factory.h" - -static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_1[] = { -{ "Reactor_Task-25000.us", 1, {0, 0}, {0, 0}, {0, 0}, 250000, - 4, 0, {0, 0}, 1, 4, 0, 0, 0 }, -{ "Reactor_Task-50000.us", 2, {0, 0}, {0, 0}, {0, 0}, 500000, - 4, 0, {0, 0}, 1, 3, 0, 0, 0 }, -{ "Reactor_Task-100000.us", 3, {0, 0}, {0, 0}, {0, 0}, 1000000, - 4, 0, {0, 0}, 1, 2, 0, 0, 0 }, -{ "Reactor_Task-200000.us", 4, {0, 0}, {0, 0}, {0, 0}, 2000000, - 4, 0, {0, 0}, 1, 1, 0, 0, 0 }, -{ "Reactor_Task-1000000.us", 5, {0, 0}, {0, 0}, {0, 0}, 10000000, - 4, 0, {0, 0}, 1, 0, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-25000.us", 6, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 4, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-50000.us", 7, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 3, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-100000.us", 8, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 2, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-200000.us", 9, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 1, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-1000000.us", 10, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 0, 0, 0, 0 }, -{ "hp_supplier_00@ECM1", 11, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_01@ECM1", 12, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_02@ECM1", 13, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_03@ECM1", 14, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_04@ECM1", 15, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_05@ECM1", 16, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_06@ECM1", 17, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_07@ECM1", 18, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_08@ECM1", 19, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_09@ECM1", 20, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "lp_supplier_00@ECM1", 21, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_01@ECM1", 22, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_02@ECM1", 23, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_03@ECM1", 24, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_04@ECM1", 25, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "ecg_ECM2@ECM1", 26, {5000, 0}, {5000, 0}, {5000, 0}, 250000, - 4, 0, {5000, 0}, 0, 4, 0, 0, 0 }, -{ "ecg_ECM1@ECM1", 27, {5000, 0}, {5000, 0}, {5000, 0}, 250000, - 4, 0, {5000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_consumer_00@ECM1", 28, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_01@ECM1", 29, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_02@ECM1", 30, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_03@ECM1", 31, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_04@ECM1", 32, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_05@ECM1", 33, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_06@ECM1", 34, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_07@ECM1", 35, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_08@ECM1", 36, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_09@ECM1", 37, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_10@ECM1", 38, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_11@ECM1", 39, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_12@ECM1", 40, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_13@ECM1", 41, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_14@ECM1", 42, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_15@ECM1", 43, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_16@ECM1", 44, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_17@ECM1", 45, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_18@ECM1", 46, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_19@ECM1", 47, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_20@ECM1", 48, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_21@ECM1", 49, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_22@ECM1", 50, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_23@ECM1", 51, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_24@ECM1", 52, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "lp_consumer_00@ECM1", 53, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_01@ECM1", 54, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_02@ECM1", 55, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_03@ECM1", 56, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_04@ECM1", 57, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "consumer_hp_supplier_00@ECM1", 58, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_01@ECM1", 59, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_02@ECM1", 60, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_03@ECM1", 61, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_04@ECM1", 62, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_05@ECM1", 63, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_06@ECM1", 64, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_07@ECM1", 65, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_08@ECM1", 66, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_09@ECM1", 67, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_lp_supplier_00@ECM1", 68, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_01@ECM1", 69, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_02@ECM1", 70, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_03@ECM1", 71, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_04@ECM1", 72, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 } -}; - -static int runtime_infos_1_size = sizeof(runtime_infos_1)/sizeof(runtime_infos_1[0]); - -// EOF - diff --git a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h b/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h deleted file mode 100644 index 0504f71dd17..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/Scheduler_Runtime2.h +++ /dev/null @@ -1,155 +0,0 @@ -// This file was automatically generated by Scheduler_Factory -// before editing the file please consider generating it again -// $Id$ - -#include "orbsvcs/Scheduler_Factory.h" - -static ACE_Scheduler_Factory::POD_RT_Info runtime_infos_2[] = { -{ "Reactor_Task-25000.us", 1, {0, 0}, {0, 0}, {0, 0}, 250000, - 4, 0, {0, 0}, 1, 4, 0, 0, 0 }, -{ "Reactor_Task-50000.us", 2, {0, 0}, {0, 0}, {0, 0}, 500000, - 4, 0, {0, 0}, 1, 3, 0, 0, 0 }, -{ "Reactor_Task-100000.us", 3, {0, 0}, {0, 0}, {0, 0}, 1000000, - 4, 0, {0, 0}, 1, 2, 0, 0, 0 }, -{ "Reactor_Task-200000.us", 4, {0, 0}, {0, 0}, {0, 0}, 2000000, - 4, 0, {0, 0}, 1, 1, 0, 0, 0 }, -{ "Reactor_Task-1000000.us", 5, {0, 0}, {0, 0}, {0, 0}, 10000000, - 4, 0, {0, 0}, 1, 0, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-25000.us", 6, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 4, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-50000.us", 7, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 3, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-100000.us", 8, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 2, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-200000.us", 9, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 1, 0, 0, 0 }, -{ "ACE_ES_Dispatch_Queue-1000000.us", 10, {0, 0}, {0, 0}, {0, 0}, 0, - 4, 0, {0, 0}, 1, 0, 0, 0, 0 }, -{ "hp_supplier_00@ECM2", 11, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_01@ECM2", 12, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_02@ECM2", 13, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_03@ECM2", 14, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_04@ECM2", 15, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_05@ECM2", 16, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_06@ECM2", 17, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_07@ECM2", 18, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_08@ECM2", 19, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "hp_supplier_09@ECM2", 20, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "lp_supplier_00@ECM2", 21, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_01@ECM2", 22, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_02@ECM2", 23, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_03@ECM2", 24, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "lp_supplier_04@ECM2", 25, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "ecg_ECM2@ECM2", 26, {5000, 0}, {5000, 0}, {5000, 0}, 250000, - 4, 0, {5000, 0}, 1, 4, 0, 0, 0 }, -{ "ecg_ECM1@ECM2", 27, {5000, 0}, {5000, 0}, {5000, 0}, 250000, - 4, 0, {5000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_00@ECM2", 28, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_01@ECM2", 29, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_02@ECM2", 30, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_03@ECM2", 31, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_04@ECM2", 32, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_05@ECM2", 33, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_06@ECM2", 34, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_07@ECM2", 35, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_08@ECM2", 36, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_09@ECM2", 37, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_10@ECM2", 38, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_11@ECM2", 39, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_12@ECM2", 40, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_13@ECM2", 41, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_14@ECM2", 42, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_15@ECM2", 43, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_16@ECM2", 44, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_17@ECM2", 45, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_18@ECM2", 46, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_19@ECM2", 47, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_20@ECM2", 48, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_21@ECM2", 49, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_22@ECM2", 50, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_23@ECM2", 51, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "hp_consumer_24@ECM2", 52, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 4, 0, 0, 0 }, -{ "lp_consumer_00@ECM2", 53, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_01@ECM2", 54, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_02@ECM2", 55, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_03@ECM2", 56, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "lp_consumer_04@ECM2", 57, {20000, 0}, {20000, 0}, {20000, 0}, 0, - 4, 0, {20000, 0}, 0, 0, 0, 0, 0 }, -{ "consumer_hp_supplier_00@ECM2", 58, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_01@ECM2", 59, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_02@ECM2", 60, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_03@ECM2", 61, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_04@ECM2", 62, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_05@ECM2", 63, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_06@ECM2", 64, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_07@ECM2", 65, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_08@ECM2", 66, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_hp_supplier_09@ECM2", 67, {20000, 0}, {20000, 0}, {20000, 0}, 250000, - 4, 0, {20000, 0}, 1, 4, 0, 0, 0 }, -{ "consumer_lp_supplier_00@ECM2", 68, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_01@ECM2", 69, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_02@ECM2", 70, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_03@ECM2", 71, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 }, -{ "consumer_lp_supplier_04@ECM2", 72, {20000, 0}, {20000, 0}, {20000, 0}, 10000000, - 4, 0, {20000, 0}, 1, 0, 0, 0, 0 } -}; -static int runtime_infos_2_size = sizeof(runtime_infos_2)/sizeof(runtime_infos_2[0]); - -// EOF diff --git a/TAO/orbsvcs/tests/EC_Multiple/gen_latency b/TAO/orbsvcs/tests/EC_Multiple/gen_latency deleted file mode 100755 index 4d79000e45d..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/gen_latency +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -HP_SUPPLIERS="1 2 10" -HP_CONSUMERS="1 5 10 20" - -for s in $HP_SUPPLIERS; do - echo Supplier = $s - ./histo.pl -k 'Latency\[LCL' LTC.ECM1.S${s}.*.log LTC.ECM2.S${s}.*.log >LTC.LCL.S${s}.histo - ./histo.pl -k 'Latency\[RMT' LTC.ECM1.S${s}.*.log LTC.ECM2.S${s}.*.log >LTC.RMT.S${s}.histo - - for c in $HP_CONSUMERS; do - x=`expr $c - 1` - l=`printf %02.2d $x` - echo Consumer = $c, LAST = $l - ./histo.pl -k 'Latency\[LCL,HP00' LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.LCL.S${s}.C${c}.FIRST.histo - ./histo.pl -k 'Latency\[RMT,HP00' LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.RMT.S${s}.C${c}.FIRST.histo - ./histo.pl -k "Latency\[LCL,HP${l}" LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.LCL.S${s}.C${c}.LAST.histo - ./histo.pl -k "Latency\[RMT,HP${l}" LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.RMT.S${s}.C${c}.LAST.histo - - ./histo.pl -k "Latency\[LCL,HP" LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.LCL.S${s}.C${c}.histo - ./histo.pl -k "Latency\[RMT,HP" LTC.ECM1.S${s}.C${c}.log LTC.ECM2.S${s}.C${c}.log >LTC.RMT.S${s}.C${c}.histo - - ./histo.pl -k 'Latency\[LCL,HP00' LTC.LCL.S${s}.C${c}.log >LTC.XLCL.S${s}.C${c}.FIRST.histo - ./histo.pl -k "Latency\[LCL,HP${l}" LTC.LCL.S${s}.C${c}.log >LTC.XLCL.S${s}.C${c}.LAST.histo - ./histo.pl -k "Latency\[LCL,HP" LTC.LCL.S${s}.C${c}.log >LTC.XLCL.S${s}.C${c}.histo - done -done - -for f in LTC.*.histo; do - b=`basename $f .histo` - tail +3 $f | sort -n > ${b}.data -done - -for i in XLCL; do - grep Min LTC.${i}.*.FIRST.histo | - sed -e "s/LTC.$i.S//" -e 's/\.C/ /' -e 's/.FIRST.histo:/ /' -e 's/\,/ /g' | - awk '{print $1, $2, $4, $6, $8, $10}' | - sort -k 1n -k 2n > LTC.${i}.FIRST.tbl - grep Min LTC.${i}.*.LAST.histo | - sed -e "s/LTC.$i.S//" -e 's/\.C/ /' -e 's/.LAST.histo:/ /' -e 's/\,/ /g' | - awk '{print $1, $2, $4, $6, $8, $10}' | - sort -k 1n -k 2n > LTC.${i}.LAST.tbl - paste LTC.${i}.FIRST.tbl LTC.${i}.LAST.tbl | - awk '{print $1, $2, $3, $4, $5, $6, $9, $10, $11, $12}' > LTC.${i}.tbl -done - -for i in LCL RMT; do - grep Min `ls LTC.${i}.*.histo | grep -v FIRST | grep -v LAST` | - sed -e "s/LTC.$i.S//" -e 's/\.C/ /' -e 's/.histo:/ /' -e 's/\,/ /g' | - awk '{print $1, $2, $4, $6, $8, $10}' | - sort -k 1n -k 2n > LTC.${i}.tbl -done - -paste LTC.LCL.tbl LTC.RMT.tbl | - awk '{print $1, $2, $3, $4, $5, $6, $9, $10, $11, $12}' > LTC.LCLRMT.tbl - -exit 0 - -for s in $HP_SUPPLIERS; do - gnuplot <<_EOF_ -set grid xtics ytics -set ylabel "Relative frequency" - -set xlabel "Latency (usecs) [$s suppliers, local events]" -set terminal postscript eps color -set output "LTC.LCL.S${s}.eps" -plot 'LTC.LCL.S${s}.data' w i -#set terminal x11 -#plot 'LTC.LCL.S${s}.data' w i -#pause 2 - -set xlabel "Time (usecs) [$s suppliers, remote events]" -set terminal postscript eps -set output "LTC.RMT.S${s}.eps" -plot 'LTC.RMT.S${s}.data' w i -#set terminal x11 -#plot 'LTC.RMT.S${s}.data' w i -#pause 2 - -_EOF_ -done - -for i in LTC.*.eps; do - b=`basename $i .eps` - gs -sDEVICE=jpeg -g640x480 -r110x110 -sNOPAUSE \ - -sOutputFile="${b}.jpg" ${b}.eps quit.ps -done diff --git a/TAO/orbsvcs/tests/EC_Multiple/gen_overhead b/TAO/orbsvcs/tests/EC_Multiple/gen_overhead deleted file mode 100755 index 3f6cf50acd5..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/gen_overhead +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -#TESTS_SOURCES="X LCL RMT1 RMT2 RPT.X RPT.LCL RPT.RMT1 RPT.RMT2" -TESTS_SOURCES="RPT.X RPT.LCL RPT.RMT1 RPT.RMT2" - -#TESTS="$TEST_SOURCES RPT.RMT RMT" -TESTS="$TEST_SOURCES RPT.RMT" - -for i in $TESTS_SOURCES; do - grep "Scavenger time" OVH.${i}.*.log | - sed -e "s/^OVH\.${i}\.//" -e 's/\.log:Scavenger time://' | - sort -n > OVH.${i}.scav.data - grep "Push time" OVH.${i}.*.log | - sed -e "s/^OVH\.${i}\.//" -e 's/\.log:Push time://' | - sort -n > OVH.${i}.push.data -# | awk '{printf ("%d %.3f\n", $1, $2/$1);}' -done - -paste scav.RMT1.data scav.RMT2.data | - awk '{printf("%d %.3f\n", $1, ($2 + $4)/2);}' > OVH.RMT.scav.data -paste push.RMT1.data push.RMT2.data | - awk '{printf("%d %.3f\n", $1, ($2 + $4)/2);}' > OVH.RMT.push.data - -paste scav.RPT.RMT1.data scav.RPT.RMT2.data | - awk '{printf("%d %.3f\n", $1, ($2 + $4)/2);}' > OVH.RPT.RMT.scav.data -paste push.RPT.RMT1.data push.RPT.RMT2.data | - awk '{printf("%d %.3f\n", $1, ($2 + $4)/2);}' > OVH.RPT.RMT.push.data - -for i in X LCL RMT RMT1 RMT2; do - paste OVH.${i}.scav.data OVH.${i}.push.data | - awk '{ - if (NR == 1) { - b = $2; - } else { - printf ("%d %.3f\n", $1, ($2 - $4 - b) / $1); - }}' > OVH.${i}.over.data -done - -for i in RPT.X RPT.LCL RPT.RMT RPT.RMT1 RPT.RMT2; do - paste OVH.${i}.scav.data OVH.${i}.push.data | - awk '{ - printf ("%d %.3f\n", $1, ($2 - $4)); - }' > OVH.${i}.over.data -done - -for i in $TESTS; do - case $i in - X) LABEL="Number of Messages [short circuit test]" - ;; - LCL) LABEL="Number of Messages [local EC test]" - ;; - RMT) LABEL="Number of Messages [remote EC test]" - ;; - RMT1) LABEL="Number of Messages [remote EC test 1]" - ;; - RMT2) LABEL="Number of Messages [remote EC test 2]" - ;; - RPT.X) LABEL="Test Number [short circuit test]" - ;; - RPT.LCL) LABEL="Test Number [local EC test]" - ;; - RPT.RMT) LABEL="Test Number [remote EC test]" - ;; - RPT.RMT1) LABEL="Test Number [remote EC test 1]" - ;; - RPT.RMT2) LABEL="Test Number [remote EC test 2]" - ;; - - *) LABEL="Test Number [unknown test]" - ;; - esac - - gnuplot <<_EOF_ -set grid xtics ytics -set xlabel "$LABEL" - -set terminal postscript eps color -set ylabel "Time in scavenger (usecs)" -set output "OVH.${i}.scav.eps" -plot 'OVH.${i}.scav.data' w l -set terminal x11 -plot 'OVH.${i}.scav.data' w l -pause 2 - -set terminal postscript eps -set ylabel "Time in push (usecs)" -set output "OVH.${i}.push.eps" -plot 'OVH.${i}.push.data' w l -set terminal x11 -plot 'OVH.${i}.push.data' w l -pause 2 - -set terminal postscript eps -set ylabel "Overhead (usecs)" -set output "OVH.${i}.over.eps" -plot 'OVH.${i}.over.data' w l -set terminal x11 -plot 'OVH.${i}.over.data' w l -pause 2 -_EOF_ -done - -for i in OVH.push OVH.scav OVH.over; do - for j in $TESTS; do - gs -sDEVICE=jpeg -g640x480 -r110x110 -sNOPAUSE \ - -sOutputFile="${i}.${j}.jpg" ${i}.${j}.eps quit.ps - done -done - -exit 0 - diff --git a/TAO/orbsvcs/tests/EC_Multiple/gen_throughput b/TAO/orbsvcs/tests/EC_Multiple/gen_throughput deleted file mode 100755 index 6dce32939d0..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/gen_throughput +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -HP_CONSUMERS="1 5 10 20" -# The number of high priority consumers. - -HP_SUPPLIERS="1 2 10" -# The number of high priority suppliers - -for s in $HP_SUPPLIERS; do - for c in $HP_CONSUMERS; do - grep TOTAL THR.LCL.S${s}.C${c}.*.log | - sed -e "s/THR.LCL.S${s}.C${c}.I//" -e 's/\.log:Time\[TOTAL\]://' | - nawk -v f=$s '{print 1000000 / $1, $2 * f / 500 / $1}' | - sort -n > THR.LCL.S${s}.C${c}.data - done -done - -cat >/tmp/genthr.$$ <>/tmp/genthr.$$ < UTL.XLCL.${w}.LP.histo - ./histo.pl -k 'Laxity\[LCL,HP' UTL.LCL.${w}.log > UTL.XLCL.${w}.HP.histo - ./histo.pl -k 'Laxity\[LCL,LP' UTL.ECM1.${w}.log UTL.ECM2.${w}.log > UTL.LCL.${w}.LP.histo - ./histo.pl -k 'Laxity\[LCL,HP' UTL.ECM1.${w}.log UTL.ECM2.${w}.log > UTL.LCL.${w}.HP.histo -done - -HP_MSGS=200 -HP_CONSUMERS=1 - -LP_WORKLOAD=500 -LP_MSGS=50 -LP_CONSUMERS=1 - -WORK_USEC=118 - -# awk '{print $1, 100 * ($1 * 200 + 500 * 50) * 118 / $2}' | - -grep 'Min' UTL.XLCL.*.LP.histo | - sed -e 's/UTL.XLCL.//' -e s'/.LP.histo:Min://' -e 's/,//g' | - awk '{print $1, $6, $2, $4}' | - sort -n > UTL.XLCL.LP.LAX.data - -grep 'Min' UTL.XLCL.*.HP.histo | - sed -e 's/UTL.XLCL.//' -e s'/.HP.histo:Min://' -e 's/,//g' | - awk '{print $1, $6, $2, $4}' | - sort -n > UTL.XLCL.HP.LAX.data - -grep 'Min' UTL.LCL.*.LP.histo | - sed -e 's/UTL.LCL.//' -e s'/.LP.histo:Min://' -e 's/,//g' | - awk '{print $1, $6, $2, $4}' | - sort -n > UTL.LCL.LP.LAX.data - -grep 'Min' UTL.LCL.*.HP.histo | - sed -e 's/UTL.LCL.//' -e s'/.HP.histo:Min://' -e 's/,//g' | - awk '{print $1, $6, $2, $4}' | - sort -n > UTL.LCL.HP.LAX.data - -cat UTL.LCL.LP.LAX.data | - awk '{print ($1 * 4 + 500) * 118 / 1000, $2, $3, $4}' > UTL.LCL.LP.data -cat UTL.XLCL.LP.LAX.data | - awk '{print ($1 * 4 + 500) * 118 / 1000, $2, $3, $4}' > UTL.XLCL.LP.data -cat UTL.LCL.HP.LAX.data | - awk '{print ($1 * 4 + 500) * 118 / 1000, $2, $3, $4}' > UTL.LCL.HP.data -cat UTL.XLCL.HP.LAX.data | - awk '{print ($1 * 4 + 500) * 118 / 1000, $2, $3, $4}' > UTL.XLCL.HP.data - -exit 0 - -gnuplot <<_EOF_ -set grid xtics ytics -set terminal postscript eps color -set xlabel "CPU Utilization (percentage)" - -set ylabel "Minimum laxity for low-priority task" -set output "UTL.LCL.eps" -plot 'UTL.LCL.data' w l -#set terminal x11 -#plot 'UTL.LCL.data' w l -#pause 2 - -_EOF_ - -for i in UTL.*.eps; do - b=`basename $i .eps` - gs -sDEVICE=jpeg -g640x480 -r110x110 -sNOPAUSE \ - -sOutputFile="${b}.jpg" ${b}.eps quit.ps -done - -grep 'Time\[LCL,HP' UTL.LCL.*.log | sed -e 's/UTL.LCL.//' -e s'/.log:Time\[.*\]://' | awk '{if ($1 != 0) {print $2 / $1 / 200}}' - diff --git a/TAO/orbsvcs/tests/EC_Multiple/histo.pl b/TAO/orbsvcs/tests/EC_Multiple/histo.pl deleted file mode 100755 index f6cc77ce0e4..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/histo.pl +++ /dev/null @@ -1,76 +0,0 @@ -# -# $Id$ -# -# Extract a histogram, minium, maximum and average from a file, -# filtering by a given RE. -# - -eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' - & eval 'exec perl -S $0 $argv:q' - if 0; - -# 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 Getopt::Std; - -$opt_k = 'Latency\[LCL,[A-Z]*\]'; -$opt_r = 1; - -getopts ('k:r:'); - -$max = 0; -$min = 0; -$sum = 0; -$sum2 = 0; -$n = 0; -%histo = (); - -while (<>) { - if (!m/^$opt_k/) { - next; - } - chop; - @f = split(/:/, $_); - if ($n == 0) { - $min = $f[1]; - $max = $f[1]; - $sum = $f[1]; - $sum2 = $f[1] * $f[1]; - $n = 1; - } else { - if ($min > $f[1]) { - $min = $f[1]; - } - if ($max < $f[1]) { - $max = $f[1]; - } - $sum += $f[1]; - $sum2 += $f[1] * $f[1]; - $n++; - } - $i = int ($f[1] * $opt_r); - $histo{"$i"}++; -} - -print "Latency results for $opt_k:\n"; -$s2 = $sum2 / ($n - 1) - $sum / $n * $sum / ($n - 1); -if ($s2 >= 0) { - $sigma = int(sqrt ( $s2 )); -} else { - print "Error: $sum, $sum2, $n\n"; - $sigma = $sum2; -} - -print "Min: $min,", - " Max: $max,", - " Avg: ", int($sum / $n), - " Dev: ", $sigma, - "\n"; - -while ( ($key,$value) = each %histo ) { - $t = ($key / $opt_r); - print $t, " ", 100 * $value / $n, "\n"; -} - diff --git a/TAO/orbsvcs/tests/EC_Multiple/run_latency b/TAO/orbsvcs/tests/EC_Multiple/run_latency deleted file mode 100755 index 82fd7347811..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/run_latency +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -MSG_COUNT=100 -# The number of messages to send. - -HP_CONSUMERS="1 5 10 20" -# The number of high priority consumers. - -HP_SUPPLIERS="1 2 10" -# The number of high priority suppliers - -HP_INTERVAL=250000 - -/bin/rm -f NameService.ior NameService.pid EC1.pid EC2.pid EC.pid - -for s in $HP_SUPPLIERS; do - for c in $HP_CONSUMERS; do - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - - echo Consumers = $c Suppliers = $s - ./EC_Multiple -ORBport 20010 -l ECM1 -p ECM1.pid -s runtime \ - -h ${s},${c},0,${HP_INTERVAL},${MSG_COUNT},1,2,1,2 > LTC.LCL.S${s}.C${c}.log 2>&1 - kill `cat NameService.pid` - - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - - ./EC_Multiple -ORBport 20010 -l ECM1 -r ECM2 -p ECM1.pid -s runtime \ - -h ${s},${c},0,${HP_INTERVAL},${MSG_COUNT},1,2,1,3 > LTC.ECM1.S${s}.C${c}.log 2>&1 & - ./EC_Multiple -ORBport 20020 -l ECM2 -r ECM1 -p ECM2.pid -s runtime \ - -h ${s},${c},0,${HP_INTERVAL},${MSG_COUNT},4,3,4,2 > LTC.ECM2.S${s}.C${c}.log 2>&1 & - sleep 2 - wait `cat ECM1.pid` - wait `cat ECM2.pid` - kill `cat NameService.pid` - done -done - diff --git a/TAO/orbsvcs/tests/EC_Multiple/run_overhead b/TAO/orbsvcs/tests/EC_Multiple/run_overhead deleted file mode 100755 index f9f1dcfd893..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/run_overhead +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -MSG_INTERVAL=5000 # 50000 -# The interval between the messages, in usecs - -UTL_COUNT=50000 # 500000 -# The number of iterations in the scavenger thread; each iteration is -# (roughly) 20 usecs (On a Sparc Ultra 30); and the number of -# iterations must be high enough so all the messages are sent while -# the scavenger is still running. - -MSG_COUNTS="1 50 100 150 200 250 300 350 400 450 500 550 600 650 700 750 800 850 900 950 1000" -# The number of messages sent on each test... - -RPT_ITER="01 02 03 04 05 06 07 08 09 10" -# The iterations for the final test. - -RPT_MSGS=1000 -# The number of messages in the final test. - -/bin/rm -f NameService.ior NameService.pid EC1.pid EC2.pid EC.pid - -for i in $RPT_ITER; do - echo Short circuit RPT test $i - sleep 1 - ./EC_Multiple -ORBport 20010 -l EC1 -s RUNTIME1 \ - -a 1 -b 2 -c 2 -p EC1.pid -m $RPT_MSGS -u $UTL_COUNT \ - -i $MSG_INTERVAL -x > OVH.RPT.X.${i}.log 2>&1 - - echo Local RPT EC test $i - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - ./EC_Multiple -ORBport 20010 -l EC1 -s RUNTIME1 \ - -a 1 -b 2 -c 2 -p EC1.pid -m $RPT_MSGS -u $UTL_COUNT \ - -i $MSG_INTERVAL > OVH.RPT.LCL.${i}.log 2>&1 - kill `cat NameService.pid` - - echo Remote RPT EC test $i - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - ./EC_Multiple -ORBport 20010 -l EC1 -r EC2 -s RUNTIME1 -o RUNTIME2 \ - -a 1 -b 2 -c 3 -p EC1.pid -m $RPT_MSGS -u $UTL_COUNT \ - -i $MSG_INTERVAL > OVH.RPT.RMT1.${i}.log 2>&1 & - ./EC_Multiple -ORBport 20020 -l EC2 -r EC1 -s RUNTIME2 -o RUNTIME1 \ - -a 4 -b 3 -c 2 -p EC2.pid -m $RPT_MSGS -u $UTL_COUNT \ - -i $MSG_INTERVAL > OVH.RPT.RMT2.${i}.log 2>&1 & - sleep 2 - wait `cat EC1.pid` - wait `cat EC2.pid` - kill `cat NameService.pid` - wait -done - -exit 0 - -# This tests prove that the overhead is linear on the number of -# messages... - -# Generate the baseline data, i.e. shortcircuit the EC. - -for i in $MSG_COUNTS; do - echo Short circuit test $i - sleep 1 - ./EC_Multiple -ORBport 20010 -l EC1 -s RUNTIME1 \ - -a 1 -b 2 -c 2 -m $i -u $UTL_COUNT \ - -i $MSG_INTERVAL -x > OVH.X.${i}.log 2>&1 -done - -# Generate the local data, i.e. what is the overhead of using the local EC. -for i in $MSG_COUNTS; do - echo Local EC test $i - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - ./EC_Multiple -ORBport 20010 -l EC1 -s RUNTIME1 \ - -a 1 -b 2 -c 2 -m $i -u $UTL_COUNT \ - -i $MSG_INTERVAL -p EC1.pid > OVH.LCL.${i}.log 2>&1 - kill `cat NameService.pid` -done - -# Generate the remote data, this test is much slower since the latency -# can be as high as 2 msec -for i in $MSG_COUNTS; do - echo Remote EC test $i - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - ./EC_Multiple -ORBport 20010 -l EC1 -r EC2 -s RUNTIME1 -o RUNTIME2 \ - -a 1 -b 2 -c 3 -p EC1.pid -m $i -u $UTL_COUNT \ - -i $MSG_INTERVAL > OVH.RMT1.${i}.log 2>&1 & - ./EC_Multiple -ORBport 20020 -l EC2 -r EC1 -s RUNTIME2 -o RUNTIME1 \ - -a 4 -b 3 -c 2 -p EC2.pid -m $i -u $UTL_COUNT \ - -i $MSG_INTERVAL > OVH.RMT2.${i}.log 2>&1 & - sleep 2 - wait `cat EC1.pid` - wait `cat EC2.pid` - kill `cat NameService.pid` - wait -done - diff --git a/TAO/orbsvcs/tests/EC_Multiple/run_schedule b/TAO/orbsvcs/tests/EC_Multiple/run_schedule deleted file mode 100755 index 4a0be8475c8..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/run_schedule +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -HP_MSG_COUNT=400 -# The number of messages to send. - -HP_CONSUMERS=25 -# The number of high priority consumers. - -HP_SUPPLIERS=10 -# The number of high priority suppliers - -LP_MSG_COUNT=10 -# The number of messages to send. - -LP_CONSUMERS=5 -# The number of high priority consumers. - -LP_SUPPLIERS=5 -# The number of high priority suppliers - -/bin/rm -f NameService.ior NameService.pid EC1.pid EC2.pid EC.pid - -../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & -sleep 2 -NameService=`cat NameService.ior` -export NameService - -./EC_Multiple -ORBport 20010 -l ECM1 -r ECM2 -p ECM1.pid \ - -h ${HP_SUPPLIERS},${HP_CONSUMERS},1,${HP_MSG_COUNT},1,2,1,3 \ - -w ${LP_SUPPLIERS},${LP_CONSUMERS},1,${LP_MSG_COUNT},4,5,4,5 \ - -d SCHED_ECM1.cpp > SCH1.log 2>&1 & -./EC_Multiple -ORBport 20020 -l ECM2 -r ECM1 -p ECM2.pid \ - -h ${HP_SUPPLIERS},${HP_CONSUMERS},1,${HP_MSG_COUNT},6,3,6,2 \ - -w ${LP_SUPPLIERS},${LP_CONSUMERS},1,${LP_MSG_COUNT},7,8,7,8 \ - -d SCHED_ECM2.cpp > SCH2.log 2>&1 & -sleep 2 -wait `cat ECM1.pid` -wait `cat ECM2.pid` -kill `cat NameService.pid` diff --git a/TAO/orbsvcs/tests/EC_Multiple/run_throughput b/TAO/orbsvcs/tests/EC_Multiple/run_throughput deleted file mode 100755 index bc28eefd93b..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/run_throughput +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -MSG_COUNT=500 -# The number of messages to send. - -HP_CONSUMERS="1 5 10 20" -# The number of high priority consumers. - -HP_SUPPLIERS="1 2 10" -# The number of high priority suppliers - -HP_INTERVALS="30000 25000 20000 19000 18000 17000 16000 15000 12000 10000" - -/bin/rm -f NameService.ior NameService.pid EC1.pid EC2.pid EC.pid - -for s in $HP_SUPPLIERS; do - for c in $HP_CONSUMERS; do - for i in $HP_INTERVALS; do - echo echo Supplier = $s Consumer = $c Interval = $i - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - - ./EC_Multiple -ORBport 20010 -l ECM1 -p ECM1.pid -s runtime \ - -h ${s},${c},0,${i},${MSG_COUNT},1,2,1,2 > THR.LCL.S${s}.C${c}.I${i}.log 2>&1 - kill `cat NameService.pid` - done - done -done - diff --git a/TAO/orbsvcs/tests/EC_Multiple/run_utilization b/TAO/orbsvcs/tests/EC_Multiple/run_utilization deleted file mode 100755 index d0713778a75..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/run_utilization +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -# -# $Id$ -# - -HP_WORKLOADS="0 60 65 70 72 74 76 78 80 81 82 83 84 85 86 87 88 89 90" -HP_MSGS=200 -HP_CONSUMERS=1 -HP_INTERVAL=25000 - -LP_WORKLOAD=500 -LP_MSGS=50 -LP_CONSUMERS=1 -LP_INTERVAL=100000 - -/bin/rm -f NameService.ior NameService.pid EC1.pid EC2.pid EC.pid - -# Generate the baseline data, i.e. shortcircuit the EC. - -for w in $HP_WORKLOADS; do - echo Local EC test $w - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - ./EC_Multiple -ORBport 20030 -l ECM1 -s runtime -p ECM1.pid \ - -w 1,${LP_CONSUMERS},${LP_WORKLOAD},${LP_INTERVAL},${LP_MSGS},3,4,3,4 \ - -h 1,${HP_CONSUMERS},${w},${HP_INTERVAL},${HP_MSGS},1,2,1,2 > UTL.LCL.${w}.log 2>&1 - - kill `cat NameService.pid` - - ../../Naming_Service/Naming_Service -ORBport 20000 \ - -o NameService.ior -p NameService.pid >/dev/null 2>&1 & - sleep 2 - NameService=`cat NameService.ior` - export NameService - - ./EC_Multiple -ORBport 20010 -l ECM1 -r ECM2 -s runtime -p ECM1.pid \ - -w 1,${LP_CONSUMERS},${LP_WORKLOAD},${LP_INTERVAL},${LP_MSGS},1,2,1,3 \ - -h 1,${HP_CONSUMERS},${w},${HP_INTERVAL},${HP_MSGS},4,5,4,6 > UTL.ECM1.${w}.log 2>&1 & - ./EC_Multiple -ORBport 20020 -l ECM2 -r ECM1 -s runtime -p ECM2.pid \ - -w 1,${LP_CONSUMERS},${LP_WORKLOAD},${LP_INTERVAL},${LP_MSGS},7,3,7,2 \ - -h 1,${HP_CONSUMERS},${w},${HP_INTERVAL},${HP_MSGS},8,6,8,5 > UTL.ECM2.${w}.log 2>&1 & - - sleep 2 - wait `cat ECM1.pid` - wait `cat ECM2.pid` - kill `cat NameService.pid` - -done - -exit 0 diff --git a/TAO/orbsvcs/tests/EC_Multiple/svc.conf b/TAO/orbsvcs/tests/EC_Multiple/svc.conf deleted file mode 100644 index 272f088b3dd..00000000000 --- a/TAO/orbsvcs/tests/EC_Multiple/svc.conf +++ /dev/null @@ -1,7 +0,0 @@ -# $Id$ -# -# The options are described in $TAO_ROOT/docs/Options.html -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global -ORBpoa global -ORBcoltable global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128 -ORBpoalock thread -ORBcoltbllock thread -ORBpoamgrlock thread" diff --git a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.cpp b/TAO/orbsvcs/tests/Event_Latency/Event_Latency.cpp deleted file mode 100644 index 3ec7f1171fd..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.cpp +++ /dev/null @@ -1,950 +0,0 @@ -// $Id$ - -#include -#if defined (quantify) -# include -#endif /* quantify */ - -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "ace/Profile_Timer.h" - -#include "orbsvcs/Event_Utilities.h" -#include "orbsvcs/Event_Service_Constants.h" -#include "orbsvcs/Scheduler_Factory.h" -#include "orbsvcs/Time_Utilities.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "Event_Latency.h" - -#include "tao/Timeprobe.h" - -#if defined (ACE_ENABLE_TIMEPROBES) - -static const char *Event_Latency_Timeprobe_Description[] = -{ - "push event to consumer", - "start with new event in Supplier", - "supplier starts pushing event", - "supplier ends pushing event" -}; - -enum -{ - EVENT_LATENCY_PUSH_EVENT_TO_CONSUMER = 20000, - EVENT_LATENCY_START_WITH_NEW_EVENT_IN_SUPPLIER, - EVENT_LATENCY_SUPPLIER_STARTS_PUSHING_EVENT, - EVENT_LATENCY_SUPPLIER_ENDS_PUSHING_EVENT -}; - -#endif /* ACE_ENABLE_TIMEPROBES */ - -// Setup Timeprobes -ACE_TIMEPROBE_EVENT_DESCRIPTIONS (Event_Latency_Timeprobe_Description, - EVENT_LATENCY_PUSH_EVENT_TO_CONSUMER); - -static const char usage [] = "[-? |\n" -" [-c [4]]\n" -" [-d directly connect all consumers/suppliers\n" -" [-j to collect jitter statistics]\n" -" [-m of messages to send [10]]\n" -" [-s , [1]]\n" -" [-t , msec [250]]]"; - -// Configuration parameters. -static u_int consumers = 1; -static u_int suppliers = 1; -static u_int total_messages = 10; -static int measure_jitter = 0; -static u_int timeout_interval = 250; // msec - -static int short_circuit_EC = 0; -static int shutting_down = 0; - -// This is global to allow the Supplier to short ciruit the EC -// and talk directly to consumers. For testing only :-) -static Latency_Consumer **consumer; - -// ************************************************************ - -Latency_Consumer::Latency_Consumer (const int measure_jitter) - : measure_jitter_ (measure_jitter), - min_latency_ (INT_MAX), - max_latency_ (INT_MIN), - total_latency_ (0), - total_pushes_ (0), - min_to_ec_ (INT_MAX), - max_to_ec_ (INT_MIN), - sum_to_ec_ (0), - min_in_ec_ (INT_MAX), - max_in_ec_ (INT_MIN), - sum_in_ec_ (0), - min_from_ec_ (INT_MAX), - max_from_ec_ (INT_MIN), - sum_from_ec_ (0) -{ -} - -int -Latency_Consumer::open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name) -{ - entry_point (my_name); - TAO_TRY - { - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - rt_info_ = - server->create (my_name, TAO_TRY_ENV); - server->set (rt_info_, - RtecScheduler::VERY_HIGH_CRITICALITY, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - 0, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - - // Create the event that we're registering for. - ACE_ConsumerQOS_Factory dependencies; - dependencies.start_disjunction_group (); - dependencies.insert_type (ACE_ES_EVENT_NOTIFICATION, rt_info_); - dependencies.insert_type (ACE_ES_EVENT_SHUTDOWN, rt_info_); - - this->channel_admin_ = - RtecEventChannelAdmin::EventChannel::_duplicate (ec); - - // = Connect as a consumer. - this->consumer_admin_ = - channel_admin_->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->suppliers_ = - consumer_admin_->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushConsumer_var objref = - this->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->suppliers_->connect_push_consumer (objref.in (), - dependencies.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (RtecEventChannelAdmin::EventChannel::SUBSCRIPTION_ERROR, se) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Latency_Consumer::open: " - "subscribe failed.\n"), -1); - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, - "Latency_Consumer::open: " - "unexpected exception.\n"), -1); - } - TAO_ENDTRY; - - return 0; -} - -void -Latency_Consumer::disconnect_push_consumer (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, "Consumer received disconnect from channel.\n")); -} - -void -Latency_Consumer::push (const RtecEventComm::EventSet &events, - CORBA::Environment &) -{ - // ACE_DEBUG ((LM_DEBUG, "Latency_Consumer:push - ")); - ACE_TIMEPROBE (EVENT_LATENCY_PUSH_EVENT_TO_CONSUMER); - - if (events.length () == 0) - { - // ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - // ACE_DEBUG ((LM_DEBUG, "%d event(s)\n", events.length ())); - -#if defined (quantify) - // If measuring jitter, just Quantify the supplier-consumer path. - if (measure_jitter) - { - quantify_stop_recording_data (); - } -#endif /* quantify */ - - for (CORBA::ULong i = 0; i < events.length (); ++i) - { - if (events[i].type_ == ACE_ES_EVENT_SHUTDOWN) - { - ACE_DEBUG ((LM_DEBUG, "Latency Consumer: received shutdown event\n")); - this->shutdown (); - } - else - { - if (measure_jitter_) - { - ACE_hrtime_t creation; - ORBSVCS_Time::TimeT_to_hrtime (creation, - events[i].creation_time_); - - ACE_hrtime_t ec_recv; - ORBSVCS_Time::TimeT_to_hrtime (ec_recv, - events[i].ec_recv_time_); - - ACE_hrtime_t ec_send; - ORBSVCS_Time::TimeT_to_hrtime (ec_send, - events[i].ec_send_time_); - - const ACE_hrtime_t now = ACE_OS::gethrtime (); - const ACE_hrtime_t elapsed = now - creation; - ACE_Time_Value latency ((long) (elapsed / ACE_ONE_SECOND_IN_NSECS), - (long) (ACE_U64_TO_U32 (elapsed) % ACE_ONE_SECOND_IN_NSECS) / 1000); - - const long to_ec_nsecs = - ACE_static_cast (long, ec_recv - creation); - ACE_Time_Value to_ec (to_ec_nsecs / ACE_ONE_SECOND_IN_NSECS, - (ACE_U64_TO_U32 (to_ec_nsecs) % ACE_ONE_SECOND_IN_NSECS) / 1000); - - const ACE_hrtime_t in_ec_nsecs = ec_send - ec_recv; - ACE_Time_Value in_ec ((long) (in_ec_nsecs / ACE_ONE_SECOND_IN_NSECS), - (long) (ACE_U64_TO_U32 (in_ec_nsecs) % ACE_ONE_SECOND_IN_NSECS) / 1000); - - const ACE_hrtime_t from_ec_nsecs = now - ec_send; - ACE_Time_Value from_ec ((long) (from_ec_nsecs / ACE_ONE_SECOND_IN_NSECS), - (long) (ACE_U64_TO_U32 (from_ec_nsecs) % ACE_ONE_SECOND_IN_NSECS) / 1000); - - if (! shutting_down) - { - ++total_pushes_; - if (min_latency_ > latency) min_latency_ = latency; - if (max_latency_ < latency) max_latency_ = latency; - total_latency_ += latency; - if (min_to_ec_ > to_ec) min_to_ec_ = to_ec; - if (max_to_ec_ < to_ec) max_to_ec_ = to_ec; - sum_to_ec_ += to_ec; - if (min_in_ec_ > in_ec) min_in_ec_ = in_ec; - if (max_in_ec_ < in_ec) max_in_ec_ = in_ec; - sum_in_ec_ += in_ec; - if (min_from_ec_ > from_ec) min_from_ec_ = from_ec; - if (max_from_ec_ < from_ec) max_from_ec_ = from_ec; - sum_from_ec_ += from_ec; - } - } - } - - } -} - -void -Latency_Consumer::shutdown (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) %s shutting down.\n", entry_point ())); - - TAO_TRY - { - // Disconnect from the push supplier. - this->suppliers_->disconnect_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "@@ we should shutdown here!!!\n")); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, - "(%t) %s Latency_Consumer::shutdown: unexpected exception.\n", - entry_point ())); - } - TAO_ENDTRY; -} - - -void -Latency_Consumer::print_stats () /* const */ -{ - if (measure_jitter_) - { - double lat_min = - (min_latency_.sec () * 1000000.0 + min_latency_.usec ()) / 1000.0; - double lat_max = - (max_latency_.sec () * 1000000.0 + max_latency_.usec ()) / 1000.0; - double lat_avg = - (total_latency_.sec () * 1000000.0 +total_latency_.usec ()) / total_pushes_ / 1000.0; - ACE_DEBUG ((LM_TRACE, - "%s: Latency in msec (min/max/avg): " - "%5.3f/%5.3f/%5.3f\n", - entry_point (), lat_min, lat_max, lat_avg)); - - double to_ec_min = - (min_to_ec_.sec () * 1000000.0 + min_to_ec_.usec ()) / 1000.0; - double to_ec_max = - (max_to_ec_.sec () * 1000000.0 + max_to_ec_.usec ()) / 1000.0; - double to_ec_avg = - (sum_to_ec_.sec () * 1000000.0 + sum_to_ec_.usec ()) / total_pushes_ / 1000.0; - ACE_DEBUG ((LM_TRACE, - "%s: From test to EC (min/max/avg): " - "%5.3f/%5.3f/%5.3f\n", - entry_point (), to_ec_min, to_ec_max, to_ec_avg)); - - double in_ec_min = - (min_in_ec_.sec () * 1000000.0 + min_in_ec_.usec ()) / 1000.0; - double in_ec_max = - (max_in_ec_.sec () * 1000000.0 + max_in_ec_.usec ()) / 1000.0; - double in_ec_avg = - (sum_in_ec_.sec () * 1000000.0 + sum_in_ec_.usec ()) / total_pushes_ / 1000.0; - ACE_DEBUG ((LM_TRACE, - "%s: In the EC (min/max/avg): " - "%5.3f/%5.3f/%5.3f\n", - entry_point (), in_ec_min, in_ec_max, in_ec_avg)); - - double from_ec_min = - (min_from_ec_.sec () * 1000000.0 + min_from_ec_.usec ()) / 1000.0; - double from_ec_max = - (max_from_ec_.sec () * 1000000.0 + max_from_ec_.usec ()) / 1000.0; - double from_ec_avg = - (sum_from_ec_.sec () * 1000000.0 + sum_from_ec_.usec ()) / total_pushes_ / 1000.0; - ACE_DEBUG ((LM_TRACE, - "%s: From EC to test (min/max/avg): " - "%5.3f/%5.3f/%5.3f\n", - entry_point (), from_ec_min, from_ec_max, from_ec_avg)); - - } -} - - -// ************************************************************ - -Latency_Supplier::Supplier::Supplier (Latency_Supplier* impl) - : impl_ (impl) -{ -} - -void Latency_Supplier::Supplier::disconnect_push_supplier - (CORBA::Environment &_env) -{ - this->impl_->disconnect_push_supplier (_env); -} - -Latency_Supplier::Consumer::Consumer (Latency_Supplier* impl) - : impl_ (impl) -{ -} - -void Latency_Supplier::Consumer::disconnect_push_consumer - (CORBA::Environment &_env) -{ - this->impl_->disconnect_push_consumer (_env); -} - -void Latency_Supplier::Consumer::push - (const RtecEventComm::EventSet &events, - CORBA::Environment &_env) -{ - this->impl_->push (events, _env); -} - -// ************************************************************ - -Latency_Supplier::Latency_Supplier (const u_int total_messages, - CORBA::Long supplier_id, - const int timestamp) - : total_messages_ (total_messages), - supplier_id_ (supplier_id), - timestamp_ (timestamp), - total_sent_ (0), - master_ (0), - supplier_ (this), - consumer_ (this) -{ -} - -int -Latency_Supplier::open_supplier (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *name, int master) -{ - this->entry_point (name); - master_ = master; - TAO_TRY - { - this->channel_admin_ = - RtecEventChannelAdmin::EventChannel::_duplicate (ec); - - RtecScheduler::Scheduler_ptr server = - ACE_Scheduler_Factory::server (); - - this->rt_info_ = - server->create (name, TAO_TRY_ENV); - - server->set (rt_info_, - RtecScheduler::VERY_HIGH_CRITICALITY, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - ORBSVCS_Time::zero, - timeout_interval * 10000, - RtecScheduler::VERY_LOW_IMPORTANCE, - ORBSVCS_Time::zero, - 1, - RtecScheduler::OPERATION, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_SupplierQOS_Factory publications; - publications.insert (supplier_id_, - ACE_ES_EVENT_NOTIFICATION, - rt_info_, 1); - publications.insert (supplier_id_, - ACE_ES_EVENT_SHUTDOWN, - rt_info_, 1); - - // = Connect as a supplier. - this->supplier_admin_ = - channel_admin_->for_suppliers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->consumers_ = - supplier_admin_->obtain_push_consumer (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushSupplier_var objref = - this->supplier_._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - consumers_->connect_push_supplier (objref.in (), - publications.get_SupplierQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Latency_Supplier::open"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -void -Latency_Supplier::disconnect_push_consumer (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, "Supplier-consumer received disconnect from channel.\n")); -} - -void -Latency_Supplier::disconnect_push_supplier (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, "Supplier received disconnect from channel.\n")); -} - -int -Latency_Supplier::start_generating_events (void) -{ - const ACE_hrtime_t now = ACE_OS::gethrtime (); - test_start_time_.set (ACE_static_cast (long, now / 1000000000), - ACE_static_cast (long, (ACE_U64_TO_U32 (now) % 1000000000) / 1000)); - - TAO_TRY - { - ACE_Time_Value tv_timeout (0, timeout_interval * 1000); - TimeBase::TimeT timeout; - ORBSVCS_Time::Time_Value_to_TimeT (timeout, tv_timeout); - - ACE_DEBUG ((LM_DEBUG, - "start generating events: " - "timeout.low = %d " - "timeout.high = %d " - "interval = %d " - "tv.msec () = %d\n", - timeout.low, - timeout.high, - timeout_interval, - tv_timeout.msec ())); - - ACE_ConsumerQOS_Factory dependencies; - dependencies.start_disjunction_group (); - dependencies.insert_time (ACE_ES_EVENT_INTERVAL_TIMEOUT, - timeout, - rt_info_); - if (!master_) - dependencies.insert_type (ACE_ES_EVENT_SHUTDOWN, rt_info_); - - // = Connect as a consumer. - consumer_admin_ = - channel_admin_->for_consumers (TAO_TRY_ENV); - TAO_CHECK_ENV; - suppliers_ = - consumer_admin_->obtain_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventComm::PushConsumer_var objref = - this->consumer_._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->suppliers_->connect_push_consumer (objref.in (), - dependencies.get_ConsumerQOS (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, - "Latency_Supplier::generate_events:" - " unexpected exception.\n"), -1); - } - TAO_ENDTRY; - - return 0; -} - -void -Latency_Supplier::push (const RtecEventComm::EventSet &events, - CORBA::Environment & _env) -{ - // ACE_DEBUG ((LM_DEBUG, "Latency_Supplier::push - ")); - ACE_UNUSED_ARG (_env); - - if (events.length () == 0) - { - // ACE_DEBUG ((LM_DEBUG, "no events\n")); - return; - } - - // ACE_DEBUG ((LM_DEBUG, "%d event(s)\n", events.length ())); - - for (CORBA::ULong i = 0; i < events.length (); ++i) - { - if (!master_ && events[i].type_ == ACE_ES_EVENT_SHUTDOWN) - { - ACE_DEBUG ((LM_DEBUG, "Latency Supplier: received shutdown event\n")); - this->shutdown (); - } - else if (events[i].type_ == ACE_ES_EVENT_INTERVAL_TIMEOUT) - { - // Create the event to send. - RtecEventComm::Event event; - event.source_ = supplier_id_; - event.type_ = ACE_ES_EVENT_NOTIFICATION; - ++total_sent_; - - if (timestamp_) - { - // @@ David, event.time_ is now a long. I'm not sure if - // this calculation is correct now. For the moment beign - // I use a global variable instead. - // const ACE_hrtime_t now = ACE_OS::gethrtime (); - // event.time_.set (now / ACE_ONE_SECOND_IN_NSECS, - // (now % ACE_ONE_SECOND_IN_NSECS) / 1000); - - ACE_hrtime_t t = ACE_OS::gethrtime (); - ORBSVCS_Time::hrtime_to_TimeT (event.creation_time_, t); - } - - // @@ ACE_TIMEPROBE_RESET; - // @@ ACE_TIMEPROBE (EVENT_LATENCY_START_WITH_NEW_EVENT_IN_SUPPLIER); - - TAO_TRY - { - if (short_circuit_EC) - { - for (u_int cons = 0; cons < consumers; ++cons) - { - // This constructor is fast. - const RtecEventComm::EventSet es (1, 1, &event); - consumer [cons]->push (es, TAO_TRY_ENV); - } - } - else - { -#if defined (quantify) - // If measuring jitter, just Quantify the supplier-consumer path. - if (measure_jitter) - { - quantify_start_recording_data (); - } -#endif /* quantify */ - - ACE_TIMEPROBE (EVENT_LATENCY_SUPPLIER_STARTS_PUSHING_EVENT); - - RtecEventComm::EventSet events (1); - events.length (1); - events[0] = event; - consumers_->push (events, TAO_TRY_ENV); - - ACE_TIMEPROBE (EVENT_LATENCY_SUPPLIER_ENDS_PUSHING_EVENT); - } - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t) %s Latency_Supplier::push:" - " unexpected exception.\n", - entry_point ())); - } - TAO_ENDTRY; - - // Check if we're done. - if (master_ && (total_sent_ >= total_messages_)) - this->shutdown (); - } - else - { - ACE_ERROR ((LM_ERROR, "(%t) %s received unexpected events: ", - entry_point ())); - // ::dump_sequence (events); - return; - } - } -} - -void -Latency_Supplier::shutdown (void) -{ - shutting_down = 1; - - #if defined (quantify) - // Need to stop recording here even if testing for jitter, because - // recording is still probably enabled. - quantify_stop_recording_data (); - if (! measure_jitter) - { - ACE_DEBUG ((LM_DEBUG, "(%t) stopped Quantify recording\n")); - } - #endif /* quantify */ - - const ACE_hrtime_t now = ACE_OS::gethrtime (); - test_stop_time_.set (ACE_static_cast (long, now / ACE_ONE_SECOND_IN_NSECS), - ACE_static_cast (long, (ACE_U64_TO_U32 (now) % ACE_ONE_SECOND_IN_NSECS) / 1000)); - - static int total_iterations = 1; - if (--total_iterations > 0) - { - total_sent_ = 0; - return; - } - - TAO_TRY - { - if (master_) - { - // Create the shutdown message. - RtecEventComm::Event event; - event.source_ = supplier_id_; - event.type_ = ACE_ES_EVENT_SHUTDOWN; - - // Push the shutdown event. - RtecEventComm::EventSet events (1); - events.length (1); - events[0] = event; - consumers_->push (events, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - - // Disconnect from the channel. - consumers_->disconnect_push_consumer (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Disconnect from the push supplier. - suppliers_->disconnect_push_supplier (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (master_) - { - // @@ TODO: Do this portably (keeping the ORB_ptr returned from - // ORB_init) - channel_admin_->destroy (TAO_TRY_ENV); - TAO_CHECK_ENV; - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - } - } - TAO_CATCHANY - { - ACE_ERROR ((LM_ERROR, "(%t) %s Latency_Supplier::shutdown:" - " unexpected exception.\n", - entry_point ())); - TAO_TRY_ENV.print_exception ("Latency_Supplier::shutdown"); - } - TAO_ENDTRY; -} - - -void -Latency_Supplier::print_stats () /* const */ -{ - ACE_Time_Value test_elapsed_time (test_stop_time_ - test_start_time_); - const u_int elapsed = test_elapsed_time.sec () * 1000000 + - test_elapsed_time.usec (); // usec - - ACE_DEBUG ((LM_TRACE, - "%s: delivered %u events to %u consumer(s) in %u msec;\n" - " per-event average was %8.3f msec.\n", - entry_point (), - total_sent_, - consumers / suppliers + consumers % suppliers, - elapsed / 1000, - (double) elapsed / total_sent_ / 1000.0)); -} - - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -// function get_options -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -static -unsigned int -get_options (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "Oc:djm:s:t:?"); - int opt; - int temp; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) { - case 'c': - if ((temp = ACE_OS::atoi (get_opt.optarg)) > 0) - { - consumers = (u_int) temp; - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "%s: number of consumers must be > 0", - argv[0]), 1); - } - break; - case 'd': - short_circuit_EC = 1; - break; - case 'j': - measure_jitter = 1; - break; - case 'm': - if ((temp = ACE_OS::atoi (get_opt.optarg)) > 0) - { - total_messages = (u_int) temp; - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "%s: count must be > 0", - argv[0]), 1); - } - break; - case 's': - if ((temp = ACE_OS::atoi (get_opt.optarg)) > 0) - { - suppliers = (u_int) temp; - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "%s: number of suppliers must be > 0", - argv[0]), 1); - } - break; - case 't': - if (ACE_OS::atoi (get_opt.optarg) >= 0) - { - timeout_interval = ACE_OS::atoi (get_opt.optarg); - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "%s: timeout must be >= 0", - argv[0]), 1); - } - break; - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - argv[0], usage)); - ACE_OS::exit (0); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - argv[0], char(opt), - argv[0], usage), 1); - } - } - - if (argc != get_opt.optind) - { - ACE_ERROR_RETURN ((LM_ERROR, - "%s: too many arguments\n" - "Usage: %s %s\n", - argv[0], argv[0], usage), 1); - } - - return 0; -} - -// -// function main -// -int -main (int argc, char *argv []) -{ - if (ACE_OS::sched_params ( - ACE_Sched_Params ( - ACE_SCHED_FIFO, - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO), - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - { - ACE_DEBUG ((LM_MAX, "Latency: user is not superuser, " - "so remain in time-sharing class\n")); - } - else - { - ACE_DEBUG ((LM_ERROR, "%p\n", "Latency")); - } - } - - u_int i; - - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to get the Naming Service.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::use_config (naming_context.in ()); - - if (get_options (argc, argv)) - ACE_OS::exit (-1); - - // Allocate the timeprobe instance now, so we don't measure - // the cost of doing it later. - ACE_TIMEPROBE_RESET; - - CosNaming::Name channel_name (1); - channel_name.length (1); - channel_name[0].id = CORBA::string_dup ("EventService"); - - CORBA::Object_var ec_obj = - naming_context->resolve (channel_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - RtecEventChannelAdmin::EventChannel_var ec = - RtecEventChannelAdmin::EventChannel::_narrow (ec_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create supplier(s). - Latency_Supplier **supplier; - ACE_NEW_RETURN (supplier, Latency_Supplier *[suppliers], -1); - for (i = 0; i < suppliers; ++i) - { - int supplier_timestamps = (i==0); - ACE_NEW_RETURN (supplier [i], - Latency_Supplier (total_messages, - measure_jitter, - supplier_timestamps), - -1); - char supplier_name [BUFSIZ]; - sprintf (supplier_name, "supplier-%d", i+1); - // Only the first supplier timestamps its messages. - int master = (i==0); - if (supplier [i]->open_supplier (ec.in (), - supplier_name, - master) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "Supplier open failed.\n"), -1); - } - - // Create consumers. - ACE_NEW_RETURN (consumer, Latency_Consumer *[consumers], -1); - for (i = 0; i < consumers; ++i) - { - ACE_NEW_RETURN (consumer [i], Latency_Consumer (measure_jitter), -1); - char buf [BUFSIZ]; - sprintf (buf, "consumer-%d", i+1); - - if (consumer [i]->open_consumer (ec.in (), buf) == -1) - ACE_ERROR_RETURN ((LM_ERROR, "Someone was feeling introverted.\n"), - -1); - } - - #if defined (quantify) - if (! measure_jitter) - { - ACE_DEBUG ((LM_DEBUG, "(%t) start Quantify recording\n")); - quantify_start_recording_data (); - } - #endif /* quantify */ - - // Tell supplier(s) to generate events. - for (i = 0; i < suppliers; ++i) - { - if (supplier [i]->start_generating_events () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "generate_events failed.\n"), -1); - } - - orb->run (); - - for (i = 0; i < suppliers; ++i) - { - supplier [i]->print_stats (); - delete supplier[i]; - TAO_CHECK_ENV; - } - delete [] supplier; - - for (i = 0; i < consumers; ++i) - { - consumer [i]->print_stats (); - delete consumer [i]; - TAO_CHECK_ENV; - } - delete [] consumer; - - ACE_TIMEPROBE_PRINT; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - - return 0; -} diff --git a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsp b/TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsp deleted file mode 100644 index 4c6e04cfa4f..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsp +++ /dev/null @@ -1,103 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Event_Latency" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Event_Latency - 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 "Event_Latency.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 "Event_Latency.mak" CFG="Event_Latency - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Event_Latency - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Event_Latency - 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)" == "Event_Latency - 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 /W3 /GX /O2 /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /machine:I386 - -!ELSEIF "$(CFG)" == "Event_Latency - 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 "..\.." /I "..\..\.." /I "..\..\..\.." /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "Event_Latency - Win32 Release" -# Name "Event_Latency - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Event_Latency.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Event_Latency.h -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsw b/TAO/orbsvcs/tests/Event_Latency/Event_Latency.dsw deleted file mode 100644 index 97233be6dbc..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.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: "Event_Latency"=.\Event_Latency.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.h b/TAO/orbsvcs/tests/Event_Latency/Event_Latency.h deleted file mode 100644 index 7a36e8f216d..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/Event_Latency.h +++ /dev/null @@ -1,248 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ACE Event Service Benchmarks -// -// = FILENAME -// Latency.h -// -// = AUTHOR -// David Levine (levine@cs.wustl.edu) and -// Tim Harrison (harrison@cs.wustl.edu) -// -// = DESCRIPTION -// -// ============================================================================ - -#if !defined (EVENT_LATENCY_H) -#define EVENT_LATENCY_H - -#include "ace/SString.h" -#include "orbsvcs/RtecEventChannelAdminC.h" -#include "orbsvcs/RtecEventCommS.h" - -class Latency_Consumer : public POA_RtecEventComm::PushConsumer -// = TITLE -// Latency Consumer -// -// = DESCRIPTION -// Simple example of a consumer that registers for supplier -// notifications. -{ -public: - Latency_Consumer (const int measure_jitter = 0); - // Construction. The default of not measuring jitter provides - // a "null" push routine, for measuring aggregate timing. - - int open_consumer (RtecEventChannelAdmin::EventChannel_ptr ec, - const char *my_name); - // Uses the name server to obtain a reference to the - // and registers with channel to receive notifications from the - // supplier. Also registers to receive shutdown messages from the - // supplier. Stores for printing out messages. Returns 0 - // on success, -1 on failure. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - void entry_point (const char*); - const char *entry_point () const; - - void print_stats () /* const */; - // Print timing statistics. - -// (not protected to allow short-circuiting) protected: - virtual void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // If the [0] is a notification, prints out the data from - // the supplier. If its a shutdown message, the consumer - // disconnects from the channel. - -protected: - void shutdown (void); - // Disconnect from the Event Service. - - // = Event channel adminstration references. - RtecEventChannelAdmin::EventChannel_var channel_admin_; - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_; - RtecEventChannelAdmin::ProxyPushSupplier_var suppliers_; - -private: - RtecScheduler::handle_t rt_info_; - - int measure_jitter_; - - ACE_Time_Value min_latency_; - ACE_Time_Value max_latency_; - ACE_Time_Value total_latency_; - u_long total_pushes_; - // Registers and counters for keeping track of latency statistics. - - ACE_Time_Value min_to_ec_; - ACE_Time_Value max_to_ec_; - ACE_Time_Value sum_to_ec_; - // Statitics on time to get to the EC. - - ACE_Time_Value min_in_ec_; - ACE_Time_Value max_in_ec_; - ACE_Time_Value sum_in_ec_; - // Statitics on time spent in the EC. - - ACE_Time_Value min_from_ec_; - ACE_Time_Value max_from_ec_; - ACE_Time_Value sum_from_ec_; - // Statitics on time spent since the EC put the event on the wire - // and it gets here. - - ACE_CString entry_point_; -}; - -// ************************************************************ - -class Latency_Supplier -// = TITLE -// Latency Supplier -// -// = DESCRIPTION -// Generates event nofications and a shutdown message. -{ -public: - - // - // This class provides IS-A Consumer and Supplier of events. But - // inheritance from two skeleton classes is non-complaint (or at - // least won't work with TAO). We use smaller implementation classes - // that delegate on Latency_Supplier to do the job. - // - class Supplier : public POA_RtecEventComm::PushSupplier { - public: - virtual void disconnect_push_supplier (CORBA::Environment &); - // The channel is disconnecting. - - private: - Supplier (Latency_Supplier* impl); - friend class Latency_Supplier; - - private: - Latency_Supplier* impl_; - }; - - class Consumer : public POA_RtecEventComm::PushConsumer { - public: - virtual void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // The channel pushed some events to us. - - virtual void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - private: - Consumer (Latency_Supplier* impl); - friend class Latency_Supplier; - - private: - Latency_Supplier* impl_; - }; - - Latency_Supplier (const u_int total_messages, - CORBA::Long supplier_id, - const int timestamp = 0); - // Construction. Requires the total number of messages to be - // sent. If the timestamp flag is enabled, then events are - // timestamped, e.g., for use in measuring jitter. - - int open_supplier (RtecEventChannelAdmin::EventChannel_ptr event_channel, - const char *name, int master); - // Registers with the name server under the given . Also - // connects to the Event Channel as a supplier of notifications and - // shutdown messages. If != 0, then the supplier will - // destroy the channel upon shutting down. Returns 0 on success, -1 - // on failure. - - void disconnect_push_supplier (CORBA::Environment &); - // The channel is disconnecting. - - void disconnect_push_consumer (CORBA::Environment &); - // The channel is disconnecting. - - void push (const RtecEventComm::EventSet &events, - CORBA::Environment &); - // Takes a timestamp and then pushes event_ to all consumers, either - // directly, or via a channel. - - int start_generating_events (void); - // Called when the supplier should start generating events. - // Registers with the Event Channel to receive timeouts every .25 - // seconds. Will generate some number of events and then send a - // shutdown message. Returns 0 on success, -1 on failure. - - void entry_point (const char *); - const char *entry_point () const; - - void print_stats () /* const */; - // Print timing statistics. - -protected: - - void shutdown (void); - // Disconnect from the Event Service. - - // = Event Channel adminstration references. - RtecEventChannelAdmin::EventChannel_var channel_admin_; - RtecEventChannelAdmin::ConsumerAdmin_var consumer_admin_; - RtecEventChannelAdmin::ProxyPushConsumer_var consumers_; - RtecEventChannelAdmin::SupplierAdmin_var supplier_admin_; - RtecEventChannelAdmin::ProxyPushSupplier_var suppliers_; - -private: - RtecScheduler::handle_t rt_info_; - - u_int total_messages_; - // How many events to push before ending the test. - - CORBA::Long supplier_id_; - // Our supplier ID. - - int timestamp_; - // Flag indicating whether or not to timestamp outgoing events. - - u_int total_sent_; - // How many events we've pushed. - - ACE_Time_Value test_start_time_; - ACE_Time_Value test_stop_time_; - // Start/stop times, marking the time period when events are - // sent to consumers. - - int master_; - - ACE_CString entry_point_; - - Supplier supplier_; - Consumer consumer_; -}; - -void Latency_Consumer::entry_point(const char* s) -{ - entry_point_ = s; -} - -const char* Latency_Consumer::entry_point (void) const -{ - return entry_point_.fast_rep (); -} - -void Latency_Supplier::entry_point(const char* s) -{ - entry_point_ = s; -} - -const char* Latency_Supplier::entry_point (void) const -{ - return entry_point_.fast_rep (); -} - -#endif /* EVENT_LATENCY_H */ diff --git a/TAO/orbsvcs/tests/Event_Latency/Makefile b/TAO/orbsvcs/tests/Event_Latency/Makefile deleted file mode 100644 index 6b121b0a2ed..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/Makefile +++ /dev/null @@ -1,312 +0,0 @@ -# $Id$ - -BIN = Event_Latency - -BUILD = $(BIN) - -EVENT_LATENCY_SRCS= \ - Event_Latency.cpp - -LSRC= \ - $(EVENT_LATENCY_SRCS) \ - -EVENT_LATENCY_OBJS = $(EVENT_LATENCY_SRCS:.cpp=.o) - -LDLIBS= -lorbsvcs -lTAO - -#---------------------------------------------------------------------------- -# 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 - -ifdef quantify - CCFLAGS += -Dquantify - CPPFLAGS += -I/pkg/purify/quantify-2.1-solaris2 -endif # quantify - -#### Local rules and variables... - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -# Leave the scheduler output out if this is a config run. -ifeq ($(runtime),1) -EVENT_LATENCY_CONFIG_OBJS=Event_Latency_Scheduler_Runtime.o -endif # runtime - -Event_Latency: $(addprefix $(VDIR),$(EVENT_LATENCY_OBJS) $(EVENT_LATENCY_CONFIG_OBJS)) - $(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. - -.obj/Event_Latency.o .obj/Event_Latency.so .shobj/Event_Latency.o .shobj/Event_Latency.so: Event_Latency.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/Sched_Params.h \ - $(ACE_ROOT)/ace/Sched_Params.i \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Event_Utilities.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - $(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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventChannelAdminC.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_Utilities.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i \ - Event_Latency.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecEventCommS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS_T.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseS.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)/tao/Timeprobe.h \ - $(ACE_ROOT)/ace/Timeprobe.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/Event_Latency/svc.conf b/TAO/orbsvcs/tests/Event_Latency/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/Event_Latency/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/Logger/Logger.dsw b/TAO/orbsvcs/tests/Logger/Logger.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/orbsvcs/tests/Logger/Logger.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/Logger/Makefile b/TAO/orbsvcs/tests/Logger/Makefile deleted file mode 100644 index 595b2d196bf..00000000000 --- a/TAO/orbsvcs/tests/Logger/Makefile +++ /dev/null @@ -1,57 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the Logger Service of the TAO ORB -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO - -SRC = svr.cpp clnt.cpp - -logger_SVR_OBJS = svr.o -logger_CLT_OBJS = clnt.o - -BIN = svr clnt -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# 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 -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 - -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -svr: $(addprefix $(VDIR),$(logger_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clnt: $(addprefix $(VDIR),$(logger_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf loggerC.* loggerS.* - -# 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/TAO/orbsvcs/tests/Logger/client.dsp b/TAO/orbsvcs/tests/Logger/client.dsp deleted file mode 100644 index b09e5bbd7ae..00000000000 --- a/TAO/orbsvcs/tests/Logger/client.dsp +++ /dev/null @@ -1,89 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\.." /I "..\..\..\.." /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ELSEIF "$(CFG)" == "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 "..\..\..\.." /I "..\..\.." /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\clnt.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Logger/clnt.cpp b/TAO/orbsvcs/tests/Logger/clnt.cpp deleted file mode 100644 index 76bffe1ae75..00000000000 --- a/TAO/orbsvcs/tests/Logger/clnt.cpp +++ /dev/null @@ -1,249 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/bin/Logger -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This program tests an implementation of a logger service. It uses the -// Logger_Factory server to create a number of logger objects. It then -// uses their object references to test functions supported by the -// logger server. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/INET_Addr.h" -#include "ace/SOCK_Dgram_Mcast.h" -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/LoggerC.h" -#include "clnt.h" - -// constructor - -Logger_Client::Logger_Client (void) - : test_nesting_ (0) -{ -} - -// Parses the command line arguments and returns an error status. - -int -Logger_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'n': - this->test_nesting_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n]" - "\n" - " -d: increase debug level\n" - " -n: test nesting in Naming Service\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Execute client example code. - -int -Logger_Client::run (void) -{ - TAO_TRY - { - CORBA::String_var msg1 = - CORBA::string_copy ("Logging at logger 1"); - this->logger_1_->log (msg1.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var msg2 = - CORBA::string_copy ("Logging at logger 2"); - this->logger_2_->log (msg2.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("run"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -Logger_Client::~Logger_Client (void) -{ -} - -int -Logger_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Initialize ORB. - this->orb_ = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Obtained naming_context\n")); - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - CosNaming::Name factory_name(1); - factory_name.length (1); - factory_name[0].id = CORBA::string_dup ("logger_factory"); - - CORBA::Object_var factory_ref = - naming_context->resolve (factory_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - /// The following resolve() must fail with an exception. - - CosNaming::Name factory_name2(1); - factory_name2.length (1); - factory_name2[0].id = CORBA::string_dup ("logger_factory2"); - - CORBA::Object_var factory_ref2 = - naming_context->resolve (factory_name2, TAO_TRY_ENV); - - if (TAO_TRY_ENV.exception ()) - { - CosNaming::NamingContext::NotFound_ptr ex; - ex = CosNaming::NamingContext::NotFound::_narrow (TAO_TRY_ENV.exception ()); - if (ex != 0) - TAO_TRY_ENV.print_exception ("Negative test case for name not found, succeeded\n"); - else - TAO_TRY_ENV.print_exception ("Negative test case for name not found, FAILED!\n"); - } - - if (CORBA::is_nil (factory_ref.in ())) - ACE_ERROR_RETURN ((LM_ERROR, "resolved to nil object"), -1); - - ACE_DEBUG ((LM_DEBUG, "Logger_Factory resolved\n")); - - Logger_Factory_var factory = - Logger_Factory::_narrow (factory_ref.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (factory.in ())) - ACE_ERROR_RETURN ((LM_ERROR, "narrow returned nil"), -1); - - ACE_DEBUG ((LM_DEBUG, "Logger_Factory narrowed\n")); - - CORBA::String_var str = - this->orb_->object_to_string (factory.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "The factory IOR is <%s>\n", str.in ())); - - // Now retrieve the Logger obj ref corresponding to key1 and key2 - this->logger_1_ = factory->make_logger ("key1", TAO_TRY_ENV); - TAO_CHECK_ENV; - this->logger_2_ = factory->make_logger ("key2", TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Created two loggers")); - - if (CORBA::is_nil (this->logger_1_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, "nil logger1"), -1); - - if (CORBA::is_nil (this->logger_2_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, "nil logger2"), -1); - - ACE_DEBUG ((LM_DEBUG, "Created two loggers\n")); - - if (this->test_nesting_) - { - CosNaming::Name nested(1); - nested.length (1); - nested[0].id = CORBA::string_dup ("my_naming_context_1"); - - CosNaming::NamingContext_var nc1 = - naming_context->bind_new_context (nested, TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (nc1.in ())) - ACE_ERROR_RETURN ((LM_ERROR, "nil nested context"), -1); - - ACE_DEBUG ((LM_DEBUG, "Nested naming context created\n")); - - CosNaming::Name logger1_name (1); - logger1_name.length (1); - logger1_name[0].id = CORBA::string_dup ("logger_1_"); - nc1->bind (logger1_name, this->logger_1_.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Bind in nested context succeded\n")); - - nc1->unbind (logger1_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Unbind in nested context succeded\n")); - - // destroy the naming context created above. - nc1->destroy (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "destroy of nested context succeded\n")); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Logger_Client logger_client; - - if (logger_client.init (argc, argv) != 0) - return 1; - - return logger_client.run (); -} diff --git a/TAO/orbsvcs/tests/Logger/clnt.h b/TAO/orbsvcs/tests/Logger/clnt.h deleted file mode 100644 index f7acdf7ef5b..00000000000 --- a/TAO/orbsvcs/tests/Logger/clnt.h +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/bin/Logger -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This program tests an implementation of a logger service. It uses the -// Logger_Factory server to create a number of logger objects. It then -// uses their object references to test functions supported by the -// logger server. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/LoggerC.h" - -class Logger_Client - // = TITLE - // Defines a class that encapsulates behaviour of the Logger client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Logger CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ -public: - // = Constructor and destructor. - Logger_Client (void); - ~Logger_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int parse_args (void); - // Parses the arguments passed on the command line. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - int test_nesting_; - // Test nested naming context or not. - - CORBA::ORB_var orb_; - // Keep a pointer to the orb, to avoid accidental deletes. - - Logger_var logger_1_; - // Logger obj ref - - Logger_var logger_2_; - // Logger obj ref -}; diff --git a/TAO/orbsvcs/tests/Logger/server.dsp b/TAO/orbsvcs/tests/Logger/server.dsp deleted file mode 100644 index 3f30e3139a7..00000000000 --- a/TAO/orbsvcs/tests/Logger/server.dsp +++ /dev/null @@ -1,89 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\.." /I "..\..\..\.." /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!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 "..\..\..\.." /I "..\..\.." /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\svr.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Logger/svc.conf b/TAO/orbsvcs/tests/Logger/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/Logger/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/Logger/svr.cpp b/TAO/orbsvcs/tests/Logger/svr.cpp deleted file mode 100644 index 492c2c5815d..00000000000 --- a/TAO/orbsvcs/tests/Logger/svr.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/Logger -// -// = FILENAME -// svr.cpp -// -// = DESCRIPTION -// This program is an implementation of a simple logger service. -// Whatever is sent to it through its interface is displayed on stdout. -// It uses the Logger_Factory server to create logger objects. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/Log/Logger_i.h" - -int -main (int argc, char ** argv) -{ - TAO_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Initialize the Object Adapter - CORBA::Object_var poa_object = - orb->resolve_initial_references ("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - 1); - - ACE_DEBUG ((LM_DEBUG, "Naming Service resolved.\n")); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "CosNaming::NamingContext::_narrow() ok.\n")); - - // create a factory implementation - Logger_Factory_i factory_impl; - - Logger_Factory_var factory = - factory_impl._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb->object_to_string (factory.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "The factory IOR is <%s>\n", str.in ())); - - // Register the servant with the Naming Context.... - CosNaming::Name factory_name (1); - factory_name.length (1); - factory_name[0].id = CORBA::string_dup ("logger_factory"); - naming_context->bind (factory_name, factory.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - -// naming_context->bind (factory_name, factory.in (), TAO_TRY_ENV); -// if (TAO_TRY_ENV.exception () != 0) -// { TAO_TRY_ENV.print_exception ("bind: name already bound\n"); -// return -1; -// } - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "running logging service\n")); - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), 1); - - - // unbind the logger factory name - naming_context->unbind (factory_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("logger_service"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/orbsvcs/tests/Makefile b/TAO/orbsvcs/tests/Makefile deleted file mode 100644 index 2a75740379e..00000000000 --- a/TAO/orbsvcs/tests/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = Simple_Naming \ - Logger \ - Event_Latency \ - EC_Multiple \ - Concurrency - -ifdef av -## Add the implementation files -DIRS += AVStreams\ - CosPropertyService -endif - -#---------------------------------------------------------------------------- -# 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/TAO/orbsvcs/tests/Naming/Makefile b/TAO/orbsvcs/tests/Naming/Makefile deleted file mode 100755 index 1392aebabdf..00000000000 --- a/TAO/orbsvcs/tests/Naming/Makefile +++ /dev/null @@ -1,51 +0,0 @@ -# $Id$ -# -# Skeletal Makefile showing necessary compiler and loader flags needed -# to compile an ACE/TAO application. - -CXX = CC -g -IDL = $(TAO_ROOT)/TAO_IDL/tao_idl - -CPPFLAGS = -c -I$(ACE_ROOT) -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I. -IDLFLAGS = - -# All ACE/TAO related libraries have links in the $ACE_ROOT/ace -# directory. Alternately, you may define your LD_LIBRARY_PATH -# environment variable to search this directory. -LDFLAGS = -L$(ACE_ROOT)/ace - -# This is the *minimum* set of libraries required to link against the -# ACE/TAO ORB. Note that this does *not* include any of the CORBA -# services libraries. -LDLIBS = -lTAO -lACE -lorbsvcs -lsocket -ldl -lnsl -lgen - -# ACE and TAO are built (by default) on the SUN platform *without* -# exception handling support, and with multiprocessing support. Thus -# the following compiler flags are required. (-pta cause complete -# template class instantiation). -CFLAGS = -mt -pta -noex -DCFLAGS = -g - -# Define the additional directives for IDL stub code support. -.SUFFIXES : S.h C.h S.i C.i S.cpp C.cpp - -%S.h %C.h %S.i %C.i %S.cpp %C.cpp : %.idl - $(IDL) $(IDLFLAGS) $? - -%.o : %.cpp - $(CXX) $(DCFLAGS) $(CFLAGS) $(CPPFLAGS) $< - -% : %.o - $(CXX) $(DCFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS) - -# The rest of this file is application specific -SVROBJS = ns_tree.o test_objectS.o test_objectC.o - -all : ns_tree - -ns_tree : $(SVROBJS) - -ns_tree.o : ns_tree.cpp test_objectS.h Makefile - -clean : - -rm -rf *.o *C.cpp *S.cpp *C.h *C.i *S.h *S.i Templates.DB diff --git a/TAO/orbsvcs/tests/Naming/README b/TAO/orbsvcs/tests/Naming/README deleted file mode 100644 index 4f02780c57e..00000000000 --- a/TAO/orbsvcs/tests/Naming/README +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ - -The ns_tree.cpp test application exercises various features of TAO's -Naming Service. It behaves as follows: - - 1. It binds a new context ("MyContext"). - 2. It binds the compound name ("MyContext;MyName") into the - root context. - 3. It resolves the compount name ("MyContext;MyName"). - -In this case, proper functioning of the hierarchical test implies -functioning of the "flat" test. - -A collection of various tests selectable by command line arguments -will be available later. - diff --git a/TAO/orbsvcs/tests/Naming/ns_tree.cpp b/TAO/orbsvcs/tests/Naming/ns_tree.cpp deleted file mode 100644 index 303bebb9df6..00000000000 --- a/TAO/orbsvcs/tests/Naming/ns_tree.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// ns_tree.cpp -// -// = DESCRIPTION -// -// = AUTHOR -// Ross Lillie -// LMPS Systems Research Lab -// -// ============================================================================ - -#include "tao/TAO.h" -#include "orbsvcs/CosNamingC.h" -#include "test_objectS.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Test_Object_impl : public POA_Test_Object -{ -public: - Test_Object_impl (void) {}; - ~Test_Object_impl (void) {}; -}; - -int -main (int argc, char **argv) -{ - TAO_ORB_Manager orbmgr; - Test_Object_impl myObject; - TAO_Naming_Server my_name_server; - int result; - - TAO_TRY - { - // Initialize and obtain reference to the Naming Context - if (orbmgr.init_child_poa (argc, argv,"Rob", TAO_TRY_ENV) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "failed to init ORB\n"), - -1); - TAO_CHECK_ENV; - - PortableServer::POA_var child_poa; - CORBA::ORB_var orb = orbmgr.orb (); - - child_poa = orbmgr.child_poa (); - result = my_name_server.init (orb, child_poa); - - if (result < 0) - return result; - - CosNaming::Name context_name; - CosNaming::NamingContext_var ns_ctx; - context_name.length (1); - context_name[0].id = CORBA::string_dup ("NameService"); - ns_ctx = my_name_server->bind_new_context (context_name, TAO_TRY_ENV); - - TAO_CHECK_ENV_RETURN (TAO_TRY_ENV, -1); - - // Dummy object instantiation. - Test_Object_var myObject_var = - myObject._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create a child context. - CosNaming::Name test_context (1); - CosNaming::NamingContext_var my_context; - test_context.length (1); - test_context[0].id = - CORBA::string_dup ("MyContext"); - my_context = my_name_server->bind_new_context (test_context, TAO_TRY_ENV); - - TAO_CHECK_ENV_RETURN (TAO_TRY_ENV, -1); - - cerr << "Created new context OK" << endl; - - // Bind an object to a child context. - CosNaming::Name test_name (2); - test_name.length (2); - test_name[0].id = CORBA::string_dup ("MyContext"); - test_name[1].id = CORBA::string_dup ("MyName"); - - my_name_server->bind (test_name, - myObject_var.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - cerr << "Bound compound name OK" << endl; - - // Finally, try now to resolve the compound name. - CosNaming::Name result_name (2); - result_name.length (2); - result_name[0].id = CORBA::string_dup ("MyContext"); - result_name[1].id = CORBA::string_dup ("MyName"); - - CORBA::Object_var resolvedobj = my_name_server->resolve (result_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - Test_Object_var resultObject = - Test_Object::_narrow (resolvedobj.in (), - TAO_TRY_ENV); - - cerr << "Resolved compound name OK" << endl; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("ns_tree"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/orbsvcs/tests/Naming/test_object.idl b/TAO/orbsvcs/tests/Naming/test_object.idl deleted file mode 100644 index 42e5ee937bf..00000000000 --- a/TAO/orbsvcs/tests/Naming/test_object.idl +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ - -interface Test_Object -{ - // = TITLE - // This is a simple "no-op" interface to test the Naming Service. -}; diff --git a/TAO/orbsvcs/tests/Property/Makefile b/TAO/orbsvcs/tests/Property/Makefile deleted file mode 100644 index 963cd8708c6..00000000000 --- a/TAO/orbsvcs/tests/Property/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the AVStreams demo of the TAO ORB -# -#---------------------------------------------------------------------------- - -#--------------- -# STL (start) -#--------------- - -include $(STL_ROOT)/config/local.cfg - -CC_INCLUDES += -I$(STD) -CC_INCLUDES += -pta - -CPPFLAGS += \ - -I$(TOOLKIT) \ - $(CC_INCLUDES) \ - $(CC_FLAGS) \ - $(CC_DEFINES) \ - $(CC_EH) \ - $(CC_MT) - -ifndef exceptions -CPPFLAGS += -DOS_NO_EXCEPTION_SPECIFIER -else -CPPFLAGS += -DOS_STL_ASSERT -endif - -LDFLAGS += -L$(STL_ROOT)/lib - -#--------------- -# STL (end) -#--------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lorbsvcs -lospace -lTAO -lrpcsvc - -AVStreams_SERVER_OBJS = server.o -AVStreams_CLIENT_OBJS = client.o - -COSPROPERTY_OBJS = main.o - -BIN = server client -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -server:$(addprefix $(VDIR),$(AVStreams_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client:$(addprefix $(VDIR),$(AVStreams_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf - - -# 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/TAO/orbsvcs/tests/Property/client.cpp b/TAO/orbsvcs/tests/Property/client.cpp deleted file mode 100644 index 7387e6a7d0c..00000000000 --- a/TAO/orbsvcs/tests/Property/client.cpp +++ /dev/null @@ -1,809 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// Test client for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#include "client.h" - -Client::Client (void) -{ -} - -// initialize the ORB, get a grip on the remote mmdevice, and store it -// in this->remote_mmdevice_. Also create a stream controlller and a -// local mmdevice. - -int -Client::init (int argc, - char *argv[], - CORBA::Environment &env) -{ - // Init the ORB. - manager_.init (argc, - argv, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Open the ORB. - manager_.orb ()->open (); - - // Naming service. - CORBA::Object_var naming_obj = - manager_.orb ()->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Bind PropertySetDef Object. - - CosNaming::Name propsetdef_name (1); - propsetdef_name.length (1); - propsetdef_name [0].id = CORBA::string_dup ("PropertySetDef"); - CORBA::Object_var propsetdef_obj = naming_context->resolve (propsetdef_name, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - ACE_DEBUG ((LM_DEBUG, "Naming resolve done\n")); - - this->propsetdef_ = CosPropertyService::PropertySetDef::_narrow (propsetdef_obj.in (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - if (CORBA::is_nil (this->propsetdef_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Couldnot resolve propsetdef in Naming server"), - -1); -} - -// Testing the methods of the property service. - -int -Client::property_tester (CORBA::Environment &env) -{ - // = Testing PropertySet & Iterators. - - // Testing define_property () of PropertySet interface. - this->test_define_property (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_property_names. - this->test_get_all_property_names (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test get_property_value. - this->test_get_property_value (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing delete property. - this->test_delete_property ("no_property",env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_properties. - this->test_get_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing delete_properties. - this->test_delete_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing define_properties. - this->test_define_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_property_names. - this->test_get_all_property_names (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing get_all_properties. - this->test_get_all_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get the modes of all the properties defined. - this->test_get_property_modes (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Testing delete_all_properties. - this->test_delete_all_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Test the number of properties. - this->test_get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Try to get all the properties. - this->test_get_all_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // = Testing PropertySetDef & Iterators. - - // Testing define_property_with_mode. - this->test_define_property_with_mode (env); - TAO_CHECK_ENV_RETURN (env, -1); -} - -// Testing define_property. - -int -Client::test_define_property (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - this->propsetdef_->define_property ("char_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - propsetdef_->define_property ("short_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - propsetdef_->define_property ("long_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - propsetdef_->define_property ("float_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); - env.clear (); - } - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - propsetdef_->define_property ("string_property", - anyval, - env); - - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("string_property"); - env.clear (); - } - - return 0; -} - -// Testing get_all_property_names of the PropertySet. - -int -Client::test_get_all_property_names (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nTesting get_all_property_names ()\n")); - - // Get the size. - CORBA::ULong num_of_properties = - propsetdef_->get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get half on the names and half of on the iterator. - CORBA::ULong how_many = num_of_properties / 2; - CosPropertyService::PropertyNames_var names_var; - CosPropertyService::PropertyNamesIterator_var iterator_var; - propsetdef_->get_all_property_names (how_many, - names_var.out (), - iterator_var.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print out the names in the names-sequence. - if (names_var.ptr () != 0) - { - CORBA::ULong len = names_var->length (); - - for (CORBA::ULong ni = 0; ni < len; ni++) - ACE_DEBUG ((LM_DEBUG, - "%s\n", - (const char *) names_var [ni])); - } - - // Iterate thru and print out the names in the iterator, if any. - if (iterator_var.ptr () != 0) - { - CosPropertyService::PropertyName_var name_var; - - while (iterator_var->next_one (name_var.out (), env) == CORBA::B_TRUE) - { - TAO_CHECK_ENV_RETURN (env, -1); - ACE_DEBUG ((LM_DEBUG, "%s\n", name_var.in ())); - } - - TAO_CHECK_ENV_RETURN (env, -1); - } -} - -// Test get_properties. Give a sequence of names and get all their -// properties. - -int -Client::test_get_properties (CORBA::Environment &env) -{ - // Get float_property, string_property and no_property. If return - // value is false and type is tc_void then that name is not there in - // the PropertySet. - ACE_DEBUG ((LM_DEBUG, "\nTesting get_properties\n")); - CosPropertyService::PropertyNames_var names; - CosPropertyService::PropertyNames_ptr names_ptr; - - ACE_NEW_RETURN (names_ptr, - CosPropertyService::PropertyNames, - -1); - names = names_ptr; - - names->length (3); - names [0] = CORBA::string_dup ("float_property"); - //names [1] = CORBA::string_dup ("string_property"); - names [1] = CORBA::string_dup ("long_property"); - names [2] = CORBA::string_dup ("char_property"); - //names [2] = CORBA::string_dup ("no_property"); - - CosPropertyService::Properties_var properties; - - // Get the properties. - CORBA::Boolean return_val = propsetdef_->get_properties (names.in (), - properties.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - if (properties.ptr () != 0) - { - // Go thru the properties and print them out, if they are not - // _tc_void typed values. - CORBA::ULong len = properties->length (); - - for (CORBA::ULong pi = 0; pi < len; pi++) - { - // Print the name. - ACE_DEBUG ((LM_DEBUG, - "%s : ", - (const char *) properties [pi].property_name.in ())); - - // Print the value. - CORBA::Any::dump (properties [pi].property_value); - } - } - return 0; -} - -// Testing, get_number_of_properties. - -int -Client::test_get_number_of_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nNumber of props : %d\n", - this->propsetdef_->get_number_of_properties (env))); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Test delete_property. - -int -Client::test_delete_property (CORBA::String property_name, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\nDeleting %s\n",property_name)); - - TAO_TRY - { - this->propsetdef_->delete_property (property_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::UserException, ex) - { - TAO_TRY_ENV.print_exception ("User exception"); - return -1; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Not an user exception"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// Test delete_properties. -// Make a sequence of property names and delete them from the -// PropertySet. Deleting char, short, long, float and string -// properties. - -int -Client::test_delete_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_properties\n")); - CosPropertyService::PropertyNames prop_names; - prop_names.length (3); - prop_names [0] = CORBA::string_dup ("char_property"); - prop_names [1] = CORBA::string_dup ("short_property"); - prop_names [2] = CORBA::string_dup ("long_property"); - //prop_names [3] = CORBA::string_dup ("no_property"); - ACE_DEBUG ((LM_DEBUG, - "Length of sequence %d, Maxlength : %d\n", - prop_names.length (), - prop_names.maximum ())); - this->propsetdef_->delete_properties (prop_names, - env); - TAO_CHECK_ENV_RETURN (env, 0); - - return 0; -} - -// Defines a sequnce of properties containing, char, short, long, -// float in the property set. - -int -Client::test_define_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_properties\n")); - CosPropertyService::Properties nproperties; - nproperties.length (4); - CORBA::Any anyval; - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - nproperties[0].property_name = CORBA::string_copy ("char_property"); - nproperties[0].property_value <<= from_char (ch); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - nproperties[1].property_name = CORBA::string_copy ("short_property"); - nproperties[1].property_value <<= s; - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - nproperties[2].property_name = CORBA::string_copy ("long_property"); - nproperties[2].property_value <<= l; - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - nproperties[3].property_name = CORBA::string_copy ("float_property"); - nproperties[3].property_value <<= f; - - // Define this sequence of properties now. - this->propsetdef_->define_properties (nproperties, env); - TAO_CHECK_ENV_RETURN (env, -1); - - return 0; -} - -// Test get_all_properties. - -int -Client::test_get_all_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nTesting get_all_properties\n")); - // Get the number of current properties. - CORBA::ULong num_of_properties = - this->propsetdef_->get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get half on the properties and half of on the iterator. - CORBA::ULong how_many = 0; - CosPropertyService::Properties_var properties; - CosPropertyService::PropertiesIterator_var iterator; - propsetdef_->get_all_properties (how_many, - properties.out (), - iterator.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print out the properties now. - if (properties.ptr () != 0) - { - CORBA::ULong len = properties->length (); - - for (CORBA::ULong pi = 0; pi < len; pi++) - { - // Print the property_name. - ACE_DEBUG ((LM_DEBUG, - "%s : ", - properties [pi].property_name.in ())); - - // Print the value. - CORBA::Any::dump (properties [pi].property_value); - } - } - - // Pass thru the iterator. - if (iterator.ptr () != 0) - { - CosPropertyService::Property_var property; - - while (iterator->next_one (property.out (), env) != CORBA::B_FALSE) - { - TAO_CHECK_ENV_RETURN (env, -1); - ACE_DEBUG ((LM_DEBUG, - "%s : ", - property->property_name.in ())); - - // Print the property_value. - if (property->property_value.type () == CORBA::_tc_char) - { - CORBA::Char c; - property->property_value >>= to_char (c); - ACE_DEBUG ((LM_DEBUG,"%c\n", c)); - } - - if (property->property_value.type () == CORBA::_tc_short) - { - CORBA::Short s; - property->property_value >>= s; - ACE_DEBUG ((LM_DEBUG,"%d\n", s)); - } - - if (property->property_value.type () == CORBA::_tc_float) - { - CORBA::Float f; - property->property_value >>= f; - ACE_DEBUG ((LM_DEBUG,"%f\n", f)); - } - - if (property->property_value.type () == CORBA::_tc_string) - { - CORBA::String str; - property->property_value >>= str; - ACE_DEBUG ((LM_DEBUG,"%s\n", str)); - } - - if (property->property_value.type () == CORBA::_tc_long) - { - CORBA::Long l; - property->property_value >>= l; - ACE_DEBUG ((LM_DEBUG,"%d\n", l)); - } - } - TAO_CHECK_ENV_RETURN (env, -1); - } -} - -// Testing define property with mode. -// Defines char, short, long and float properties with different modes. -int -Client::test_define_property_with_mode (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property_with_mode\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - this->propsetdef_->define_property_with_mode ("char_property", - anyval, - CosPropertyService::normal, - env); - // Check if that is an user exception, if so, print it out. - if ((env.exception () != 0) && - (CORBA::UserException::_narrow (env.exception ()) != 0)) - { - env.print_exception ("char_property"); env.clear (); - } - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - propsetdef_->define_property_with_mode ("short_property", - anyval, - CosPropertyService::read_only, - env); - // Check if that is an user exception, if so, print it out. - if (env.exception () != 0) - { - env.print_exception ("char_property"); - if (CORBA::UserException::_narrow (env.exception ()) != 0) - env.clear (); - else - return -1; - } - - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - propsetdef_->define_property_with_mode ("long_property", - anyval, - CosPropertyService::fixed_normal, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - propsetdef_->define_property_with_mode ("float_property", - anyval, - CosPropertyService::fixed_readonly, - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - propsetdef_->define_property ("string_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, -1); -} - -int -Client::test_get_property_value (CORBA::Environment &env) -{ - TAO_TRY - { - // Get the ior property. - CORBA::Any_ptr any_ptr = this->propsetdef_->get_property_value ("PropertySetDef_IOR", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Property value received successfully\n")); - - // Check whether the IOR is fine. - CORBA::Object_var propsetdef_object; - (*any_ptr) >>= to_object (propsetdef_object); - - CosPropertyService::PropertySetDef_var propsetdef = - CosPropertyService::PropertySetDef::_narrow (propsetdef_object.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (propsetdef.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid object reference\n"), - -1); - - ACE_DEBUG ((LM_DEBUG, "IOR retrieved. Seems to be in good shape\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("get_property_value"); - return -1; - } - TAO_ENDTRY; -} - -int -Client::test_delete_all_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\nTesting delete_all_properties\n")); - - TAO_TRY - { - // Delete all properties. - this->propsetdef_->delete_all_properties (TAO_TRY_ENV); - TAO_CHECK_ENV_RETURN (TAO_TRY_ENV, 0); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("test_delete_all_properties"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -int -Client::test_get_property_modes (CORBA::Environment &env) -{ - // Get all the names and then get all their modes, print'em. - ACE_DEBUG ((LM_DEBUG, - "\nTesting get_property_modes ()\n")); - - // Get the size. - CORBA::ULong num_of_properties = - propsetdef_->get_number_of_properties (env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get all the names in the sequence. - CORBA::ULong how_many = num_of_properties; - CosPropertyService::PropertyNames_var names_var; - CosPropertyService::PropertyNamesIterator_var iterator_var; - propsetdef_->get_all_property_names (how_many, - names_var.out (), - iterator_var.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Get modes for all these names. - CosPropertyService::PropertyModes_var modes; - propsetdef_->get_property_modes (names_var.in (), - modes.out (), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - // Print the names and the modes. - if (modes.ptr () != 0) - { - CORBA::ULong len = modes->length (); - - for (CORBA::ULong mi = 0; mi < len; mi++) - // Print the property_name and the mode. - ACE_DEBUG ((LM_DEBUG, - "%s, Mode %d\n", - modes [mi].property_name.in (), - modes [mi].property_mode)); - } -} - -int -main (int argc, char **argv) -{ - TAO_TRY - { - Client client; - - if (client.init (argc, - argv, - TAO_TRY_ENV) == -1) - return 1; - TAO_CHECK_ENV; - - // client.run (TAO_TRY_ENV); - client.property_tester (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("AVStreams: client"); - return -1; - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/Property/client.h b/TAO/orbsvcs/tests/Property/client.h deleted file mode 100644 index fac248d6fd3..00000000000 --- a/TAO/orbsvcs/tests/Property/client.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// client.h -// -// = DESCRIPTION -// Test client for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#if !defined (COSPROPERTYSERVICE_CLIENT_H) -#define COSPROPERTYSERVICE_CLIENT_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "tao/TAO.h" -#include "orbsvcs/Property/CosPropertyService_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Client -{ - // = TITLE - // Client for A/V Streams demo. - // - // = DESCRIPTION - // Encapsulates client functionality. -public: - Client (void); - // Constructor. - - int init (int argc, - char **argv, - CORBA::Environment &env); - // Initialize the ORB etc, and bind the MMDevices. - - int run (CORBA::Environment &env); - // Run the client. This will call StreamCtrl::bind_devs. - - int property_tester (CORBA::Environment &env); - // Testing the property service methods. - -protected: - int bind_to_remote_mmdevice (int argc, - char *argv[], - CORBA::Environment &env); - // Bind to the remote MMDevice. - - // = Property Testing. - - int test_define_property (CORBA::Environment &env); - // Testing the define property method. - - int test_get_number_of_properties (CORBA::Environment &env); - // Testing the number of properties, currently in the Property Set. - - int test_get_all_property_names (CORBA::Environment &env); - //Testing get_all_property_names. - - int test_get_property_value (CORBA::Environment &env); - // Testing get_property_value. - - int test_get_properties (CORBA::Environment &env); - //Testing get_properties. Give the names and get their properties. - - int test_get_all_properties (CORBA::Environment &env); - // Testing get_all_properties. - - int test_delete_property (CORBA::String property_name, - CORBA::Environment &env); - // Testing delete_property. - - int test_delete_properties (CORBA::Environment &env); - // Testing delete_properties. - - int test_define_properties (CORBA::Environment &env); - // Defining a sequence of properties. - - int test_define_property_with_mode (CORBA::Environment &env); - // Defines properties with various modes. - - int test_delete_all_properties (CORBA::Environment &env); - // Deleting all the properties. - - int test_get_property_modes (CORBA::Environment &env); - // Getting the modes of some properties. - - TAO_ORB_Manager manager_; - // The ORB manager, handles ORB initialization etc. - - CosPropertyService::PropertySetDef_var propsetdef_; - // To test propertySetDef interface. -}; - -#endif /* COSPROPERTYSERVICE_CLIENT_H */ diff --git a/TAO/orbsvcs/tests/Property/main.cpp b/TAO/orbsvcs/tests/Property/main.cpp deleted file mode 100644 index 893bbe06bbb..00000000000 --- a/TAO/orbsvcs/tests/Property/main.cpp +++ /dev/null @@ -1,589 +0,0 @@ -// $Id$ - -// ========================================================================================================= -// -// = FILE -// Program to test the property services. -// -// = DESCRIPTION -// Here all the objects are at one address space. See the -// client.cpp and server.cpp to see property calls on remote -// objects. -// -// = AUTHOR -// Alexander Babu Arulanthu -// -// ========================================================================================================= - -#include "orbsvcs/CosPropertyServiceS.h" -#include "orbsvcs/Property/CosPropertyService_i.h" - -class TAO_PropertySet_Tester -{ - // = TITLE - // The testing code for the PropertySet interface are grouped - // under the functions of this class. - // - // = DESCRIPTION - // Go thru the functions to understand the usage of the various - // methods of the PropertySet interaface. -public: - friend class TAO_PropertyNamesIterator_Tester; - // He has to instantiate TAO_NamesIterator class using the instance - // of TAO_PropertySet. - - TAO_PropertySet_Tester (void); - // Constructor. - - ~TAO_PropertySet_Tester (void); - // Destructor. - - int test_define_property (CORBA::Environment &env); - // Defines a char,a short, a long, a float and a string property. - - int test_get_number_of_properties (CORBA::Environment &env); - // Gets the number of properties currently defined in the PropertySet. - - int test_delete_property (const char *property_name, - CORBA::Environment &env); - // Delete a given property. - - int test_is_property_defined (CORBA::Environment &env); - // Check the following properties are defined or - // no. "char_property", "short_property" and a "string_property". - - int test_get_property_value (CORBA::Environment &env); - // Get the "float_property" and "string_property" and print them - // out. - - int test_delete_properties (CORBA::Environment &env); - // Delete char, short,long, and string properties. - - int test_delete_all_properties (CORBA::Environment &env); - // Delete all the properties. - - int test_define_properties (CORBA::Environment &env); - // Define a sequence of properties. a char, a short, a long, a float - // and a string. - -private: - TAO_PropertySet property_set_; - // The PropertySet. -}; - -class TAO_PropertyNamesIterator_Tester -{ - // = TITLE - // The testing code for the PropertyNamesIterator interface are grouped - // under the functions of this class. - // - // = DESCRIPTION - // Go thru the functions to understand the usage of the various - // methods of the PropertyNamesIterator interaface. -public: - TAO_PropertyNamesIterator_Tester (TAO_PropertySet_Tester &propertyset_tester); - // Constructor. To make names iterator from the property set object. - - ~TAO_PropertyNamesIterator_Tester (void); - // Destructor. - - int test_next_one (CORBA::Environment &env); - // Test next one method. Iterate thru all the names in the - // PropertySet and print them out. - - int test_reset (CORBA::Environment &env); - // Test the reset method. - - int test_next_n (size_t n, CORBA::Environment &env); - // Test the next_n method. -private: - TAO_PropertyNamesIterator iterator_; - // Our names iterator. -}; - - -// Constructor. -TAO_PropertySet_Tester::TAO_PropertySet_Tester (void) -{ -} - -// Destructor. -TAO_PropertySet_Tester::~TAO_PropertySet_Tester (void) -{ -} - -// Defines a char, a short, a long, a float and a string. -int -TAO_PropertySet_Tester::test_define_property (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_property\n")); - - CORBA::Any anyval; - - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - ACE_DEBUG ((LM_DEBUG, - "Main : Char ch = %c\n", - ch)); - property_set_.define_property ("char_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - ACE_DEBUG ((LM_DEBUG, - "Main : Short s = %d\n", - s)); - property_set_.define_property ("short_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - ACE_DEBUG ((LM_DEBUG, - "Main : Long l = %d\n", - l)); - CORBA::Any newany(anyval); - - property_set_.define_property ("long_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - ACE_DEBUG ((LM_DEBUG, - "Main : Float f = %f\n", - f)); - property_set_.define_property ("float_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Prepare a String and "define" that in the PropertySet. - ACE_DEBUG ((LM_DEBUG, - "Main: Any holding String\n")); - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - CORBA::String newstr; - anyval >>= newstr; - ACE_DEBUG ((LM_DEBUG, - "Main: String : %s, From any : %s\n", - strvar.in (), - newstr)); - property_set_.define_property ("string_property", - anyval, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Testing, get_number_of_properties. -int -TAO_PropertySet_Tester::test_get_number_of_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "Main : Number of props : %d\n", - property_set_.get_number_of_properties (env))); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Testing the delete_property. Delets property, with the given name, -// if that exsists. -int -TAO_PropertySet_Tester::test_delete_property (const char *property_name, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "\nChecking delete_property\n")); - property_set_.delete_property (property_name, - env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Gets the value of "short_property" and "string_property". - -int -TAO_PropertySet_Tester::test_get_property_value (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking get_property_value\n")); - - CORBA::Any_ptr anyptr = property_set_.get_property_value ("short_property", - env); - TAO_CHECK_ENV_RETURN (env, 1); - - // Get the short value. - if (anyptr != 0) - { - CORBA::Short s; - *anyptr >>= s; - ACE_DEBUG ((LM_DEBUG, - "Short %d\n", - s)); - } - else - ACE_DEBUG ((LM_DEBUG, - "Short property not found\n")); - // Get the string. - anyptr = property_set_.get_property_value ("string_property", - env); - TAO_CHECK_ENV_RETURN (env, 1); - if (anyptr != 0) - { - CORBA::String str; - *anyptr >>= str; - ACE_DEBUG ((LM_DEBUG, - "Str %s\n", str)); - } - else - ACE_DEBUG ((LM_DEBUG, - "string_property not found\n")); - return 0; -} - -// Check the following properties are defined or no. "short_property", -// "string_property" and "char_property". - -int -TAO_PropertySet_Tester::test_is_property_defined (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking is_property_defined ()\n")); - if (property_set_.is_property_defined ("short_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "short_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "short_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - if (property_set_.is_property_defined ("string_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "string_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "string_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - if (property_set_.is_property_defined ("char_property", - env) == CORBA::B_FALSE) - ACE_DEBUG ((LM_DEBUG, - "char_property not defined\n")); - else - ACE_DEBUG ((LM_DEBUG, - "char_property defined\n")); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Make a sequence of property names and delete them from the -// PropertySet. Deleting char, short, long, float and string -// properties. -int -TAO_PropertySet_Tester::test_delete_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_properties == Deleting a sequence of Properties\n")); - CosPropertyService::PropertyNames prop_names; - prop_names.length (4); - prop_names [0] = CORBA::string_dup ("char_property"); - prop_names [1] = CORBA::string_dup ("short_property"); - prop_names [2] = CORBA::string_dup ("long_property"); - prop_names [3] = CORBA::string_dup ("float_property"); - ACE_DEBUG ((LM_DEBUG, - "Length of sequence %d, Maxlength : %d\n", - prop_names.length (), - prop_names.maximum ())); - property_set_.delete_properties (prop_names, - env); - TAO_CHECK_ENV_RETURN (env, 0); - - return 0; -} - -// Defines a sequnce of properties containing, char, short, long, -// float and string property in the property set. -int -TAO_PropertySet_Tester::test_define_properties (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "\nChecking define_properties == Defining sequence of properties\n")); - // TAO_TRY - // { - CosPropertyService::Properties nproperties; - nproperties.length (5); - CORBA::Any anyval; - // Prepare a char and "define" that in the PropertySet. - CORBA::Char ch = '#'; - anyval <<= from_char (ch); - ch = '*'; - anyval >>= to_char (ch); - nproperties[0].property_name = CORBA::string_copy ("char_property"); - nproperties[0].property_value <<= from_char (ch); - - // Prepare a Short and "define" that in the PropertySet. - CORBA::Short s = 3; - anyval <<= s; - s = 7; - anyval >>= s; - nproperties[1].property_name = CORBA::string_copy ("short_property"); - nproperties[1].property_value <<= s; - - // Prepare a Long and "define" that in the PropertySet. - CORBA::Long l = 931232; - anyval <<= l; - l = 931233; - anyval >>= l; - nproperties[2].property_name = CORBA::string_copy ("long_property"); - nproperties[2].property_value <<= l; - - // Prepare a Float and "define" that in the PropertySet. - CORBA::Float f = 3.14; - anyval <<= f; - f = 4.14; - anyval >>= f; - nproperties[3].property_name = CORBA::string_copy ("float_property"); - nproperties[3].property_value <<= f; - - // Prepare a String and "define" that in the PropertySet. - CORBA::String_var strvar (CORBA::string_dup ("Test_String")); - anyval <<= strvar.in (); - nproperties[4].property_name = CORBA::string_copy ("string_property"); - nproperties[4].property_value <<= strvar.in (); - - // Define this sequence of properties now. - property_set_.define_properties (nproperties, env); - TAO_CHECK_ENV_RETURN (env, 1); - - return 0; -} - -// Delete all the properties. -int -TAO_PropertySet_Tester::test_delete_all_properties (CORBA::Environment &env) -{ - // Deleting all the properties - ACE_DEBUG ((LM_DEBUG, - "\nChecking delete_all_properties\n")); - if (property_set_.delete_all_properties (env) == CORBA::B_TRUE) - ACE_DEBUG ((LM_DEBUG, - "All properties deleted, I guess\n")); - else - ACE_DEBUG ((LM_DEBUG, - "delete_all_properties failed\n")); - return 0; -} - -// Constructor. To make names iterator from the property set object. -TAO_PropertyNamesIterator_Tester::TAO_PropertyNamesIterator_Tester (TAO_PropertySet_Tester &propertyset_tester) - : iterator_ (propertyset_tester.property_set_) -{ -} - -// Destructor. -TAO_PropertyNamesIterator_Tester::~TAO_PropertyNamesIterator_Tester (void) -{ -} - -// Test next one method. Iterate thru all the names in the -// PropertySet and print them out. -int -TAO_PropertyNamesIterator_Tester::test_next_one (CORBA::Environment &env) -{ - CORBA::String_var strvar; - ACE_DEBUG ((LM_DEBUG, - "\nTesting next_one of NamesIterator, Iterating thru names.\n")); - // Let us iterate, now. - while (iterator_.next_one (strvar.out (), env) != CORBA::B_FALSE) - { - TAO_CHECK_ENV_RETURN (env, 1); - ACE_DEBUG ((LM_DEBUG, "Str : %s\n", strvar.in ())); - } - return 0; -} - -// Reset the names iterator. -int -TAO_PropertyNamesIterator_Tester::test_reset (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "Resetting (reset ()) the NamesIterator.")); - iterator_.reset (env); - TAO_CHECK_ENV_RETURN (env, 1); - return 0; -} - -// Test the next_n method. Get the next n names and print them all. -int -TAO_PropertyNamesIterator_Tester::test_next_n (size_t n, - CORBA::Environment &env) -{ - CosPropertyService::PropertyNames_var pnames_var; - ACE_DEBUG ((LM_DEBUG, - "Checking next_n (), next %d\n", - n)); - if (iterator_.next_n (n, pnames_var.out (), env) == CORBA::B_FALSE) - { - // Return if no more items in the iterator. - TAO_CHECK_ENV_RETURN (env, 1); - ACE_DEBUG ((LM_DEBUG, - "Iterator has no more items\n")); - return 0; - } - TAO_CHECK_ENV_RETURN (env, 1); - for (size_t i = 0; i < pnames_var.in ().length (); i++) - ACE_DEBUG ((LM_DEBUG, - "str %s \n", - (const char *) pnames_var[i])); - return 0; -} - -int -main (int argc, char *argv []) -{ - TAO_TRY - { - CORBA::ORB_var orb_var = CORBA::ORB_init (argc, - argv, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // = Checking PropertySet interface. - - ACE_DEBUG ((LM_DEBUG, - "\nTAO_PropertySet Testing\n")); - TAO_PropertySet_Tester propertyset_tester; - - // Checking define_property. define a char, a short,a long, a float - // and a string. - propertyset_tester.test_define_property (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test delete property. Delete "string_property" - propertyset_tester.test_delete_property ("string_property", TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test delete_properties. Delete char, short, long and float. - propertyset_tester.test_delete_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Define a sequence of properties. char, short, long, float and - // string. - propertyset_tester.test_define_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking get_property_value. get the value of short and string. - propertyset_tester.test_get_property_value (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking delete_all_properties. - propertyset_tester.test_delete_all_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Define a sequence of properties. char, short, long, float and - // string. - propertyset_tester.test_define_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Test the number of properties and print it out. - propertyset_tester.test_get_number_of_properties (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // = Checking the PropertyNamesIterator interface. - - ACE_DEBUG ((LM_DEBUG, - "\nTAO_PropertyNamesIterator Testing\n")); - - // Construct the names iterator from the PropertySet object. - TAO_PropertyNamesIterator_Tester names_iterator_tester (propertyset_tester); - - // Checking next_one. Iterate thru the property names. - names_iterator_tester.test_next_one (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking the reset () method. - names_iterator_tester.test_reset (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Iterating again thru the property names. - names_iterator_tester.test_next_one (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Reset again. - names_iterator_tester.test_reset (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Checking next_n. Prints out all the names it has got. - names_iterator_tester.test_next_n (6, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Try next_n without resetting. - names_iterator_tester.test_next_n (6, TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} - - - - - - - - - - diff --git a/TAO/orbsvcs/tests/Property/server.cpp b/TAO/orbsvcs/tests/Property/server.cpp deleted file mode 100644 index f137e062c58..00000000000 --- a/TAO/orbsvcs/tests/Property/server.cpp +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// Test server for the CosPropertyService -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#include "server.h" - -// Main program - -int -main (int argc, char ** argv) -{ - TAO_TRY - { - TAO_ORB_Manager m; - - // Initialize the ORB. - m.init_child_poa (argc, - argv, - "child_poa", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Using naming server. - TAO_Naming_Server my_name_server; - if (my_name_server.init (m.orb (), - m.child_poa ()) < 0) - return 1; - - ACE_DEBUG ((LM_DEBUG, "Name init done\n")); - - // Create PropertySetDef object and register. - TAO_PropertySetDef *propsetdef_impl; - ACE_NEW_RETURN (propsetdef_impl, - TAO_PropertySetDef, - -1); - CosPropertyService::PropertySetDef_var propsetdef = - propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name propsetdef_name (1); - propsetdef_name.length (1); - propsetdef_name[0].id = CORBA::string_dup ("PropertySetDef"); - my_name_server->bind (propsetdef_name, - propsetdef.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Make this IOR as one of the properties in there. - CORBA::Any any_val; - any_val <<= propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - -#if 0 - // Make this IOR as one of the properties in there. - CORBA::Object_var ior = propsetdef_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - CORBA::Object_ptr ior_ptr = ior.in (); - any_val.replace (CORBA::_tc_Object, - &ior_ptr, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; -#endif - - propsetdef_impl->define_property_with_mode ("PropertySetDef_IOR", - any_val, - CosPropertyService::fixed_readonly, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create PropertySet factory and then register. - TAO_PropertySetFactory *propset_factory_impl; - ACE_NEW_RETURN (propset_factory_impl, - TAO_PropertySetFactory, - -1); - CosPropertyService::PropertySetFactory_var propset_factory = - propset_factory_impl->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name propset_factory_name (1); - propset_factory_name.length (1); - propset_factory_name[0].id = CORBA::string_dup ("PropertySetFactory"); - my_name_server->bind (propset_factory_name, - propset_factory.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the ORB Event loop. - m.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - return 1; - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - return 1; - } - TAO_ENDTRY; - ACE_DEBUG ((LM_DEBUG, - "\nServer is terminating")); - return 0; -} diff --git a/TAO/orbsvcs/tests/Property/server.h b/TAO/orbsvcs/tests/Property/server.h deleted file mode 100644 index 06f6b41a455..00000000000 --- a/TAO/orbsvcs/tests/Property/server.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests/CosPropertyService -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// Test server for the CosPropertyService. -// -// = AUTHORS -// Alexander Babu Arulanthu -// -// ============================================================================ - -#if !defined (COSPROPERTYSERVICE_SERVER_H) -#define COSPROPERTYSERVICE_SERVER_H - -#include "tao/TAO.h" -#include "orbsvcs/Property/CosPropertyService_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -#endif /* COSPROPERTYSERVICE_SERVER_H */ diff --git a/TAO/orbsvcs/tests/Sched/DynSched_Test.cpp b/TAO/orbsvcs/tests/Sched/DynSched_Test.cpp deleted file mode 100644 index 5456886a893..00000000000 --- a/TAO/orbsvcs/tests/Sched/DynSched_Test.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// $Id$ - -#include "Strategy_Scheduler.h" -#if defined (quantify) - #include -#endif /* quantify */ - -// period times, in 100 nanoseconds -#define ONE_HZ 10000000 -#define FIVE_HZ 2000000 -#define TEN_HZ 1000000 -#define TWENTY_HZ 500000 - -typedef RtecScheduler::handle_t handle_t; -typedef RtecScheduler::Dependency_Info Dependency_Info; -typedef RtecScheduler::Preemption_Priority Preemption_Priority; -typedef RtecScheduler::OS_Priority OS_Priority; -typedef RtecScheduler::Sub_Priority Sub_Priority; -typedef RtecScheduler::RT_Info RT_Info; -typedef RtecScheduler::Time Time; -typedef RtecScheduler::Period Period; -typedef RtecScheduler::Info_Type Info_Type; -typedef RtecScheduler::Dependency_Type Dependency_Type; - - -static -void -setup_rt_info (RT_Info &info, const char *entry_point, u_long period, - u_long execution, RtecScheduler::Criticality criticality, - RtecScheduler::Importance importance, u_long threads) -{ - // copy the passed entry point string into the RT_Info - info.entry_point = CORBA::string_dup (entry_point); - - const TimeBase::ulonglong execution_time = {execution, 0}; - const TimeBase::ulonglong zero = {0, 0}; - - // initialize other values - info.handle = 0; - info.worst_case_execution_time = execution_time; - info.typical_execution_time = execution_time; - info.cached_execution_time = zero; - info.period = period; - info.criticality = criticality; - info.importance = importance; - info.quantum = zero; - info.threads = threads; - info.priority = 0; - info.dynamic_subpriority = 0; - info.static_subpriority = 0; - info.preemption_priority = 0; - info.info_type = RtecScheduler::OPERATION; - info.volatile_token = 0; -} - -static -int -register_rt_info (ACE_DynScheduler &scheduler, - RtecScheduler::RT_Info &info) -{ - int result = 0; - - if (scheduler.register_task (&info, info.handle) != - ACE_DynScheduler::SUCCEEDED) - { - result = 1; - printf ("Could not register info for \"%s\"\n", info.entry_point.in ()); - } - - return result; -} - -#if 0 /* not currently used */ -static -void -setup_conjunction (RT_Info &info, const char *entry_point) -{ - // copy the passed entry point string into the RT_Info - info.entry_point = CORBA::string_dup (entry_point); - - const TimeBase::ulonglong zero = {0, 0}; - - // initialize other values - info.handle = 0; - info.worst_case_execution_time = zero; - info.typical_execution_time = zero; - info.cached_execution_time = zero; - info.period = 0; - info.criticality = RtecScheduler::VERY_LOW_CRITICALITY; - info.importance = RtecScheduler::VERY_LOW_IMPORTANCE; - info.quantum = zero; - info.threads = 0; - info.priority = 0; - info.dynamic_subpriority = 0; - info.static_subpriority = 0; - info.preemption_priority = 0; - info.info_type = RtecScheduler::CONJUNCTION; - info.volatile_token = 0; -} - -static -void -setup_disjunction (RT_Info &info, const char *entry_point) -{ - // copy the passed entry point string into the RT_Info - info.entry_point = CORBA::string_dup (entry_point); - - const TimeBase::ulonglong zero = {0, 0}; - - // initialize other values - info.handle = 0; - info.worst_case_execution_time = zero; - info.typical_execution_time = zero; - info.cached_execution_time = zero; - info.period = 0; - info.criticality = RtecScheduler::VERY_LOW_CRITICALITY; - info.importance = RtecScheduler::VERY_LOW_IMPORTANCE; - info.quantum = zero; - info.threads = 0; - info.priority = 0; - info.dynamic_subpriority = 0; - info.static_subpriority = 0; - info.preemption_priority = 0; - info.info_type = RtecScheduler::DISJUNCTION; - info.volatile_token = 0; -} -#endif /* not currently used */ - - -static -int -run_schedule (ACE_Scheduler_Strategy &strategy, - const char *output_filename, const char *heading) -{ -// RtecScheduler::RT_Info low_10, low_20, high_10, high_20; - RtecScheduler::RT_Info low_1, low_5, low_10, low_20; - RtecScheduler::RT_Info high_1, high_5, high_10, high_20; - - ACE_Strategy_Scheduler scheduler (strategy); - - setup_rt_info (low_1, "low_1", ONE_HZ, 180000, - RtecScheduler::LOW_CRITICALITY, - RtecScheduler::HIGH_IMPORTANCE, 1); - setup_rt_info (low_5, "low_5", FIVE_HZ, 180000, - RtecScheduler::LOW_CRITICALITY, - RtecScheduler::HIGH_IMPORTANCE, 1); - setup_rt_info (low_10, "low_10", TEN_HZ, 180000, - RtecScheduler::LOW_CRITICALITY, - RtecScheduler::HIGH_IMPORTANCE, 1); - setup_rt_info (low_20, "low_20", TWENTY_HZ, 180000, - RtecScheduler::LOW_CRITICALITY, - RtecScheduler::HIGH_IMPORTANCE, 1); - setup_rt_info (high_1, "high_1", ONE_HZ, 180000, - RtecScheduler::HIGH_CRITICALITY, - RtecScheduler::LOW_IMPORTANCE, 1); - setup_rt_info (high_5, "high_5", FIVE_HZ, 180000, - RtecScheduler::HIGH_CRITICALITY, - RtecScheduler::LOW_IMPORTANCE, 1); - setup_rt_info (high_10, "high_10", TEN_HZ, 180000, - RtecScheduler::HIGH_CRITICALITY, - RtecScheduler::LOW_IMPORTANCE, 1); - setup_rt_info (high_20, "high_20", TWENTY_HZ, 180000, - RtecScheduler::HIGH_CRITICALITY, - RtecScheduler::LOW_IMPORTANCE, 1); - - if ( - register_rt_info (scheduler, low_1) || - register_rt_info (scheduler, low_5) || - register_rt_info (scheduler, low_10) || - register_rt_info (scheduler, low_20) || - register_rt_info (scheduler, high_1) || - register_rt_info (scheduler, high_5) || - register_rt_info (scheduler, high_10) || - register_rt_info (scheduler, high_20)) - { - return -1; - } - -#if defined (quantify) - quantify_start_recording_data (); -#endif /* quantify */ - ACE_DynScheduler::status_t status = scheduler.schedule (); -#if defined (quantify) - quantify_stop_recording_data (); -#endif /* quantify */ - - switch (status) - { - case ACE_DynScheduler::SUCCEEDED: - case ACE_DynScheduler::ST_UTILIZATION_BOUND_EXCEEDED: - - status = scheduler.output_timeline (output_filename, heading); - switch (status) - { - case ACE_DynScheduler::SUCCEEDED: - case ACE_DynScheduler::ST_UTILIZATION_BOUND_EXCEEDED: - break; - - default : - printf ("scheduler.output_timeline (\"%s\") failed: returned %d\n", - output_filename, status); - return -1; - } - - break; - - default : - - printf ("scheduler.schedule () failed: returned %d\n", status); - return -1; - } - - return 0; -} - -int -main (int, char *[]) -{ - int result = 0; - - // create a bunch of different strategies, indicating the minimum critical - // priority level (number of priority levels in critical set - 1) for each. - - ACE_RMS_Scheduler_Strategy rms_strategy (3); -// ACE_RMS_Scheduler_Strategy rms_strategy (1); - - ACE_MLF_Scheduler_Strategy mlf_strategy (0); - ACE_EDF_Scheduler_Strategy edf_strategy (0); - - ACE_RMS_Dyn_Scheduler_Strategy rms_dyn_strategy (3); -// ACE_RMS_Dyn_Scheduler_Strategy rms_dyn_strategy (1); - - ACE_MUF_Scheduler_Strategy muf_strategy (0); - - result = run_schedule (rms_strategy, "RMS_Timelines", - "RMS Scheduling Strategy"); - if (result < 0) - { - printf ("run_schedule (rms_strategy, \"RMS_Timelines\", " - "\"RMS Scheduling Strategy\") returned %d\n", - result); - return 1; - } - - result = run_schedule (mlf_strategy, "MLF_Timelines", - "MLF Scheduling Strategy"); - if (result < 0) - { - printf ("run_schedule (mlf_strategy, \"MLF_Timelines\", " - "\"MLF Scheduling Strategy\") returned %d\n", - result); - return 1; - } - - result = run_schedule (edf_strategy, "EDF_Timelines", - "EDF Scheduling Strategy"); - if (result < 0) - { - printf ("run_schedule (edf_strategy, \"EDF_Timelines\", " - "\"EDF Scheduling Strategy\") returned %d\n", - result); - return 1; - } - - result = run_schedule (rms_dyn_strategy, "RMS_Dyn_Timelines", - "RMS-Dynamic Scheduling Strategy"); - if (result < 0) - { - printf ("run_schedule (rms_dyn_strategy, \"RMS_Dyn_Timelines\", " - "\"RMS-Dynamic Scheduling Strategy\") returned %d\n", - result); - return 1; - } - - result = run_schedule (muf_strategy, "MUF_Timelines", - "MUF Scheduling Strategy"); - if (result < 0) - { - printf ("run_schedule (muf_strategy, \"MUF_Timelines\", " - "\"MUF Scheduling Strategy\") returned %d\n", - result); - return 1; - } - - return 0; -} diff --git a/TAO/orbsvcs/tests/Sched/Makefile b/TAO/orbsvcs/tests/Sched/Makefile deleted file mode 100644 index 01ffe50c783..00000000000 --- a/TAO/orbsvcs/tests/Sched/Makefile +++ /dev/null @@ -1,260 +0,0 @@ -# $Id$ - -BIN = DynSched_Test -BUILD = $(BIN) -SRC = $(BIN:%=%$(VAR).cpp) -LDLIBS= -lorbsvcs -lTAO - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif - -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs/orbsvcs/Sched \ - -I$(TAO_ROOT)/orbsvcs \ - -I$(TAO_ROOT) - -ifdef quantify - CCFLAGS += -Dquantify - CPPFLAGS += -I/pkg/purify/quantify-2.1-solaris2 -endif # quantify - -#---------------------------------------------------------------------------- -# 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 -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/DynSched_Test.o .obj/DynSched_Test.so .shobj/DynSched_Test.o .shobj/DynSched_Test.so: DynSched_Test.cpp \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/DynSched.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/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/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(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/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.cpp \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/SchedEntry.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Strategies_T.cpp \ - $(ACE_ROOT)/ace/Service_Repository.h \ - $(ACE_ROOT)/ace/Service_Types.h \ - $(ACE_ROOT)/ace/Service_Types.i \ - $(ACE_ROOT)/ace/Service_Repository.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.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/Sched/SchedEntry.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/DynSched.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Sched/Strategy_Scheduler.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/Sched_Conf/Makefile b/TAO/orbsvcs/tests/Sched_Conf/Makefile deleted file mode 100644 index ecffe0d2c5e..00000000000 --- a/TAO/orbsvcs/tests/Sched_Conf/Makefile +++ /dev/null @@ -1,244 +0,0 @@ -# $Id$ - -BIN = Sched_Conf -BUILD = $(BIN) - -DUMP_SRCS = \ - Sched_Conf.cpp - -LSRC = $(DUMP_SRCS) - -SCHEDULE_OBJS=$(SCHEDULE_SRCS:.cpp=.o) -DUMP_OBJS=$(DUMP_SRCS:.cpp=.o) - -LDLIBS = -lorbsvcs -lTAO -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -Sched_Conf: $(addprefix $(VDIR),$(DUMP_OBJS)) - $(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. - -.obj/Sched_Conf.o .obj/Sched_Conf.so .shobj/Sched_Conf.o .shobj/Sched_Conf.so: Sched_Conf.cpp \ - $(ACE_ROOT)/ace/Sched_Params.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Sched_Params.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTimeBaseC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/RtecSchedulerC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Scheduler_Factory.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY - diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp deleted file mode 100644 index 4a7a1cd2b15..00000000000 --- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.cpp +++ /dev/null @@ -1,336 +0,0 @@ -// $Id$ - -// This program simulates a scheduler configuration run, -// and dumps the results of one scheduling in a C++ file. - -#include "ace/Sched_Params.h" -#include "ace/Get_Opt.h" -#include "tao/corba.h" - -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/Scheduler_Factory.h" - -const char* service_name = "ScheduleService"; - -const char* format_string = "{\"%s\", %d, {%d,%d}, {%d,%d}, " - "{%d,%d}, %7d, " - "(RtecScheduler::Criticality) %d, " - "(RtecScheduler::Importance) %d, " - "{%d,%d}, %d, %2d, %d, %d, " - "(RtecScheduler::Info_Type) %d }"; - -int -parse_args (int argc, char *argv []) -{ - ACE_Get_Opt get_opt (argc, argv, "n:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'n': - service_name = get_opt.optarg; - break; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "-n service_name " - "\n", - argv[0])); - return -1; - } - } - - return 0; -} - -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - { - return 1; - } - - // create initial data for supplier and consumer operations - const int operation_count = 8; - ACE_Scheduler_Factory::POD_RT_Info config_infos[operation_count] = { - // 20 Hz high criticality supplier - { "hi_20_S", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 500000, // period (100 ns) - RtecScheduler::HIGH_CRITICALITY, // criticality - RtecScheduler::LOW_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 1, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 20 Hz low criticality supplier - { "lo_20_S", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 500000, // period (100 ns) - RtecScheduler::LOW_CRITICALITY, // criticality - RtecScheduler::HIGH_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 1, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 10 Hz high criticality supplier - { "hi_10_S", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 1000000, // period (100 ns) - RtecScheduler::HIGH_CRITICALITY, // criticality - RtecScheduler::LOW_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 1, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 10 Hz low criticality supplier - { "lo_10_S", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 1000000, // period (100 ns) - RtecScheduler::LOW_CRITICALITY, // criticality - RtecScheduler::HIGH_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 1, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 20 Hz high criticality consumer - { "hi_20_C", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 0, // period (zero) - RtecScheduler::HIGH_CRITICALITY, // criticality - RtecScheduler::LOW_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 0, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 20 Hz low criticality consumer - { "lo_20_C", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 0, // period (zero) - RtecScheduler::LOW_CRITICALITY, // criticality - RtecScheduler::HIGH_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 0, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 10 Hz high criticality consumer - { "hi_10_C", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 0, // period (zero) - RtecScheduler::HIGH_CRITICALITY, // criticality - RtecScheduler::LOW_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 0, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - }, - // 10 Hz low criticality consumer - { "lo_10_C", // entry point - 0, // handle - {0, 0}, // worst case execution time - {0, 0}, // typical execution time (unused) - {0, 0}, // cached execution time - 0, // period (zero) - RtecScheduler::LOW_CRITICALITY, // criticality - RtecScheduler::HIGH_IMPORTANCE, // importance - {0, 0}, // quantum (unused) - 0, // threads - 0, // OS priority - 0, // Preemption subpriority - 0, // Preemption priority - RtecScheduler::OPERATION // info type - } - }; - - - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - if (CORBA::is_nil(poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil(naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (ACE_Scheduler_Factory::use_config (naming_context.in (), service_name) < 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to bind to the scheduling service.\n"), - 1); - } - // create and initialize RT_Infos in the scheduler, - // make second half of array depend on first half. - for (int i = 0; i < operation_count; ++i) - { - // create the RT_Info - config_infos[i].handle = - ACE_Scheduler_Factory::server ()->create (config_infos[i].entry_point, - TAO_TRY_ENV); - - // initialize the RT_Info - ACE_Scheduler_Factory::server ()-> - set (config_infos[i].handle, - (RtecScheduler::Criticality) config_infos[i].criticality, - config_infos[i].worst_case_execution_time, - config_infos[i].typical_execution_time, - config_infos[i].cached_execution_time, - config_infos[i].period, - (RtecScheduler::Importance) config_infos[i].importance, - config_infos[i].quantum, - config_infos[i].threads, - (RtecScheduler::Info_Type) config_infos[i].info_type, - TAO_TRY_ENV); - - // make operations in second half dependant on - // operations in the first half of the array, - // and have each called twice as a oneway call - if (i >= (operation_count / 2)) - { - ACE_Scheduler_Factory::server ()-> - add_dependency (config_infos[i].handle, - config_infos[i - (operation_count / 2)].handle, - 2, // number of calls - RtecScheduler::ONE_WAY_CALL, // type of dependency - TAO_TRY_ENV); - } - } - - RtecScheduler::RT_Info_Set_var infos; - -#if defined (__SUNPRO_CC) - // Sun C++ 4.2 warns with the code below: - // Warning (Anachronism): Temporary used for non-const - // reference, now obsolete. - // Note: Type "CC -migration" for more on anachronisms. - // Warning (Anachronism): The copy constructor for argument - // infos of type RtecScheduler::RT_Info_Set_out should take - // const RtecScheduler::RT_Info_Set_out&. - // But, this code is not CORBA conformant, because users should - // not define instances of _out types. - - RtecScheduler::RT_Info_Set_out infos_out (infos); - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos_out, TAO_TRY_ENV); -#else /* ! __SUNPRO_CC */ - ACE_Scheduler_Factory::server ()->compute_scheduling - (ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - infos.out (), TAO_TRY_ENV); -#endif /* ! __SUNPRO_CC */ - - TAO_CHECK_ENV; - - ACE_Scheduler_Factory::dump_schedule (infos.in (), - "Sched_Conf_Runtime.h", - format_string); - } - TAO_CATCH (CORBA::SystemException, sys_ex) - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - return 0; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsp b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsp deleted file mode 100644 index 498a7b79e6e..00000000000 --- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Sched_Conf" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Sched_Conf - 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 "Sched_Conf.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 "Sched_Conf.mak" CFG="Sched_Conf - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Sched_Conf - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Sched_Conf - 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)" == "Sched_Conf - 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 /W3 /GX /O2 /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 orbsvcs.lib TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /out:"Sched_Conf.exe" - -!ELSEIF "$(CFG)" == "Sched_Conf - 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 /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 orbsvcs.lib TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /out:"Sched_Conf.exe" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "Sched_Conf - Win32 Release" -# Name "Sched_Conf - Win32 Debug" -# Begin Source File - -SOURCE=.\Sched_Conf.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsw b/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.dsw deleted file mode 100644 index c3a3484e5b3..00000000000 --- a/TAO/orbsvcs/tests/Sched_Conf/Sched_Conf.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: "Sched_Conf"=.\Sched_Conf.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/Simple_Naming/Makefile b/TAO/orbsvcs/tests/Simple_Naming/Makefile deleted file mode 100644 index 0fb0a08f159..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/Makefile +++ /dev/null @@ -1,233 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lorbsvcs -lTAO - -CLNT_SRCS = clnt.cpp - -LSRC = $(CLNT_SRCS) - -CLNT_OBJS = $(CLNT_SRCS:.cpp=.o) - -BIN = clnt -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/clnt.o .obj/clnt.so .shobj/clnt.o .shobj/clnt.so: clnt.cpp clnt.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosNamingC.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/Simple_Naming/Simple_Naming.dsw b/TAO/orbsvcs/tests/Simple_Naming/Simple_Naming.dsw deleted file mode 100644 index 015f303d8bd..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/Simple_Naming.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: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/orbsvcs/tests/Simple_Naming/client.dsp b/TAO/orbsvcs/tests/Simple_Naming/client.dsp deleted file mode 100644 index a492a626e12..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/client.dsp +++ /dev/null @@ -1,88 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\orbsvcs" - -!ELSEIF "$(CFG)" == "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" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\clnt.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/orbsvcs/tests/Simple_Naming/clnt.cpp b/TAO/orbsvcs/tests/Simple_Naming/clnt.cpp deleted file mode 100644 index 67a6e64ffaf..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/clnt.cpp +++ /dev/null @@ -1,128 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/bin/Naming_Service/TAO -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the CosNaming -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "clnt.h" - -// constructor - -CosNaming_Client::CosNaming_Client (void) - : argc_ (0), - argv_ (0), - exit_later_ (0) -{ -} - -// Parses the command line arguments and returns an error status. - -int -CosNaming_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dx"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'x': - this->exit_later_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-x]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Execute client example code. - -int -CosNaming_Client::run (void) -{ - // @@ TODO, add some interesting test here, maybe creating some - // nested naming contexts and registering a number of objreferences - // in there. - // We could even use the iterators. - return 0; -} - -CosNaming_Client::~CosNaming_Client (void) -{ -} - -int -CosNaming_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// This function runs the test. - -int -main (int argc, char **argv) -{ - CosNaming_Client cosnaming_client; - - if (cosnaming_client.init (argc, argv) == -1) - return 1; - - return cosnaming_client.run (); -} diff --git a/TAO/orbsvcs/tests/Simple_Naming/clnt.h b/TAO/orbsvcs/tests/Simple_Naming/clnt.h deleted file mode 100644 index 213daf2be6e..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/clnt.h +++ /dev/null @@ -1,58 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/orbsvcs/tests -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This class tests the facilities to connect to the naming service. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "orbsvcs/CosNamingC.h" - -class CosNaming_Client - // = TITLE - // Defines a class that encapsulates behaviour of the CosNaming client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // CosNaming CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ -public: - // = Constructor and destructor. - CosNaming_Client (void); - ~CosNaming_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int parse_args (void); - // Parses the arguments passed on the command line. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - int exit_later_; - // Flag to tell server to not exit immediately. -}; diff --git a/TAO/orbsvcs/tests/Simple_Naming/svc.conf b/TAO/orbsvcs/tests/Simple_Naming/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/Simple_Naming/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/Trading/Makefile b/TAO/orbsvcs/tests/Trading/Makefile deleted file mode 100644 index f181207b760..00000000000 --- a/TAO/orbsvcs/tests/Trading/Makefile +++ /dev/null @@ -1,1157 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -shared_libs_only=1 -BIN = export_test import_test colocated_test - -MAKEFILE = Makefile -LIBNAME = libTTest -LIB = $(LIBNAME).a -SHLIB = $(LIBNAME).$(SOEXT) - -IDL_FILES = TTestC \ - TTestS \ - -FILES = $(IDL_FILES) \ - TT_Info \ - Service_Type_Exporter \ - Offer_Exporter \ - Offer_Importer - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -L$(STL_ROOT)/lib -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -LSRC = $(addsuffix .cpp,$(FILES)) -LDLIBS = -lTTest -lorbsvcs -lTAO -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# 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 -include $(ACE_ROOT)/include/makeinclude/rules.common.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nonested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.lib.GNU - -INSTALL= - -include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -.PRECIOUS: TTestS.cpp TTestS.h TTestC.cpp TTestC.h - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf $(addsuffix .h, $(IDL_FILES)) $(addsuffix .i, $(IDL_FILES)) $(addsuffix .cpp, $(IDL_FILES)) - - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/TTestC.o .obj/TTestC.so .shobj/TTestC.o .shobj/TTestC.so: TTestC.cpp TTestC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.h TTestS.i -.obj/TTestS.o .obj/TTestS.so .shobj/TTestS.o .shobj/TTestS.so: TTestS.cpp TTestS.h TTestC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.i -.obj/TT_Info.o .obj/TT_Info.so .shobj/TT_Info.o .shobj/TT_Info.so: TT_Info.cpp TT_Info.h TTestS.h TTestC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Property_Evaluator.h -.obj/Service_Type_Exporter.o .obj/Service_Type_Exporter.so .shobj/Service_Type_Exporter.o .shobj/Service_Type_Exporter.so: Service_Type_Exporter.cpp \ - Service_Type_Exporter.h TT_Info.h TTestS.h TTestC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i -.obj/Offer_Exporter.o .obj/Offer_Exporter.so .shobj/Offer_Exporter.o .shobj/Offer_Exporter.so: Offer_Exporter.cpp Offer_Exporter.h TT_Info.h \ - TTestS.h TTestC.h $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Dynamic_Property.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.i -.obj/Offer_Importer.o .obj/Offer_Importer.so .shobj/Offer_Importer.o .shobj/Offer_Importer.so: Offer_Importer.cpp Offer_Importer.h TT_Info.h \ - TTestS.h TTestC.h $(TAO_ROOT)/tao/corba.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/singletons.h TTestC.i \ - TTestS.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/orbsvcs_export.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/SequencesC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingC.i \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Policy_Manager.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Policies.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Trader.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/Trader/Attributes.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.h \ - $(TAO_ROOT)/orbsvcs/orbsvcs/CosTradingS.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/orbsvcs/tests/Trading/Offer_Exporter.cpp b/TAO/orbsvcs/tests/Trading/Offer_Exporter.cpp deleted file mode 100644 index 96d8b82d7ad..00000000000 --- a/TAO/orbsvcs/tests/Trading/Offer_Exporter.cpp +++ /dev/null @@ -1,420 +0,0 @@ -// $Id$ -#include "Offer_Exporter.h" - -template -class Simple_DP_Evaluation_Handler - : public TAO_DP_Evaluation_Handler -{ -public: - Simple_DP_Evaluation_Handler (T dp); - - virtual CORBA::Any* evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)); - -private: - - T dp_; -}; - - -template -Simple_DP_Evaluation_Handler::Simple_DP_Evaluation_Handler (T dp) - : dp_ (dp) -{ -} - -template CORBA::Any* -Simple_DP_Evaluation_Handler::evalDP (const CORBA::Any& extra_info, - CORBA::TypeCode_ptr returned_type, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CosTradingDynamic::DPEvalFailure)) -{ - T* copy; - CORBA::Any* return_value = 0; - - ACE_NEW_RETURN (return_value, CORBA::Any, 0); - ACE_NEW_RETURN (copy, T (this->dp_), 0); - - (*return_value) <<= copy; - return return_value; -} - -TAO_Offer_Exporter:: -TAO_Offer_Exporter (PortableServer::POA_ptr poa_object, - CosTrading::Register_ptr register_if, - CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException)) - : register_ (register_if) -{ - this->create_offers (); - this->admin_ = register_if->admin_if (_env); - TAO_CHECK_ENV_RETURN (_env,); -} - -TAO_Offer_Exporter::~TAO_Offer_Exporter (void) -{ -} - -void -TAO_Offer_Exporter::export_offers (CORBA::Environment& _env) -{ - ACE_DEBUG ((LM_DEBUG, "TAO_Offer_Exporter::Exporting offers.\n")); - - TAO_TRY - { - for (int i = 0; i < NUM_OFFERS; i++) - { - CosTrading::OfferId_var offer_id = - this->register_->export (this->plotter_[i]._this (TAO_TRY_ENV), - TT_Info::INTERFACE_NAMES[1], - this->props_plotters_[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, "Registered offer id: %s.\n", offer_id.in ())); - - offer_id = - this->register_->export (this->printer_[i]._this (TAO_TRY_ENV), - TT_Info::INTERFACE_NAMES[2], - this->props_printers_[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, "Registered offer id: %s.\n", offer_id.in ())); - - offer_id = - this->register_->export (this->fs_[i]._this (TAO_TRY_ENV), - TT_Info::INTERFACE_NAMES[3], - this->props_fs_[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, "Registered offer id: %s.\n", offer_id.in ())); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Exporter::export_offers"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Offer_Exporter::withdraw_offers (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId)) -{ - ACE_DEBUG ((LM_DEBUG, "TAO_Offer_Exporter::Withdrawing all offers.\n")); - - TAO_TRY - { - CORBA::ULong length; - CORBA::ULong amount = NUM_OFFERS; - - CosTrading::OfferIdSeq_var offer_id_seq = this->grab_offerids (_env); - TAO_CHECK_ENV; - - if (offer_id_seq.ptr () != 0) - { - length = offer_id_seq->length (); - for (int i = 0; i < length; i++) - { - this->register_->withdraw (offer_id_seq[i], TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Exporter::withdraw_offers"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Offer_Exporter::describe_offers (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId)) -{ - ACE_DEBUG ((LM_DEBUG, "TAO_Offer_Exporter::Describing all offers.\n")); - - TAO_TRY - { - CORBA::ULong length; - CORBA::ULong amount = NUM_OFFERS; - - CosTrading::OfferIdSeq_var offer_id_seq = this->grab_offerids (_env); - TAO_CHECK_ENV; - - if (offer_id_seq.ptr () != 0) - { - length = offer_id_seq->length (); - for (int i = 0; i < length; i++) - { - CosTrading::Register::OfferInfo_var offer_info = - this->register_->describe (offer_id_seq[i], TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Offer Id: %s\n", (const char *) offer_id_seq[i])); - ACE_DEBUG ((LM_DEBUG, "Service Type: %s\n", offer_info->type.in ())); - TT_Info::dump_properties (offer_info->properties); - ACE_DEBUG ((LM_DEBUG, "------------------------------\n")); - } - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Exporter::describe_offers"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Offer_Exporter::modify_offers (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::NotImplemented, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId, - CosTrading::IllegalPropertyName, - CosTrading::Register::UnknownPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::Register::MandatoryProperty, - CosTrading::Register::ReadonlyProperty, - CosTrading::DuplicatePropertyName)) - -{ -} - -void -TAO_Offer_Exporter:: -withdraw_offers_using_constraints (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Register::NoMatchingOffers)) -{ -} - -CosTrading::OfferIdSeq* -TAO_Offer_Exporter::grab_offerids (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::NotImplemented)) -{ - ACE_DEBUG ((LM_DEBUG, "\tTAO_Offer_Exporter::Grabbing all offer ids.\n")); - - CosTrading::OfferIdSeq_ptr offer_id_seq; - TAO_TRY - { - CORBA::ULong length = NUM_OFFERS; - CosTrading::OfferIdIterator_ptr offer_id_iter; - - this->admin_->list_offers (NUM_OFFERS, - CosTrading::OfferIdSeq_out (offer_id_seq), - CosTrading::OfferIdIterator_out (offer_id_iter), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if ((! CORBA::is_nil (offer_id_iter)) && offer_id_seq != 0) - { - CORBA::Boolean any_left = CORBA::B_FALSE; - CosTrading::OfferIdSeq_ptr id_seq; - CosTrading::OfferIdIterator_var offer_id_iter_var (offer_id_iter); - - do - { - any_left = - offer_id_iter->next_n (length, - CosTrading::OfferIdSeq_out (id_seq), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - int offers = id_seq->length (); - int old_length = offer_id_seq->length (); - offer_id_seq->length (old_length + offers); - - for (int i = 0; i < offers; i++) - (*offer_id_seq)[i + old_length] = (*id_seq)[i]; - - delete id_seq; - } while (any_left); - } - - ACE_DEBUG ((LM_DEBUG, "\tThe following offer ids are registered:\n")); - for (int len = offer_id_seq->length (), j = 0; j < len; j++) - ACE_DEBUG ((LM_DEBUG, "\tOffer Id: %s\n", (const char *)(*offer_id_seq)[j])); - - return offer_id_seq; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Exporter::grab_offerids"); - TAO_RETHROW_RETURN (offer_id_seq); - } - TAO_ENDTRY; -} - -void -TAO_Offer_Exporter::create_offers (void) -{ - const int QUEUE_SIZE = 4; - - int counter = 0; - char name[BUFSIZ]; - char description[BUFSIZ]; - CORBA::Any extra_info; - TAO_Sequences::StringSeq string_seq (QUEUE_SIZE); - TAO_Sequences::ULongSeq ulong_seq (QUEUE_SIZE); - - CosTradingDynamic::DynamicProp* dp_user_queue; - CosTradingDynamic::DynamicProp* dp_file_queue; - - // Initialize plotters - string_seq.length (QUEUE_SIZE); - ulong_seq.length (QUEUE_SIZE); - for (int i = 0; i < NUM_OFFERS; i++) - { - ACE_OS::sprintf (name, "Plotter #%d", i); - ACE_OS::sprintf (description, - "%s is a plotter. It plots stuff. Like charts.", - name); - - for (int j = 0; j < QUEUE_SIZE; j++, counter = (counter + 1) % NUM_OFFERS) - { - string_seq[j] = TT_Info::USERS [counter]; - ulong_seq[j] = counter * 10000; - } - - dp_user_queue = this->dp_plotters_[i].construct_dynamic_prop - (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_USER_QUEUE], - TAO_Sequences::_tc_StringSeq, - extra_info); - - dp_file_queue = this->dp_plotters_[i].construct_dynamic_prop - (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_FILE_SIZES_PENDING], - TAO_Sequences::_tc_ULongSeq, - extra_info); - - this->dp_plotters_[i].register_handler - (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_USER_QUEUE], - new Simple_DP_Evaluation_Handler (string_seq), - CORBA::B_TRUE); - - this->dp_plotters_[i].register_handler - (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_FILE_SIZES_PENDING], - new Simple_DP_Evaluation_Handler (ulong_seq), - CORBA::B_TRUE); - - this->props_plotters_[i].length (9); - - this->props_plotters_[i][0].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME]); - this->props_plotters_[i][0].value <<= CORBA::string_dup (name); - this->props_plotters_[i][1].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::LOCATION]); - this->props_plotters_[i][1].value <<= TT_Info::LOCATIONS[i]; - this->props_plotters_[i][2].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::DESCRIPTION]); - this->props_plotters_[i][2].value <<= CORBA::string_dup (description); - this->props_plotters_[i][3].name = CORBA::string_dup (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_NUM_COLORS]); - this->props_plotters_[i][3].value <<= (CORBA::Long)(i * 2); - this->props_plotters_[i][4].name = CORBA::string_dup (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_AUTO_LOADING]); - this->props_plotters_[i][4].value <<= CORBA::Any::from_boolean ((CORBA::Boolean) (i % 2)); - this->props_plotters_[i][5].name = CORBA::string_dup (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_COST_PER_PAGE]); - this->props_plotters_[i][5].value <<= (CORBA::Float) i; - this->props_plotters_[i][6].name = CORBA::string_dup (TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_MODEL_NUMBER]); - this->props_plotters_[i][6].value <<= CORBA::string_dup (TT_Info::MODEL_NUMBERS[i]); - this->props_plotters_[i][7].name = TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_USER_QUEUE]; - this->props_plotters_[i][7].value <<= *dp_user_queue; - this->props_plotters_[i][8].name = TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_FILE_SIZES_PENDING]; - this->props_plotters_[i][8].value <<= *dp_file_queue; - } - - // Initialize printers - for (i = 0; i < NUM_OFFERS; i++) - { - ACE_OS::sprintf (name, "Printer #%d", i); - ACE_OS::sprintf (description, - "%s is a printer. It prints stuff. Like reports.", - name); - - for (int j = 0; j < QUEUE_SIZE; j++, counter = (counter + 1) % NUM_OFFERS) - { - string_seq[j] = TT_Info::USERS [counter]; - ulong_seq[j] = counter * 10000; - } - /* - dp_user_queue = - this->dp_printers_[i].register_handler - (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_USER_QUEUE], - TT_Info::PRINTER_PROPERTY_TYPES[TT_Info::PRINTER_USER_QUEUE], - extra_info, - new Simple_DP_Evaluation_Handler (string_seq)); - - dp_file_queue = - this->dp_printers_[i].register_handler - (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_FILE_SIZES_PENDING], - TT_Info::PRINTER_PROPERTY_TYPES[TT_Info::PRINTER_FILE_SIZES_PENDING], - extra_info, - new Simple_DP_Evaluation_Handler (ulong_seq)); - */ - this->props_printers_[i].length (8); - this->props_printers_[i][0].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME]); - this->props_printers_[i][0].value <<= CORBA::string_dup (name); - this->props_printers_[i][1].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::LOCATION]); - this->props_printers_[i][1].value <<= TT_Info::LOCATIONS[i]; - this->props_printers_[i][2].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::DESCRIPTION]); - this->props_printers_[i][2].value <<= CORBA::string_dup (description); - this->props_printers_[i][3].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_COLOR]); - this->props_printers_[i][3].value <<= CORBA::Any::from_boolean ((CORBA::Boolean) (i % 2)); - this->props_printers_[i][4].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_DOUBLE_SIDED]); - this->props_printers_[i][4].value <<= CORBA::Any::from_boolean ((CORBA::Boolean) ((i + 1) % 2)); - this->props_printers_[i][5].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_COST_PER_PAGE]); - this->props_printers_[i][5].value <<= (CORBA::Float) i; - this->props_printers_[i][6].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_MODEL_NUMBER]); - this->props_printers_[i][6].value <<= CORBA::string_dup (TT_Info::MODEL_NUMBERS[i]); - this->props_printers_[i][7].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_PAGES_PER_SEC]); - this->props_printers_[i][7].value <<= (CORBA::UShort) i; - // this->props_printers_[i][8].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_USER_QUEUE]; - // this->props_printers_[i][8].value <<= dp_user_queue.in (); - // this->props_printers_[i][9].name = CORBA::string_dup (TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_FILE_SIZES_PENDING]; - // this->props_printers_[i][9].value <<= dp_file_queue.in (); - } - - // Initialize FileSystem - for (i = 0; i < NUM_OFFERS; i++) - { - CosTradingDynamic::DynamicProp_var dp_space_left; - - ACE_OS::sprintf (name, "File System #%d", i); - ACE_OS::sprintf (description, - "%s is a File System. It stores stuff. Like files.", - name); - /* - dp_space_left = - this->dp_fs_[i].register_handler - (TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::SPACE_REMAINING], - TT_Info::FILESYSTEM_PROPERTY_TYPES[TT_Info::SPACE_REMAINING], - extra_info, - new Simple_DP_Evaluation_Handler (i * 4434343)); - */ - this->props_fs_[i].length (5); - this->props_fs_[i][0].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME]); - this->props_fs_[i][0].value <<= CORBA::string_dup (name); - this->props_fs_[i][1].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::LOCATION]); - this->props_fs_[i][1].value <<= CORBA::string_dup (TT_Info::LOCATIONS[i]); - this->props_fs_[i][2].name = CORBA::string_dup (TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::DESCRIPTION]); - this->props_fs_[i][2].value <<= CORBA::string_dup (description); - this->props_fs_[i][3].name = CORBA::string_dup (TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::DISK_SIZE]); - this->props_fs_[i][3].value <<= (CORBA::ULong) (i * 2000000); - this->props_fs_[i][4].name = CORBA::string_dup (TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::PERMISSION_LEVEL]); - this->props_fs_[i][4].value <<= (CORBA::UShort) (i + 1); - // this->props_fs_[i][6].name = TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::SPACE_REMAINING]; - // this->props_fs_[i][6].value <<= dp_space_left.in (); - } -} diff --git a/TAO/orbsvcs/tests/Trading/Offer_Exporter.h b/TAO/orbsvcs/tests/Trading/Offer_Exporter.h deleted file mode 100644 index 9feb91cee4a..00000000000 --- a/TAO/orbsvcs/tests/Trading/Offer_Exporter.h +++ /dev/null @@ -1,101 +0,0 @@ -// $Id$ - -// ======================================================================== -// -// = FILE -// Offer_Exporter.h -// -// = DESCRIPTION -// Class that tests the Trading Service's Register Interface -// -// = AUTHOR -// Seth Widoff -// -// ======================================================================= - -#ifndef TAO_OFFER_EXPORTER_H -#define TAO_OFFER_EXPORTER_H - -#include "TT_Info.h" -#include "orbsvcs/Trader/Dynamic_Property.h" - -class TAO_Offer_Exporter -{ -public: - - TAO_Offer_Exporter (PortableServer::POA_ptr poa, - CosTrading::Register_ptr register_if, - CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException)); - - ~TAO_Offer_Exporter (void); - - void export_offers (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::Register::InvalidObjectRef, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::Register::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::MissingMandatoryProperty, - CosTrading::DuplicatePropertyName)); - - void withdraw_offers (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId)); - - void describe_offers (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId)); - - void modify_offers (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::NotImplemented, - CosTrading::IllegalOfferId, - CosTrading::UnknownOfferId, - CosTrading::Register::ProxyOfferId, - CosTrading::IllegalPropertyName, - CosTrading::Register::UnknownPropertyName, - CosTrading::PropertyTypeMismatch, - CosTrading::ReadonlyDynamicProperty, - CosTrading::Register::MandatoryProperty, - CosTrading::Register::ReadonlyProperty, - CosTrading::DuplicatePropertyName)); - - void withdraw_offers_using_constraints (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Register::NoMatchingOffers)); -private: - - CosTrading::OfferIdSeq* grab_offerids (CORBA::Environment& env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::NotImplemented)); - - void create_offers (void); - - CosTrading::Register_var register_; - CosTrading::Admin_var admin_; - - TT_Info::Printer printer_[NUM_OFFERS]; - TT_Info::Plotter plotter_[NUM_OFFERS]; - TT_Info::File_System fs_[NUM_OFFERS]; - - TAO_DP_Dispatcher dp_plotters_[NUM_OFFERS]; - TAO_DP_Dispatcher dp_printers_[NUM_OFFERS]; - TAO_DP_Dispatcher dp_fs_[NUM_OFFERS]; - - CosTrading::PropertySeq props_plotters_[NUM_OFFERS]; - CosTrading::PropertySeq props_printers_[NUM_OFFERS]; - CosTrading::PropertySeq props_fs_[NUM_OFFERS]; -}; - -#endif /* TAO_OFFER_EXPORTER_H */ diff --git a/TAO/orbsvcs/tests/Trading/Offer_Importer.cpp b/TAO/orbsvcs/tests/Trading/Offer_Importer.cpp deleted file mode 100644 index 1afb0f915f5..00000000000 --- a/TAO/orbsvcs/tests/Trading/Offer_Importer.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// $Id$ -#include "Offer_Importer.h" -#include "orbsvcs/Trader/Policy_Manager.h" - -TAO_Offer_Importer::TAO_Offer_Importer (CosTrading::Lookup_ptr lookup_if) - : lookup_ (lookup_if) -{ -} - -void -TAO_Offer_Importer::perform_queries (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Lookup::IllegalPreference, - CosTrading::Lookup::IllegalPolicyName, - CosTrading::Lookup::PolicyTypeMismatch, - CosTrading::Lookup::InvalidPolicyValue, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - CosTrading::DuplicatePolicyName)) -{ - TAO_TRY - { - TAO_Policy_Manager policies; - CosTrading::Lookup::SpecifiedProps desired_props; - - - // CosTrading::PropertyNameSeq prop_names (3); - const char* prop_names[] = - { - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME], - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME], - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME] - }; - - //prop_names.length (3); - //prop_names[0] = ; - // prop_names[1] = ; - // prop_names[2] = ; - - // desired_props.prop_names (CosTrading::PropertyNameSeq (3, 3, (char **) prop_names, CORBA::B_FALSE)); - desired_props._d (CosTrading::Lookup::all); - policies.exact_type_match (CORBA::B_FALSE); - policies.search_card (4*NUM_OFFERS); - policies.match_card (4*NUM_OFFERS); - policies.return_card (4*NUM_OFFERS); - for (int i = 0; i < TT_Info::NUM_QUERIES; i++) - { - ACE_DEBUG ((LM_DEBUG, "Performing query for %s.\n", TT_Info::QUERIES[i][0])); - ACE_DEBUG ((LM_DEBUG, "Query: %s\n", TT_Info::QUERIES[i][1])); - ACE_DEBUG ((LM_DEBUG, "Preferences: %s\n", TT_Info::QUERIES[i][2])); - - CosTrading::OfferSeq_ptr offer_seq_ptr = 0; - CosTrading::OfferIterator_ptr offer_iterator_ptr = 0; - CosTrading::PolicyNameSeq_ptr limits_applied_ptr = 0; - - CosTrading::OfferSeq_out offer_seq_out (offer_seq_ptr); - CosTrading::OfferIterator_out offer_iterator_out (offer_iterator_ptr); - CosTrading::PolicyNameSeq_out limits_applied_out (limits_applied_ptr); - - this->lookup_->query (TT_Info::QUERIES[i][0], - TT_Info::QUERIES[i][1], - TT_Info::QUERIES[i][2], - policies.policy_seq (), - desired_props, - 8, - offer_seq_out, - offer_iterator_out, - limits_applied_out, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosTrading::OfferSeq_var offer_seq (offer_seq_ptr); - CosTrading::OfferIterator_var offer_iterator (offer_iterator_ptr); - CosTrading::PolicyNameSeq_var limits_applied (limits_applied_ptr); - ACE_DEBUG ((LM_DEBUG, "Results:\n\n")); - - - this->display_results (*offer_seq_ptr, - offer_iterator_ptr, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Limits Applied:\n\n")); - for (int length = limits_applied_out->length (), j = 0; j < length; j++) - { - ACE_DEBUG ((LM_DEBUG, "%s\n", (const char *)(*limits_applied_out)[j])); - } - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Importer::perform_queries"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Offer_Importer::perform_federated_queries (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Lookup::IllegalPreference, - CosTrading::Lookup::IllegalPolicyName, - CosTrading::Lookup::PolicyTypeMismatch, - CosTrading::Lookup::InvalidPolicyValue, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - CosTrading::DuplicatePolicyName)) -{ -} - -void -TAO_Offer_Importer::display_results (const CosTrading::OfferSeq& offer_seq, - CosTrading::OfferIterator_ptr offer_iterator, - CORBA::Environment& _env) const - TAO_THROW_SPEC ((CORBA::SystemException)) -{ - for (int length = offer_seq.length (), i = 0; i < length; i++) - { - TT_Info::dump_properties (offer_seq[i].properties); - // TT_Info::serialize_offer (offer_seq[i]); - // CosTrading::Offer_var offer = TT_Info::deserialize_offer (); - // TT_Info::dump_properties (offer->properties); - ACE_DEBUG ((LM_DEBUG, "------------------------------\n")); - } - - TAO_TRY - { - if (! CORBA::is_nil (offer_iterator)) - { - CORBA::Boolean any_left = CORBA::B_FALSE; - - do - { - CosTrading::OfferSeq_ptr iter_offers_ptr; - CosTrading::OfferSeq_out iter_offers_out (iter_offers_ptr); - - any_left = offer_iterator->next_n (length, - iter_offers_out, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosTrading::OfferSeq_var iter_offers (iter_offers_ptr); - for (length = iter_offers->length (), i = 0; i < length; i++) - { - CosTrading::PropertySeq& props = iter_offers[i].properties; - TT_Info::dump_properties (props); - ACE_DEBUG ((LM_DEBUG, "------------------------------\n")); - } - - } while (any_left); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Offer_Importer::display_results"); - TAO_RETHROW; - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/Trading/Offer_Importer.h b/TAO/orbsvcs/tests/Trading/Offer_Importer.h deleted file mode 100644 index 641b201b978..00000000000 --- a/TAO/orbsvcs/tests/Trading/Offer_Importer.h +++ /dev/null @@ -1,64 +0,0 @@ -// $Id$ - -// ======================================================================== -// -// = FILE -// Offer_Importer.h -// -// = DESCRIPTION -// Class that tests the Trading Service's Lookup Interface -// -// = AUTHOR -// Seth Widoff -// -// ======================================================================= - -#ifndef TAO_OFFER_IMPORTER -#define TAO_OFFER_IMPORTER - -#include "TT_Info.h" - -class TAO_Offer_Importer -{ -public: - - TAO_Offer_Importer (CosTrading::Lookup_ptr lookup_if); - - void perform_queries (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Lookup::IllegalPreference, - CosTrading::Lookup::IllegalPolicyName, - CosTrading::Lookup::PolicyTypeMismatch, - CosTrading::Lookup::InvalidPolicyValue, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - CosTrading::DuplicatePolicyName)); - - void perform_federated_queries (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - CosTrading::IllegalConstraint, - CosTrading::Lookup::IllegalPreference, - CosTrading::Lookup::IllegalPolicyName, - CosTrading::Lookup::PolicyTypeMismatch, - CosTrading::Lookup::InvalidPolicyValue, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - CosTrading::DuplicatePolicyName)); - -private: - - void display_results (const CosTrading::OfferSeq& offer_seq, - CosTrading::OfferIterator_ptr offer_iterator, - CORBA::Environment& _env) const - TAO_THROW_SPEC ((CORBA::SystemException)); - - CosTrading::Lookup_var lookup_; - -}; - -#endif /* TAO_OFFER_IMPORTER */ diff --git a/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.cpp b/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.cpp deleted file mode 100644 index 4c0264e2a7b..00000000000 --- a/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.cpp +++ /dev/null @@ -1,376 +0,0 @@ -// $Id$ -#include "Service_Type_Exporter.h" - -TAO_Service_Type_Exporter:: -TAO_Service_Type_Exporter (CosTradingRepos::ServiceTypeRepository_ptr str) - : repos_ (str) -{ - this->create_types (); -} - -void -TAO_Service_Type_Exporter::remove_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - SERVICE_TYPE_REPOS::HasSubTypes)) -{ - ACE_DEBUG ((LM_DEBUG, "removing all types from the Repository.\n")); - - for (int i = NUM_TYPES - 1; i >= 0; i--) - { - TAO_TRY - { - this->repos_->remove_type (TT_Info::INTERFACE_NAMES[i], TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CosTrading::UnknownServiceType, excp) - { - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::remove_all_types"); - continue; - // TAO_RETHROW; - } - TAO_ENDTRY; - } - -} - -void -TAO_Service_Type_Exporter::add_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - SERVICE_TYPE_REPOS::ServiceTypeExists, - SERVICE_TYPE_REPOS::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - SERVICE_TYPE_REPOS::ValueTypeRedefinition, - CosTrading::UnknownServiceType, - SERVICE_TYPE_REPOS::DuplicateServiceTypeName)) -{ - - ACE_DEBUG ((LM_DEBUG, "adding all types to the Repository.\n")); - - for (int i = 0; i < NUM_TYPES; i++) - { - TAO_TRY - { - this->repos_->add_type (TT_Info::INTERFACE_NAMES[i], - this->type_structs_[i].if_name, - this->type_structs_[i].props, - this->type_structs_[i].super_types, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (SERVICE_TYPE_REPOS::ServiceTypeExists, ste) - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::add_all_types"); - - if (ste.name.in () != 0) - ACE_DEBUG ((LM_DEBUG, "Invalid name: %s\n", ste.name.in ())); - - goto add_type_label; - } - TAO_CATCH (CosTrading::IllegalPropertyName, excp) - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::add_all_types"); - - if (excp.name.in () != 0) - ACE_DEBUG ((LM_DEBUG, "Invalid name: %s\n", excp.name.in ())); - } - TAO_CATCH (SERVICE_TYPE_REPOS::ValueTypeRedefinition, vtr) - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::add_all_types"); - - if (vtr.type_1.in () != 0) - ACE_DEBUG ((LM_DEBUG, "Type One: %s\n", vtr.type_2.in ())); - if (vtr.type_2.in () != 0) - ACE_DEBUG ((LM_DEBUG, "Type Two: %s\n", vtr.type_2.in ())); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::add_all_types"); - TAO_RETHROW; - } - TAO_ENDTRY; - - add_type_label: ; - } -} - -void -TAO_Service_Type_Exporter::list_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException)) -{ - TAO_TRY - { - SERVICE_TYPE_REPOS::SpecifiedServiceTypes sst; - ACE_DEBUG ((LM_DEBUG, "listing all types in the Repository.\n")); - - sst._d (SERVICE_TYPE_REPOS::all); - SERVICE_TYPE_REPOS::ServiceTypeNameSeq_var type_names = - this->repos_->list_types (sst, TAO_TRY_ENV); - TAO_CHECK_ENV; - - for (int length = type_names->length (), i = 0; i < length; i++) - { - ACE_DEBUG ((LM_DEBUG, "type name: %s\n", (const char *)type_names[i])); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::list_all_types"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Service_Type_Exporter::describe_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType)) -{ - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, "describing all types in the Repository.\n")); - - for (int i = 0; i < NUM_TYPES; i++) - { - SERVICE_TYPE_REPOS::TypeStruct_var type_struct = - this->repos_->describe_type (TT_Info::INTERFACE_NAMES[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->dump_typestruct (TT_Info::INTERFACE_NAMES[i], type_struct.in ()); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::describe_all_types"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Service_Type_Exporter::fully_describe_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType)) -{ - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, "fully describing all types in the Repository.\n")); - - for (int i = 0; i < NUM_TYPES; i++) - { - SERVICE_TYPE_REPOS::TypeStruct_var type_struct = - this->repos_->fully_describe_type (TT_Info::INTERFACE_NAMES[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->dump_typestruct (TT_Info::INTERFACE_NAMES[i], type_struct.in ()); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TAO_Service_Type_Exporter::fully_describe_all_types"); - TAO_RETHROW; - } - TAO_ENDTRY; -} - -void -TAO_Service_Type_Exporter:: -dump_typestruct (const char* typename, - const SERVICE_TYPE_REPOS::TypeStruct& type_struct) const -{ - const char* mode_str[] = - { - "Normal", - "Read only", - "Mandatory", - "Mandatory and Readonly" - }; - - CORBA::Environment env; - ACE_DEBUG ((LM_DEBUG, "Type Name: %s\n", typename)); - ACE_DEBUG ((LM_DEBUG, "Interface Name: %s\n", type_struct.if_name.in ())); - - for (int length = type_struct.super_types.length (), i = 0; i < length; i++) - { - ACE_DEBUG ((LM_DEBUG, "Super Type: %s\n", - (const char *) type_struct.super_types[i])); - } - - for (length = type_struct.props.length (), i = 0; i < length; i++) - { - // ACE_DEBUG ((LM_DEBUG, "Property: %-20s Type: %-20s Mode: %-24s\n", - ACE_DEBUG ((LM_DEBUG, "Property: %-20s Mode: %-24s\n", - type_struct.props[i].name.in (), - mode_str[type_struct.props[i].mode])); //, - // type_struct.props[i].value_type->name (env))); - } -} - -void -TAO_Service_Type_Exporter::create_types (void) -{ - Remote_Output ro; - this->type_structs_[TT_Info::REMOTE_IO].props.length (3); - this->type_structs_[TT_Info::REMOTE_IO].props[0].name = - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::NAME]; - this->type_structs_[TT_Info::REMOTE_IO].props[0].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_string); - this->type_structs_[TT_Info::REMOTE_IO].props[0].mode = - CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY_READONLY; - this->type_structs_[TT_Info::REMOTE_IO].props[1].name = - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::LOCATION]; - this->type_structs_[TT_Info::REMOTE_IO].props[1].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_string); - this->type_structs_[TT_Info::REMOTE_IO].props[1].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::REMOTE_IO].props[2].name = - TT_Info::REMOTE_IO_PROPERTY_NAMES[TT_Info::DESCRIPTION]; - this->type_structs_[TT_Info::REMOTE_IO].props[2].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_string); - this->type_structs_[TT_Info::REMOTE_IO].props[2].mode = - CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY; - this->type_structs_[TT_Info::REMOTE_IO].if_name = - ro._interface_repository_id (); - - Plotter pl; - this->type_structs_[TT_Info::PLOTTER].props.length (6); - this->type_structs_[TT_Info::PLOTTER].super_types.length (1); - this->type_structs_[TT_Info::PLOTTER].super_types[0] = - TT_Info::INTERFACE_NAMES[TT_Info::REMOTE_IO]; - this->type_structs_[TT_Info::PLOTTER].props[0].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_NUM_COLORS]; - this->type_structs_[TT_Info::PLOTTER].props[0].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_long); - this->type_structs_[TT_Info::PLOTTER].props[0].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PLOTTER].props[1].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_AUTO_LOADING]; - this->type_structs_[TT_Info::PLOTTER].props[1].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_boolean); - this->type_structs_[TT_Info::PLOTTER].props[1].mode = - CosTradingRepos::ServiceTypeRepository::PROP_READONLY; - this->type_structs_[TT_Info::PLOTTER].props[2].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_COST_PER_PAGE]; - this->type_structs_[TT_Info::PLOTTER].props[2].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_float); - this->type_structs_[TT_Info::PLOTTER].props[2].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PLOTTER].props[3].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_MODEL_NUMBER]; - this->type_structs_[TT_Info::PLOTTER].props[3].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_string); - this->type_structs_[TT_Info::PLOTTER].props[3].mode = - CosTradingRepos::ServiceTypeRepository::PROP_READONLY; - this->type_structs_[TT_Info::PLOTTER].props[4].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_USER_QUEUE]; - this->type_structs_[TT_Info::PLOTTER].props[4].value_type = - CORBA::TypeCode::_duplicate (TAO_Sequences::_tc_StringSeq); - this->type_structs_[TT_Info::PLOTTER].props[4].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PLOTTER].props[5].name = - TT_Info::PLOTTER_PROPERTY_NAMES[TT_Info::PLOTTER_FILE_SIZES_PENDING]; - this->type_structs_[TT_Info::PLOTTER].props[5].value_type = - CORBA::TypeCode::_duplicate (TAO_Sequences::_tc_ULongSeq); - this->type_structs_[TT_Info::PLOTTER].props[5].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PLOTTER].if_name = - pl._interface_repository_id (); - - Printer pr; - this->type_structs_[TT_Info::PRINTER].props.length (7); - this->type_structs_[TT_Info::PRINTER].super_types.length (1); - this->type_structs_[TT_Info::PRINTER].super_types[0] = TT_Info::INTERFACE_NAMES[TT_Info::REMOTE_IO]; - this->type_structs_[TT_Info::PRINTER].props[0].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_COLOR]; - this->type_structs_[TT_Info::PRINTER].props[0].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_boolean); - this->type_structs_[TT_Info::PRINTER].props[0].mode = - CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY_READONLY; - this->type_structs_[TT_Info::PRINTER].props[1].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_DOUBLE_SIDED]; - this->type_structs_[TT_Info::PRINTER].props[1].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_boolean); - this->type_structs_[TT_Info::PRINTER].props[1].mode = - CosTradingRepos::ServiceTypeRepository::PROP_READONLY; - this->type_structs_[TT_Info::PRINTER].props[2].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_COST_PER_PAGE]; - this->type_structs_[TT_Info::PRINTER].props[2].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_float); - this->type_structs_[TT_Info::PRINTER].props[2].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PRINTER].props[3].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_MODEL_NUMBER]; - this->type_structs_[TT_Info::PRINTER].props[3].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_string); - this->type_structs_[TT_Info::PRINTER].props[3].mode = - CosTradingRepos::ServiceTypeRepository::PROP_READONLY; - this->type_structs_[TT_Info::PRINTER].props[4].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_PAGES_PER_SEC]; - this->type_structs_[TT_Info::PRINTER].props[4].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_ushort); - this->type_structs_[TT_Info::PRINTER].props[4].mode = - CosTradingRepos::ServiceTypeRepository::PROP_READONLY; - this->type_structs_[TT_Info::PRINTER].props[5].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_USER_QUEUE]; - this->type_structs_[TT_Info::PRINTER].props[5].value_type = - CORBA::TypeCode::_duplicate (TAO_Sequences::_tc_StringSeq); - this->type_structs_[TT_Info::PRINTER].props[5].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PRINTER].props[6].name = - TT_Info::PRINTER_PROPERTY_NAMES[TT_Info::PRINTER_FILE_SIZES_PENDING]; - this->type_structs_[TT_Info::PRINTER].props[6].value_type = - CORBA::TypeCode::_duplicate (TAO_Sequences::_tc_ULongSeq); - this->type_structs_[TT_Info::PRINTER].props[6].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::PRINTER].if_name = - pr._interface_repository_id (); - - File_System fs; - this->type_structs_[TT_Info::FILESYSTEM].props.length (3); - this->type_structs_[TT_Info::FILESYSTEM].super_types.length (1); - this->type_structs_[TT_Info::FILESYSTEM].super_types[0] = TT_Info::INTERFACE_NAMES[TT_Info::REMOTE_IO]; - this->type_structs_[TT_Info::FILESYSTEM].props[0].name = - TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::DISK_SIZE]; - this->type_structs_[TT_Info::FILESYSTEM].props[0].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_ulong); - this->type_structs_[TT_Info::FILESYSTEM].props[0].mode = - CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY_READONLY; - this->type_structs_[TT_Info::FILESYSTEM].props[1].name = - TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::SPACE_REMAINING]; - this->type_structs_[TT_Info::FILESYSTEM].props[1].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_ulong); - this->type_structs_[TT_Info::FILESYSTEM].props[1].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::FILESYSTEM].props[2].name = - TT_Info::FILESYSTEM_PROPERTY_NAMES[TT_Info::PERMISSION_LEVEL]; - this->type_structs_[TT_Info::FILESYSTEM].props[2].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_ushort); - this->type_structs_[TT_Info::FILESYSTEM].props[2].mode = - CosTradingRepos::ServiceTypeRepository::PROP_NORMAL; - this->type_structs_[TT_Info::FILESYSTEM].if_name = - fs._interface_repository_id (); - - PostScript_Printer ps; - this->type_structs_[TT_Info::PS_PRINTER].props.length (1); - this->type_structs_[TT_Info::PS_PRINTER].super_types.length (1); - this->type_structs_[TT_Info::PS_PRINTER].super_types[0] = - TT_Info::INTERFACE_NAMES[TT_Info::PRINTER]; - this->type_structs_[TT_Info::PS_PRINTER].props[0].name = - TT_Info::PS_PRINTER_PROPERTY_NAMES[TT_Info::VERSION]; - this->type_structs_[TT_Info::PS_PRINTER].props[0].value_type = - CORBA::TypeCode::_duplicate (CORBA::_tc_ushort); - this->type_structs_[TT_Info::PS_PRINTER].props[0].mode = - CosTradingRepos::ServiceTypeRepository::PROP_MANDATORY_READONLY; - this->type_structs_[TT_Info::PS_PRINTER].if_name = - ps._interface_repository_id (); -} diff --git a/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.h b/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.h deleted file mode 100644 index 6a9fd615794..00000000000 --- a/TAO/orbsvcs/tests/Trading/Service_Type_Exporter.h +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ - -// ======================================================================== -// -// = FILE -// Offer_Exporter.h -// -// = DESCRIPTION -// Class that tests the Trading Service's Service Type Repository -// -// = AUTHOR -// Seth Widoff -// -// ======================================================================= - -#ifndef TAO_SERVICE_TYPE_EXPORTER_H -#define TAO_SERVICE_TYPE_EXPORTER_H - -#include "TT_Info.h" - -class TAO_Service_Type_Exporter -{ -public: - - typedef CosTradingRepos::ServiceTypeRepository SERVICE_TYPE_REPOS; - - TAO_Service_Type_Exporter (CosTradingRepos::ServiceTypeRepository_ptr str); - - void remove_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType, - SERVICE_TYPE_REPOS::HasSubTypes)); - - void add_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - SERVICE_TYPE_REPOS::ServiceTypeExists, - SERVICE_TYPE_REPOS::InterfaceTypeMismatch, - CosTrading::IllegalPropertyName, - CosTrading::DuplicatePropertyName, - SERVICE_TYPE_REPOS::ValueTypeRedefinition, - CosTrading::UnknownServiceType, - SERVICE_TYPE_REPOS::DuplicateServiceTypeName)); - - void list_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException)); - - void describe_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType)); - - void fully_describe_all_types (CORBA::Environment& _env) - TAO_THROW_SPEC ((CORBA::SystemException, - CosTrading::IllegalServiceType, - CosTrading::UnknownServiceType)); - -private: - - void create_types (void); - - void dump_typestruct (const char* typename, - const SERVICE_TYPE_REPOS::TypeStruct& type_struct) const; - - CosTradingRepos::ServiceTypeRepository_var repos_; - SERVICE_TYPE_REPOS::TypeStruct type_structs_[NUM_TYPES]; -}; - -#endif /* TAO_SERVICE_TYPE_EXPORTER_H */ diff --git a/TAO/orbsvcs/tests/Trading/TT_Info.cpp b/TAO/orbsvcs/tests/Trading/TT_Info.cpp deleted file mode 100644 index b6b9431b761..00000000000 --- a/TAO/orbsvcs/tests/Trading/TT_Info.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// $Id$ -#include "TT_Info.h" -#include "orbsvcs/Trader/Property_Evaluator.h" - -const char* TT_Info::INTERFACE_NAMES[] = -{ - "Remote_IO", - "Plotter", - "Printer", - "File_System", - "PostScript_Printer" -}; - -const char* TT_Info::REMOTE_IO_NAME = "Remote_IO"; - -const char* TT_Info::REMOTE_IO_PROPERTY_NAMES[] = -{ - "Name", - "Location", - "Description" -}; - -const char* TT_Info::PLOTTER_NAME = "Plotter"; - -const char* TT_Info::PLOTTER_PROPERTY_NAMES[] = -{ - "Num_Colors", - "Auto_Loading", - "Cost_Per_Page", - "Model_Number", - "User_Queue", - "File_Sizes_Pending" -}; - -const char* TT_Info::PRINTER_NAME = "Printer"; - -const char* TT_Info::PRINTER_PROPERTY_NAMES[] = -{ - "Color", - "Double_Sided", - "Cost_Per_Page", - "Model_Number", - "Pages_Per_Sec", - "User_Queue", - "File_Sizes_Pending" -}; - -const char* TT_Info::FILESYSTEM_NAME = "File_System"; - -const char* TT_Info::FILESYSTEM_PROPERTY_NAMES[] = -{ - "Disk_Space", - "Space_Remaining", - "Permission_Level" -}; - -const char* TT_Info::PS_PRINTER_PROPERTY_NAMES[] = -{ - "Version" -}; - -const char* TT_Info::PS_PRINTER_NAME = "PostScript_Printer"; - -const char* TT_Info::LOCATIONS[] = -{ - "Bryan 509", - "Bryan 503", - "Dunker 102", - "Jolley 408", - "Lopata 401", - "January 110", - "Cupples I 30", - "Cupples II 201", - "Urbauer 321", - "Umrath 302", - "Wilson 110", - "Olin 239", - "Simon 238", - "Rebstock 232", - "McMillan 123" -}; - -const char* TT_Info::USERS[] = -{ - "sbw1", - "schmidt", - "naga", - "alex", - "mk1", - "marina", - "sumedh", - "sergio", - "coryan", - "cdgill", - "levine", - "jxh", - "irfan", - "nanbor", - "eea1", - "brunsch" -}; - -const char* TT_Info::MODEL_NUMBERS[] = -{ - "HP238293892bn2398", - "PK92839nkse092309", - "8328323n293kljs98", - "29309sjdkq34jksd2", - "09q834efjhqw834q3", - "q9834fdkjwq0934kf", - "q834jfda09q834djk", - "kajsd09q384kjda90", - "9p83q4jklsdj098q3", - "09a834ojfda09wu3r", - "09234kejdfq934jed", - "0q83kjefd09384jda", - "asdfj0283jkdf0923", - "kladfp72wu34j230f", - "9q834jidlj234ujof" -}; - -const int TT_Info::NUM_QUERIES = 3; -const char* TT_Info::QUERIES[][3] = -{ - {INTERFACE_NAMES[REMOTE_IO], "", ""}, - {INTERFACE_NAMES[REMOTE_IO], "Location ~ 'Cupples'", ""}, - {INTERFACE_NAMES[PLOTTER], "'sbw1' in User_Queue", "min Cost_Per_Page"} -}; - -void -TT_Info::dump_properties (const CosTrading::PropertySeq& prop_seq) -{ - CORBA::Environment env; - TAO_Property_Evaluator prop_eval (prop_seq); - - for (int length = prop_seq.length (), k = 0; k < length; k++) - { - CORBA::Any* value = 0; - CORBA::TypeCode_ptr tc = 0; - ACE_DEBUG ((LM_DEBUG, "%-15s: ", prop_seq[k].name.in ())); - TAO_TRY - { - value = prop_eval.property_value(k, env); - TAO_CHECK_ENV; - - tc = value->type (); - } - TAO_CATCHANY - { - ACE_DEBUG ((LM_DEBUG, "Error retrieving property value.\n")); - } - TAO_ENDTRY; - - if (tc == 0) - continue; - else if (tc->equal (TAO_Sequences::_tc_StringSeq, env)) - { - TAO_Sequences::StringSeq* str_seq_ptr; - (*value) >>= str_seq_ptr; - - TAO_Sequences::StringSeq_var str_seq (str_seq_ptr); - for (int length = str_seq->length (), i = 0; i < length; i++) - ACE_DEBUG ((LM_DEBUG, "%s ", (const char *) str_seq[i])); - - ACE_DEBUG ((LM_DEBUG, "\n")); - } - else if (tc->equal (TAO_Sequences::_tc_ULongSeq, env)) - { - TAO_Sequences::ULongSeq* ulong_seq_ptr; - (*value) >>= ulong_seq_ptr; - - TAO_Sequences::ULongSeq_var ulong_seq (ulong_seq_ptr); - for (int length = ulong_seq->length (), i = 0; i < length; i++) - ACE_DEBUG ((LM_DEBUG, "%d ", ulong_seq[i])); - - ACE_DEBUG ((LM_DEBUG, "\n")); - } - else - CORBA::Any::dump (*value); - } -} - -void -TT_Info::serialize_offer (const CosTrading::Offer& offer) -{ - //TAO_OutputCDR stream; - //CORBA::Environment env; - - //stream.encode (CosTrading::_tc_Offer, &offer, 0, env); - // ACE_Message_Block cdr = ACE_Message_Block::duplicate (stream.begin ()); -} diff --git a/TAO/orbsvcs/tests/Trading/TT_Info.h b/TAO/orbsvcs/tests/Trading/TT_Info.h deleted file mode 100644 index 539816cfdd1..00000000000 --- a/TAO/orbsvcs/tests/Trading/TT_Info.h +++ /dev/null @@ -1,139 +0,0 @@ -// $Id$ - -#ifndef TAO_TRADER_TEST_UTILS_H -#define TAO_TRADER_TEST_UTILS_H - -#include "TTestS.h" -#include "orbsvcs/SequencesC.h" -#include "orbsvcs/CosTradingC.h" - -class TT_Info -{ -public: - - static void dump_properties (const CosTrading::PropertySeq& prop_seq); - // Dump the contents of this property sequence. - - static void serialize_offer (const CosTrading::Offer& offer); - - enum INTERFACES - { - REMOTE_IO, - PLOTTER, - PRINTER, - FILESYSTEM, - PS_PRINTER - }; - - class Remote_Output : public POA_TAO_Trader_Test::Remote_Output - { - public: - Remote_Output (void) {} - }; - - class Printer : public POA_TAO_Trader_Test::Printer - { - public: - Printer (void) {} - }; - - class Plotter : public POA_TAO_Trader_Test::Plotter - { - public: - Plotter (void) {} - }; - - class File_System : public POA_TAO_Trader_Test::File_System - { - public: - File_System (void) {} - }; - - class PostScript_Printer : public POA_TAO_Trader_Test::PostScript_Printer - { - public: - PostScript_Printer (void) {} - }; - -#define NUM_TYPES 5 - static const char* INTERFACE_NAMES[]; - - // = Remote IO property descriptions - - enum REMOTE_IO_PROPERTIES - { - NAME, - LOCATION, - DESCRIPTION - }; - - static const char* REMOTE_IO_NAME; - static const char* REMOTE_IO_PROPERTY_NAMES[]; - - // = Plotter property descriptions - - enum PLOTTER_PROPERTIES - { - PLOTTER_NUM_COLORS, - PLOTTER_AUTO_LOADING, - PLOTTER_COST_PER_PAGE, - PLOTTER_MODEL_NUMBER, - PLOTTER_USER_QUEUE, - PLOTTER_FILE_SIZES_PENDING - }; - - static const char* PLOTTER_NAME; - static const char* PLOTTER_PROPERTY_NAMES[]; - - // = Printer property descriptions - - enum PRINTER_PROPERTIES - { - PRINTER_COLOR, - PRINTER_DOUBLE_SIDED, - PRINTER_COST_PER_PAGE, - PRINTER_MODEL_NUMBER, - PRINTER_PAGES_PER_SEC, - PRINTER_USER_QUEUE, - PRINTER_FILE_SIZES_PENDING - }; - - static const char* PRINTER_NAME; - static const char* PRINTER_PROPERTY_NAMES[]; - - // = File System Property Descriptions - - enum FILESYSTEM_PROPERTIES - { - DISK_SIZE, - SPACE_REMAINING, - PERMISSION_LEVEL - }; - - static const char* FILESYSTEM_NAME; - static const char* FILESYSTEM_PROPERTY_NAMES[]; - - // = PostScript Printer property descriptions. - - enum PS_PRINTER_PROPERTIES - { - VERSION - }; - - static const char* PS_PRINTER_NAME; - static const char* PS_PRINTER_PROPERTY_NAMES[]; - - // = Offer Info - -#define NUM_OFFERS 15 - static const char* LOCATIONS[]; - static const char* USERS[]; - static const char* MODEL_NUMBERS[]; - - // = Query info - - static const int NUM_QUERIES; - static const char* QUERIES[][3]; -}; - -#endif /* TAO_TRADER_TEST_UTILS_H */ diff --git a/TAO/orbsvcs/tests/Trading/TTest.idl b/TAO/orbsvcs/tests/Trading/TTest.idl deleted file mode 100644 index 8594e59529c..00000000000 --- a/TAO/orbsvcs/tests/Trading/TTest.idl +++ /dev/null @@ -1,30 +0,0 @@ -// $Id$ - -module TAO_Trader_Test -{ - -interface Remote_Output -{ -}; - -interface Plotter : Remote_Output -{ -}; - -interface Printer : Remote_Output -{ -}; - -interface File_System : Remote_Output -{ -}; - -interface PostScript_Printer : Remote_Output -{ -}; - -}; - - - - diff --git a/TAO/orbsvcs/tests/Trading/colocated_test.cpp b/TAO/orbsvcs/tests/Trading/colocated_test.cpp deleted file mode 100644 index 6d836a8e272..00000000000 --- a/TAO/orbsvcs/tests/Trading/colocated_test.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// $Id$ - -#include "Offer_Exporter.h" -#include "Offer_Importer.h" -#include "Service_Type_Exporter.h" -#include "ace/Auto_Ptr.h" -#include "orbsvcs/Trader/Trader.h" -#include "orbsvcs/Trader/Service_Type_Repository.h" - -int -main (int argc, char** argv) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Create a Service Type Repository and a Trader Object. - TAO_Service_Type_Repository type_repos; - auto_ptr trader = - TAO_Trader_Factory::create_linked_trader (); - TAO_Support_Attributes_Impl& sup_attr = trader->support_attributes (); - TAO_Trading_Components_Impl& trd_comp = trader->trading_components (); - - // Set the service type repository - sup_attr.type_repos (type_repos._this (TAO_TRY_ENV)); - TAO_CHECK_ENV; - - // Obtain the Service Type Repository. - ACE_DEBUG ((LM_DEBUG, "Obtaining the Service Type Repository.\n")); - //CosTrading::TypeRepository_ptr obj = lookup_if->type_repos (TAO_TRY_ENV); - CosTrading::TypeRepository_ptr obj = sup_attr.type_repos (); - TAO_CHECK_ENV; - - // Narrow the Service Type Repository. - ACE_DEBUG ((LM_DEBUG, "Narrowing the Service Type Repository.\n")); - CosTradingRepos::ServiceTypeRepository_var tr = - CosTradingRepos::ServiceTypeRepository::_narrow (obj, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Service Type Exporter tests - ACE_DEBUG ((LM_DEBUG, "Running the Service Type Exporter tests.\n")); - TAO_Service_Type_Exporter type_exporter (tr.ptr ()); - - type_exporter.remove_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.add_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.list_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.describe_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.fully_describe_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Offer Exporter tests - ACE_DEBUG ((LM_DEBUG, "Running the Offer Exporter tests.\n")); - TAO_Offer_Exporter offer_exporter - (root_poa.ptr (), - CosTrading::Register::_duplicate (trd_comp.register_if ()), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.withdraw_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.export_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.describe_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // offer_exporter.modify_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.describe_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.withdraw_offers_using_constraints (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.describe_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - offer_exporter.withdraw_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.export_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.describe_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Offer Importer tests - ACE_DEBUG ((LM_DEBUG, "Running the Offer Exporter tests.\n")); - TAO_Offer_Importer offer_importer - (CosTrading::Lookup::_duplicate (trd_comp.lookup_if ())); - TAO_CHECK_ENV; - - offer_importer.perform_queries (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Begin trading! - //if (orb->run () == -1) - //ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Trader Export Tests Failed"), -1); - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/Trading/export_test.cpp b/TAO/orbsvcs/tests/Trading/export_test.cpp deleted file mode 100644 index 0ca7763fc67..00000000000 --- a/TAO/orbsvcs/tests/Trading/export_test.cpp +++ /dev/null @@ -1,137 +0,0 @@ -// $Id$ - -#include "Offer_Exporter.h" -#include "Offer_Importer.h" -#include "Service_Type_Exporter.h" -#include "ace/Auto_Ptr.h" -#include "orbsvcs/Trader/Trader.h" -#include "orbsvcs/Trader/Service_Type_Repository.h" - -int -main (int argc, char** argv) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (poa_object.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_ERROR, "Bootstrap to the Lookup interface.\n")); - CORBA::Object_var trading_obj = - orb->resolve_initial_references ("TradingService"); - - if (CORBA::is_nil (trading_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - - // Narrow the lookup interface. - ACE_DEBUG ((LM_DEBUG, "Narrowing the lookup interface.\n")); - CosTrading::Lookup_var lookup_if = - CosTrading::Lookup::_narrow (trading_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Obtain the register interface - ACE_DEBUG ((LM_DEBUG, "Obtaining the register interface.\n")); - CosTrading::Register_ptr register_if = - lookup_if->register_if (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Obtain the Service Type Repository. - ACE_DEBUG ((LM_DEBUG, "Obtaining the Service Type Repository.\n")); - CosTrading::TypeRepository_ptr obj = lookup_if->type_repos (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Narrow the Service Type Repository. - ACE_DEBUG ((LM_DEBUG, "Narrowing the Service Type Repository.\n")); - CosTradingRepos::ServiceTypeRepository_var tr = - CosTradingRepos::ServiceTypeRepository::_narrow (obj, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Service Type Exporter tests - ACE_DEBUG ((LM_DEBUG, "Running the Service Type Exporter tests.\n")); - TAO_Service_Type_Exporter type_exporter (tr.ptr ()); - - // type_exporter.remove_all_types (TAO_TRY_ENV); - // TAO_CHECK_ENV; - - type_exporter.add_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - //type_exporter.list_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.describe_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - type_exporter.fully_describe_all_types (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Offer Exporter tests - ACE_DEBUG ((LM_DEBUG, "Running the Offer Exporter tests.\n")); - TAO_Offer_Exporter offer_exporter (root_poa.ptr (), - register_if, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.withdraw_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.export_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.describe_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // offer_exporter.modify_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.describe_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.withdraw_offers_using_constraints (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - //offer_exporter.describe_offers (TAO_TRY_ENV); - //TAO_CHECK_ENV; - - offer_exporter.withdraw_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.export_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_exporter.describe_offers (TAO_TRY_ENV); - TAO_CHECK_ENV; - - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Begin trading! - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Trader Export Tests Failed"), -1); - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/Trading/import_test.cpp b/TAO/orbsvcs/tests/Trading/import_test.cpp deleted file mode 100644 index 50b948cc20a..00000000000 --- a/TAO/orbsvcs/tests/Trading/import_test.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -#include "Offer_Importer.h" - -int -main (int argc, char** argv) -{ - TAO_TRY - { - // Initialize ORB. - CORBA::ORB_var orb = - CORBA::ORB_init (argc, argv, "internet", TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::Object_var poa_object = - orb->resolve_initial_references("RootPOA"); - - // Bootstrap to the Lookup interface. - ACE_DEBUG ((LM_ERROR, "Bootstrap to the Lookup interface.\n")); - CORBA::Object_var trading_obj = - orb->resolve_initial_references ("TradingService"); - - if (CORBA::is_nil (trading_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - // Narrow the lookup interface. - ACE_DEBUG ((LM_DEBUG, "Narrowing the lookup interface.\n")); - CosTrading::Lookup_var lookup_if = - CosTrading::Lookup::_narrow (trading_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Run the Offer Importer tests - ACE_DEBUG ((LM_DEBUG, "Running the Offer Importer tests.\n")); - TAO_Offer_Importer offer_importer (lookup_if.in ()); - - offer_importer.perform_queries (TAO_TRY_ENV); - TAO_CHECK_ENV; - - offer_importer.perform_federated_queries (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "Trader Import Tests Failed."), -1); - } - TAO_ENDTRY; -} diff --git a/TAO/orbsvcs/tests/Trading/svc.conf b/TAO/orbsvcs/tests/Trading/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/orbsvcs/tests/Trading/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/orbsvcs/tests/start_services b/TAO/orbsvcs/tests/start_services deleted file mode 100755 index 4f1afd22272..00000000000 --- a/TAO/orbsvcs/tests/start_services +++ /dev/null @@ -1,108 +0,0 @@ -#! /bin/sh -# $Id$ - -# = TITLE -# Restart script -# -# = AUTHOR -# Michael Kircher (mk1@cs.wustl.edu) -# -# = DESCRIPTION -# This script restarts the Naming, Scheduling and Event Service, -# if "clean" is specified as a parameter, then the old -# services are only killed and not restarted. - -#### ps options are platform-specific. -if [ `uname -s` = 'SunOS' ]; then - ps_opts=-ef -else - ps_opts=aux -fi - -#### Get the user name -if [ "$LOGNAME" ]; then - #### LOGNAME is preserved across su - login=$LOGNAME -else - #### whoami returns the users login, which changes across su - login=`whoami` -fi - -#### Set TAO_ROOT, if it wasn't set. -if [ ! "$TAO_ROOT" ]; then - if [ "$ACE_ROOT" ]; then - TAO_ROOT=$ACE_ROOT/TAO - else - echo $0: you must set ACE_ROOT or TAO_ROOT! - exit 1 - fi -fi - -#### Set up a signal handler. -trap "/bin/rm -f /tmp/pids$login" 0 1 2 3 15 - -echo // Killing the old services - -if [ -s /tmp/nameservicepid_$login ]; then - kill `cat /tmp/nameservicepid_$login` - /bin/rm /tmp/nameserviceior_$login /tmp/nameservicepid_$login -fi - -ps $ps_opts | grep Service | grep $login | grep -v grep | cut -c10-17 > /tmp/pids$login - -if [ -s /tmp/pids$login ]; then - pids=`cat /tmp/pids$login` - kill $pids -fi - -#### stop here if "ss clean" was called -if [ "$1" -a "$1" = 'clean' ]; then - exit -fi - -echo // Initializing the log file - -echo // Logfile for the script "ss" which startes Name, Scheduling and Event Service > /tmp/logfile_$login - -nameserviceport=0 -schedulerserviceport=0 -eventserviceport=0 - -cd $TAO_ROOT/orbsvcs/Naming_Service -echo $ ./Naming_Service -ORBport $nameserviceport -ORBobjrefstyle url \ - -o /tmp/nameserviceior_$login \ - -p /tmp/nameservicepid_$login >> /tmp/logfile_$login -./Naming_Service -ORBport $nameserviceport -ORBobjrefstyle url \ - -o /tmp/nameserviceior_$login \ - -p /tmp/nameservicepid_$login > /tmp/logfile_Naming_Service_$login 2>&1 & - -sleep 5 - -IOR=`cat /tmp/nameserviceior_$login` - -echo // The IOR of the Naming Service: $IOR - -echo // Started Naming Service on port $nameserviceport - -cd $TAO_ROOT/orbsvcs/Scheduling_Service -echo $ ./Scheduling_Service -ORBnameserviceior $IOR -ORBport $schedulerserviceport >> /tmp/logfile_$login -./Scheduling_Service -ORBnameserviceior $IOR -ORBport $schedulerserviceport > /tmp/logfile_Scheduling_Service_$login 2>&1 & - -sleep 5 - -echo // Started Scheduling Service on port $schedulerserviceport - -cd $TAO_ROOT/orbsvcs/Event_Service -echo $ ./Event_Service -ORBnameserviceior $IOR -ORBport $eventserviceport >> /tmp/logfile_$login -./Event_Service -ORBnameserviceior $IOR -ORBport $eventserviceport > /tmp/logfile_Event_Service_$login 2>&1 & - -echo // Started Event Service on port $eventserviceport - -echo "// Enjoy the use ;-)" -ps $ps_opts | grep Service | grep -v grep - -echo -echo Note: if you will be running an application that uses the Naming Service, -echo you might want to set the NameService environment variable, like this: -echo 't/csh: % setenv NameService `cat /tmp/nameserviceior_'$login'`' -echo 'bash: $ export NameService=`cat /tmp/nameserviceior_'$USER'`' diff --git a/TAO/orbsvcs/tests/tests.dsw b/TAO/orbsvcs/tests/tests.dsw deleted file mode 100644 index dbd471f7593..00000000000 --- a/TAO/orbsvcs/tests/tests.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "EC_Multiple"=.\EC_Multiple\EC_Multiple.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Event_Latency"=.\Event_Latency\Event_Latency.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test b/TAO/performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test deleted file mode 100755 index f75e46c2bdf..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id$ -# -# Spawns MT_Cubit server and client executables on a single host. - -usage="usage: $0 [-n ] [-t] " - -user=`whoami` -ior_file=/tmp/MT_Cubit-ior.${user} -iterations=1000 -client_exec_prefix=time - -if [ "$HOSTTYPE" = "lynxos" ]; then - server_exec_prefix='prio 30' - tmp='/tmp/' -else - server_exec_prefix= - tmp= -fi - - -######## -######## Interpret command arguments. -######## -while getopts ?n:t arg; do - case $arg in - n ) iterations=$OPTARG ;; - t ) tmp='/tmp/' ;; - '?' ) echo $usage; exit 0 ;; - esac -done -shift `expr $OPTIND - 1` - -if [ $# -ne 1 ]; then - echo $usage - exit 1 -fi -threads=`expr $1 + 1` - - -######## -######## Enable signal handler. -######## -trap 'kill -1 $server_pid; /bin/rm -f $ior_file' 0 1 2 15 - - -######## -######## Start server and save its pid. -######## -$server_exec_prefix ./server -s -f $ior_file -t $threads > \ - ${tmp}server.log 2>&1 & -server_pid=$! - -sleep 4 - - -######## -######## Start client. -######## -$client_exec_prefix ./client -s -f $ior_file -t $threads -n $iterations > \ - ${tmp}client-${threads}.log 2>&1 diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Makefile b/TAO/performance-tests/Cubit/TAO/MT_Cubit/Makefile deleted file mode 100644 index 22163a681e8..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Makefile +++ /dev/null @@ -1,103 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO $(MATHLIB) - -IDL_SRC = cubitC.cpp cubitS.cpp -PROG_SRCS = server.cpp \ - cubit_i.cpp \ - Task_Client.cpp \ - client.cpp \ - Util_Thread.cpp \ - tmplinst.cpp - -LSRC = $(IDL_SRC) $(PROG_SRCS) - -CUBIT_SVR_OBJS = \ - cubitC.o \ - cubitS.o \ - server.o \ - cubit_i.o \ - Task_Client.o \ - Util_Thread.o \ - tmplinst.o - -CUBIT_CLIENT_OBJS = \ - cubitC.o \ - cubitS.o \ - Task_Client.o \ - client.o \ - Util_Thread.o \ - tmplinst.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 modifications to variables imported by includes above. -#CPPFLAGS += -DACE_NLOGGING - -#CXX := purify $(CXX) - -LDFLAGS += -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/tao/compat - -# pccTimer will eventually get integrated into ACE. It is specific for ClassiX on VME -ifdef CHORUS - LSRC += pccTimer.cpp - CUBIT_CLIENT_OBJS += pccTimer.o - CUBIT_SVR_OBJS += pccTimer.o - LDLIBS += -lOrb -else - LDLIBS += -lOrb-mt -endif - -# -ifdef quantify - CPPFLAGS += -I/pkg/purify/quantify-3.0-solaris2 -endif - -.PRECIOUS: cubitC.h cubitC.i cubitC.cpp cubitS.h cubitS.i cubitS.cpp - -server: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CUBIT_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf cubitC.* cubitS.* cubitS_T.* - -# 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/TAO/performance-tests/Cubit/TAO/MT_Cubit/README b/TAO/performance-tests/Cubit/TAO/MT_Cubit/README deleted file mode 100644 index e0b79a019f3..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/README +++ /dev/null @@ -1,206 +0,0 @@ -// $Id$ - -The MT-Cubit example --------------------- - -COMPILING ---------- - -Makefile is provided. Use make to compile. Except, see below for -VxWorks-specific instructions for building the client. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - - -OPTIONS -------- -Options are case sensitive, e.g., "-U" has a different meaning than "-u". - - -(1) server: - -./server [-p ] // starting port - [-h ] // IP address to use - [-t ] // # of servant threads to create - [-s ] // Do NOT use the naming service - [-f ] // specify a file to output all ior's - [-m ] // Use multiple priorities for threads - [-U ] // Run the server utilization test - // use the same option on the client - [-r ] // Run the thread-per-rate test - -[-p ] is the port number at which the server will start the - first (and highest priority) servant. Successive servants will be - created starting at (port_num+1). The -t parameter specifies the total - number of servants. - - Default Value: ACE_DEFAULT_SERVER_PORT /* see $ACE/ace/OS.h for actual number value */ - -[-h ] indicates the IP address the ORB should bind to. - This is useful when a machine has more than one network interface. - - Default Value: Whatever ACE_OS::hostname () returns, which depends on the platform. - -[-t ] tells the server how many servants to create. - - Default Value: 2 - -[-s ] Disables the use of the naming service to register the servants. - - Default Value: Use naming service enabled. - -[-f ] Use to specify a file to write all the iors from the - different servants out to disk. - - Default Value: nil, which means not to write the iors to disk. - -[-m ] For the 1 to n low priority servants, this parameter indicates - the use of a range of priorities for the threads. - - Default Value: Disabled. One priority will be used for the - low priority threads. - -[-U ] Run the server utilization test. This option overrides the "-t" - option. This option sets the number threads to one. NOTE: to use - this option successfully, you should also use "-U" on the client - side. - - Default Value: Disabled. To enable, specify "-U" on the - command line. - -[-r] turn on the thread-per-rate tests. (Priority inversion tests) - - Default Value: Disabled. - -The server will print the IOR of the servants, but it is not required -by the client. - - - -(2) client: - -./client [] // ORB options, e.g., "-ORBobjrefstyle url" - [-d ] // what datatype to use for calls - [-n ] // number of CORBA calls to make. - [-t ] // number of client threads to create - [-f ] // specify a file to dump the iors - [-r] // use thread-per-rate test. - [-o] // makes client use oneway calls instead - [-x] // makes a call to servant to shutdown - [-u ] // run the client utilization test for seconds - [-U ] // run the servant utilization test for seconds - [-1] // use one to n test. - [-g ] // choose the granularity of timing calls - [-c] // obtain number of context switches. - [-s] // makes client *NOT* use the name service - [-m] // use multiple priorities for the low priority client. - -[-d ] is one of the following: - - 0 Octet - 1 Short - 2 Long - 3 Struct of the above 3 types - - Default Value: 0 - -[-n ] is the number of CORBA twoway calls to be made - - Default Value: 1000 - -[-t ] is the total number of concurrent clients to be - created. The clients will have successively decreasing - priorities if "-m" is specified. - - Default Value: 2 - -[-f ] Use to specify a file to write all the iors from the - different servants out to disk. - - Default Value: nil, which means not to write the iors to disk. - -[-r] turn on the thread-per-rate tests. (Priority inversion tests) - - Default Value: Disabled. - -[-o] enables oneway calls instead of two-way calls. The oneway call - is a noop call (for now). - - Default Value: Disabled - -[-x] makes the client call the shutdown() method on the servant which - invokes the shutdown() method on the ORB and causes it to exit. - - Default Value: Disabled - -[-u] runs the client utilization test. This option overrides the "-t" - option to specify one client. - - Default Value: Disabled - -[-U] runs the *servant* utilization test. This option should be used - in conjunction with the server's "-U" option. - - Default Value: Disabled - -[-1] runs one to n test. One servant services all low priority clients. - - Default Value: Disabled - -[-g ] choose the granularity of timing the CORBA calls. - This option should disappear sometime in the future, together with - all the modifications done to support this. - - What happens when this options is not used, is that (1) we start a - timer, (2) invoke the CORBA call, (3) stop the timer after call - returns. Some platforms have a very coarse grain timer (e.g. 10 - msec) and timing individual calls does not report very accurate - latency results. - - This option enables a way to (1) start the timer, (2) invoke - calls, and (3) stop the timer. This way, we get a - better sense of the average latency of the CORBA calls. - - The downside is that the mechanism to enforce the frequency of calls - (i.e., 20 Hz, 10Hz, etc) is in conflict with this option. Such - mechanism depends on the individual time for each call to enforce - the calling frequency. - - Default Value: 1 (time each CORBA call) - -[-c] Obtain number of context switches. - - Default Value: Disabled - -[-s] Makes client *NOT* use the name service - - Default Value: Disabled. Will try to use the naming service. - -[-m] Use multiple priorities for the low priority client - - Default Value: Disabled. Will use one priority for all low priority clients. - - -VXWORKS specifics ------------------ - -To build the client for VxWorks, for running the server and client -on a single target: - - % make BIN=client ACELIB= LDLIBS="$ACE_ROOT/ace/.obj/High_Res_Timer.o $ACE_ROOT/ace/.obj/gethrtime.o $ACE/ace/.obj/Stats.o $ACE/ace/.obj/Log_Msg.o" - -To run the server and client on a single target: - - -> iam "" - -> ld < server - -> ld < client - -> spa server, "-s", "-f", "ior.txt", "-t", "2" - -> spa client, "-s", "-f", "ior.txt", "-t", "2", "-n", "1000" - -RESULTS -------- - -The client prints the latency observed by the high priority client, -and the average latency observed by the low priority clients. Jitter -(standard deviation of the latency) is also printed by the client. diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/README.tests b/TAO/performance-tests/Cubit/TAO/MT_Cubit/README.tests deleted file mode 100644 index c05572a1019..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/README.tests +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -Note: this file is in very rough version. Updates are coming soon. - -Server Utilization Test ------------------------ -on the server side: - ./server -s -f /project/doc/sergio/ior -U - -on the client side: - ./client -s -f /project/doc/sergio/ior -U 60 - -Client Utilization Test ------------------------ -on the server side: - ./server -s -f /project/doc/sergio/ior -t 1 - -on the client side: - ./client -s -f /project/doc/sergio/ior -u 60 - -NOTE: before running the client side, edit the ior file and replace -the ip address to make it have it's numeric form. - - -Latency Test ------------------------- --- configuration: - (1) su to root when running Solaris or LynxOS. - (2) Make yourself an Administrator in Windows NT - -on the server side: - ./server -s -f ior -t 2 & -on the client side: - ./client -s -f ior -t 2 -n 4000 -x - -NOTE: run_same is a script that automates the running of the latency -tests. This script output everything to a file. - -Context Switch Test -------------------- -Use the same arguments as the latency test, and add "-c" - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp deleted file mode 100644 index 29cb263d76d..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.cpp +++ /dev/null @@ -1,1062 +0,0 @@ -// $Id$ - -#include "Task_Client.h" -#include "ace/Stats.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -Task_State::Task_State (int argc, char **argv) - : key_ ("Cubit"), - loop_count_ (1000), - thread_count_ (2), - datatype_ (CB_OCTET), - argc_ (argc), - argv_ (argv), - thread_per_rate_ (0), - global_jitter_array_ (0), - shutdown_ (0), - oneway_ (0), - use_name_service_ (1), - one_to_n_test_ (0), - context_switch_test_ (0), - ior_file_ (0), - granularity_ (1), - use_utilization_test_ (0), - high_priority_loop_count_ (0), - use_multiple_priority_ (0), - utilization_task_started_ (0), - run_server_utilization_test_ (0), - util_time_ (0) -{ - ACE_Get_Opt opts (argc, argv, "U:mu:sn:t:d:rxof:g:1c"); - int c; - int datatype; - - while ((c = opts ()) != -1) - switch (c) { - case 'g': - granularity_ = ACE_OS::atoi (opts.optarg); - if (granularity_ < 1) - granularity_ = 1; - break; - case 'U': - run_server_utilization_test_ = 1; - util_time_ = ACE_OS::atoi (opts.optarg); - break; - case 'm': - use_multiple_priority_ = 1; - break; - case 'c': - context_switch_test_ = 1; - break; - case '1': - one_to_n_test_ = 1; - break; - case 'u': - use_utilization_test_ = 1; - util_time_ = ACE_OS::atoi (opts.optarg); - break; - case 's': - use_name_service_ = 0; - break; - case 'f': - ior_file_ = ACE_OS::strdup (opts.optarg); - break; - case 'o': - oneway_ = 1; - break; - case 'x': - shutdown_ = 1; - break; - case 'r': - thread_per_rate_ = 1; - break; - case 'd': - datatype = ACE_OS::atoi (opts.optarg); - switch (datatype) - { - case CB_OCTET: - ACE_DEBUG ((LM_DEBUG, "Testing Octets\n")); - datatype_ = CB_OCTET; - break; - case CB_LONG: - ACE_DEBUG ((LM_DEBUG, "Testing Longs\n")); - datatype_ = CB_LONG; - break; - case CB_STRUCT: - ACE_DEBUG ((LM_DEBUG, "Testing Structs\n")); - datatype_ = CB_STRUCT; - break; - case CB_SHORT: - default: - ACE_DEBUG ((LM_DEBUG, "Testing Shorts\n")); - datatype_ = CB_SHORT; - break; - } - continue; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case 't': - thread_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, "usage: %s" - "[-d datatype Octet=0, Short=1, Long=2, Struct=3]" - " [-n num_calls]" - " [-t num_threads]" - " [-f ior_file]" - " [-x] // makes a call to servant to shutdown" - " [-o] // makes client use oneway calls instead" - " [-s] // makes client *NOT* use the name service" - " [-g granularity_of_timing]" - "\n", argv [0])); - } - - if (thread_per_rate_ == 1) - thread_count_ = 4; - - if (run_server_utilization_test_ == 1) - { - shutdown_ = 1; - thread_count_ = 1; - datatype_ = CB_OCTET; - } - - if (use_utilization_test_ == 1) - { - thread_count_ = 1; - } - - // allocate the array of character pointers. - ACE_NEW (iors_, - char *[thread_count_]); - - if (ior_file_ != 0) - { - FILE *ior_file = ACE_OS::fopen (ior_file_, "r"); - char buf[BUFSIZ]; - u_int i = 0; - int j = 0; - - while (ACE_OS::fgets (buf, BUFSIZ, ior_file) != 0 && i < thread_count_) - { - j = ACE_OS::strlen (buf); - buf[j - 1] = 0; // this is to delete the "\n" that was read from the file. - iors_[i] = ACE_OS::strdup (buf); - i++; - } - - ACE_OS::fclose (ior_file); - } - - // thread_count_ + 2 because there is one utilization thread also - // wanting to begin at the same time the clients begin && the main - // thread wants to know when clients will start running to get - // accurate context switch numbers. - if (thread_per_rate_ == 0) - { - if (use_utilization_test_ == 1) - // If we are to use the utilization test, include it in the - // barrier count. See description of this variable in header - // file. - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_ + 2)); - } - else - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_ + 1)); - } - } - else - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_)); - } - - ACE_NEW (semaphore_, - ACE_Thread_Semaphore (0)); - ACE_NEW (latency_, - double [thread_count_]); - ACE_NEW (global_jitter_array_, - double *[thread_count_]); - ACE_NEW (count_, - u_int [thread_count_]); -} - -Client::Client (ACE_Thread_Manager *thread_manager, Task_State *ts, u_int id) - : ACE_MT (ACE_Task (thread_manager)), - ts_ (ts), - id_ (id) -{ -} - -void -Client::put_latency (double *jitter, - double latency, - u_int thread_id, - u_int count) -{ - ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, ts_->lock_)); - - ts_->latency_[thread_id] = latency; - ts_->global_jitter_array_[thread_id] = jitter; - ts_->count_[thread_id] = count; - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %u msec\n", - latency)); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %f msec\n", - latency)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ -} - -double -Client::get_high_priority_latency (void) -{ - return (double) ts_->latency_ [0]; -} - -double -Client::get_low_priority_latency (void) -{ - if (ts_->thread_count_ == 1) - return 0; - - double l = 0; - - for (u_int i = 1; i < ts_->thread_count_; i++) - l += (double) ts_->latency_[i]; - - return l / (double) (ts_->thread_count_ - 1); -} - -double -Client::get_latency (u_int thread_id) -{ - return ACE_static_cast (double, ts_->latency_ [thread_id]); -} - -double -Client::get_high_priority_jitter (void) -{ - double jitter = 0.0; - double average = get_high_priority_latency (); - double number_of_samples = ts_->high_priority_loop_count_ / ts_->granularity_; - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences - // each latency has from the average - for (u_int i = 0; i < number_of_samples; i ++) - { - double difference = - ts_->global_jitter_array_ [0][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [0][i] * 1000 + 0.5)); - } - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - - ACE_OS::fprintf (stderr, "high priority jitter:\n"); - stats.print_summary (3, 1000, stderr); - - return sqrt (jitter / (number_of_samples - 1)); -} - -double -Client::get_low_priority_jitter (void) -{ - if (ts_->thread_count_ == 1) - return 0; - - double jitter = 0.0; - double average = get_low_priority_latency (); - double number_of_samples = 0; - //(ts_->thread_count_ - 1) * (ts_->loop_count_ / ts_->granularity_); - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences each - // latency has from the average. - for (u_int j = 1; j < ts_->thread_count_; j ++) - { - number_of_samples += ts_->count_[j]; - for (u_int i = 0; i < ts_->count_[j] / ts_->granularity_; i ++) - { - double difference = - ts_->global_jitter_array_[j][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [j][i] * 1000 + 0.5)); - } - } - - ACE_OS::fprintf (stderr, "low priority jitter:\n"); - stats.print_summary (3, 1000, stderr); - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter / (number_of_samples - 1)); -} - -double -Client::get_jitter (u_int id) -{ - double jitter = 0.0; - double average = get_latency (id); - double number_of_samples = ts_->count_[id] / ts_->granularity_; - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences each - // latency has from the average. - for (u_int i = 0; i < ts_->count_[id] / ts_->granularity_; i ++) - { - double difference = - ts_->global_jitter_array_[id][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [id][i] * 1000 + 0.5)); - } - - ACE_OS::fprintf (stderr, "jitter for thread id %d:\n", id); - stats.print_summary (3, 1000, stderr); - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter / (number_of_samples - 1)); -} - -int -Client::svc (void) -{ - Cubit_ptr cb = 0; - CORBA::ORB_var orb; - CORBA::Object_var objref (0); - CORBA::Object_var naming_obj (0); - CORBA::Environment env; - - double frequency = 0.0; - - /// Add "-ORBobjrefstyle url" argument to the argv vector for the - //orb to / use a URL style to represent the ior. - - // Convert the argv vector into a string. - ACE_ARGV tmp_args (ts_->argv_); - char tmp_buf[BUFSIZ]; - - ACE_OS::strcpy (tmp_buf, - tmp_args.buf ()); - - // Add the argument. - ACE_OS::strcat (tmp_buf, - " -ORBobjrefstyle url " - " -ORBrcvsock 32768 " - " -ORBsndsock 32768 "); - - // Convert back to argv vector style. - ACE_ARGV tmp_args2 (tmp_buf); - int argc = tmp_args2.argc (); - - char *const *argv = tmp_args2.argv (); - - u_int naming_success = CORBA::B_FALSE; - - orb = CORBA::ORB_init (argc, - argv, - "internet", - env); - - if (env.exception () != 0) - { - env.print_exception ("ORB_init()\n"); - return -1; - } - - if (ts_->use_name_service_ != 0) - { - naming_obj = - orb->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n")); - else - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), env); - } - - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, ts_->lock_, -1)); - - if (ts_->thread_per_rate_ == 0) - { - if (this->id_ == 0) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm the high priority client, my id is %d.\n", - this->id_)); - frequency = CB_HIGH_PRIORITY_RATE; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a low priority client, my id is %d.\n", - this->id_)); - frequency = CB_LOW_PRIORITY_RATE; - } - } - else - switch (this->id_) - { - case CB_20HZ_CONSUMER: - frequency = CB_20HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_20HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_10HZ_CONSUMER: - frequency = CB_10HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_10HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_5HZ_CONSUMER: - frequency = CB_5HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_5HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_1HZ_CONSUMER: - frequency = CB_1HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_1HZ_CONSUMER_RATE, - this->id_)); - break; - default: - ACE_DEBUG ((LM_DEBUG, "(%t) Invalid Thread ID!!!!\n", this->id_)); - } - - TAO_TRY - { - // if the naming service was resolved successsfully ... - if (!CORBA::is_nil (this->naming_context_.in ())) - { - ACE_DEBUG ((LM_DEBUG, - " (%t) ----- Using the NameService resolve() method" - " to get cubit objects -----\n")); - - // Construct the key for the name service lookup. - CosNaming::Name mt_cubit_context_name (1); - mt_cubit_context_name.length (1); - mt_cubit_context_name[0].id = CORBA::string_dup ("MT_Cubit"); - - objref = - this->naming_context_->resolve (mt_cubit_context_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->mt_cubit_context_ = - CosNaming::NamingContext::_narrow (objref.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - char *buffer; - int l = ACE_OS::strlen (ts_->key_) + 3; - ACE_NEW_RETURN (buffer, - char[l], - -1); - - ACE_OS::sprintf (buffer, - "%s%02d", - (char *) ts_->key_, - this->id_); - - // Construct the key for the name service lookup. - CosNaming::Name cubit_name (1); - cubit_name.length (1); - cubit_name[0].id = CORBA::string_dup (buffer); - - objref = this->mt_cubit_context_->resolve (cubit_name, - TAO_TRY_ENV); - - if (TAO_TRY_ENV.exception () != 0 - || CORBA::is_nil (objref.in ())) - { - ACE_DEBUG ((LM_DEBUG, - " (%t) resolve() returned nil\n")); - TAO_TRY_ENV.print_exception ("Attempt to resolve() a cubit object" - "using the name service Failed!\n"); - } - else - { - naming_success = CORBA::B_TRUE; - ACE_DEBUG ((LM_DEBUG, - " (%t) Cubit object resolved to the name \"%s\".\n", - buffer)); - } - } - - if (naming_success == CORBA::B_FALSE) - { - char *my_ior = ts_->iors_[this->id_]; - - // if we are running the "1 to n" test make sure all low - // priority clients use only 1 low priority servant. - if (this->id_ > 0 && ts_->one_to_n_test_ == 1) - my_ior = ts_->iors_[1]; - - if (my_ior == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Must specify valid factory ior key with -k option," - " naming service, or ior filename\n"), - -1); - - objref = orb->string_to_object (my_ior, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - - if (CORBA::is_nil (objref.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%t) string_to_object or NameService->resolve() Failed!\n"), - -1); - - // Narrow the CORBA::Object reference to the stub object, - // checking the type along the way using _is_a. - cb = Cubit::_narrow (objref.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (cb)) - ACE_ERROR_RETURN ((LM_ERROR, - "Create cubit failed\n"), - 1); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Binding succeeded\n")); - - CORBA::String_var str = - orb->object_to_string (cb, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "(%t) CUBIT OBJECT connected <%s>\n", - str.in ())); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Waiting for other threads to " - "finish binding..\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("get_object"); - return 1; - } - TAO_ENDTRY; - } - - // Wait for all the client threads to be initialized before going - // any further. - ts_->barrier_->wait (); - ACE_DEBUG ((LM_DEBUG, - "(%t) Everyone's done, here I go!!\n")); - - if (ts_->oneway_ == 1) - ACE_DEBUG ((LM_DEBUG, - "(%t) **** USING ONEWAY CALLS ****\n")); - - // Perform the tests. - int result = this->run_tests (cb, - ts_->loop_count_, - this->id_, - ts_->datatype_, - frequency); - - if (ts_->thread_per_rate_ == 1 && this->id_ == (ts_->thread_count_ - 1) ) - ts_->semaphore_->release (ts_->thread_count_ - 1); - else - ts_->semaphore_->release (); - - if (result == -1) - return -1; - - if (ts_->shutdown_) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) CALLING SHUTDOWN() ON THE SERVANT\n")); - cb->shutdown (env); - if (env.exception () != 0) - { - ACE_ERROR ((LM_ERROR, - "Shutdown of the server failed!\n")); - env.print_exception ("shutdown() call failed.\n"); - } - } - - return 0; -} - -int -Client::run_tests (Cubit_ptr cb, - u_int loop_count, - u_int thread_id, - Cubit_Datatypes datatype, - double frequency) -{ - CORBA::Environment env; - u_int i = 0; - u_int call_count = 0; - u_int error_count = 0; - u_int low_priority_client_count = ts_->thread_count_ - 1; - double *my_jitter_array; - - if (id_ == 0 && ts_->thread_count_ > 1) - ACE_NEW_RETURN (my_jitter_array, - double [(loop_count/ts_->granularity_)*30], // magic number, for now. - -1); - else - ACE_NEW_RETURN (my_jitter_array, - double [loop_count/ts_->granularity_*15], - -1); - - double latency = 0; - double sleep_time = (1 / frequency) * ACE_ONE_SECOND_IN_USECS * ts_->granularity_; // usec - double delta = 0; - - // time to wait for utilization tests to know when to stop. - ACE_Time_Value max_wait_time (ts_->util_time_, 0); - ACE_Countdown_Time countdown (&max_wait_time); - -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; -#endif /* CHORUS */ - double real_time = 0.0; - - ACE_High_Res_Timer timer_; - - // Make the calls in a loop. - - for (i = 0; - // keep running for loop count, OR - i < loop_count || - // keep running if we are the highest priority thread and at - // least another lower client thread is running, OR - (id_ == 0 && ts_->thread_count_ > 1) || - // keep running if test is thread_per_rate and we're not the - // lowest frequency thread. - (ts_->thread_per_rate_ == 1 && id_ < (ts_->thread_count_ - 1)) || - // continous loop if we are running the utilization test - (ts_->use_utilization_test_ == 1) || - // continous loop if we are running the SERVER utilization test - (ts_->run_server_utilization_test_ == 1); - i++) - { - // Elapsed time will be in microseconds. - ACE_Time_Value delta_t; - - // start timing a call - if ( (i % ts_->granularity_) == 0 && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { - // delay a sufficient amount of time to be able to enforce - // the calling frequency (i.e., 20Hz, 10Hz, 5Hz, 1Hz). - ACE_Time_Value tv (0, - (u_long) ((sleep_time - delta) < 0 - ? 0 - : (sleep_time - delta))); - ACE_OS::sleep (tv); - -#if defined (CHORUS) - pstartTime = pccTime1Get(); -#else /* CHORUS */ - timer_.start (); -#endif /* !CHORUS */ - } - - if (ts_->oneway_ == 0) - { - switch (datatype) - { - case CB_OCTET: - { - // Cube an octet. - CORBA::Octet arg_octet = func (i), ret_octet = 0; - -#if defined (NO_ACE_QUANTIFY) - /* start recording quantify data from here */ - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - ret_octet = cb->cube_octet (arg_octet, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_octet()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_octet = arg_octet * arg_octet * arg_octet; - - if (arg_octet != ret_octet) - { - ACE_ERROR ((LM_ERROR, - "** cube_octet(%d) (--> %d)\n", - arg_octet, - ret_octet)); - error_count++; - } - call_count++; - break; - } - case CB_SHORT: - // Cube a short. - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_short = cb->cube_short (arg_short, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_short()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, - "** cube_short(%d) (--> %d)\n", - arg_short , - ret_short)); - error_count++; - } - break; - } - // Cube a long. - - case CB_LONG: - { - call_count++; - - CORBA::Long arg_long = func (i); - CORBA::Long ret_long; - -#if defined (NO_ACE_QUANTIFY) - /* start recording quantify data from here */ - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_long = cb->cube_long (arg_long, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_long()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_long = arg_long * arg_long * arg_long; - - if (arg_long != ret_long) - { - ACE_ERROR ((LM_ERROR, - "** cube_long(%d) (--> %d)\n", - arg_long, - ret_long)); - error_count++; - } - break; - } - - case CB_STRUCT: - // Cube a "struct" ... - { - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_struct = cb->cube_struct (arg_struct, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_struct()\n"); - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - } - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - ACE_ERROR ((LM_ERROR, "**cube_struct error!\n")); - error_count++; - } - - break; - } - default: - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t); %s:%d; unexpected datatype: %d\n", - datatype), -1); - } - } - else - { - call_count++; -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - cb->noop (env); -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - if (env.exception () != 0) - { - env.print_exception ("oneway call noop()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) noop() call failed\n"), - 2); - } - } - - // stop the timer - if ( (i % ts_->granularity_) == (ts_->granularity_ - 1) && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { -#if defined (CHORUS) - pstopTime = pccTime1Get(); -#else /* CHORUS */ - // if CHORUS is not defined just use plain timer_.stop (). - timer_.stop (); - timer_.elapsed_time (delta_t); -#endif /* !CHORUS */ - - // Calculate time elapsed -#if defined (ACE_LACKS_FLOATING_POINT) -# if defined (CHORUS) - real_time = (pstopTime - pstartTime) / ts_->granularity_; -# else /* CHORUS */ - // Store the time in usecs. - real_time = (delta_t.sec () * ACE_ONE_SECOND_IN_USECS + - delta_t.usec ()) / ts_->granularity_; -# endif /* !CHORUS */ - delta = ((40 * fabs (real_time) / 100) + (60 * delta / 100)); // pow(10,6) - latency += real_time * ts_->granularity_; - my_jitter_array [i/ts_->granularity_] = real_time; // in units of microseconds. - // update the latency array, correcting the index using the granularity -#else /* ACE_LACKS_FLOATING_POINT */ - - // Store the time in secs. - -#if defined (VXWORKS) - // @@ David, these comments are to temporarily fix what - // seems a bug in the ACE_Long_Long class that is used to - // calc the elapsed time. It seems that subtraction of two - // ACE_Long_Long are not done correctly when the least - // significant value has wrapped around. For example to - // subtract these values: 00ff1001:00000001 minus - // 00ff1000:ffffffff would give a huge number, instead of - // giving 2. - - // This is only occuring in VxWorks. - // I'll leave these here to debug it later. - double tmp = (double)delta_t.sec (); - double tmp2 = (double)delta_t.usec (); - if (tmp > 100000) - { - tmp = 0.0; - tmp2 = 2000.0; - fprintf (stderr, "tmp > 100000!, delta_t.usec ()=%u\n", delta_t.usec ()); - } - - real_time = tmp + tmp2 / (double)ACE_ONE_SECOND_IN_USECS; -#else - real_time = ((double) delta_t.sec () + - (double) delta_t.usec () / (double) ACE_ONE_SECOND_IN_USECS); -#endif /* VXWORKS */ - - real_time /= ts_->granularity_; - - delta = ((0.4 * fabs (real_time * ACE_ONE_SECOND_IN_USECS)) + (0.6 * delta)); // pow(10,6) - latency += (real_time * ts_->granularity_); - my_jitter_array [i/ts_->granularity_] = real_time * ACE_ONE_SECOND_IN_MSECS; -#endif /* !ACE_LACKS_FLOATING_POINT */ - } // END OF IF : - // if ( (i % ts_->granularity_) == (ts_->granularity_ - 1) && - // (ts_->use_utilization_test_ == 0) && - // (ts_->run_server_utilization_test_ == 0) - // ) - - if ( ts_->thread_per_rate_ == 1 && id_ < (ts_->thread_count_ - 1) ) - { - if (ts_->semaphore_->tryacquire () != -1) - break; - } - else - // if We are the high priority client. - // if tryacquire() succeeded then a client must have done a - // release () on it, thus we decrement the client counter. - if (id_ == 0 && ts_->thread_count_ > 1) - { - if (ts_->semaphore_->tryacquire () != -1) - { - low_priority_client_count --; - // if all clients are done then break out of loop. - if (low_priority_client_count <= 0) - break; - } - } - - if (ts_->use_utilization_test_ == 1 || - ts_->run_server_utilization_test_ == 1) - { - countdown.update (); - if (max_wait_time == ACE_Time_Value::zero) - { - ts_->loop_count_ = call_count; - break; - } - } - - } /* end of for () */ - - if (id_ == 0) - ts_->high_priority_loop_count_ = call_count; - - // perform latency stats onlt if we are not running the utilization - // tests. - if (call_count > 0 && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { - if (error_count == 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - double calls_per_second = (call_count * ACE_ONE_SECOND_IN_USECS) / latency; -#endif /* ACE_LACKS_FLOATING_POINT */ - - latency /= call_count; // calc average latency - - if (latency > 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) cube average call ACE_OS::time\t= %u usec, \t" - "%u calls/second\n", - latency, - calls_per_second)); - - this->put_latency (my_jitter_array, - latency, - thread_id, - call_count); -#else - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) cube average call ACE_OS::time\t= %f msec, \t" - "%f calls/second\n", - latency * 1000, - 1 / latency)); - - this->put_latency (my_jitter_array, - latency * ACE_ONE_SECOND_IN_MSECS, - thread_id, - call_count); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - else - { - // still we have to call this function to store a valid array pointer. - this->put_latency (my_jitter_array, - 0, - thread_id, - call_count); - - ACE_DEBUG ((LM_DEBUG, - "*** Warning: Latency, %f, is less than or equal to zero." - " Precision may have been lost.\n, latency")); - } - } - ACE_DEBUG ((LM_DEBUG, - "%d calls, %d errors\n", - call_count, - error_count)); - } - - return 0; -} diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h deleted file mode 100644 index 27dfc1195c2..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Task_Client.h +++ /dev/null @@ -1,264 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Task_Client.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (TASK_CLIENT_H) -#define TASK_CLIENT_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include "ace/ARGV.h" -#include "ace/Sched_Params.h" -#include "ace/High_Res_Timer.h" - -#include "orbsvcs/CosNamingC.h" -#include "cubitC.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#include - -// @@ Should we put this into a more general file, e.g., OS.h? -// -// I will integrate this, together with the sqrt() function when -// the implementation is complete. --Sergio. -#if defined (ACE_LACKS_FLOATING_POINT) -#define double ACE_UINT32 -#define fabs(X) ((X) >= 0 ? (X) : -(X)) -// the following is just temporary, until we finish the sqrt() -// implementation. -#define sqrt(X) (1) -#endif /* ACE_LACKS_FLOATING_POINT */ - -#if !defined (ACE_HAS_THREADS) -class NOOP_ACE_Barrier -{ -public: - NOOP_ACE_Barrier (int) {} - void wait (void) {} -}; -#define ACE_Barrier NOOP_ACE_Barrier -#endif /* ACE_HAS_THREADS */ - -// Arbitrary generator used by the client to create the numbers to be -// cubed. -static inline int -func (u_int i) -{ - return i - 117; -} - -enum Cubit_Datatypes -{ - // = The various datatypes the client and the server can exchange. - CB_OCTET, - CB_SHORT, - CB_LONG, - CB_STRUCT, - - // = Rate constants. - CB_20HZ_CONSUMER = 0, - CB_10HZ_CONSUMER = 1, - CB_5HZ_CONSUMER = 2, - CB_1HZ_CONSUMER = 3, - - CB_20HZ_CONSUMER_RATE = 20, - CB_10HZ_CONSUMER_RATE = 10, - CB_5HZ_CONSUMER_RATE = 5, - CB_1HZ_CONSUMER_RATE = 1, - - CB_HIGH_PRIORITY_RATE = 20, - CB_LOW_PRIORITY_RATE = 10 -}; - -class Task_State -{ - // = TITLE - // Maintains state common to multiple Cubit clients. - // - // = DESCRIPTION - // This class maintains state which is common to the potentially - // multiple concurrent clients. -public: - ACE_Barrier *barrier_; - // Barrier for the multiple clients to synchronize after binding to - // the servants. - - Task_State (int argc, char **argv); - // Constructor. Takes the command line arguments, which are later - // passed into ORB_init. - - CORBA::String key_; - // All cubit objects will have this as prefix to its key. - - u_int loop_count_; - // Number of times to loop, making calls. - - u_int thread_count_; - // Number of concurrent clients to create. - - double *latency_; - // Array to store the latency for every client, indexed by - // thread-id. - - int *ave_latency_; - // Int array to store the latencies. - - Cubit_Datatypes datatype_; - // Which datatype to use to make the calls. - - ACE_SYNCH_MUTEX lock_; - // Lock to protect access to this object. - - // = Command line arguments. - int argc_; - char **argv_; - - u_int thread_per_rate_; - // Flag for the thread_per_rate test. - - double **global_jitter_array_; - // This array stores the latency seen by each client for each - // request, to be used later to compute jitter. - - u_int *count_; - // This array stores the call count of each thread. They will not - // always have the same call count. - - u_int shutdown_; - // Flag that indicates if we are going to call the shutdown methos - // for the servant. - - u_int oneway_; - // Flag that indicates if we are going to use oneway calls instead - // of two-way. - - u_int use_name_service_; - // Flag that say if we are using the or not the name service. - - u_int one_to_n_test_; - // indicates whether we are running the "1 to n" test, which has 1 - // low priority servant and n low priority clients. - - u_int context_switch_test_; - // flag to run context switch test - - char **iors_; - // Array of pointers used to hold the ior strings read from the ior file - // that the server created. - - char *ior_file_; - // Name of the filename that the server used to store the iors. - - u_int granularity_; - // this is the granularity of the timing of the CORBA requests. A - // value of 5 represents that we will take time every 5 requests, - // instead of the default of every request (1). - - u_int use_utilization_test_; - // flag to indicate we are to use the utilization test. By default - // we do not use it, because it can cause starvation with real-time - // threads - - u_int high_priority_loop_count_; - // Number of times the high priority looped. We are going to loop - // as long as there is low priority clients running, so as to - // maintain high priority traffic as long as low priority traffic is - // going through. - - ACE_Thread_Semaphore *semaphore_; - // semaphore in order for the high priority client to keep running - // as long as the low priority clients are running. See explanation - // of "high_priority_loop_count_" member in this class. - - u_int use_multiple_priority_; - // flag to indicate we are to use multiple priorities for the low - // priority clients. By default we use only one priority for all - // client threads. - - int utilization_task_started_; - // Indicates whether the utilization task has started. - - ACE_High_Res_Timer timer_; - // global timer to be started by the utilization task. - - u_int run_server_utilization_test_; - // flag to indicate we are to run the utilization test of the server. - // This means we are not sending requests at a determined frequency, - // but rather "let it rip"! - - u_int util_time_; - // the amount of time in seconds that the utilization test will run. -}; - -class Client : public ACE_Task -{ - // = TITLE - // The Cubit client. - // - // = DESCRIPTION - // This class implements the Cubit Client, which is an active object. - // `n' threads execute svc, and make 2way CORBA calls on the server -public: - Client (ACE_Thread_Manager *, Task_State *ts, u_int id); - // Constructor, with a pointer to the common task state. - - virtual int svc (void); - // The thread function. - - double get_high_priority_latency (void); - double get_low_priority_latency (void); - double get_high_priority_jitter (void); - double get_low_priority_jitter (void); - double get_latency (u_int thread_id); - double get_jitter (u_int id); - // Accessors to get the various measured quantities. - -private: - int run_tests (Cubit_ptr, - u_int, - u_int, - Cubit_Datatypes, - double frequency); - // Makes the calls to the servant. - - void put_latency (double *jitter, - double latency, - u_int thread_id, - u_int count); - // Records the latencies in the . - - int parse_args (int, char **); - // Parses the arguments. - - Task_State *ts_; - // Pointer to shared state. - - u_int id_; - // unique id of the task - - CosNaming::NamingContext_var naming_context_; - // Object reference to the naming service. - - CosNaming::NamingContext_var mt_cubit_context_; - // Object reference to the cubit context "MT_Cubit". -}; - -#endif /* !defined (TASK_CLIENT_H) */ diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp deleted file mode 100644 index 8a33b046b0b..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -#include "Util_Thread.h" - -Util_Thread::Util_Thread (Task_State *ts, - ACE_Thread_Manager *thr_mgr) - : ACE_MT (ACE_Task (thr_mgr)), - done_ (0), - number_of_computations_ (0), - ts_ (ts) -{ -} - -int -Util_Thread::svc (void) -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - // thr_getprio () on the current thread should never fail. - ACE_OS::thr_getprio (thr_handle, prio); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Utilization Thread created with priority %d, " - "waiting for threads to finish binding\n", prio)); - - // this barrier synchronizes the utilization thread with - // the client threads - // i.e., the Util_thread should wait until all the - // clients have finished binding, and only then - // start measuring the utilization. - this->ts_->barrier_->wait (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) )))))))) " - "utilization test STARTED at %D\n")); - - this->ts_->utilization_task_started_ = 1; - - this->ts_->timer_.start (); - - this->run_computations (); - - this->ts_->timer_.stop (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) (((((((( " - "utilization test ENDED at %D\n")); - - return 0; -} - -u_long -Util_Thread::get_number_of_computations (void) -{ - return this->number_of_computations_; -} - -// computation performed by the Utilization thread. We need this in a -// separate function to get it's execution time. -//inline -void -Util_Thread::computation (void) -{ - // This is the number that the Util_Thread uses to check for - // primality. - const u_long CUBIT_PRIME_NUMBER = 509UL; - - // See if this number is prime. 2 and CUBIT_PRIME_NUMBER / 2 are - // the recommended values for min_factor and max_factor, as - // explained in ACE.h (is_prime). - ACE::is_prime (CUBIT_PRIME_NUMBER, - 2UL, - CUBIT_PRIME_NUMBER / 2); -} - -// Perform repeated prime factor computations on an arbitrary number. -// And you thought your life was boring... :-) -int -Util_Thread::run_computations (void) -{ - while (this->done_ == 0) - { - // bound the number of computations, since we can potentially - // block the machine if this thread never leaves the loop. - if (this->number_of_computations_ > (ts_->loop_count_ * 1000)) // magic number - { - ACE_DEBUG ((LM_DEBUG, - "\t(%t) utilization test breaking loop so machine won't block.\n")); - break; - } - this->computation (); - this->number_of_computations_ ++; - // ACE_OS::thr_yield (); // Shouldn't need this. And I'm not sure - // if it really helps. - - if (ts_->utilization_task_started_ == 0) - break; - } - - return 0; -} diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.h deleted file mode 100644 index 5509de3d32b..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/Util_Thread.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Util_Thread.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (UTIL_THREAD_H) -#define UTIL_THREAD_H - -#include "Task_Client.h" - -class Util_Thread : public ACE_Task -{ - // = TITLE - // The thread that computes utilization. -public: - Util_Thread (Task_State *, - ACE_Thread_Manager *thr_mgr); - // Constructor. - - virtual int svc (void); - // The thread entry point function. - - u_long get_number_of_computations (void); - // Gets the number of computations the thread was able to perform. - - void computation (void); - // this is the actual "computation" being performed. - - int done_; - // Indicates whether we're done. - -private: - int run_computations (void); - // Run the computations. - - u_long number_of_computations_; - // This stores the number of computations performed - // by the Util_Thread so far - - Task_State *ts_; - // Pointer to the Task state. Stores the state - // common to the multiple client threads -}; - -#endif /* !defined (UTIL_THREAD_H) */ diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.cpp deleted file mode 100644 index 0aa507cac31..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.cpp +++ /dev/null @@ -1,796 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.cpp -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "client.h" -#include "ace/Sched_Params.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -double csw = 0.0; - -#if defined (VXWORKS) -u_int ctx = 0; -u_int ct = 0; - -typedef struct { - char name[15]; - WIND_TCB *tcb; - INSTR * pc; -} task_info; - -#define SWITCHES 25000 -task_info tInfo[SWITCHES]; - -extern "C" -int -switchHook ( WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ - WIND_TCB *pNewTcb ) /* pointer to new task's WIND_TCB */ -{ - // We create the client threads with names starting with "@". - if ( pNewTcb->name[0] == '@') - ctx++; - - if (ct < SWITCHES) - { - strncpy (tInfo[ct].name, pNewTcb->name, 14); - tInfo[ct].tcb = pNewTcb; - tInfo[ct].pc = pNewTcb->regs.pc; - ct++; - } - - return 0; -} -#endif /* VXWORKS */ - -int -initialize (void) -{ -#if defined (VXWORKS) && defined (VME_DRIVER) - STATUS status = vmeDrv (); - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - status = vmeDevCreate ("/vme"); - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* VXWORKS && VME_DRIVER */ - - // Make sure we've got plenty of socket handles. This call will - // use the default maximum. - ACE::set_handle_limit (); - - return 0; -} - -#if defined (VXWORKS) -void -output_taskinfo (void) -{ - FILE *file_handle = 0; - - if ((file_handle = ACE_OS::fopen ("taskinfo.txt", "w")) == 0) - perror ("open"); - - ACE_OS::fprintf(stderr, - "--->Output file for taskinfo data is \"taskinfo.txt\"\n"); - - // This loop visits each client. thread_count_ is the number of clients. - for (u_int j = 0; j < SWITCHES; j ++) - { - ACE_OS::fprintf(file_handle, - "\tname= %s\ttcb= %p\tpc= %p\n", - tInfo[j].name, - tInfo[j].tcb, - tInfo[j].pc); - } - - ACE_OS::fclose (file_handle); -} -#endif /* VXWORKS */ - -void -output_latency (Task_State *ts) -{ - FILE *latency_file_handle = 0; - char latency_file[BUFSIZ]; - char buffer[BUFSIZ]; - - ACE_OS::sprintf (latency_file, - "cb__%d.txt", - ts->thread_count_); - - ACE_OS::fprintf(stderr, - "--->Output file for latency data is \"%s\"\n", - latency_file); - - latency_file_handle = ACE_OS::fopen (latency_file, "w"); - - // This loop visits each client. thread_count_ is the number of clients. - for (u_int j = 0; j < ts->thread_count_; j ++) - { - ACE_OS::sprintf(buffer, - "%s #%d", - j==0? "High Priority": "Low Priority", - j); - // this loop visits each request latency from a client - for (u_int i = 0; i < (j==0? ts->high_priority_loop_count_:ts->loop_count_)/ts->granularity_; i ++) - { - ACE_OS::sprintf(buffer+strlen(buffer), -#if defined (CHORUS) - "\t%u\n", -#else - "\t%f\n", -#endif /* !CHORUS */ - ts->global_jitter_array_[j][i]); - fputs (buffer, latency_file_handle); - buffer[0]=0; - } - } - - ACE_OS::fclose (latency_file_handle); -} - -int -do_priority_inversion_test (ACE_Thread_Manager *thread_manager, - Task_State *ts) -{ - int i; - u_int j; - - char * task_id = 0; - - ACE_High_Res_Timer timer_; - ACE_Time_Value delta_t; - - timer_.start (); - -#if defined (VXWORKS) - ctx = 0; - ACE_NEW_RETURN (task_id, - char [32], - -1); -#endif /* VXWORKS */ - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) <<<<<<< starting test on %D\n")); - - // stores the total number of context switches incurred by the - // program while making CORBA requests -#if defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE) - u_int context_switch = 0; -#endif /* ACE_HAS_PRUSAGE_T || ACE_HAS_GETRUSAGE */ - - double util_task_duration = 0.0; - double total_latency = 0.0; - double total_latency_high = 0.0; - double total_util_task_duration = 0.0; - - // Create the clients. - Client high_priority_client (thread_manager, ts, 0); - - // Create an array to hold pointers to the low priority tasks. - Client **low_priority_client; - - ACE_NEW_RETURN (low_priority_client, - Client *[ts->thread_count_], - -1); - - // hack to make sure we have something in this pointer, when - // thread_count == 1 - low_priority_client[0] = &high_priority_client; - - // Create the daemon thread in its own . - ACE_Thread_Manager util_thr_mgr; - - Util_Thread util_thread (ts, &util_thr_mgr); - - // - // Time the utilization thread' "computation" to get %IdleCPU at the end of the test. - // -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; - // Elapsed time will be in microseconds. - pstartTime = pccTime1Get(); - // execute one computation. - util_thread.computation (); - pstopTime = pccTime1Get(); - // Store the time in micro-seconds. - util_task_duration = pstopTime - pstartTime; -#else /* CHORUS */ - // Elapsed time will be in microseconds. - timer_.start (); - // execute computations. - for (i = 0; i < 10000; i++) - util_thread.computation (); - timer_.stop (); - timer_.elapsed_time (delta_t); - // Store the time in milli-seconds. - util_task_duration = (delta_t.sec () * - ACE_ONE_SECOND_IN_MSECS + - (double)delta_t.usec () / ACE_ONE_SECOND_IN_MSECS) / 10000; -#endif /* !CHORUS */ - - // The thread priority - ACE_Sched_Priority priority; - -#if defined (VXWORKS) - // set a task_id string starting with "@", so we are able to - // accurately count the number of context switches. - strcpy (task_id, "@High"); -#endif /* VXWORKS */ - - // Now activate the high priority client. -#if defined (VXWORKS) - priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else /* ! VXWORKS */ - priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* ! ACE_WIN32 */ - - ACE_DEBUG ((LM_DEBUG, - "Creating 1 client with high priority of %d\n", - priority)); - - if (high_priority_client.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority, - -1, - 0, - 0, - 0, - 0, - (ACE_thread_t*)task_id) == -1) - ACE_ERROR ((LM_ERROR, - "%p; priority is %d\n", - "activate failed", - priority)); - - u_int number_of_low_priority_client = 0; - u_int number_of_priorities = 0; - u_int grain = 0; - u_int counter = 0; - - number_of_low_priority_client = ts->thread_count_ - 1; - - // mechanism to distribute the available priorities among the - // threads when there are not enough different priorities for all - // threads. - if (ts->use_multiple_priority_ == 1) - { - ACE_Sched_Priority_Iterator priority_iterator (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - number_of_priorities = 0; - while (priority_iterator.more ()) - { - number_of_priorities ++; - priority_iterator.next (); - } - - // 1 priority is exclusive for the high priority client. - number_of_priorities --; - - // if utilization thread is present, reduce in 1 the available - // priorities. - if (ts->use_utilization_test_ == 1) - { - number_of_priorities --; - } - - // Drop the priority, so that the priority of clients will - // increase with increasing client number. - for (j = 0; j < number_of_low_priority_client; j++) - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // if the lowest priority of the "low priority clients" is the - // minimum, and we are running the utilization thread, increment - // the priority, since we don't want the utlization thread and a - // "low priority thread" to have the same priority. - if ( priority == ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD) && - ts->use_utilization_test_ == 1) - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // granularity of the assignment of the priorities. Some OSs - // have fewer levels of priorities than we have threads in our - // test, so with this mechanism we assign priorities to groups - // of threads when there are more threads than priorities. - grain = number_of_low_priority_client / number_of_priorities; - counter = 0; - - if (grain <= 0) - grain = 1; - } - else - { - // Drop the priority one level - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - ACE_DEBUG ((LM_DEBUG, - "Creating %d clients at priority %d\n", - ts->thread_count_ - 1, - priority)); - - for (i = number_of_low_priority_client; i > 0; i--) - { - ACE_NEW_RETURN (low_priority_client [i - 1], - Client (thread_manager, ts, i), - -1); - -#if defined (VXWORKS) - // Pace the connection establishment on VxWorks. - const ACE_Time_Value delay (0L, 500000L); - ACE_OS::sleep (delay); - - // set a task_id string startiing with "@", so we are able to - // accurately count the number of context switches on VXWORKS - sprintf (task_id, "@Low%u", i); -#endif /* VXWORKS */ - - ACE_DEBUG ((LM_DEBUG, - "Creating client with thread ID %d and priority %d\n", - i, - priority)); - - // The first thread starts at the lowest priority of all the low - // priority clients. - if (low_priority_client[i - 1]->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority, // These are constructor defaults. - -1, // int grp_id = -1, - 0, // ACE_Task_Base *task = 0, - 0, // ACE_hthread_t thread_handles[] = 0, - 0, // void *stack[] = 0, - 0, // size_t stack_size[] = 0, - (ACE_thread_t*)task_id) == -1) - ACE_ERROR ((LM_ERROR, - "%p; priority is %d\n", - "activate failed", - priority)); - - if (ts->use_multiple_priority_ == 1) - { - counter = (counter + 1) % grain; - if ( (counter == 0) && - //Just so when we distribute the priorities among the - //threads, we make sure we don't go overboard. - ((number_of_priorities * grain) > (number_of_low_priority_client - (i - 1))) ) - { - // Get the next higher priority. - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - } - } /* end of for () */ - - if (ts->use_utilization_test_ == 1) - // activate the utilization thread only if specified. See - // description of this variable in header file. - { - priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating utilization thread with priority of %d\n", - priority)); - - // activate the Utilization thread. It will wait until - // all threads have finished binding. - util_thread.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority); - } - else - { - util_thread.close (); - } - - // Wait for all the client threads to be initialized before going - // any further. - ts->barrier_->wait (); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); - quantify_clear_data (); -#endif /* NO_ACE_QUANTIFY */ - -#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32) - ACE_Profile_Timer timer_for_context_switch; - ACE_Profile_Timer::Rusage usage; - - if (ts->context_switch_test_ == 1) - { - timer_for_context_switch.start (); - timer_for_context_switch.get_rusage (usage); -# if defined (ACE_HAS_PRUSAGE_T) - context_switch = usage.pr_vctx + usage.pr_ictx; -# else /* ACE_HAS_PRUSAGE_T */ - context_switch = usage.ru_nvcsw + usage.ru_nivcsw; -# endif /* ACE_HAS_GETRUSAGE */ - } -#endif /* ACE_HAS_PRUSAGE_T || ACE_HAS_GETRUSAGE */ - -#if defined (VXWORKS) - if (ts->context_switch_test_ == 1) - { - fprintf(stderr, "Adding the context switch hook!\n"); - taskSwitchHookAdd ((FUNCPTR)&switchHook); - } -#endif - - // Wait for all the client threads to exit (except the utilization - // thread). - thread_manager->wait (); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) >>>>>>> ending test on %D\n")); - - timer_.stop (); - timer_.elapsed_time (delta_t); - - if (ts->use_utilization_test_ == 1) - // signal the utilization thread to finish with its work.. only - // if utilization test was specified. See description of this - // variable in header file. - { - util_thread.done_ = 1; - - // This will wait for the utilization thread to finish. - util_thr_mgr.wait (); - } - - ACE_DEBUG ((LM_DEBUG, - "-------------------------- Stats -------------------------------\n")); - - if (ts->context_switch_test_ == 1) - { -#if defined (ACE_HAS_PRUSAGE_T) - timer_for_context_switch.stop (); - timer_for_context_switch.get_rusage (usage); - // Add up the voluntary context switches & involuntary context - // switches - context_switch = usage.pr_vctx + usage.pr_ictx - context_switch; - ACE_DEBUG ((LM_DEBUG, - "Voluntary context switches=%d, Involuntary context switches=%d\n", - usage.pr_vctx, - usage.pr_ictx)); -#elif defined (ACE_HAS_GETRUSAGE) && !defined (ACE_WIN32) - timer_for_context_switch.stop (); - timer_for_context_switch.get_rusage (usage); - // Add up the voluntary context switches & involuntary context - // switches - context_switch = usage.ru_nvcsw + usage.ru_nivcsw - context_switch; - ACE_DEBUG ((LM_DEBUG, - "Voluntary context switches=%d, Involuntary context switches=%d\n", - usage.ru_nvcsw, - usage.ru_nivcsw)); -#elif defined (VXWORKS) /* ACE_HAS_GETRUSAGE */ - taskSwitchHookDelete ((FUNCPTR)&switchHook); - ACE_DEBUG ((LM_DEBUG, - "Context switches=%d\n", - ctx)); -#endif - } - - // if running the utilization test, don't report latency nor jitter. - if (ts->use_utilization_test_ == 0 && - ts->run_server_utilization_test_ == 0) - { -#if defined (VXWORKS) - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client[0]->get_low_priority_latency (), - low_priority_client[0]->get_low_priority_jitter ())); - // output the latency values to a file, tab separated, to import - // it to Excel to calculate jitter, in the mean time we come up - // with the sqrt() function. - output_latency (ts); -#elif defined (CHORUS) - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "High priority client latency : %u usec\n" - "Low priority client latency : %u usec\n", - high_priority_client.get_high_priority_latency (), - low_priority_client[0]->get_low_priority_latency () )); - - // output the latency values to a file, tab separated, to import - // it to Excel to calculate jitter, in the mean time we come up - // with the sqrt() function. - output_latency (ts); -#else /* !CHORUS */ - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n" - "# of context switches: %d, context_switch_time: %f msec\n" - "total context switch time: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client[0]->get_low_priority_latency (), - low_priority_client[0]->get_low_priority_jitter (), - context_switch, - csw/1000, - csw * context_switch/1000 )); - // output_latency (ts); -#endif /* !VXWORKS && !CHORUS */ - } - - if (ts->use_utilization_test_ == 1) - { - total_util_task_duration = util_task_duration * util_thread.get_number_of_computations (); - - total_latency = (delta_t.sec () * - ACE_ONE_SECOND_IN_MSECS + - (double)delta_t.usec () / ACE_ONE_SECOND_IN_MSECS); - - total_latency_high = total_latency - total_util_task_duration; - - // Calc and print the CPU percentage. I add 0.5 to round to the - // nearest integer before casting it to int. - ACE_DEBUG ((LM_DEBUG, - "\t%% ORB Client CPU utilization: %u %%\n" - "\t%% Idle time: %u %%\n\n", - (u_int) (total_latency_high * 100 / total_latency + 0.5), - (u_int) (total_util_task_duration * 100 / total_latency + 0.5) )); - - ACE_DEBUG ((LM_DEBUG, - "(%t) UTILIZATION task performed \t%u computations\n" - "(%t) CLIENT task performed \t\t%u CORBA calls\n" - "\t Ratio of computations to CORBA calls is %u.%u:1\n\n", - util_thread.get_number_of_computations (), - ts->loop_count_, - util_thread.get_number_of_computations () / ts->loop_count_, - (util_thread.get_number_of_computations () % ts->loop_count_) * 100 / ts->loop_count_ - )); - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization computation time is %u usecs\n", - util_task_duration)); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization computation time is %f msecs\n", - util_task_duration)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - -#if defined (VXWORKS) - delete task_id; -#endif /* VXWORKS */ - return 0; -} - -int -do_thread_per_rate_test (ACE_Thread_Manager *thread_manager, - Task_State *ts) -{ - Client CB_20Hz_client (thread_manager, ts, CB_20HZ_CONSUMER); - Client CB_10Hz_client (thread_manager, ts, CB_10HZ_CONSUMER); - Client CB_5Hz_client (thread_manager, ts, CB_5HZ_CONSUMER); - Client CB_1Hz_client (thread_manager, ts, CB_1HZ_CONSUMER); - - ACE_Sched_Priority priority; - -#if defined (VXWORKS) - priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else /* ! VXWORKS */ - priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* ! ACE_WIN32 */ - - ACE_DEBUG ((LM_DEBUG, - "Creating 20 Hz client with priority %d\n", - priority)); - - if (CB_20Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating 10 Hz client with priority %d\n", - priority)); - - if (CB_10Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating 5 Hz client with priority %d\n", - priority)); - - if (CB_5Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating 1 Hz client with priority %d\n", - priority)); - - if (CB_1Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - // Wait for all the threads to exit. - thread_manager->wait (); - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "20Hz client latency : %u usec, jitter: %u usec\n" - "10Hz client latency : %u usec, jitter: %u usec\n" - "5Hz client latency : %u usec, jitter: %u usec\n" - "1Hz client latency : %u usec, jitter: %u usec\n", - CB_20Hz_client.get_latency (0), CB_20Hz_client.get_jitter (0), - CB_10Hz_client.get_latency (1), CB_10Hz_client.get_jitter (1), - CB_5Hz_client.get_latency (2), CB_5Hz_client.get_jitter (2), - CB_1Hz_client.get_latency (3), CB_1Hz_client.get_jitter (3) )); -#else - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "20Hz client latency : %f msec, jitter: %f msec\n" - "10Hz client latency : %f msec, jitter: %f msec\n" - "5Hz client latency : %f msec, jitter: %f msec\n" - "1Hz client latency : %f msec, jitter: %f msec\n", - CB_20Hz_client.get_latency (0), CB_20Hz_client.get_jitter (0), - CB_10Hz_client.get_latency (1), CB_10Hz_client.get_jitter (1), - CB_5Hz_client.get_latency (2), CB_5Hz_client.get_jitter (2), - CB_1Hz_client.get_latency (3), CB_1Hz_client.get_jitter (3) )); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - return 0; -} - -// This is the main routine of the client, where we create a high -// priority and a low priority client. we then activate the clients -// with the appropriate priority threads, and wait for them to -// finish. After they aer done, we compute the latency and jitter -// metrics and print them. - -#if defined (VXWORKS) -extern "C" -int -client (int argc, char *argv[]) -{ - ACE_Object_Manager ace_object_manager; -#else -int -main (int argc, char *argv[]) -{ -#endif - -#if defined (ACE_HAS_THREADS) -#if defined (FORCE_ARGS) - int argc = 4; - char *argv[] = {"client", - "-s", - "-f", - "ior.txt"}; -#endif /* defined (FORCE_ARGS) */ - - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - if (ACE_OS::sched_params ( - ACE_Sched_Params ( - ACE_SCHED_FIFO, -#if defined (__Lynx__) - 30, -#elif defined (VXWORKS) /* ! __Lynx__ */ - 6, -#elif defined (ACE_WIN32) - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), -#else - ACE_THR_PRI_FIFO_DEF + 25, -#endif /* ! __Lynx__ */ - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_MAX, "preempt: user is not superuser, " - "so remain in time-sharing class\n")); - else - ACE_ERROR_RETURN ((LM_ERROR, "%n: ACE_OS::sched_params failed\n%a"), - -1); - } - - ACE_High_Res_Timer timer_; - ACE_Time_Value delta_t; - -#if 0 // this is a debug section that will be removed soon. 1/6/98 - ACE_DEBUG ((LM_MAX, "<<<<>>>>\n")); - - timer_.start (); - - const ACE_Time_Value delay (5L, 0L); - ACE_OS::sleep (delay); - - timer_.stop (); - timer_.elapsed_time (delta_t); - - ACE_DEBUG ((LM_DEBUG, "5secs= %u secs, %u usecs\n", delta_t.sec (), delta_t.usec ())); -#endif - - initialize (); - - Task_State ts (argc, argv); - -#if defined (CHORUS) - // start the pccTimer for chorus classix - int pTime; - - // Initialize the PCC timer Chip - pccTimerInit(); - - if(pccTimer(PCC2_TIMER1_START,&pTime) != K_OK) - { - printf("pccTimer has a pending benchmark\n"); - } -#endif /* CHORUS */ - - // Create a separate manager for the client. This allows the use - // of its wait () method on VxWorks, without interfering with the - // server's (global) thread manager. - ACE_Thread_Manager client_thread_manager; - - if (ts.thread_per_rate_ == 0) - do_priority_inversion_test (&client_thread_manager, &ts); - else - do_thread_per_rate_test (&client_thread_manager, &ts); - -#if defined (CHORUS) - if(pccTimer(PCC2_TIMER1_STOP,&pTime) !=K_OK) - { - printf("pccTimer has a pending bench mark\n"); - } -#elif defined (VXWORKS) - // Shoot myself. Otherwise, there's a General Protection Fault. This - // will leak memory, but that's preferable. It looks like the problem - // might be due to static objects in libTAO or liborbsvcs? - int status; - ACE_OS::thr_exit (&status); -#endif /* CHORUS */ - -#else /* !ACE_HAS_THREADS */ - ACE_DEBUG ((LM_DEBUG, - "Test not run. This platform doesn't seem to have threads.\n")); -#endif /* ACE_HAS_THREADS */ - - return 0; -} diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h deleted file mode 100644 index a9386c52596..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/client.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.h -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" - -#include "cubitC.h" -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#if defined (VME_DRIVER) -#include -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* defined (VME_DRIVER) */ - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit.idl b/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit.idl deleted file mode 100644 index 74041bad851..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit.idl +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ - -interface Cubit -{ - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - Many cube_struct (in Many values); - // cube each of the members of a struct - - oneway void noop (); - // null operation - - oneway void shutdown (); - // shut down the application -}; - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.cpp deleted file mode 100644 index 1c4d2799ac4..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ - -#include "tao/corba.h" -#include "cubit_i.h" - -Cubit_i::Cubit_i (Task_State *ts) - :ts_ (ts), - util_started_ (0) -{ -} - -Cubit_i::~Cubit_i (void) -{ -} - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o, - CORBA::Environment &) -{ - if (ts_->run_server_utilization_test_ == 1 && - ts_->utilization_task_started_ == 0 && - this->util_started_ == 0 ) - { - this->util_started_ = 1; - ts_->barrier_->wait (); - } - - ts_->loop_count_++; - - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s, - CORBA::Environment &) -{ - return (CORBA::Short) (s * s * s); -} - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l, - CORBA::Environment &) -{ - return (CORBA::Long) (l * l * l); -} - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values, - CORBA::Environment &) -{ - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - - return out_values; -} - -void -Cubit_i::noop (CORBA::Environment &) -{ - // does nothing. -} - -void Cubit_i::shutdown (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) Calling TAO_ORB_Core_instance ()->orb ()->shutdown ()\n")); - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - - // this is to signal the utilization thread to exit its loop. - ts_->utilization_task_started_ = 0; -} diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.h deleted file mode 100644 index 46434ec5c4f..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/cubit_i.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_HH) -#define _CUBIT_I_HH - -#include "cubitS.h" -#include "Task_Client.h" - -class Cubit_i : public POA_Cubit -{ - // = TITLE - // Cubit implementation class. -public: - Cubit_i (Task_State *ts); - ~Cubit_i (void); - - virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - - virtual void noop (CORBA::Environment &env); - - virtual void shutdown (CORBA::Environment &env); -private: - Task_State *ts_; - u_int util_started_; -}; - -#endif /* _CUBIT_I_HH */ diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.cpp deleted file mode 100644 index 0e0ae8f8824..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.cpp +++ /dev/null @@ -1,917 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "server.h" -#include "ace/Sched_Params.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -// Global options used to configure various parameters. -static char hostname[BUFSIZ]; -static char *ior_file = 0; -static int base_port = ACE_DEFAULT_SERVER_PORT; -static u_int num_of_objs = 2; -static u_int use_name_service = 1; -static u_int thread_per_rate = 0; -static u_int use_multiple_priority = 0; -static u_int run_utilization_test = 0; - -Cubit_Task::Cubit_Task (void) -{ - // No-op. -} - -Cubit_Task::Cubit_Task (const char *args, - const char *orbname, - u_int num_of_objs, - ACE_Barrier *barrier, - Task_State *ts, - ACE_Thread_Manager *thr_mgr, - u_int task_id) - : ACE_MT (ACE_Task (thr_mgr)), - key_ ("Cubit"), - orbname_ ((char *) orbname), - orbargs_ ((char *) args), - num_of_objs_ (num_of_objs), - servants_ (0), - barrier_ (barrier), - servants_iors_ (0), - task_id_ (task_id), - ts_ (ts) -{ -} - -int -Cubit_Task::svc (void) -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - // thr_getprio () on the current thread should never fail. - ACE_OS::thr_getprio (thr_handle, prio); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Beginning Cubit task with args = '%s' and priority %d\n", - orbargs_, prio)); - - int rc = this->initialize_orb (); - if (rc == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "ORB initialization failed.\n"), - -1); - - rc = this->create_servants (); - if (rc == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Create Servants failed.\n"), - -1); - - TAO_TRY - { - this->poa_manager_->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->barrier_->wait (); - - // Handle requests for this object until we're killed, or one of - // the methods asks us to exit. - if (this->orb_->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - - // Shut down the OA. - this->poa_->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("poa->destroy()"); - } - TAO_ENDTRY; - - // Need to clean up and do a CORBA::release on everything we've - // created! - - for (u_int i = 0; i < num_of_objs_; i++) - delete servants_ [i]; - - return 0; -} - -int -Cubit_Task::initialize_orb (void) -{ - TAO_TRY - { - ACE_ARGV args (this->orbargs_); - - int argc = args.argc (); - char **argv = args.argv (); - - // Initialize the ORB. - this->orb_ = CORBA::ORB_init (argc, - argv, - this->orbname_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Initialize the Object Adapter. - CORBA::Object_var poa_object = - this->orb_->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - this->root_poa_ = - PortableServer::POA::_narrow (poa_object.in(), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->poa_manager_ = - this->root_poa_->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::PolicyList policies (2); - policies.length (2); - - // Id Assignment policy - policies[0] = - this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Lifespan policy - policies[1] = - this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // We use a different POA, otherwise the user would have to - // change the object key each time it invokes the server. - this->poa_ = - this->root_poa_->create_POA ("Persistent_POA", - this->poa_manager_.in (), - policies, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Creation of the new POAs over, so destroy the Policy_ptr's. - for (CORBA::ULong i = 0; - i < policies.length () && TAO_TRY_ENV.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (TAO_TRY_ENV); - } - TAO_CHECK_ENV; - - if (use_name_service == 0) - return 0; - - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - 1); - - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - - // Check the environment and return 1 if exception occurred or - // nil pointer. - if (TAO_TRY_ENV.exception () != 0 || - CORBA::is_nil (this->naming_context_.in ())==CORBA::B_TRUE ) - return 1; - - // Register the servant with the Naming Context.... - CosNaming::Name cubit_context_name (1); - cubit_context_name.length (1); - cubit_context_name[0].id = - CORBA::string_dup ("MT_Cubit"); - - TAO_TRY_ENV.clear (); - CORBA::Object_var objref = - this->naming_context_->bind_new_context (cubit_context_name, - TAO_TRY_ENV); - - if (TAO_TRY_ENV.exception() != 0) - { - CosNaming::NamingContext::AlreadyBound_ptr ex = - CosNaming::NamingContext::AlreadyBound::_narrow (TAO_TRY_ENV.exception()); - if (ex != 0) - { - TAO_TRY_ENV.clear (); - objref = this->naming_context_->resolve (cubit_context_name, - TAO_TRY_ENV); - printf("NamingContext::AlreadyBound\n"); - } - else - TAO_TRY_ENV.print_exception ("bind() Cubit context object\n"); - } - TAO_CHECK_ENV; - - this->mt_cubit_context_ = - CosNaming::NamingContext::_narrow (objref.in (), - TAO_TRY_ENV); - - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("orb_init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -CORBA::String -Cubit_Task::get_servant_ior (u_int index) -{ - if (index >= num_of_objs_) - return 0; - - return ACE_OS::strdup (this->servants_iors_[index]); -} - -int -Cubit_Task::create_servants () -{ - TAO_TRY - { - // Create the array of cubit implementations. - ACE_NEW_RETURN (this->servants_, - Cubit_i *[this->num_of_objs_], - -1); - - // Create the array of strings. - ACE_NEW_RETURN (this->servants_iors_, - CORBA::String [this->num_of_objs_], - -1); - - char *buffer; - int l = ACE_OS::strlen (this->key_) + 3; - - ACE_NEW_RETURN (buffer, - char[l], - -1); - - // This loop creates multiple servants, and prints out their - // IORs. - for (u_int i = 0; - i < this->num_of_objs_; - i++) - { - ACE_OS::sprintf (buffer, - "%s%02d", - (char *) this->key_, - this->task_id_); - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId (buffer); - - ACE_NEW_RETURN (this->servants_[i], - Cubit_i (ts_), - -1); - - if (this->servants_[i] == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to create " - "implementation object #%d\n", - i), - 2); - - this->poa_->activate_object_with_id (id.in (), - this->servants_[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Stringify the objref we'll be implementing, and print it - // to stdout. Someone will take that string and give it to - // some client. Then release the object. - - Cubit_var cubit = - this->servants_[i]->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - this->orb_->object_to_string (cubit.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->servants_iors_[i] = ACE_OS::strdup (str.in ()); - - // Register the servant with the Naming Context.... - CosNaming::Name cubit_name (1); - cubit_name.length (1); - cubit_name[0].id = - CORBA::string_dup (buffer); - - if (CORBA::is_nil (this->mt_cubit_context_.in ()) == CORBA::B_FALSE) - { - this->mt_cubit_context_->bind (cubit_name, - cubit.in (), - TAO_TRY_ENV); - if (TAO_TRY_ENV.exception () != 0) - TAO_TRY_ENV.print_exception ("Attempt to bind() a cubit object to the name service Failed!\n"); - else - ACE_DEBUG ((LM_DEBUG, - " (%t) Cubit object bound to the name \"%s\".\n", - buffer)); - } - } - delete [] buffer; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("print IOR"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -// Parses the command line arguments and returns an error status. -// @@ This method should be integrated into one of the classes -// (preferably into an Options singleton) rather than kept as a -// stand-alone function. - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "sh:p:t:f:rmU"); - int c; - - if (ACE_OS::hostname (hostname, BUFSIZ) != 0) - { - perror ("gethostname"); - return -1; - } - - while ((c = opts ()) != -1) - switch (c) - { - case 'U': - run_utilization_test = 1; - break; - case 'm': - use_multiple_priority = 1; - break; - case 'r': - thread_per_rate = 1; - break; - case 's': - use_name_service = 0; - break; - case 'f': - ior_file = opts.optarg; - break; - case 'h': - ACE_OS::strcpy (hostname, opts.optarg); - ACE_DEBUG ((LM_DEBUG, "h\n")); - break; - case 'p': - base_port = ACE_OS::atoi (opts.optarg); - ACE_DEBUG ((LM_DEBUG, "p\n")); - break; - case 't': - num_of_objs = ACE_OS::atoi (opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " \t[-s Means NOT to use the name service] \n" - " \t[-p ]\n" - " \t[-h ]\n" - " \t[-t ]\n" - " \t[-f ]\n" - " \t[-r Use thread per rate]\n" - "\n", argv [0]), - 1); - } - - if (thread_per_rate == 1) - num_of_objs = 4; - - if (run_utilization_test == 1) - num_of_objs = 1; - - // Indicates successful parsing of command line - return 0; -} - -// @@ This method should be integrated into one of the classes rather -// than kept as a stand-alone function. - -static int -initialize (int argc, char **argv) -{ -#if defined (VXWORKS) -#if defined (VME_DRIVER) - STATUS status = vmeDrv (); - - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - - status = vmeDevCreate ("/vme"); - - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* defined (VME_DRIVER) */ - -#if defined (FORCE_ARGS) - int argc = 4; - char *argv[] = { "server", - "-s", - "-f", - "ior.txt" }; - -#endif /* defined (FORCE_ARGS) */ -#endif /* defined (VXWORKS) */ - - // Standard command line parsing utilities used. - if (parse_args (argc, argv) != 0) return 1; - - if (hostname == 0 || base_port == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-s Means NOT to use the name service] " - " [-p port]" - " [-h my_hostname]" - " [-t num_objects]" - " [-f ]" - " [-r Use thread per rate]" - "\n", argv [0]), - 1); - - // Make sure we've got plenty of socket handles. This call will use - // the default maximum. - ACE::set_handle_limit (); - - return 0; -} - -// Starts up the servants - -// @@ This method should be integrated into one of the classes rather -// than kept as a stand-alone function. - -static int -start_servants (ACE_Thread_Manager *serv_thr_mgr, ACE_Barrier &start_barrier, Task_State *ts) -{ - char *args1; - - ACE_NEW_RETURN (args1, - char[BUFSIZ], - -1); - u_int i; - - // Create an array to hold pointers to the Cubit objects. - CORBA::String *cubits; - - ACE_NEW_RETURN (cubits, - CORBA::String [num_of_objs], - -1); - - ACE_OS::sprintf (args1, - "rate20 -ORBport %d " - "-ORBhost %s " - "-ORBobjrefstyle URL " - "-ORBsndsock 32768 " - "-ORBrcvsock 32768 ", - base_port, - hostname); - - Cubit_Task *high_priority_task; - - ACE_NEW_RETURN (high_priority_task, - Cubit_Task (args1, - "internet", - 1, - &start_barrier, - ts, - serv_thr_mgr, - 0), //task id 0. - -1); - -#if defined (VXWORKS) - ACE_Sched_Priority priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - ACE_Sched_Priority priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else - ACE_Sched_Priority priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* VXWORKS */ - - if (run_utilization_test == 1) - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating servant 0 with high priority %d\n", - priority)); - - // Make the high priority task an active object. - if (high_priority_task->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\thigh_priority_task->activate failed")); - } - - // Create an array to hold pointers to the low priority tasks. - Cubit_Task **low_priority_task; - - ACE_NEW_RETURN (low_priority_task, - Cubit_Task *[num_of_objs], - -1); - - u_int number_of_low_priority_servants = 0; - u_int number_of_priorities = 0; - u_int grain = 0; - u_int counter = 0; - - number_of_low_priority_servants = num_of_objs - 1; - - // Drop the priority - if (thread_per_rate == 1 || use_multiple_priority == 1) - { - ACE_Sched_Priority_Iterator priority_iterator (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - number_of_priorities = 0; - - while (priority_iterator.more ()) - { - number_of_priorities ++; - priority_iterator.next (); - } - - // 1 priority is exclusive for the high priority client. - number_of_priorities --; - - // Drop the priority, so that the priority of clients will increase - // with increasing client number. - for (i = 0; i < number_of_low_priority_servants; i++) - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // granularity of the assignment of the priorities. Some OSs have - // fewer levels of priorities than we have threads in our test, so - // with this mechanism we assign priorities to groups of threads when - // there are more threads than priorities. - grain = number_of_low_priority_servants / number_of_priorities; - counter = 0; - - if (grain <= 0) - grain = 1; - - } - else - { - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - ACE_DEBUG ((LM_DEBUG, - "Creating %d servants starting at priority %d\n", - number_of_low_priority_servants, - priority)); - - // Create the low priority servants. - - for (i = number_of_low_priority_servants; i > 0; i--) - { - char *args; - - ACE_NEW_RETURN (args, - char [BUFSIZ], - -1); - - ACE_OS::sprintf (args, - "rate10 -ORBport %d " - "-ORBhost %s " - "-ORBobjrefstyle URL " - "-ORBsndsock 32768 " - "-ORBrcvsock 32768 ", - base_port + i, - hostname); - - ACE_NEW_RETURN (low_priority_task [i - 1], - Cubit_Task (args, - "internet", - 1, - &start_barrier, - ts, - serv_thr_mgr, - i), - -1); - - // Make the low priority task an active object. - if (low_priority_task [i - 1]->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\tlow_priority_task[i]->activate")); - } - - ACE_DEBUG ((LM_DEBUG, - "Created servant %d with priority %d\n", - i, - priority)); - - // use different priorities on thread per rate or multiple priority. - if (use_multiple_priority == 1 || thread_per_rate == 1) - { - counter = (counter + 1) % grain; - if ( (counter == 0) && - //Just so when we distribute the priorities among the - //threads, we make sure we don't go overboard. - ((number_of_priorities * grain) > (number_of_low_priority_servants - (i - 1))) ) - { - // Get the next higher priority. - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - } - } /* end of for() */ - - start_barrier.wait (); - - // Write the ior's to a file so the client can read them. - { - cubits[0] = high_priority_task->get_servant_ior (0); - - for (i = 0; i < num_of_objs-1; ++i) - cubits[i + 1] = low_priority_task[i]->get_servant_ior (0); - - FILE *ior_f = 0; - - if (ior_file != 0) - ior_f = ACE_OS::fopen (ior_file, "w+"); - - for (i = 0; i < num_of_objs; ++i) - { - if (ior_f != 0) - { - ACE_OS::fprintf (ior_f, "%s\n", cubits[i]); - } - ACE_OS::printf ("cubits[%d] ior = %s\n", - i, - cubits[i]); - } - - if (ior_f != 0) - ACE_OS::fclose (ior_f); - } - return 0; - -} - -Util_Thread * -start_utilization (ACE_Thread_Manager *util_thr_mgr, Task_State *ts) -{ - Util_Thread *util_task; - - ACE_NEW_RETURN (util_task, - Util_Thread (ts, - util_thr_mgr), - 0); - - ACE_Sched_Priority priority = ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating Utilization Task with priority %d\n", - priority)); - - // Make the high priority task an active object. - if (util_task->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\tutil_task->activate failed")); - } - - return util_task; -} - -// main routine. - -#if defined (VXWORKS) - // Rename main to server to make it easier to run both client and - // server on one target. -extern "C" -int -server (int argc, char *argv[]) -{ - ACE_Object_Manager ace_object_manager; -#else -int -main (int argc, char *argv[]) -{ -#endif - -#if defined (ACE_HAS_THREADS) - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - if (ACE_OS::sched_params ( - ACE_Sched_Params ( - ACE_SCHED_FIFO, -#if defined (__Lynx__) - 30, -#elif defined (VXWORKS) /* ! __Lynx__ */ - 6, -#elif defined (ACE_WIN32) - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), -#else - ACE_THR_PRI_FIFO_DEF + 25, -#endif /* ! __Lynx__ */ - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_MAX, "preempt: user is not superuser, " - "so remain in time-sharing class\n")); - else - ACE_ERROR_RETURN ((LM_ERROR, "%n: ACE_OS::sched_params failed\n%a"), - -1); - } - - if (initialize (argc, argv) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error in Initialization\n"), - 1); - int _argc = 3; - char *_argv[] = {"server", - "-t", - "1"}; - - Task_State ts ( _argc, _argv); - - if (run_utilization_test == 1) - { - ts.run_server_utilization_test_ = 1; - ts.loop_count_ = 0; - } - - Util_Thread * util_task = 0; - - // Create the daemon thread in its own . - ACE_Thread_Manager servant_thread_manager; - ACE_Thread_Manager util_thr_mgr; - ACE_Time_Value total_elapsed; - double util_task_duration = 0.0; - double total_latency = 0.0; - double total_latency_servants = 0.0; - double total_util_task_duration = 0.0; - - if (run_utilization_test == 1) - { - if ((util_task = start_utilization (&util_thr_mgr, &ts)) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error creating the utilization thread!\n"), - 1); - - // - // Time the utilization thread' "computation" to get %IdleCPU at the end of the test. - // - -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; - // Elapsed time will be in microseconds. - pstartTime = pccTime1Get(); - // execute one computation. - util_task->computation (); - pstopTime = pccTime1Get(); - // Store the time in micro-seconds. - util_task_duration = pstopTime - pstartTime; -#else /* CHORUS */ - ACE_High_Res_Timer timer_; - // Elapsed time will be in microseconds. - ACE_Time_Value delta_t; - timer_.start (); - // execute computation. - for (int k=0; k < 10000; k++) - util_task->computation (); - timer_.stop (); - timer_.elapsed_time (delta_t); - // Store the time in milli-seconds. - util_task_duration = ((double)delta_t.sec () * - ACE_ONE_SECOND_IN_USECS + - (double)delta_t.usec ()) / 10000; -#endif /* !CHORUS */ - } - // Barrier for the multiple clients to synchronize after binding to - // the servants. - ACE_Barrier start_barrier (num_of_objs + 1); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); - quantify_clear_data (); - quantify_start_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (start_servants (&servant_thread_manager, start_barrier, &ts) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error creating the servants\n"), - 1); - - ACE_DEBUG ((LM_DEBUG, - "Wait for all the threads to exit\n")); - - // Wait for all the threads to exit. - servant_thread_manager.wait (); - // ACE_Thread_Manager::instance ()->wait (); - - if (run_utilization_test == 1) - { - util_task->done_ = 1; - - // This will wait for the utilization thread to finish. - util_thr_mgr.wait (); - - ts.timer_.elapsed_time (total_elapsed); - - total_util_task_duration = util_task_duration * util_task->get_number_of_computations (); - - total_latency = (total_elapsed.sec () * - ACE_ONE_SECOND_IN_USECS + - (double)total_elapsed.usec ()); - - total_latency_servants = total_latency - total_util_task_duration; - - ACE_DEBUG ((LM_DEBUG, - "-------------------------- Stats -------------------------------\n")); - - ACE_DEBUG ((LM_DEBUG, - "(%t) UTILIZATION task performed \t%u computations\n" - "(%t) SERVANT task serviced \t\t%u CORBA calls\n" - "\t Ratio of computations to CORBA calls is %u.%u:1\n\n", - util_task->get_number_of_computations (), - ts.loop_count_, - util_task->get_number_of_computations () / ts.loop_count_, - (util_task->get_number_of_computations () % ts.loop_count_) * 100 / ts.loop_count_ - )); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Each computation had a duration of %f msecs\n" - "(%t) Total elapsed time of test is %f msecs\n", - util_task_duration / 1000, - total_latency / 1000)); - - // Calc and print the CPU percentage. I add 0.5 to round to the - // nearest integer before casting it to int. - ACE_DEBUG ((LM_DEBUG, - "\t%% ORB Servant CPU utilization: %d %%\n" - "\t%% Idle time: %d %%\n", - (int) (total_latency_servants * 100 / total_latency + 0.5), - (int) (total_util_task_duration * 100 / total_latency + 0.5) )); - } - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - -#else - ACE_DEBUG ((LM_DEBUG, - "Test not run. This platform doesn't seem to have threads.\n")); -#endif /* ACE_HAS_THREADS */ - return 0; -} diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.h b/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.h deleted file mode 100644 index 9fabfef8040..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/server.h +++ /dev/null @@ -1,123 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// server.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -// ACE includes. -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "ace/ARGV.h" -#include "ace/Sched_Params.h" -#include "orbsvcs/CosNamingC.h" - -// TAO includes. -#include "tao/corba.h" - -// MT Cubit application includes. -#include "cubit_i.h" -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (VME_DRIVER) -#include -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* VME_DRIVER */ - -#if !defined (ACE_HAS_THREADS) -class NOOP_ACE_Barrier -{ -public: - NOOP_ACE_Barrier (int ) {} - void wait (void) {} -}; -#define ACE_Barrier NOOP_ACE_Barrier -#endif /* ACE_HAS_THREADS */ - -class Cubit_Task : public ACE_Task -{ - // = TITLE - // Encapsulates an ORB for the Cubit application. - public: - Cubit_Task (const char *args, - const char* orbname, - u_int num_of_objs, - ACE_Barrier *barrier, - Task_State *ts, - ACE_Thread_Manager *thr_mgr, - u_int task_id); - // Constructor. - - virtual int svc (void); - // Active Object entry point. - - CORBA::String get_servant_ior (u_int index); - -protected: - Cubit_Task (void); - // No-op constructor. - -private: - int initialize_orb (void); - // Initialize the ORB, and POA. - - int create_servants (void); - // Create the servants - - CORBA::String key_; - // All cubit objects will have this as prefix to its key. - - char *orbname_; - // Name of the ORB. - - char *orbargs_; - // ORB arguments. - - u_int num_of_objs_; - // Number of objects we're managing. - - CORBA::ORB_var orb_; - // Pointer to the ORB - - PortableServer::POA_var root_poa_; - // Pointer to the Root POA - - PortableServer::POA_var poa_; - // Pointer to the child POA used on the application. - - PortableServer::POAManager_var poa_manager_; - // The POA Manager for both the root POA and the child POA. - - Cubit_i **servants_; - // Array to hold the servants - - ACE_Barrier *barrier_; - // Barrier for the multiple servants to synchronize after - // binding to the orb. - - CORBA::String *servants_iors_; - // ior strings of the servants - - CosNaming::NamingContext_var naming_context_; - // Object reference to the naming service - - u_int task_id_; - // id used for naming service object name. - - CosNaming::NamingContext_var mt_cubit_context_; - // context where all MT Cubit objects will be created. - - Task_State *ts_; - // state for the utilization thread to synchronize with the servants. -}; - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/svc.conf b/TAO/performance-tests/Cubit/TAO/MT_Cubit/svc.conf deleted file mode 100644 index 284c327aa0a..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources tss" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() "" -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" - diff --git a/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp b/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp deleted file mode 100644 index 91836d349b2..00000000000 --- a/TAO/performance-tests/Cubit/TAO/MT_Cubit/tmplinst.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "cubitC.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/release.pl b/TAO/release.pl deleted file mode 100755 index 28c741f69e1..00000000000 --- a/TAO/release.pl +++ /dev/null @@ -1,91 +0,0 @@ -# $Id$ -# -# Takes over some of the release work rather than having it all -# inline in the Makefile. - -$date = `/usr/bin/date +"%a %b %d %T %Y"`; -chop $date; -$VERSION = "VERSION"; -$CHANGELOG = "ChangeLog"; -$TAO_VERSION = ''; -$MODNAME = 'TAO'; - -# Range of values on this is "alpha", "beta", or "major", -# in which case the 3rd, 2nd, or 1st digit. -$BUMP_WHICH = $ENV{'RELEASE_TYPE'}; - -sub inplace { - my($ext, @files) = @_; - my(@nfiles) = (); - my($nfile); - $ext = '~' if ($ext eq ''); - foreach $file (@files) { - $nfile = $file . $ext; - if (rename ($file, $nfile)) { - push(@nfiles, $nfile); - } - else { - warn "Unable to rename $files[$i] for in-place editing: $!\n"; - } - } - @nfiles; -} - -@inplace = inplace('.del', $VERSION, $CHANGELOG); - -open (VERSION, $inplace[0]) - || die "Unable to open file $inplace[0] for inplace edit: $!\n"; -open (VERSIONOUT, ">$VERSION") - || die "Unable to open file $VERSION for writing: $!\n"; - -undef $version_number; -while () { - if ($BUMP_WHICH =~ m/major/i) { - $bump_expr = 'sprintf("$1%d.0.0", $2+1)'; - } - elsif ($BUMP_WHICH =~ m/beta/i) { - $bump_expr = 'sprintf("$1$2.%d.0", $3+1)'; - } - else { - $bump_expr = 'sprintf("$1$2.$3.%d", $4+1)'; - } - $subst = 's/(TAO version )(\d+)\.(\d+)\.(\d+)/' . $bump_expr . '/e'; - eval $subst; - ($version_number = $_) =~ s/.*(\d+\.\d+\.\d+).*/$1/ if (!defined($version_number)); - if (s/(, released ).*/$1$date./) { - ($TAO_VERSION = $_) =~ s/^This is //; - } - print VERSIONOUT $_; -} - -close (VERSIONOUT); -close (VERSION); -chmod 0644, $VERSION; - -$message = $date." ".$ENV{"SIGNATURE"}." <".$ENV{"LOGNAME"}."\@cs.wustl.edu>\n\n\t* ".$TAO_VERSION."\n"; -$message_printed = 0; - -open (CHANGELOG, $inplace[1]) - || die "Unable to open file $inplace[1] for inplace edit: $!\n"; -open (CHANGELOGOUT, ">$CHANGELOG") - || die "Unable to open file $CHANGELOG for writing: $!\n"; - -while () { - print CHANGELOGOUT "$message" if ( ! $message_printed++ ); - print CHANGELOGOUT $_; -} - -close (CHANGELOG); -close (CHANGELOGOUT); -chmod 0644, $CHANGELOG; - -# Morph the version number -chop $version_number; -($version_tag = $MODNAME."-".$version_number) =~ s/\./_/g; - -$CVSCOM = 'cvs'; -$COM = qq/$CVSCOM commit -m'$TAO_VERSION' $VERSION $CHANGELOG && $CVSCOM rtag $version_tag $MODNAME && $CVSCOM rtag -F Current $MODNAME/; -print $COM; -system $COM; - -unlink @inplace; diff --git a/TAO/tao/CORBA.cpp b/TAO/tao/CORBA.cpp deleted file mode 100644 index 46ccc7c2033..00000000000 --- a/TAO/tao/CORBA.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// $Id$ - -#include "tao/corba.h" - -// String utility support; this can need to be integrated with the -// ORB's own memory allocation subsystem. - -CORBA::String -CORBA::string_copy (const CORBA::Char *str) -{ - if (!str) - return 0; - - CORBA::String retval = - CORBA::string_alloc (ACE_OS::strlen (str)); - - // clear the contents of the allocated string - ACE_OS::memset(retval, '\0', ACE_OS::strlen (str)); - - return ACE_OS::strcpy (retval, str); -} - -CORBA::String_var & -CORBA::String_var::operator= (char *p) -{ - if (this->ptr_ != p) - { - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - this->ptr_ = p; - } - return *this; -} - -CORBA::String_var & -CORBA::String_var::operator= (const char *p) -{ - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - - this->ptr_ = CORBA::string_dup (p); - return *this; -} - -CORBA::String_var & -CORBA::String_var::operator= (const CORBA::String_var& r) -{ - if (this != &r) - { - if (this->ptr_ != 0) - CORBA::string_free (this->ptr_); - this->ptr_ = CORBA::string_dup (r.ptr_); - } - return *this; -} - -// Wide Character string utility support; this can need to be -// integrated with the ORB's own memory allocation subsystem. - -CORBA::WString -CORBA::wstring_alloc (CORBA::ULong len) -{ - return new CORBA::WChar [(size_t) (len + 1)]; -} - -static -inline -CORBA::WChar * -wscpy (CORBA::WChar *dest, - const CORBA::WChar *src) -{ - CORBA::WChar *retval = dest; - - while ((*dest++ = *src++) != 0) - continue; - return retval; -} - -CORBA::WString -CORBA::wstring_copy (const CORBA::WChar *const str) -{ - if (*str) - return 0; - - CORBA::WString retval = CORBA::wstring_alloc (ACE_WString::wstrlen (str)); - return wscpy (retval, str); -} - -void -CORBA::wstring_free (CORBA::WChar *const str) -{ - delete [] str; -} - -// ORB initialisation, per OMG document 94-9-46. -// -// XXX in addition to the "built in" Internet ORB, there will be ORBs -// which are added separately, e.g. through a DLL listed in the -// registry. Registry will be used to assign orb names and to -// establish which is the default. - -CORBA::ORB_ptr -CORBA::ORB_init (int &argc, - char *const *argv, - const char * /* orb_name */, - CORBA::Environment &env) -{ - // Using ACE_Static_Object_Lock::instance() precludes ORB_init from - // being called within a static object CTOR. - ACE_MT (ACE_GUARD_RETURN (ACE_SYNCH_RECURSIVE_MUTEX, guard, - *ACE_Static_Object_Lock::instance (), 0)); - - env.clear (); - - // @@ We need to make sure it's ok for the following 3 - // initialization routines to be called multiple times. Or better - // yet, ensure that we just call them the first time, e.g., by - // putting them in some type of TAO_Object_Manager, along with the - // Typecode_Constants... - - // Put these initializations here so that exceptions are enabled - // immediately. - TAO_Marshal::initialize (); - TAO_Exceptions::init_standard_exceptions (env); - TAO_IIOP_Interpreter::init_table (); - - if (env.exception () != 0) - return 0; - - // Verify some of the basic implementation requirements. This test - // gets optimized away by a decent compiler (or else the rest of the - // routine does). - // - // NOTE: we still "just" assume that native floating point is IEEE. - - if (sizeof (CORBA::Short) != 2 - || sizeof (CORBA::Long) != 4 - || sizeof (CORBA::LongLong) != 8 - || sizeof (CORBA::Float) != 4 - || sizeof (CORBA::Double) != 8 - || sizeof (CORBA::LongDouble) != 16 - || sizeof (CORBA::WChar) < 2 - || sizeof (void *) != ACE_SIZEOF_VOID_P) - { - ACE_DEBUG ((LM_DEBUG, "%s; ERROR: unexpected basic type size; " - "s:%d l:%d ll:%d f:%d d:%d ld:%d wc:%d v:%d\n", - sizeof (CORBA::Short), - sizeof (CORBA::Long), - sizeof (CORBA::LongLong), - sizeof (CORBA::Float), - sizeof (CORBA::Double), - sizeof (CORBA::LongDouble), - sizeof (CORBA::WChar), - sizeof (void *))); - - env.exception (new CORBA::INITIALIZE (CORBA::COMPLETED_NO)); - return 0; - } - - // Initialize the ORB Core instance. - int result = TAO_ORB_Core_instance ()->init (argc, (char **)argv); - - // check for errors and return 0 if error. - if (result == -1) - { - env.exception (new CORBA::BAD_PARAM (CORBA::COMPLETED_NO)); - return 0; - } - - return TAO_ORB_Core_instance()->orb (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tao/factories.h b/TAO/tao/factories.h deleted file mode 100644 index 496dae62ed2..00000000000 --- a/TAO/tao/factories.h +++ /dev/null @@ -1,141 +0,0 @@ -// This may look like C, but it's really -*- C++ -*- - -// ============================================================================ -// -// = LIBRARY -// TAO -// -// = FILENAME -// factories.h -// -// = AUTHOR -// Chris Cleeland -// -// = VERSION -// $Id$ -// ============================================================================ - -#if !defined (TAO_FACTORIES_H) -# define TAO_FACTORIES_H - -#if 0 -# include "ace/SOCK_Acceptor.h" -# include "ace/SOCK_Connector.h" -# include "ace/Strategies_T.h" -# include "ace/Connector.h" -# include "ace/Synch.h" - -# include "tao/params.h" -# include "tao/connect.h" -# include "tao/objtable.h" -#endif - -class TAO_Client_Connection_Handler : public ACE_Svc_Handler - // = TITLE - // used on the client side and returned - // by the . -{ -public: - TAO_Client_Connection_Handler (ACE_Thread_Manager* = 0); - // Do-nothing constructor - - virtual int open (void*); - // Initialization hook - - void in_use (CORBA::Boolean); - // Set the in-use flag. - - CORBA::Boolean in_use (void); - // Return state of the in-use flag. - -private: - CORBA::Boolean in_use_; - // True value indicates that something is using this handler. -}; - -class TAO_Client_Factory - // = TITLE - // Abstract factory used by the client to turn out various - // strategies used on the client side. -{ -public: - typedef ACE_Strategy_Connector - CONNECTOR; - typedef ACE_NOOP_Creation_Strategy - NULL_CREATION_STRATEGY; - typedef ACE_Cached_Connect_Strategy - CACHED_CONNECT_STRATEGY; - -#if defined (TAO_HAS_CLIENT_CONCURRENCY) - CONCURRENCY_STRATEGY *concurrency_strategy (void); -#endif - - CONNECTOR *connector (void); - // Return a pointer to a connector using appropriate strategies. - - TAO_Client_Factory (void); - ~TAO_Client_Factory (void); - -private: -#if defined (TAO_HAS_CLIENT_CONCURRENCY) - CONCURRENCY_STRATEGY *concurrency_strategy_; -#endif - CONNECTOR connector_; - NULL_CREATION_STRATEGY null_creation_strategy_; - CACHED_CONNECT_STRATEGY caching_connect_strategy_; -}; - -class TAO_Server_Factory - // = TITLE - // Abstract factory used by the server side to turn out various - // strategies of special utility to it. -{ -public: - // = SERVER-SIDE - typedef ACE_Creation_Strategy CREATION_STRATEGY; - typedef ACE_Accept_Strategy ACCEPT_STRATEGY; - typedef ACE_Concurrency_Strategy CONCURRENCY_STRATEGY; - typedef ACE_Scheduling_Strategy SCHEDULING_STRATEGY; - - CREATION_STRATEGY *creation_strategy (void); - // return concrete creation strategy - - ACCEPT_STRATEGY *accept_strategy (void); - // return concrete acceptor strategy - - CONCURRENCY_STRATEGY *concurrency_strategy (void); - // return the concurrency strategy used - - SCHEDULING_STRATEGY *scheduling_strategy (void); - // return the scheduling strategy used - - TAO_Object_Table *object_lookup_strategy (void); - // return the concrete object lookup strategy - - TAO_Server_Factory (void); - // constructor - -private: - // = COMMON - ACE_Thread_Strategy threaded_strategy_; - // The threaded strategy used for passively establishing connections. - ACE_Reactive_Strategy reactive_strategy_; - // A strategy for passively establishing connections which utilizes the Reactor. - - // = SERVER - CONCURRENCY_STRATEGY *concurrency_strategy_; - // concrete concurrency strategy - - TAO_Object_Table *objtable_; - // instance of object table -#if 0 - // Someday we'll need these! - CREATION_STRATEGY *creation_strategy_; - ACCEPT_STRATEGY *accept_strategy_; - SCHEDULING_STRATEGY *scheduling_strategy_; -#endif -}; - -#endif /* TAO_FACTORIES_H */ diff --git a/TAO/tests/CDR/CDR.dsw b/TAO/tests/CDR/CDR.dsw deleted file mode 100644 index f634d83faa0..00000000000 --- a/TAO/tests/CDR/CDR.dsw +++ /dev/null @@ -1,53 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "basic_types"=.\basic_types.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "growth"=.\growth.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "tc"=.\tc.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/CDR/Makefile b/TAO/tests/CDR/Makefile deleted file mode 100644 index 9ea00b6abe6..00000000000 --- a/TAO/tests/CDR/Makefile +++ /dev/null @@ -1,621 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -PROG_SRCS = \ - basic_types.cpp \ - tc.cpp \ - growth.cpp \ - -LSRC = $(PROG_SRCS) - -BASIC_TYPES_OBJS = basic_types.o -TC_OBJS = tc.o -GROWTH_OBJS = growth.o - -BIN = basic_types tc growth -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 - -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -basic_types: $(addprefix $(VDIR),$(BASIC_TYPES_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -tc: $(addprefix $(VDIR),$(TC_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -growth: $(addprefix $(VDIR),$(GROWTH_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/basic_types.o .obj/basic_types.so .shobj/basic_types.o .shobj/basic_types.so: basic_types.cpp \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/tc.o .obj/tc.so .shobj/tc.o .shobj/tc.so: tc.cpp \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/growth.o .obj/growth.so .shobj/growth.o .shobj/growth.so: growth.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/CDR/README b/TAO/tests/CDR/README deleted file mode 100644 index 5e159a3d469..00000000000 --- a/TAO/tests/CDR/README +++ /dev/null @@ -1,14 +0,0 @@ -# $Id$ - -This directory contains two simple tests for the CDR stream class; - -+ basic_types: simply encodes a lot of CORBA::Octets, - CORBA::Short and CORBA::Long into a CDR stream and then decodes - them; verifying that the same results are obtained. - -+ tc: TAO implements TypeCodes using a CDR buffer (this was - inherited from the Sun IIOP engine), this test verifies thatn some - of the basic TypeCodes actually are able to interpret their CDR - buffers. - - Both tests take no arguments and return 0 on success. diff --git a/TAO/tests/CDR/basic_types.cpp b/TAO/tests/CDR/basic_types.cpp deleted file mode 100644 index a306c4f8fcf..00000000000 --- a/TAO/tests/CDR/basic_types.cpp +++ /dev/null @@ -1,253 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/CDR -// -// = FILENAME -// basic_types.cpp -// -// = DESCRIPTION -// Test the basic funcionality of a CDR stream by encoding some -// basic types and then decoding them again. -// -// = AUTHORS -// Carlos O'Ryan -// -// ============================================================================ - -#include "tao/corba.h" -#include "tao/debug.h" - -static const int n = 4096; -static int nloops = 100; - -struct CDR_Test_Types -{ - CDR_Test_Types (void); - - CORBA::Octet o; - CORBA::Short s; - CORBA::Long l; - CORBA::String str; - CORBA::Double d; - CORBA::Any any; - - enum { - ARRAY_SIZE = 10 - }; - - CORBA::Short a[ARRAY_SIZE]; -}; - -CDR_Test_Types::CDR_Test_Types (void) -: - o (1), s (2), l (4), str ("abc"), d (8), any (CORBA::_tc_short, new - CORBA::Short (s), 1) -{ - for (int i = 0; i < CDR_Test_Types::ARRAY_SIZE; ++i) - { - a[i] = i; - } -} - -static int -test_put (TAO_OutputCDR &cdr, CDR_Test_Types &test_types) -{ - for (int i = 0; i < n; ++i) - { - CORBA::Environment env; - - if (cdr.write_octet (test_types.o) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_octet[%d] failed\n", - i), - 1); - if (cdr.write_short (test_types.s) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_short[%d] failed\n", - i), - 1); - if (cdr.write_octet (test_types.o) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_octet-2[%d] failed\n", - i), - 1); - if (cdr.write_long (test_types.l) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_long[%d] failed\n", - i), - 1); - if (cdr.write_long (test_types.l) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_long-2[%d] failed\n", - i), - 1); -#if 0 - if (cdr.write_string (test_types.str) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_string[%d] failed\n", - i), - 1); -#endif - if (cdr.encode (CORBA::_tc_any, &test_types.any, 0, env) != - CORBA::TypeCode::TRAVERSE_CONTINUE) - ACE_ERROR_RETURN ((LM_ERROR, - "encode Any [%d] failed\n", - i), - 1); - } - - return 0; -} - -static int -test_get (TAO_InputCDR &cdr, const CDR_Test_Types &test_types) -{ - CORBA::Octet xo; - CORBA::Short xs; - CORBA::Long xl; - CORBA::Any any; - - CORBA::Environment env; - - for (int i = 0; i < n; ++i) - { - if (cdr.read_octet (xo) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_octet[%d] failed\n", - i), - 1); - if (xo != test_types.o) - ACE_ERROR_RETURN ((LM_ERROR, - "octet[%d] differs\n", - i), - 1); - if (cdr.read_short (xs) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_short[%d] failed\n", - i), 1); - if (xs != test_types.s) - ACE_ERROR_RETURN ((LM_ERROR, - "short[%d] differs\n", - i), - 1); - if (cdr.read_octet (xo) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_octet-2[%d] failed\n", - i), - 1); - if (xo != test_types.o) - ACE_ERROR_RETURN ((LM_ERROR, - "octet-2[%d] differs\n", - i), - 1); - if (cdr.read_long (xl) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_long[%d] failed\n", - i), - 1); - if (xl != test_types.l) - ACE_ERROR_RETURN ((LM_ERROR, - "long[%d] differs\n", - i), - 1); - if (cdr.read_long (xl) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_long-2[%d] failed\n", - i), - 1); - if (xl != test_types.l) - ACE_ERROR_RETURN ((LM_ERROR, - "long-2[%d] differs\n", - i), - 1); -#if 0 - CORBA::String xstr; - if (cdr.read_string (xstr) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_string2[%d] failed\n", - i), - 1); - if (ACE_OS::strcmp (xstr, test_types.str) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "string[%d] differs\n", - i), - 1); - CORBA::string_free (xstr); -#endif - if (cdr.decode (CORBA::_tc_any, &any, 0, env) == - CORBA::TypeCode::TRAVERSE_CONTINUE) - { - CORBA::Short s; - if (any >>= s) - { - if (test_types.s != s) - ACE_ERROR_RETURN ((LM_ERROR, - "Any short mismatch [%d != %d in loop %d]\n", - test_types.s, - s, - i), - 1); - } - else - ACE_ERROR_RETURN ((LM_ERROR, - "Any did not receive a short [%d] \n", - i), - 1); - } - else - ACE_ERROR_RETURN ((LM_ERROR, - "Any decode failed [%d] \n", - i), - 1); - } - - return 0; -} - -int -main (int argc, char *argv[]) -{ - TAO_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, - argv, - 0, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - for (int i = 0; i < nloops; ++i) - { - TAO_OutputCDR output; - CDR_Test_Types test_types; - - if (test_put (output, test_types) != 0) - { - return 1; - } - TAO_InputCDR input (output); -#if 0 - ACE_DEBUG ((LM_DEBUG, "Output CDR: \n")); - ACE_HEX_DUMP ((LM_DEBUG, input.rd_ptr(), 64)); - ACE_DEBUG ((LM_DEBUG, "Input CDR: \n")); - ACE_HEX_DUMP ((LM_DEBUG, input.rd_ptr(), 64)); -#endif - if (test_get (input, test_types) != 0) - { - return 1; - } - } - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TC"); - return 0; - - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/tests/CDR/basic_types.dsp b/TAO/tests/CDR/basic_types.dsp deleted file mode 100644 index 323b1f2e194..00000000000 --- a/TAO/tests/CDR/basic_types.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="basic_types" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=basic_types - 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 "basic_types.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 "basic_types.mak" CFG="basic_types - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "basic_types - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "basic_types - 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)" == "basic_types - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /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 TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ELSEIF "$(CFG)" == "basic_types - 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 "..\..\..\\" /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 TAO.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ENDIF - -# Begin Target - -# Name "basic_types - Win32 Release" -# Name "basic_types - Win32 Debug" -# Begin Source File - -SOURCE=.\basic_types.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/CDR/growth.cpp b/TAO/tests/CDR/growth.cpp deleted file mode 100644 index 69d42afb782..00000000000 --- a/TAO/tests/CDR/growth.cpp +++ /dev/null @@ -1,150 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/CDR -// -// = FILENAME -// growth.cpp -// -// = DESCRIPTION -// Helps in measuring how the growth strategy affects the -// performance of CDR streams. -// -// = AUTHORS -// Carlos O'Ryan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/High_Res_Timer.h" - -#include "tao/corba.h" -#include "tao/debug.h" - -static int -test_write (TAO_OutputCDR &cdr, int n) -{ - CORBA::Long l = 0xdeadbeef; - - for (int i = 0; i < n; ++i) - { - if (cdr.write_long (l) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "write_long[%d] failed\n", - i), - 1); - } - - return 0; -} - -static int -test_read (TAO_InputCDR &cdr, int n) -{ - CORBA::Long xl; - - for (int i = 0; i < n; ++i) - { - if (cdr.read_long (xl) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "read_long[%d] failed\n", - i), - 1); - } - - return 0; -} - -int -main (int argc, char *argv[]) -{ - int n = 100; - int low = 64; - int hi = 4096; - int s = 4; - - ACE_Get_Opt get_opt (argc, argv, "n:l:h:s:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'n': - n = ACE_OS::atoi (get_opt.optarg); - break; - case 'l': - low = ACE_OS::atoi (get_opt.optarg); - break; - case 'h': - hi = ACE_OS::atoi (get_opt.optarg); - break; - case 's': - s = ACE_OS::atoi (get_opt.optarg); - break; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "-l low " - "-h high " - "-s step " - "-n n " - "\n" - "Writes and then reads longs to a CDR stream " - "starting from up to incrementing " - "by , at each step run iterations to " - "average." - "\n", - argv[0])); - return -1; - } - } - - for (int x = low; x <= hi; x += s) - { - ACE_High_Res_Timer writing; - ACE_High_Res_Timer reading; - - for (int i = 0; i < n; ++i) - { - writing.start_incr (); - TAO_OutputCDR output; - - if (test_write (output, x) != 0) - { - return 1; - } - writing.stop_incr (); - - reading.start_incr (); - TAO_InputCDR input (output); - if (test_read (input, x) != 0) - { - return 1; - } - reading.stop_incr (); - } - double m = n * x; - - ACE_Time_Value wtv; - writing.elapsed_time_incr (wtv); - ACE_hrtime_t wusecs = wtv.sec (); - wusecs *= ACE_static_cast (ACE_UINT32, ACE_ONE_SECOND_IN_USECS); - wusecs += wtv.usec (); - - ACE_Time_Value rtv; - reading.elapsed_time_incr (rtv); - ACE_hrtime_t rusecs = rtv.sec (); - rusecs *= ACE_static_cast (ACE_UINT32, ACE_ONE_SECOND_IN_USECS); - rusecs += rtv.usec (); - - double write_average = ACE_static_cast(ACE_INT32, wusecs) / m; - double read_average = ACE_static_cast(ACE_INT32, rusecs) / m; - ACE_OS::printf ("AVE: %d %f %f\n", - x, write_average, read_average); - } - return 0; -} diff --git a/TAO/tests/CDR/growth.dsp b/TAO/tests/CDR/growth.dsp deleted file mode 100644 index 84450e8a4ed..00000000000 --- a/TAO/tests/CDR/growth.dsp +++ /dev/null @@ -1,87 +0,0 @@ -# Microsoft Developer Studio Project File - Name="growth" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=growth - 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 "growth.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 "growth.mak" CFG="growth - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "growth - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "growth - 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)" == "growth - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "growth - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# 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 "..\..\..\\" /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 TAO.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ENDIF - -# Begin Target - -# Name "growth - Win32 Release" -# Name "growth - Win32 Debug" -# Begin Source File - -SOURCE=.\growth.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/CDR/growth.dsw b/TAO/tests/CDR/growth.dsw deleted file mode 100644 index 0b525c90763..00000000000 --- a/TAO/tests/CDR/growth.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: "growth"=.\growth.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/CDR/tc.cpp b/TAO/tests/CDR/tc.cpp deleted file mode 100644 index f1d01f3cd27..00000000000 --- a/TAO/tests/CDR/tc.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/CDR -// -// = FILENAME -// tc.cpp -// -// = DESCRIPTION -// Verify that the basic typecodes are able to interpret their CDR -// buffers. -// -// = AUTHORS -// Carlos O'Ryan -// -// ============================================================================ - -#include "tao/corba.h" - -// In this version of TAO typecodes are based on CDR, we have to -// verify that CDR offers the services needed for Typecode... - -int -main (int argc, char *argv[]) -{ - TAO_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, - argv, - 0, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - static const CORBA::TypeCode_ptr tcs[]= - { - CORBA::_tc_null, - CORBA::_tc_void, - CORBA::_tc_short, - CORBA::_tc_long, - CORBA::_tc_ushort, - CORBA::_tc_ulong, - CORBA::_tc_float, - CORBA::_tc_double, - CORBA::_tc_boolean, - CORBA::_tc_char, - CORBA::_tc_octet, - CORBA::_tc_any, - CORBA::_tc_TypeCode, - CORBA::_tc_Principal, - CORBA::_tc_Object, - // CORBA::_tc_struct, - // CORBA::_tc_union, - // CORBA::_tc_enum, - CORBA::_tc_string, - // CORBA::_tc_sequence, - // CORBA::_tc_array, - // CORBA::_tc_alias, - // CORBA::_tc_except, - CORBA::_tc_longlong, - CORBA::_tc_ulonglong, - CORBA::_tc_longdouble, - CORBA::_tc_wchar, - CORBA::_tc_wstring, - CORBA::_tc_UNKNOWN, - CORBA::_tc_BAD_PARAM, - CORBA::_tc_NO_MEMORY, - CORBA::_tc_IMP_LIMIT, - CORBA::_tc_COMM_FAILURE, - CORBA::_tc_INV_OBJREF, - CORBA::_tc_OBJECT_NOT_EXIST, - CORBA::_tc_NO_PERMISSION, - CORBA::_tc_INTERNAL, - CORBA::_tc_MARSHAL, - CORBA::_tc_INITIALIZE, - CORBA::_tc_NO_IMPLEMENT, - CORBA::_tc_BAD_TYPECODE, - CORBA::_tc_BAD_OPERATION, - CORBA::_tc_NO_RESOURCES, - CORBA::_tc_NO_RESPONSE, - CORBA::_tc_PERSIST_STORE, - CORBA::_tc_BAD_INV_ORDER, - CORBA::_tc_TRANSIENT, - CORBA::_tc_FREE_MEM, - CORBA::_tc_INV_IDENT, - CORBA::_tc_INV_FLAG, - CORBA::_tc_INTF_REPOS, - CORBA::_tc_BAD_CONTEXT, - CORBA::_tc_OBJ_ADAPTER, - CORBA::_tc_DATA_CONVERSION, - CORBA::_tc_Bounds, - CORBA::_tc_BadKind - }; - - static int n = sizeof (tcs) / sizeof (tcs[0]); - - for (const CORBA::TypeCode_ptr *i = tcs; - i != tcs + n; - ++i) - { - CORBA::TypeCode_ptr tc = *i; - - CORBA::TCKind k = tc->kind (TAO_TRY_ENV); - TAO_CHECK_ENV; - - switch (k) - { - case CORBA::tk_objref: - case CORBA::tk_struct: - case CORBA::tk_union: - case CORBA::tk_enum: - case CORBA::tk_alias: - case CORBA::tk_except: - { - const char *id = tc->id (TAO_TRY_ENV); - TAO_CHECK_ENV; - - const char *name = tc->name (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::ULong length = 0; - // tc->length (TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "ID = '%s'\n" - "%{%{ NAME = %s%$" - " KIND = %d%$" - " LENGTH = %d" - "%}%}\n", - (id?id:"empty ID"), - (name?name:"empty name"), - k, - length)); - break; - } - default: - ACE_DEBUG ((LM_DEBUG, - "basic type: %d\n", - k)); - break; - } - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("TC"); - } - TAO_ENDTRY; - - return 0; -} diff --git a/TAO/tests/CDR/tc.dsp b/TAO/tests/CDR/tc.dsp deleted file mode 100644 index bc697fe1201..00000000000 --- a/TAO/tests/CDR/tc.dsp +++ /dev/null @@ -1,89 +0,0 @@ -# Microsoft Developer Studio Project File - Name="tc" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=tc - 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 "tc.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 "tc.mak" CFG="tc - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "tc - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "tc - 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)" == "tc - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\\" /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 TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ELSEIF "$(CFG)" == "tc - 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 "..\..\..\\" /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 TAO.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ENDIF - -# Begin Target - -# Name "tc - Win32 Release" -# Name "tc - Win32 Debug" -# Begin Source File - -SOURCE=.\tc.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile b/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile deleted file mode 100644 index 8a1b18e7113..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/Makefile +++ /dev/null @@ -1,144 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the CHORUS COOL Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -IDL_SRC = cubit.cpp cubit.H sk_cubit.C sk_cubit.H - -SRC = $(IDL_SRC) cubit_i.cpp server.cpp client.cpp tmplinst.cpp - -SVR_OBJS = cubit_i.o server.o cubit.o tmplinst.o - -CLT_OBJS = client.o cubit.o tmplinst.o - -#---------------------------------------------------------------------------- -# 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 - -#---------------------------------------------------------------------------- -# CHORUS related macros and target settings. -#---------------------------------------------------------------------------- - -CHORUS_BINDIR = $(CHORUS_ROOT)/bin -CHORUS_LIBDIR = $(CHORUS_ROOT)/lib -CHORUS_INCDIR = $(CHORUS_ROOT)/include - -CPPFLAGS += -I$(CHORUS_INCDIR) -I$(CHORUS_ROOT) -LDFLAGS += -L$(CHORUS_LIBDIR) -R$(CHORUS_LIBDIR) -L$(ACE)/ace -IDLFLAGS = --stub-header --stub-impl --skeleton-header --skeleton-impl --no-local --binding Cubit Cubit_i --binding Cubit_Factory Cubit_Factory_i - -ifdef CHORUS - LDLIBS += -lOrb -else - LDLIBS += -lOrb-mt $(MATHLIB) -endif - -VLDLIBS := $(LDLIBS:%=%$(VAR)) $(ACELIB) $(LIBS) - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: $(IDL_SRC) server client - -$(IDL_SRC): cubit.idl - $(CHORUS_BINDIR)/chic $(IDLFLAGS) cubit.idl - -/bin/mv cubit.C cubit.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.H sk_cubit.C sk_cubit.H server client - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit.o .obj/cubit.so .shobj/cubit.o .shobj/cubit.so: cubit.cpp cubit.H -.obj/sk_cubit.o .obj/sk_cubit.so .shobj/sk_cubit.o .shobj/sk_cubit.so: sk_cubit.C -.obj/cubit_i.o .obj/cubit_i.so .shobj/cubit_i.o .shobj/cubit_i.so: cubit_i.cpp cubit_i.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i cubit.H sk_cubit.H -.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Get_Opt.i cubit_i.h cubit.H \ - sk_cubit.H sk_cubit.C -.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(ACE_ROOT)/ace/Env_Value_T.h \ - $(ACE_ROOT)/ace/Env_Value_T.i client.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/api/api.H \ - sk_cubit.H -.obj/tmplinst.o .obj/tmplinst.so .shobj/tmplinst.o .shobj/tmplinst.so: tmplinst.cpp cubit.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/README b/TAO/tests/Cubit/COOL/IDL_Cubit/README deleted file mode 100644 index 5987e0d6df2..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/README +++ /dev/null @@ -1,34 +0,0 @@ -This is the cubit example that uses the TAO IDL compiler to generate -the stubs and skeletons. Additional features include presence of a -factory to create Cubit objects and testing the _bind call to get the -factory object reference. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -% server [-d] [-ORBhost ] [-ORBport ] - [-n ] - -The server cubit factory maintained num_of_cubit objects (default = -1). They are assigned keys that look like "key0", "key1", ... - -When the server is started and you have used the -d flag, you should -see as the first line of output something that looks like - iiop:1.0//serverhost:10013/factory (using -ORBobjrefstyle url) -or - IOR:000000000000001649444c3a43756269745... (using default -ORBobjrefstyle ior) - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - -client: -------- - -% client [-d] -h -p -k -n - -cubit_key corresponds to "key0", "key1", ... diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp deleted file mode 100644 index 8ddb3e88602..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/client.cpp +++ /dev/null @@ -1,747 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Copyright 1994-1995 by Sun Microsystems Inc. -// and -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Profile_Timer.h" -#include "ace/Env_Value_T.h" -#include "client.h" - -#include "api/api.H" -#include "cubit.H" -#include "sk_cubit.H" - -// Constants -u_int _debug_level = 0; -const u_int DEFAULT_PORT = 3000; -CORBA::Environment Cubit_Client::env_; - - -// Constructor. - -#define quote(x) #x - -Cubit_Client::Cubit_Client (void) - : cubit_factory_key_ ("factory"), - cubit_key_ ("key0"), - hostname_ (ACE_DEFAULT_SERVER_HOST), - loop_count_ (250), - exit_later_ (0), - factory_ (Cubit_Factory::_nil ()), - objref_ (CORBA::Object::_nil ()), - cubit_ (Cubit::_nil ()), - orb_ptr_ (0), - call_count_ (0), - error_count_ (0), - portnum_(DEFAULT_PORT) -{ -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -Cubit_Client::func (u_int i) -{ - return i - 117; -} - -// Parses the command line arguments and returns an error status. - -int -Cubit_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:h:p:k:x"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - _debug_level++; - break; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (get_opts.optarg); - break; - case 'h': - hostname_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'p': - portnum_ = ACE_OS::atoi (get_opts.optarg); - break; - case 'k': // stringified objref - cubit_key_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->exit_later_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-k cubit-obj-ref-key]" - " [-h hostname]" - " [-p port]" - " [-x]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Exercise the union. Cube a union. - -void -Cubit_Client::cube_union_stub (void) -{ - CORBA::Environment env; - Cubit::oneof u, r; - - this->call_count_++; - - u.l (3); // use the long union branch - - // Cube a "union" ... - r = this->cubit_->cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_union"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube union ...")); - u.l (u.l () * u.l () * u.l ()) ; - - if (u.l () != r.l ()) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - } - - this->call_count_++; - - u._d (Cubit::e_3rd); -#if 0 - u.cm ().l = this->func (i); - u.cm ().s = this->func (i); - u.cm ().o = this->func (i); -#endif - - u.cm ().l = 7; - u.cm ().s = 5; - u.cm ().o = 3; - - // Cube another "union" which uses the default arm ... NOT tested yet - r = this->cubit_->cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_union"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube union ...")); - u.cm ().l = u.cm ().l * u.cm ().l * u.cm ().l; - u.cm ().s = u.cm ().s * u.cm ().s * u.cm ().s; - u.cm ().o = u.cm ().o * u.cm ().o * u.cm ().o; - - if (u.cm ().l != r.cm ().l - || u.cm ().s != r.cm ().s - || u.cm ().o != r.cm ().o) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - } -} - -// Exercise the union using dii. - -void -Cubit_Client::cube_union_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req; - - this->call_count_++; - - req = this->cubit_->_request ((CORBA::String) "cube_union", this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - - this->print_exception ("cube_union_dii request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::oneof *u, r; - - u = new Cubit::oneof; - u->_d (Cubit::e_3rd); - - u->cm ().l = 5; - u->cm ().s = -7; - u->cm ().o = 3; - - CORBA::Any tmp_arg (Cubit::_tc_oneof, u, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA_ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_oneof, 0, CORBA_TRUE); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result. - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->error_count_++; - this->print_exception ("cube_union_dii invoke", *req->env ()); - CORBA::release (req); - return; - } - - r = *(Cubit::oneof *) req->result ()->value ()->value (); - - if (r.cm ().o != 27 || r.cm ().l != 125 || r.cm ().s != -343) - { - this->error_count_++; - ACE_ERROR ((LM_ERROR, "cube_union_dii -- bad results\n")); - } - else - ACE_DEBUG ((LM_DEBUG, "cube_union_dii ... success!!")); - - CORBA::release (req); - delete u; -} - -// Cube a short. - -void -Cubit_Client::cube_short (int i) -{ - CORBA::Short arg_short = this->func (i); - // Cube a short. - CORBA::Short ret_short = cubit_->cube_short (arg_short, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_short"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube short: %d --> %d\n", - arg_short, - ret_short)); - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, "** cube_short (%d) ERROR (--> %d)\n", - (CORBA::Short) this->func (i), - ret_short)); - this->error_count_++; - } - } -} - -// Cube an octet - -void -Cubit_Client::cube_octet (int i) -{ - CORBA::Octet arg_octet = this->func (i); - - // Cube an octet. - CORBA::Octet ret_octet = this->cubit_->cube_octet (arg_octet, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_octet"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube octet: %d --> %d\n", arg_octet, ret_octet)); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_DEBUG ((LM_DEBUG, - "** cube_octet (%d) ERROR (--> %d)\n", - (CORBA::Octet) this->func (i), - ret_octet)); - this->error_count_++; - } - } -} - -// calculate the cube from a long - -void -Cubit_Client::cube_long (int i) -{ - CORBA::Long arg_long = this->func (i); - - // Cube a long. - CORBA::Long ret_long = this->cubit_->cube_long (arg_long, this->env_);; - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_long"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube long: %d --> %d\n", arg_long, ret_long)); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_ERROR ((LM_ERROR, - "** cube_long (%ld) ERROR (--> %ld)\n", - (CORBA::Long) this->func (i), - ret_long)); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct (int i) -{ - Cubit::Many arg_struct; - Cubit::Many ret_struct; - - this->call_count_++; - - arg_struct.l = this->func (i); - arg_struct.s = this->func (i); - arg_struct.o = this->func (i); - - // Cube a "struct" ... - ret_struct = this->cubit_->cube_struct (arg_struct, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - if (_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "cube struct ...")); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o) - { - ACE_ERROR ((LM_ERROR, "** cube_struct ERROR\n")); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req = - this->cubit_->_request ((CORBA::String) "cube_struct", this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::Many arg; - Cubit::Many result; - - arg.o = 3; - arg.l = 5; - arg.s = -7; - - CORBA::Any tmp_arg (Cubit::_tc_Many, &arg, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA_ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_Many, 0, CORBA_TRUE); - - if (this->env_.exception () != 0) - { - this->print_exception ("DII request result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->print_exception ("DII invoke sending struct", *req->env ()); - CORBA::release (req); - return; - } - - result = *(Cubit::Many *) req->result ()->value ()->value (); - - if (result.o != 27 || result.l != 125 || result.s != -343) - ACE_ERROR ((LM_ERROR, "DII cube_struct -- bad results\n")); - else - ACE_DEBUG ((LM_DEBUG, "DII cube_struct ... success!!")); - - CORBA::release (req); -} - -void -Cubit_Client::print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time) -{ - double tmp; - - ACE_DEBUG ((LM_DEBUG, - "%s:\n", - call_name)); - - if (this->call_count_ > 0 && this->error_count_ == 0) - { - tmp = 1000 / elapsed_time.real_time; - - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= this->call_count_; - elapsed_time.user_time /= this->call_count_; - elapsed_time.system_time /= this->call_count_; - - tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %0.06f ms, \n\t" - "user_time\t= %0.06f ms, \n\t" - "system_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0? 0.0:elapsed_time.real_time, - elapsed_time.user_time < 0.0? 0.0:elapsed_time.user_time, - elapsed_time.system_time < 0.0? 0.0:elapsed_time.system_time, - tmp < 0.0? 0.0 : tmp)); - } - else - { - ACE_ERROR ((LM_ERROR, "\tNo time stats printed. Call count zero or error ocurred.\n")); - } - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n", - this->call_count_, - this->error_count_)); -} - -// Execute client example code. - -int -Cubit_Client::run (void) -{ - u_int i; - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // ACE_Time_Value before; - - // We start an ACE_Profile_Timer here... - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_short (i); - this->cube_octet (i); - this->cube_long (i); - this->cube_struct (i); - } - - // stop the timer. - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube average call", elapsed_time); - - -#if 0 // this test is segfaulting, comment for now. - // Simple test for DII: call "cube_struct". (It's not timed since - // the copious mallocation of DII would bias numbers against typical - // stub-based calls). - - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_struct_dii (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_struct_dii call", elapsed_time); - - // ------------------> - // Two more tests, using the "cube_union" function - - // unions using stubs - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_stub (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_stub call", elapsed_time); - - // union DII - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_dii (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_dii call", elapsed_time); -#endif - if (this->exit_later_) - { - this->cubit_->please_exit (this->env_); - this->print_exception ("server, please ACE_OS::exit", this->env_); - } - - return this->error_count_ == 0 ? 0 : 1; -} - -Cubit_Client::~Cubit_Client (void) -{ - // Free resources - CORBA::release (this->factory_); - CORBA::release (this->cubit_); -} - -int -Cubit_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - // Retrieve the ORB. - this->orb_ptr_ = CORBA::ORB_init (this->argc_, - this->argv_, - 0, - this->env_); - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - if (this->env_.exception () != 0) - { - this->print_exception ("ORB initialization"); - return -1; - } - - if (this->cubit_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: must specify an object reference using -k \n", - this->argv_[0]), - -1); - - // Retrieve a factory objref. - char ior[BUFSIZ]; - sprintf ( ior, "cool-tcp://%s:%d", this->hostname_, this->portnum_ ); - - ACE_DEBUG ((LM_DEBUG, "ior is \"%s\"\n", ior)); - - COOL::EOABindingData bindingData (ior); - - this->factory_ = Cubit_Factory::_bind(bindingData, this->env_); - - // this->objref_ = Cubit_Factory::_bind (this->hostname_, - // this->portnum_, - // this->cubit_factory_key_, - // this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("Cubit_Factory::_bind"); - return -1; - } - - if (CORBA::is_nil (this->factory_) == CORBA_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - " _bind returned null object for host (%s), port (%d)\n", - this->hostname_, - this->portnum_), - -1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. There is really no need to - // narrow because <_bind> will return us the - // pointer. However, we do it so that we can - // explicitly test the _narrow function. - -//this->factory_ = Cubit_Factory::_narrow (this->objref_, this->env_); - - //CORBA::release (this->objref_); - // this->objref_->Release (); - - // if (this->factory_ == 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // " (%P|%t) Unable to narrow object reference to a Cubit_Factory_ptr.\n"), - // -1); - - // Now retrieve the Cubit obj ref corresponding to the key. - this->cubit_ = - this->factory_->make_cubit (this->cubit_key_, this->env_); - - if (this->env_.exception () != 0) - { - this->print_exception ("make_cubit"); - return -1; - } - - if (CORBA::is_nil (this->cubit_)) - ACE_ERROR_RETURN ((LM_ERROR, - "null cubit objref returned by factory\n"), - -1); - - return 0; -} - -void Cubit_Client::print_exception (const char * str, - const CORBA_Environment &env) -{ - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s: %s.\n", str, (const char *) msg); - } - else - { - fprintf(stderr, "%s: Unknown user exception.\n", str); - } -} - - - - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - return cubit_client.run (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Env_Value; -template class ACE_Env_Value; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Env_Value -#pragma instantiate ACE_Env_Value -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/client.h b/TAO/tests/Cubit/COOL/IDL_Cubit/client.h deleted file mode 100644 index 94cc36a14bd..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/client.h +++ /dev/null @@ -1,128 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Copyright 1994-1995 by Sun Microsystems Inc. -// and -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "cubit.H" - -class Cubit_Client - // = TITLE - // Defines a class that encapsulates behaviour of the Cubit client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Cubit CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ -public: - // = Constructor and destructor. - Cubit_Client (void); - ~Cubit_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - - void print_exception (const char * str, - const CORBA_Environment &env=Cubit_Client::env_); - -private: - int func (u_int i); - // simple function that returns the substraction of 117 from the parameter. - - int parse_args (void); - // Parses the arguments passed on the command line. - - void print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time); - // prints the time stats - - void cube_union_stub (void); - // Exercise the union. Cube a union. - - void cube_union_dii (void); - // Exercise the union using dii. - - void cube_struct (int i); - // calculate the cube from a struct. - - void cube_long (int i); - // calculate the cube from a long - - void cube_octet (int i); - // Cube an octet - - void cube_short (int i); - // Cube a short. - - void cube_sequence (int i); - // Cube a sequence. - - void cube_struct_dii (void); - // Cube the numbers in a struct - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - const char *cubit_factory_key_; - // Key of factory obj ref. - - char *cubit_key_; - // Key of the obj ref to be retrieved via the factory. - - char *hostname_; - // Hostname of server. - - CORBA::UShort portnum_; - // default port number of server. - - u_int loop_count_; - // Number of times to do the cube operations. - - int exit_later_; - // Flag to tell server to not exit immediately - - Cubit_Factory_ptr factory_; - // factory pointer for cubit. - - CORBA::Object_ptr objref_; - // storage of the factory objref - - static CORBA::Environment env_; - // Environment variable - - Cubit_ptr cubit_; - // Cubit obj ref - - CORBA::ORB_ptr orb_ptr_; - // Remember our orb - - u_int call_count_; - // # of calls made to functions - - u_int error_count_; - // # of errors incurred in the lifetime of the application. -}; diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl deleted file mode 100644 index 9ddc2d8954f..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit.idl +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -interface Cubit - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. - -{ - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - // Cube a struct - - enum discrim - { - e_0th, - e_1st, - e_2nd, - e_3rd - }; - // Enumeration of the different elements in a union. - - union oneof switch (discrim) - { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - - // default: - // Many cm; - }; - // Union of different types. - - oneof cube_union (in oneof values); - // cube a union. - - oneway void please_exit (); - // shutdown the application. -}; - -interface Cubit_Factory - // = TITLE - // Creates Cubit objects -{ - Cubit make_cubit (in string key); -}; diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp deleted file mode 100644 index cf4a3c99630..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "cubit_i.h" -#include -#include -#include -#include - -extern void print_exception (const CORBA_Environment &env, const char * str); - -// Constructor - -Cubit_Factory_i::Cubit_Factory_i (const char *key, int numobjs) -{ - // Create implementation object with user specified key. - - this->numobjs_ = numobjs; - this->my_cubit_ = new Cubit_i_ptr [this->numobjs_]; - - static char obj_str [MAXNAMELEN]; - - for (u_int i = 0; i < this->numobjs_; i++) - { - ACE_OS::memset (obj_str, '\0', MAXNAMELEN); - ACE_OS::sprintf (obj_str, "key%d", i); - - my_cubit_[i] = new Cubit_i (obj_str); - - if (my_cubit_[i] == 0) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to create implementation object%d\n", - i)); - - } -} - -// Destructor - -Cubit_Factory_i::~Cubit_Factory_i (void) -{ - delete [] this->my_cubit_; -} - -Cubit_ptr -Cubit_Factory_i::make_cubit (const char *key, CORBA::Environment &env) -{ - Cubit_ptr cb = 0; - - for (size_t i = 0; i < this->numobjs_; i++) - { - const char *obj_str = this->my_cubit_[i]->_get_name (); - - // Keys matched. - if (!ACE_OS::strcmp (obj_str, key)) - { - COOL_bind(*(this->my_cubit_ [i]), cb, env); - if (env.exception() != 0) - print_exception (env, "COOL_bind"); - // return Cubit::_duplicate (this->my_cubit_ [i]); - return cb; - } - } - - return Cubit::_nil (); -} - -// Constructor - -Cubit_i::Cubit_i (const char *obj_name) - // : POA_Cubit (obj_name) -{ - obj_name_ = ACE_OS::strdup (obj_name); -} - -const char * -Cubit_i::_get_name (void) -{ - return this->obj_name_; -} - -// Destructor - -Cubit_i::~Cubit_i (void) -{ -} - -// Cube an octet - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return o * o * o; -} - -// Cube a short. - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return s * s * s; -} - -// Cube a long - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return l * l * l; -} - -// Cube a struct - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values, - CORBA::Environment &env) -{ - Cubit::Many temp; - - ACE_UNUSED_ARG (env); - temp.o = values.o * values.o * values.o; - temp.s = values.s * values.s * values.s; - temp.l = values.l * values.l * values.l; - - return temp; -} - -// Cube a union - -Cubit::oneof -Cubit_i::cube_union (const Cubit::oneof &values, - CORBA::Environment &env) -{ - Cubit::oneof temp; - - ACE_UNUSED_ARG (env); - switch (values._d ()) - { - case Cubit::e_0th: - temp.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - temp.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - temp.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - temp._d (values._d ()); // set the discriminant - // use the read/write accessor - temp.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o; - temp.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s; - temp.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l; - - } - return temp; -} - -// Shutdown. - -void Cubit_i::please_exit (CORBA::Environment &env) -{ - // Macro to avoid "warning: unused parameter" type warning. - ACE_UNUSED_ARG (env); - - ACE_DEBUG ((LM_DEBUG, "I've been asked to shut down...")); - thisCapsule->boa()->shutdown(); - - CORBA_BOA::deactivate_object(this, env); -} diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h b/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h deleted file mode 100644 index 9db23e7dbb6..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/cubit_i.h +++ /dev/null @@ -1,109 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_HH) -#define _CUBIT_I_HH - -#include "ace/ACE.h" - -#include -#include -#include -#include - -extern COOL_CurrentCapsule* thisCapsule; - -#include "cubit.H" -#include "sk_cubit.H" - -// Forward declarations -class Cubit_i; - -// Typedefs. -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i - // = TITLE - // Illustrates how to integrate a servant with the - // generated skeleton. - // = DESCRIPTION - // Implementation of the cubit example at the servant side. - // Cubes an octet, short, long, struct and union. -{ -public: - Cubit_i (const char *obj_name = 0); - // Constructor - - ~Cubit_i (void); - // Destructor - - virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - // Cube an octet - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - // Cube a short - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - // Cube a long - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - // Cube a struct. - - virtual Cubit::oneof cube_union (const Cubit::oneof &values, - CORBA::Environment &env); - // Cube a union. - - virtual void please_exit (CORBA::Environment &env); - // Shutdown routine. - - const char *_get_name (void); - - private: - const char * obj_name_; -}; - - -class Cubit_Factory_i; - -typedef Cubit_Factory_i *Cubit_Factory_i_ptr; - -class Cubit_Factory_i - // =TITLE - // Cubit_Factory_i - // - // DESCRIPTION - // factory object returning the cubit objrefs -{ -public: - Cubit_Factory_i (const char *key, int numobjs); - // constructor - - ~Cubit_Factory_i (void); - // destructor - - virtual Cubit_ptr make_cubit (const char *key, CORBA::Environment &env); - // make the cubit object whose key is "key" - -private: - Cubit_i_ptr *my_cubit_; - u_int numobjs_; -}; - -#endif /* _CUBIT_I_HH */ diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp deleted file mode 100644 index 6a787fe7e93..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/server.cpp +++ /dev/null @@ -1,149 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// svr.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "cubit_i.h" - -#include -#include -#include "cubit.H" -#include "sk_cubit.H" -#include "sk_cubit.C" - -void print_exception (const CORBA_Environment &env, - const char * str) -{ - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s: %s.\n", str, (const char *) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } -} - - -// Global Variables -static int num_of_objs = 1; - -u_int _debug_level = 0; - -// Parses the command line arguments and returns an error status - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "dn:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - _debug_level++; - break; - case 'n': // number of cubit objects we hold - num_of_objs = ACE_OS::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] " - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - CORBA::Environment env; - - COOL::EOA::bind(argv[1], env); - if (env.exception()) { - ACE_DEBUG ((LM_ERROR, "Impossible to bind the ORB to the description:%s\n", argv[1])); - return -1; - } - - CORBA::ORB_ptr orb_ptr = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - print_exception (env, "ORB init"); - return 1; - } - - // Initialize the Object Adapter - CORBA_BOA_ptr oa_ptr = orb_ptr->OA_init (argc, argv, 0, env); - - if (env.exception() != 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - // Parse remaining command line and verify parameters. - parse_args (argc, argv); - - // create a factory implementation - Cubit_Factory_ptr factory; - Cubit_Factory_i *factory_i; - COOL::EOABindingData bindingData; - - ACE_NEW_RETURN (factory_i, Cubit_Factory_i ("factory", num_of_objs), 1); - - COOL_bind (*factory_i, factory, bindingData, env); - - if (_debug_level > 0) - { - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - - CORBA::String str; - - str = orb_ptr->object_to_string (factory, env); - - if (env.exception () != 0) - { - print_exception (env, "object_to_string"); - return -1; - } - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - - ACE_DEBUG ((LM_DEBUG, "listening as object '%s'\n", str)); - } - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - ACE_DEBUG ((LM_DEBUG, "Entering boa->run ().\n")); - oa_ptr->run (); - - return 0; -} diff --git a/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp b/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp deleted file mode 100644 index f5cb1888b55..00000000000 --- a/TAO/tests/Cubit/COOL/IDL_Cubit/tmplinst.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "cubit.H" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ - diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Makefile b/TAO/tests/Cubit/COOL/MT_Cubit/Makefile deleted file mode 100644 index d605120ca98..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Makefile +++ /dev/null @@ -1,91 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the CHORUS COOL Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -IDL_SRC = cubit.cpp cubit.H sk_cubit.C sk_cubit.H - -SRC = $(IDL_SRC) \ - cubit_impl.cpp \ - server.cpp \ - client.cpp \ - Task_Client.cpp \ - Util_Thread.cpp - -SVR_OBJS = cubit_impl.o \ - server.o \ - cubit.o - -CLT_OBJS = Task_Client.o \ - client.o \ - cubit.o \ - Util_Thread.o - -#---------------------------------------------------------------------------- -# 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 - -#---------------------------------------------------------------------------- -# CHORUS related macros and target settings. -#---------------------------------------------------------------------------- - -CHORUS_BINDIR = $(CHORUS_ROOT)/bin -CHORUS_LIBDIR = $(CHORUS_ROOT)/lib -CHORUS_INCDIR = $(CHORUS_ROOT)/include - -CPPFLAGS += -I$(CHORUS_INCDIR) -I$(CHORUS_ROOT) -LDFLAGS += -L$(CHORUS_LIBDIR) -R$(CHORUS_LIBDIR) -L$(ACE)/ace -IDLFLAGS = --stub-header --stub-impl --skeleton-header --skeleton-impl --no-local --no-any --binding Cubit Cubit_Impl - -# pccTimer will eventually get integrated into ACE. It is specific for -# ClassiX on VME -ifdef CHORUS - SRC += pccTimer.cpp - CLT_OBJS += pccTimer.o - LDLIBS += -lOrb -else - LDLIBS += -lOrb-mt -endif - -VLDLIBS := $(LDLIBS:%=%$(VAR)) $(ACELIB) $(LIBS) - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: $(IDL_SRC) server client - -$(IDL_SRC): cubit.idl - $(CHORUS_BINDIR)/chic $(IDLFLAGS) cubit.idl - -/bin/mv cubit.C cubit.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.H sk_cubit.C sk_cubit.H server client - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Cubit/COOL/MT_Cubit/README b/TAO/tests/Cubit/COOL/MT_Cubit/README deleted file mode 100644 index f8e7941cbdf..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/README +++ /dev/null @@ -1,166 +0,0 @@ -The MT-Cubit example for the CHORUS COOL ORB --------------------------------------------- - -Compiling ---------- - -Setup the CHORUS COOL environment variables before compiling, the -following is an example. You would typically want this in the shells' -resource file (e.g. .cshrc.mine). The example provided is for a C -shell. - - setenv CHORUS_ROOT /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt - set path = ($path /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/bin) - setenv LD_LIBRARY_PATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/lib:$LD_LIBRARY_PATH - setenv MANPATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/man:$MANPATH - -Makefiles are provided. Use make to compile. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -./server - - -v - <-cool-tcp -cool-iiop | -cool-chorus> - -tpr : this indicates to the server to use the Thread Per Request concurrency model. - -tpool : this indicates to the server to use the Thread Pool concurrency model. - -THIS_HOSTNAME : the name of the host that the server will be running on. This is useful - if you want to specifya different interface (e.g. ATM, 100Mbit Ethernet) - -THIS_HOST_PORT: is the port number at which the server will start the high - priority servant. The low priority servant will be created at - (THIS_HOST_PORT+1). - -The server will print the IOR of the high and low priority servants, -but it is not required by the client. - -client: -------- - -./client [-n ] - [-t ] - [-h SERVER_HOSTNAME] - [-p ] - [-cool-tcp -cool-iiop | -cool-chorus] - [-I] - -[-I] indicates to the client to use Chorus IPC as the underlying transport - instead of TCP - -: is the hostname of the server. - -: is the port number of the servant. - -Based on the SERVER_HOSTNAME and the SERVER_PORT_NUM, the client constructs -the IOR's for the high priority servant and the low priority servant. - - : is the number of times the group of CORBA twoway calls are to - be made. The group consists of the following calls: cube_octet(), cube_short(), - cube_long() and cube_struct(). The default is 100 loops (i.e. 400 calls are made). - - : is the total number of concurrent clients to be - created. One of these clients will be a high priority client (and thus - send requests to the high priority servant), and the rest will have - low priority. - -The high priority client makes requests at 20Hz, and the low priority -clients make requests at 10Hz. - -Results -------- - -The client prints the latency observed by the high priority client, -and the average latency observed by the low priority client. - -Examples --------- - -(1) An Example on a Sparc running SunOS 5.5.1 using TCP as the underlying transport - - - On the host lambada.cs.wustl.edu : - - % ./server tpool cool-tcp://lambada.cs.wustl.edu:3000 -v -cool-tcp -cool-iiop - - On the host merengue.cs.wustl.edu : - - % ./client -t 2 -h lambada.cs.wustl.edu -p 3000 -cool-tcp -cool-iiop - - The output of the client program may look like this: - - (5) Everyone's done, here I go!! - (4) Threads have bound, utilization test started - (9) Everyone's done, here I go!! - (8) Everyone's done, here I go!! - (6) Everyone's done, here I go!! - (7) Everyone's done, here I go!! - cube average call ACE_OS::time = 20.917016 msec, 47.807966 calls/second - (5) My latency was 20.917016 - 5 calls, 0 errors - cube average call ACE_OS::time = 19.299501 msec, 51.814811 calls/second - (8) My latency was 19.299501 - cube average call ACE_OS::time = 19.262436 msec, 51.914514 calls/second - 5 calls, 0 errors - (9) My latency was 19.262436 - 5 calls, 0 errors - cube average call ACE_OS::time = 15.101540 msec, 66.218412 calls/second - (6) My latency was 15.101540 - 5 calls, 0 errors - cube average call ACE_OS::time = 10.320359 msec, 96.895858 calls/second - (7) My latency was 10.320359 - 5 calls, 0 errors - Test done. - High priority client latency : 20.917016 msec, jitter: 36.582330 msec - Low priority client latency : 15.995959 msec, jitter: 527.515277 msec - utilization task performed 435 computations - -(2) An Example on a MVME177 backplane using 68k processors running ClassiX using - Chorus IPC as the underlying transport - - - On the host tambora2.cs.wustl.edu : - - % rsh tambora2 arun /tests/Cubit/COOL/MT_Cubit/server tpool cool-chorus://:1023 -v -cool-chorus - - On the host tambora1.cs.wustl.edu : - - % rsh tambora1 arun /tests/Cubit/COOL/MT_Cubit/client -n 400 -I -t 2 -p 1023 -cool-chorus - - The output of the client program might look like this: - - started aid = 12 - COOL:0000000001000000010000001C00750AA60000000200750AA65555555500000001429A00000000000A(13) Thread created - (13) Im the high priority client, my id is 0. - Using ior = cool-chorus://:1023 - Creating 1 clients with low priority of 125 - (13) Binding succeeded - (13) Cb == 2c6144 - Object Created at: '2908484l'connected to object 'COOL:0000000001000000010000001C00750AA60000000200750AA65555555500000001429A00000000000A' - COOL:0000000001000000010000001C00750AA60000000200750AA65555555500000001429A00000000000A - (13) Waiting for other threads to finish binding.. - (12) Thread created - (12) Im a low priority client, my id is 1 - Using ior = cool-chorus://:1023 - (12) Binding succeeded - (12) Cb == 2c6164 - Object Created at: '2908516l'connected to object 'COOL:0000000001000000010000001C00750AA60000000200750AA65555555500000001429A00000000000A'(12) Waiting for other threads to finish binding.. - (13) Everyone's done, here I go!! - (12) Everyone's done, here I go!! - (12|13) cube average call ACE_OS::time = 12835 usec, 77 calls/second - (13) My latency was 12835 - 400 calls, 0 errors - (12|12) cube average call ACE_OS::time = 12931 usec, 77 calls/second - (12) My latency was 12931 - Test done. - High priority client latency : 12835 usec - Low priority client latency : 12931 usec - 400 calls, 0 errors - --->Output file for latency data is "cb12__2.txt" - (8) utilization task performed 0 computations diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp deleted file mode 100644 index 4e28075574d..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.cpp +++ /dev/null @@ -1,627 +0,0 @@ -// $Id$ - -#include "Task_Client.h" - -Task_State::Task_State (int argc, char **argv) - : start_count_ (0), - loop_count_ (5), - thread_count_ (5), - base_port_ (5000), - datatype_ (CB_OCTET), - argc_ (argc), - argv_ (argv), - thread_per_rate_ (0), - global_jitter_array_ (0), - use_chorus_ipc_ (0), - grain_ (1) -{ - int c; - int datatype; - - // defaults - ACE_OS::strcpy (server_host_, "localhost"); - ior_header_ = ACE_OS::strdup ("cool-tcp"); - ACE_Get_Opt opts (argc, argv, "Hh:n:t:p:d:rIg:"); - - while ((c = opts ()) != -1) - switch (c) { - case 'g': - grain_ = ACE_OS::atoi (opts.optarg); - if (grain_ < 1) - grain_ = 1; - break; - case 'I': - use_chorus_ipc_ = 1; - break; - case 'r': - thread_per_rate_ = 1; - break; - case 'd': - datatype = ACE_OS::atoi (opts.optarg); - switch (datatype) - { - case CB_OCTET: - ACE_DEBUG ((LM_DEBUG, "Testing Octets\n")); - datatype_ = CB_OCTET; - break; - case CB_LONG: - ACE_DEBUG ((LM_DEBUG, "Testing Longs\n")); - datatype_ = CB_LONG; - break; - case CB_STRUCT: - ACE_DEBUG ((LM_DEBUG, "Testing Structs\n")); - datatype_ = CB_STRUCT; - break; - case CB_SHORT: - default: - ACE_DEBUG ((LM_DEBUG, "Testing Shorts\n")); - datatype_ = CB_SHORT; - break; - } - continue; - case 'h': - ACE_OS::strcpy (server_host_, opts.optarg); - continue; - case 'p': - base_port_ = ACE_OS::atoi (opts.optarg); - continue; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case 't': - thread_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case 'H': - ACE_DEBUG ((LM_DEBUG, "usage: %s" - "[-d datatype Octet=0, Short=1, Long=2, Struct=3]" - " [-n num_calls]" - " [-h server_hostname]" - " [-p server_port_num]" - " [-t num_threads]" - " [-I Use Chorus IPC. (For Chorus ClassiX *only*) ]" - " [-g granularity_of_request_timing]" - "\n", argv [0])); - continue; - } - - if (use_chorus_ipc_ == 1) - { - ior_header_ = ACE_OS::strdup ("cool-chorus"); - ACE_OS::strcpy (server_host_, ""); - } - - // thread_count_ + 1 because there is one utilization thread also - // wanting to begin at the same time the clients begin.. - ACE_NEW (barrier_, ACE_Barrier (thread_count_ + 1)); - ACE_NEW (latency_, double [thread_count_]); - ACE_NEW (global_jitter_array_, double *[thread_count_]); -} - -Client::Client (Task_State *ts) - : ACE_Task (ACE_Thread_Manager::instance ()), - ts_ (ts) -{ -} - -void -Client::put_latency (double *jitter, double latency, u_int thread_id) -{ - ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, ts_->lock_)); - - ts_->latency_[thread_id] = latency; - ts_->global_jitter_array_ [thread_id] = jitter; - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %u\n", - latency)); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %f\n", - latency)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ -} - -double -Client::get_high_priority_latency (void) -{ - return (double) ts_->latency_ [0]; -} - -double -Client::get_low_priority_latency (void) -{ - double l = 0; - - for (u_int i = 1; i < ts_->start_count_; i++) - l += (double) ts_->latency_[i]; - return ts_->start_count_ > 1? l / (double) (ts_->start_count_ - 1) : 0; -} - -int -Client::get_latency (u_int thread_id) -{ - return ts_->latency_ [thread_id]; -} - -double -Client::get_high_priority_jitter (void) -{ - double jitter = 0; - double average = get_high_priority_latency (); - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - // we first compute the sum of the squares of the differences - // each latency has from the average - for (u_int i = 0; i < ts_->loop_count_; i ++) - { - double difference = - ts_->global_jitter_array_ [0][i] - average; - jitter += difference * difference; - } - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter); -} - -double -Client::get_low_priority_jitter (void) -{ - double jitter = 0; - double average = get_low_priority_latency (); - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - // We first compute the sum of the squares of the differences each - // latency has from the average. - for (u_int j = 1; j < ts_->start_count_; j ++) - for (u_int i = 0; i < ts_->loop_count_; i ++) - { - double difference = ts_->global_jitter_array_ [j][i] - average; - jitter += difference * difference; - } - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter); -} - -int -Client::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) Thread created\n")); - - u_int thread_id; - Cubit_ptr cb; - char ior [1024]; - double frequency; - CORBA::ORB_ptr orb_ptr; - - { - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, ts_->lock_, -1); - - thread_id = ts_->start_count_; - ts_->start_count_++; - - if (ts_->thread_per_rate_ == 0) - { - if (thread_id == 0) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Im the high priority client, my id is %d.\n", - thread_id)); - ACE_OS::sprintf (ior, - "%s://%s:%d", - ts_->ior_header_, - ts_->server_host_, - ts_->base_port_); - frequency = CB_HIGH_PRIORITY_RATE; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "(%t) Im a low priority client, my id is %d\n", - thread_id)); - ACE_OS::sprintf (ior, - "%s://%s:%d", - ts_->ior_header_, - ts_->server_host_, - ts_->base_port_);// + thread_id); - frequency = CB_LOW_PRIORITY_RATE; - } - } - else - { - switch (thread_id) - { -///////////////////////////////////// -// THIS NEEDS TO BE UPDATED AS ABOVE. -///////////////////////////////////// - case CB_40HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_); - frequency = CB_40HZ_CONSUMER_RATE; - break; - case CB_20HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+1); - frequency = CB_20HZ_CONSUMER_RATE; - break; - case CB_10HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+2); - frequency = CB_10HZ_CONSUMER_RATE; - break; - case CB_5HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+3); - frequency = CB_5HZ_CONSUMER_RATE; - break; - case CB_1HZ_CONSUMER: - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "cool-tcp://%s:%d", ts_->server_host_, ts_->base_port_);//+4); - frequency = CB_1HZ_CONSUMER_RATE; - break; - default: - ACE_DEBUG ((LM_DEBUG, "(%t) Invalid Thread ID.\n", thread_id)); - } - } /* else */ - - ACE_DEBUG ((LM_DEBUG, "Using ior = %s\n", ior)); - - CORBA::Object_ptr objref = CORBA::Object::_nil (); - CORBA::Environment env; - - orb_ptr = CORBA::ORB_init (ts_->argc_, ts_->argv_, 0, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:ORB initialization", env.exception ()), 2); - - // CORBA_BOA_ptr oa_ptr = orb_ptr->OA_init (ts_->argc_, ts_->argv_, 0, env); - // - // if (oa_ptr == 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // " (%P|%t) Unable to initialize the POA.\n"), - // 1); - - - // - // Initialize client's binding to an - // arbitrary cubit server (at some host) - // - COOL::EOABindingData bindingData (ior); - - cb = Cubit::_bind(bindingData, env); - - // objref = orb_ptr->string_to_object ((CORBA::String) ior, env); - - // if (env.exception () != 0) - // ACE_ERROR_RETURN ((LM_ERROR, - // "%s:string2object failed. Supply valid IOR with the -O option\n", - // env.exception ()), 2); - - // if (CORBA::is_nil (objref) == CORBA_TRUE) - // ACE_ERROR_RETURN ((LM_ERROR, - // "%s: must identify non-null target objref\n", - // ts_->argv_ [0]), - // 1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. - // cb = Cubit::_narrow (objref); - - if ( (CORBA::is_nil (cb) == CORBA_TRUE) || (env.exception () != 0)) - { - ACE_ERROR_RETURN ((LM_ERROR, "%s:Create cubit failed\n", env.exception ()), 1); - } - ACE_DEBUG ((LM_DEBUG, "(%t) Binding succeeded\n")); - ACE_DEBUG ((LM_DEBUG, "(%t) Cb == %x\n", cb)); - - CORBA::String str; - - str = orb_ptr->object_to_string (cb, env); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, "object_to_string %s\n", env.exception ()), -1); - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - ACE_DEBUG ((LM_DEBUG, "Object Created at: '%ul'", cb)); - ACE_DEBUG ((LM_DEBUG, "connected to object '%s'", str)); - } - - ACE_DEBUG ((LM_DEBUG, "(%t) Waiting for other threads to finish binding..\n")); - ts_->barrier_->wait (); - ACE_DEBUG ((LM_DEBUG, "(%t) Everyone's done, here I go!!\n")); - - this->run_tests (cb, ts_->loop_count_, thread_id, ts_->datatype_, frequency); - - // Free resources - // CORBA::release (orb_ptr); - - return 0; -} - -int -Client::run_tests (Cubit_ptr cb, - u_int loop_count, - u_int thread_id, - Cubit_Datatypes datatype, - double frequency) -{ - CORBA::Environment env; - u_int i = 0; - u_int call_count = 0, error_count = 0; - double *my_jitter_array; - ACE_NEW_RETURN (my_jitter_array, double [ts_->loop_count_], 1); - - double latency = 0; - double sleep_time = (1/frequency) * (1000 * 1000); - double delta = 0; - - int pstartTime = 0; - int pstopTime = 0; - double real_time = 0.0; - -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - quantify_clear_data (); -#endif /* USE_QUANTIFY */ - - // Make the calls in a loop. - for (i = 0; i < loop_count; i++) - { - ACE_High_Res_Timer timer_; - ACE_Time_Value tv (0, (long int) (sleep_time - delta)); - ACE_OS::sleep (tv); - - // Elapsed time will be in microseconds. - ACE_Time_Value delta_t; - -#if defined (CHORUS) - pstartTime = pccTime1Get(); -#else /* CHORUS */ - timer_.start (); -#endif /* !CHORUS */ - - switch (datatype) - { - case CB_OCTET: - { - // Cube an octet. - CORBA::Octet arg_octet = func (i), ret_octet = 0; - -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_start_recording_data (); -#endif /* USE_QUANTIFY */ - ret_octet = cb->cube_octet (arg_octet, env); - -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* USE_QUANTIFY */ - - if (env.exception () != 0) - { - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - } - - arg_octet = arg_octet * arg_octet * arg_octet; - - if (arg_octet != ret_octet) - { - ACE_DEBUG ((LM_DEBUG, "** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet)); - error_count++; - } - call_count++; - } - break; - - case CB_SHORT: - // Cube a short. - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - -#if defined (USE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* USE_QUANTIFY */ - - ret_short = cb->cube_short (arg_short, env); - -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* USE_QUANTIFY */ - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_DEBUG ((LM_DEBUG, "** cube_short(%d) (--> %d)\n", arg_short , ret_short)); - error_count++; - } - break; - } - // Cube a long. - - case CB_LONG: - { - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - -#if defined (USE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* USE_QUANTIFY */ - - ret_long = cb->cube_long (arg_long, env); - -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* USE_QUANTIFY */ - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_long = arg_long * arg_long * arg_long; - - if (arg_long != ret_long) - { - ACE_DEBUG ((LM_DEBUG, "** cube_long(%d) (--> %d)\n", arg_long , ret_long)); - error_count++; - } - break; - } - - case CB_STRUCT: - // Cube a "struct" ... - { - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - -#if defined (USE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* USE_QUANTIFY */ - - ret_struct = cb->cube_struct (arg_struct, env); - -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* USE_QUANTIFY */ - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - ACE_DEBUG ((LM_DEBUG, "**cube_struct error!\n")); - error_count++; - } - - break; - } - } - - // use sysBench when CHORUS defined and option specified on command line -#if defined (CHORUS) - if ( (loop_count % ts_->grain_) == 0) - pstopTime = pccTime1Get(); -#else /* CHORUS */ - // if CHORUS is not defined just use plain timer_.stop (). - timer_.stop (); - timer_.elapsed_time (delta_t); -#endif /* !CHORUS */ - - // Calculate time elapsed -#if defined (ACE_LACKS_FLOATING_POINT) -# if defined (CHORUS) - real_time = pstopTime - pstartTime; - my_jitter_array [i/ts_->grain_] = real_time; // in units of microseconds. - // update the latency array, correcting the index using the granularity -# else /* CHORUS */ - // Store the time in usecs. - real_time = delta_t.sec () * ACE_ONE_SECOND_IN_USECS + - delta_t.usec (); - my_jitter_array [i] = real_time; // in units of microseconds. -# endif /* !CHORUS */ - delta = ((40 * fabs (real_time) / 100) + (60 * delta / 100)); // pow(10,6) - latency += real_time; -#else /* ACE_LACKS_FLOATING_POINT */ - // Store the time in secs. - real_time = delta_t.sec () + (double)delta_t.usec () / ACE_ONE_SECOND_IN_USECS; - delta = ((0.4 * fabs (real_time * (1000 * 1000))) + (0.6 * delta)); // pow(10,6) - latency += real_time; - my_jitter_array [i] = real_time * 1000; -#endif /* !ACE_LACKS_FLOATING_POINT */ - } - - if (call_count > 0) - { - if (error_count == 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - double calls_per_second = (call_count * ACE_ONE_SECOND_IN_USECS) / latency; -#endif /* ACE_LACKS_FLOATING_POINT */ - - latency /= call_count; - - if (latency > 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) cube average call ACE_OS::time\t= %u usec, \t" - "%u calls/second\n", - latency, - calls_per_second)); - - this->put_latency (my_jitter_array, - latency, - thread_id); -#else - ACE_DEBUG ((LM_DEBUG, "(%P|%t) cube average call ACE_OS::time\t= %f msec, \t" - "%f calls/second\n", - latency * 1000, - 1 / latency)); - this->put_latency (my_jitter_array, - latency * 1000, - thread_id); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - else - { - // still we have to call this function to store a valid array pointer. - this->put_latency (my_jitter_array, - 0, - thread_id); - ACE_DEBUG ((LM_DEBUG, - "*** Warning: Latency is less than or equal to zero." - " Precision may have been lost.\n")); - } - } - ACE_DEBUG ((LM_DEBUG, - "%d calls, %d errors\n", - call_count, - error_count)); - } - - // cb->please_exit (env); - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h b/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h deleted file mode 100644 index 3e7e301e9a0..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Task_Client.h +++ /dev/null @@ -1,190 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Task_Client.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (TASK_CLIENT_H) -#define TASK_CLIENT_H - -#include -#include "api/api.H" -#include "cubit.H" - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -// @@ Should we put this into a more general file, e.g., OS.h? -// -// I will integrate this, together with the sqrt() function when -// the implementation is complete. --Sergio. -#if defined (ACE_LACKS_FLOATING_POINT) -#define double ACE_UINT32 -#define fabs(X) ((X) >= 0 ? (X) : -(X)) -// the following is just temporary, until we finish the sqrt() -// implementation. -#define sqrt(X) (1) -#endif /* ACE_LACKS_FLOATING_POINT */ - -// Arbitrary generator used by the client to create the numbers to be -// cubed. -inline int -func (unsigned i) -{ - return i - 117; -} - -// The various datatypes which the client and the server can exchange. -enum Cubit_Datatypes -{ - CB_OCTET, - CB_SHORT, - CB_LONG, - CB_STRUCT -}; - -const int CB_40HZ_CONSUMER = 0; -const int CB_20HZ_CONSUMER = 1; -const int CB_10HZ_CONSUMER = 2; -const int CB_5HZ_CONSUMER = 3; -const int CB_1HZ_CONSUMER = 4; - -const int CB_40HZ_CONSUMER_RATE = 40; -const int CB_20HZ_CONSUMER_RATE = 20; -const int CB_10HZ_CONSUMER_RATE = 10; -const int CB_5HZ_CONSUMER_RATE = 5; -const int CB_1HZ_CONSUMER_RATE = 1; - -const int CB_HIGH_PRIORITY_RATE = 20; -const int CB_LOW_PRIORITY_RATE = 10; - -class Task_State - // = TITLE - // Maintains state common to multiple Cubit clients - - // = DESCRIPTION - // This class maintains state which is common to the potentially - // multiple concurrent clients. -{ -public: - ACE_Barrier *barrier_; - // Barrier for the multiple clients to synchronize after - // binding to the servants. - - Task_State (int argc, char **argv); - // Constructor. Takes the command line arguments, which are - // later passed into ORB_init - - u_int start_count_; - // keeps a count of the number of clients started.. This - // count also serves as a thread-id. The first thread created - // gets an ID of 0, then 1, and so on.. - - u_int loop_count_; - // number of times to loop, making calls.. - - u_int thread_count_; - // number of concurrent clients to create.. - - u_int base_port_; - // this is the port at which the high priority servant is - // listening.. lower priority ports begin at base_port_ + 1 - - char server_host_ [1024]; - // Server hostname - - double *latency_; - // Array to store the latency for every client, indexed by - // thread-id. - - Cubit_Datatypes datatype_; - // Which datatype to use to make the calls - - ACE_Thread_Mutex lock_; - // lock to protect access to this object - - int argc_; - char **argv_; - // command line arguments - - u_int thread_per_rate_; - // Flag for the thread_per_rate test - - double **global_jitter_array_; - // this array stores the latency seen by each client for each - // request, to be used later to compute jitter - - u_int use_chorus_ipc_; - // flag that indicates that we are going to use Chorus IPC - // communication mechanism, instead of the TCP/IP protocol stack. - // This only applies to the CHORUS ClassiX OS. - - char * ior_header_; - // pointer to the ior part where you specify the type of transport - // for COOL (i.e. ipc or tcp) - - u_int grain_; - // this is the granularity of the timing of the CORBA requests. A - // value of 5 represents that we will take time every 5 requests, - // instead of the default of every request (1). -}; - -class Client : public ACE_Task - // = TITLE - // The Cubit client. -{ -public: - Client (Task_State *ts); - // constructor, with a pointer to the common task state. - - virtual int svc (void); - // the thread function - - double get_high_priority_latency (void); - double get_low_priority_latency (void); - double get_high_priority_jitter (void); - double get_low_priority_jitter (void); - int get_latency (u_int thread_id); - // accessors to get the various measured quantities - - -private: - - int run_tests (Cubit_ptr, - unsigned int, - unsigned int, - Cubit_Datatypes, - double frequency); - // makes the calls to the servant - - void put_latency (double *jitter, - double latency, - unsigned int); - // Records the latencies in the Task_State - - int parse_args (int, char **); - // parses the arguments - - Task_State *ts_; - // pointer to shared state - -}; - -#endif /* !defined (TASK_CLIENT_H) */ diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp deleted file mode 100644 index aaf4ace0192..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// $Id$ - -#include "Util_Thread.h" - -Util_Thread::Util_Thread (Task_State *ts, - ACE_Thread_Manager *thr_mgr) - : ACE_Task (thr_mgr), - done_ (0), - number_of_computations_ (0), - ts_ (ts) -{ -} - -int -Util_Thread::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) Utilization Thread created, " - "waiting for threads to finish binding\n")); - - // this barrier synchronizes the utilization thread with - // the client threads - // i.e., the Util_thread should wait until all the - // clients have finished binding, and only then - // start measuring the utilization. - this->ts_->barrier_->wait (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Threads have bound, " - "utilization test started\n")); - - this->run_computations (); - return 0; -} - -double -Util_Thread::get_number_of_computations (void) -{ - return this->number_of_computations_; -} - -// Perform repeated prime factor computations on an arbitrary number. -// And you thought your life was boring... :-) - -int -Util_Thread::run_computations (void) -{ - while (this->done_ == 0) - { - // See if this number is prime. 2 and CUBIT_ARBIT_NUMBER / 2 are - // the recommended values for min_factor and max_factor, as - // explained in ACE.h (is_prime). - ACE::is_prime (CUBIT_ARBIT_NUMBER, - 2, - CUBIT_ARBIT_NUMBER / 2); - this->number_of_computations_ ++; - } - - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h b/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h deleted file mode 100644 index b336c11c2de..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/Util_Thread.h +++ /dev/null @@ -1,45 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Util_Thread.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "Task_Client.h" - -const int CUBIT_ARBIT_NUMBER = 2064885; - -class Util_Thread : public ACE_Task - // = TITLE - // The thread that computes utilization. -{ -public: - Util_Thread (Task_State *, - ACE_Thread_Manager *thr_mgr); - // constructor. - - virtual int svc (void); - // The thread entry point function. - - double get_number_of_computations (void); - // Gets the number of computations the thread was able to perform. - - int done_; - // Indicates whether we're done. - -private: - int run_computations (void); - // Run the computations. - - // Sumedh, please add comments here. - double number_of_computations_; - Task_State *ts_; -}; diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp deleted file mode 100644 index 5366857dd7f..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/client.cpp +++ /dev/null @@ -1,287 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.cpp -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "client.h" - -int -initialize (void) -{ -#if defined (VXWORKS) - hostAdd ("mv2604d", "130.38.183.132"); -#if defined (VME_DRIVER) - STATUS status = vmeDrv (); - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - status = vmeDevCreate ("/vme"); - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* defined (VME_DRIVER) */ -#endif /* defined (VXWORKS) */ - - // Make sure we've got plenty of socket handles. This call will use - // the default maximum. - ACE::set_handle_limit (); - return 0; -} - -int -do_priority_inversion_test (Task_State &ts) -{ - u_int i = 0; - - // Create the clients - Client high_priority_client (&ts); - Client low_priority_client (&ts); - - // Create the daemon thread in its own . - ACE_Thread_Manager thr_mgr; - - Util_Thread util_thread (&ts, &thr_mgr); - - ACE_Sched_Priority priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - // First activate the Utilization thread. It will wait until all - // threads have finished binding. - util_thread.activate (THR_BOUND, - 1, - 0, - priority); - - // Now activate the high priority client. - priority = ACE_THR_PRI_FIFO_DEF; - - if (high_priority_client.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "activate failed")); - - // Drop the priority, so that the priority of clients will increase - // with increasing client number. - for (i = 0; i < ts.thread_count_; i++) - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating %d clients with low priority of %d\n", - ts.thread_count_ - 1, - priority)); - - for (i = 0; i < ts.thread_count_ - 1; i++) - { - // The first thread starts at min + 1, since the minimum - // priority thread is the utilization thread. - - if (low_priority_client.activate (THR_BOUND, - 1, - 1, - priority) == -1) - ACE_ERROR ((LM_ERROR, - "%p\n", - "activate failed")); - - // get the next higher priority - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - // Wait for all the threads to exit. - ACE_Thread_Manager::instance ()->wait (); - -#if defined (VXWORKS) - ACE_OS::printf ("Test done.\n" - "High priority client latency : %d usec\n" - "Low priority client latency : %d usec\n", - high_client.get_high_priority_latency (), - low_client.get_low_priority_latency ()); -#elif defined (CHORUS) - ACE_OS::printf ("Test done.\n" - "High priority client latency : %u usec\n" - "Low priority client latency : %u usec\n", - high_priority_client.get_high_priority_latency (), - low_priority_client.get_low_priority_latency ()); - - // output the latency values to a file, tab separated, to import it - // to Excel to calculate jitter, in the mean time we come up with - // the sqrt() function. - FILE *latency_file_handle = 0; - char latency_file[BUFSIZ]; - char buffer[BUFSIZ]; - - ACE_OS::sprintf (latency_file, - "cb__%d.txt", - ts.thread_count_); - - ACE_OS::fprintf(stderr, - "--->Output file for latency data is \"%s\"\n", - latency_file); - - latency_file_handle = ACE_OS::fopen (latency_file, "w"); - - for (u_int j = 0; j < ts.start_count_; j ++) - { - ACE_OS::sprintf(buffer, - "%s #%d", - j==0? "High Priority": "Low Priority", - j); - for (u_int i = 0; i < ts.loop_count_; i ++) - { - ACE_OS::sprintf(buffer+strlen(buffer), - "\t%u\n", - ts.global_jitter_array_[j][i]); - fputs (buffer, latency_file_handle); - buffer[0]=0; - } - } - - ACE_OS::fclose (latency_file_handle); -#else - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client.get_low_priority_latency (), - low_priority_client.get_low_priority_jitter ())); -#endif /* !defined (CHORUS) && !defined (VXWORKS) */ - - // signal the utilization thread to finish with its work.. - util_thread.done_ = 1; - - // This will wait for the utilization thread to finish. - thr_mgr.wait (); - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization task performed %u computations\n", - util_thread.get_number_of_computations ())); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization task performed %g computations\n", - util_thread.get_number_of_computations ())); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - - return 0; - -} - -int -do_thread_per_rate_test (Task_State &ts) -{ - // First activate the high priority client. - Client CB_40Hz_client (&ts); - Client CB_20Hz_client (&ts); - Client CB_10Hz_client (&ts); - Client CB_5Hz_client (&ts); - Client CB_1Hz_client (&ts); - - ACE_Sched_Priority priority = - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - // VxWorks priority of 0 causes problems. - priority = 10; - ACE_DEBUG ((LM_DEBUG, "Creating 40 Hz client with priority %d\n", priority)); - if (CB_40Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 20 Hz client with priority %d\n", priority)); - if (CB_20Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 10 Hz client with priority %d\n", priority)); - if (CB_10Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 5 Hz client with priority %d\n", priority)); - if (CB_5Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - ACE_DEBUG ((LM_DEBUG, "Creating 1 Hz client with priority %d\n", priority)); - if (CB_1Hz_client.activate (THR_BOUND, 1, 0, priority++) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - // Wait for all the threads to exit. - ACE_Thread_Manager::instance ()->wait (); - - ACE_OS::printf ("Test done.\n" - "40Hz client latency : %d usec\n" - "20Hz client latency : %d usec\n" - "10Hz client latency : %d usec\n" - "5Hz client latency : %d usec\n" - "1Hz client latency : %d usec\n", - CB_40Hz_client.get_latency (0), - CB_20Hz_client.get_latency (1), - CB_10Hz_client.get_latency (2), - CB_5Hz_client.get_latency (3), - CB_1Hz_client.get_latency (4)); - return 0; -} - -// This is the main routine of the client, where we create a high -// priority and a low priority client. we then activate the clients -// with the appropriate priority threads, and wait for them to -// finish. After they aer done, we compute the latency and jitter -// metrics and print them. - -int -main (int argc, char *argv []) -{ -#if defined (FORCE_ARGS) - int argc = 7; - char *argv[] = {"main", - "-d", - "3", // Data Type - "-t", - "10", // Thread Count - "-h", - "mv2604d"}; // Host name -#endif /* defined (FORCE_ARGS) */ - - Task_State ts (argc, argv); - -#if defined (CHORUS) - // start the pccTimer for chorus classix - int pTime; - - // Initialize the PCC timer Chip - pccTimerInit(); - - if(pccTimer(PCC2_TIMER1_START,&pTime) !=K_OK) - { - printf("pccTimer has a pending bench mark\n"); - } -#endif - - if (ts.thread_per_rate_ == 0) - do_priority_inversion_test (ts); - else - do_thread_per_rate_test (ts); - -#if defined (CHORUS) - // stop the pccTimer for chorus ClassiX - if(pccTimer(PCC2_TIMER1_STOP,&pTime) !=K_OK) - { - printf("pccTimer has a pending benchmark\n"); - } -#endif - - return 0; -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/client.h b/TAO/tests/Cubit/COOL/MT_Cubit/client.h deleted file mode 100644 index b4066444a7c..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/client.h +++ /dev/null @@ -1,36 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.h -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include -#include "cubit.H" - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" - -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#if defined (VME_DRIVER) -#include -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* defined (VME_DRIVER) */ - diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl b/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp deleted file mode 100644 index 8e98bfef258..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" -#include "ace/ACE.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) -{ - // ACE_DEBUG ((LM_DEBUG, "octet cubed is %d\n", o*o*o)); - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) { -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h b/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h deleted file mode 100644 index 20cf27424af..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/cubit_impl.h +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ - -#ifndef cubit_ih -#define cubit_ih - -#include -#include "cubit.H" - -class Cubit_Impl { - -public: - virtual CORBA_Octet cube_octet (CORBA_Octet o, CORBA_Environment &IT_env=_environment); - virtual CORBA_Short cube_short (CORBA_Short s, CORBA_Environment &IT_env=_environment); - virtual CORBA_Long cube_long (CORBA_Long l, CORBA_Environment &IT_env=_environment); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA_Environment &IT_env=_environment); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA_Environment &IT_env=_environment); - virtual void please_exit (CORBA_Environment &IT_env=_environment); -}; - - -#endif diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.cpp deleted file mode 100644 index 771747c8acb..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.cpp +++ /dev/null @@ -1,277 +0,0 @@ -// $Id$ -/* - **************************************************************** - * - * Component = pccTimer.C - mvme167 - * - * Synopsis = - * - * Copyright (c) 1995, 1996, 1997 Chorus systemes - * (R) Chorus is a registered trademark of Chorus systemes - * - **************************************************************** - * - * - **************************************************************** - */ -/* Everything is relative from -/vobs/chorus_work/merge1/mvme177/appl/include/chorus -*/ - -#include -#include -#include -//#include -#include -//#include -#include -//#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -//#include -#include "pccTimer.h" - - -static unsigned int quartz; -static unsigned int timer_reload_value; -int timerHz = 100; - -volatile struct -pccchip2 *pccchip2 = (volatile struct pccchip2 *) PCCchip2_BASE; - -volatile struct -nvram* nvram = ((volatile struct nvram*)NVRAM_BASE); - - -int -pccTimer(int option, int* uTime) -{ - KnTimeVal time; - - int res = K_EOK; - //option &= ~PCC_USERDATA; - static int benchEnable1 = 0; - static int benchEnable2 = 0; - static unsigned int benchLastTime = 0; - - switch(option) - { - - case PCC2_TIMER1_START: - if (benchEnable1) return K_EINVAL; - benchEnable1 = 1; - pccTimer1Start(); - benchLastTime = pccTimer1Reset(); - break; - - case PCC2_TIMER1_STOP: - benchLastTime = pccTime1Get(); - if (!benchEnable1) return K_EINVAL; - benchEnable1 = 0; - pccTimer1Stop(); - break; - - case PCC2_TIMER1_BPOINT: - benchLastTime = pccTime1Get(); - if (!benchEnable1) return K_EINVAL; - break; - - case PCC2_TIMER2_START: - if (benchEnable2) return K_EINVAL; - benchEnable2 = 1; - pccTimer2Start(); - benchLastTime = pccTimer2Reset(); - break; - - case PCC2_TIMER2_STOP: - benchLastTime = pccTime2Get(); - if (!benchEnable2) return K_EINVAL; - benchEnable2 = 0; - pccTimer2Stop(); - break; - - case PCC2_TIMER2_BPOINT: - benchLastTime = pccTime2Get(); - if (!benchEnable2) return K_EINVAL; - break; - - default: - return K_EINVAL; - } - - // Here only is last time must be returned - if (uTime) - { - *uTime = benchLastTime; - } - - return res; -} - - - // - // Return the value of the timer counter, in microseconds. - // - unsigned int -pccTime1Get() -{ - return pccchip2->timer1cnt; -} - - unsigned int -pccTimer1Reset() -{ - pccchip2->timer1cnt = 0; - return pccchip2->timer1cnt; -} - - void -pccTimer1Start() -{ - unsigned int temp; - - // Clear the counter - pccchip2->timer1cnt = 0; - // Start the counter running - // Do not reset the counter when it matches the compare register (~PCC2_COC) - // Clear the overflow counter - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | PCC2_COVF | ~PCC2_COC | PCC2_CEN; - -} - - void -pccTimer1Stop() -{ - unsigned int temp; - - // Stop the counter running - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | ~PCC2_CEN; - -} - - - // - // Return the value of the timer counter, in microseconds. - // - unsigned int -pccTime2Get() -{ - return pccchip2->timer2cnt; -} - - unsigned int -pccTimer2Reset() -{ - pccchip2->timer2cnt = 0; - return pccchip2->timer2cnt; -} - - void -pccTimer2Start() -{ - unsigned int temp; - - // Clear the counter - pccchip2->timer2cnt = 0; - // Start the counter running - // Do not reset the counter when it matches the compare register (~PCC2_COC) - // Clear the overflow counter - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | PCC2_COVF | ~PCC2_COC | PCC2_CEN; - -} - - void -pccTimer2Stop() -{ - unsigned int temp; - - // Stop the counter running - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | ~PCC2_CEN; - -} - - // - // Init the PCC2 timer - // - void -pccTimerInit() -{ - volatile unsigned int temp; - char c; - - /* compute board quartz frequency from nvram information */ - c = nvram->config_rom.speed[0]; - quartz = ((unsigned int) c - (unsigned int) '0') * 10; - c = nvram->config_rom.speed[1]; - quartz += ((unsigned int) c - (unsigned int) '0'); - - /* Step 1. Initialize prescaler control register */ - /* On a mvme177, the VME2Chip runs at half the MPU speed */ - temp = pccchip2->prescaleadjust & 0xFFFFFF00; - - switch(quartz) { - case 60 : pccchip2->prescaleadjust = temp | 0x000000E2; /* 256-30 */ - // ASSERT(((BoardInfo*)chorusContext->ctxBoardInfo)->boardId - // == BOARD_MVME177); - break; - default : { - char tab [80]; - printf(tab,"%s : %d", "Unknown clock frequency", quartz); - svSysPanic(KP_DEBUG, 0, 0, tab, __FILE__, __LINE__); - } - } - - timer_reload_value = 1000000 / timerHz; - - - /* Step 2. Set pcc timer 1 and timer 2 compare register */ -// pccchip2->timer1cmp = timer_reload_value; - pccchip2->timer1cmp = ~0; - pccchip2->timer2cmp = ~0; - - - /* Step 3. Clear timer 1 and timer 2 counter register */ - pccchip2->timer1cnt = 0; - pccchip2->timer2cnt = 0; - - - /* Step 4. Enable pcc timer 1 and timer 2*/ - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | PCC2_COVF | PCC2_COC | PCC2_CEN; - - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | PCC2_COVF | PCC2_COC | PCC2_CEN; - - - /* Step 5. VBR is already set */ -// No need to change the VBR if we are not Compare Feature of the PCC2 Timer - - /* Step 6. set the pcc timer 1 interrupt level */ -// temp = pccchip2->irqlvl1; -// temp = temp & 0xfffffff8; -// pccchip2->irqlvl1 = temp | TIMER_INT_LEVEL; - - - // KnIntrEntry clockConf; - - //clockConf.name = VME_CHIP2_TIMER1; - //clockConf.hdl = getHdlFromCf(); - //clockConf.on = clockStart_p; - //clockConf.off = clockStop_p; - //clockConf.down = clockDown_p; - //clockConf.ison = clockTest_p; - - //svIntrConnect (&clockConf); -} diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.h b/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.h deleted file mode 100644 index 453977e6661..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/pccTimer.h +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ -/* - **************************************************************** - * - * Component = PCC2 Timer Header File - * - * Synopsis = - * - * - **************************************************************** - * - * - **************************************************************** - */ - - - -#ifndef _PCCTIMER_H -#define _PCCTIMER_H - -int -pccTimer(int option, int* uTime); -unsigned int -pccTime1Get(); -unsigned int -pccTimer1Reset(); -void -pccTimer1Start(); -void -pccTimer1Stop(); -unsigned int -pccTime2Get(); -unsigned int -pccTimer2Reset(); -void -pccTimer2Start(); -void -pccTimer2Stop(); -void -pccTimerInit(); - - -#define PCC2_TIMER1_START 0x0 -#define PCC2_TIMER1_STOP 0x1 -#define PCC2_TIMER1_BPOINT 0x2 -#define PCC2_TIMER2_START 0x10 -#define PCC2_TIMER2_STOP 0x20 -#define PCC2_TIMER2_BPOINT 0x40 -#define PCC2_USERDATA 0x100 - -#include -#include - -//extern_C int sysBench __((int, int*)); - -#endif /* _PCCTIMER_H */ diff --git a/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp b/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp deleted file mode 100644 index 8ba1d5cd275..00000000000 --- a/TAO/tests/Cubit/COOL/MT_Cubit/server.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include -#include -#include -#include -#include - -#include "cubit.H" -#include "cubit_impl.h" // server header file -#include "sk_cubit.H" -#include "sk_cubit.C" -#include "ace/OS.h" - -CORBA_BOA_ptr boa; - -int -create_servant (void *arg) -{ - char ** argv = (char **) arg; - - CORBA_Environment env; - Cubit_ptr cubit; - Cubit_Impl cubit_impl; - - COOL_ThreadPool* MyPool_1; - u_int concurrencyModel = 0; - - if (strcmp (argv[1], "tpool") == 0) - { - // - // Defines a policy for using a pool of 20 threads. - // - concurrencyModel = THREAD_POOL; - ACE_DEBUG ((LM_DEBUG, "Using Thread Pool concurrency model\n")); - } - else if (strcmp (argv[1], "tpr") == 0) - { - // Defines policy to create a thread for each incoming - // request. - concurrencyModel = THREAD_PER_REQUEST; - ACE_DEBUG ((LM_DEBUG, "Using Thread Per Request concurrency model\n")); - } - else - { - ACE_ERROR ((LM_ERROR, "Concurrency model determination failed.\n")); - return -1; - } - - COOL_ThreadPoolControl poolCtl_1 (concurrencyModel, 1, 20, -1); - COOL_QueueControl qCtl; - - // Defines thread attributes for threads belonging to pools. - COOL_ThreadAttributes poolAttr; - struct sched_param sp; - poolAttr.init(); - poolAttr.stack_size(8192*2); - sp.sched_priority = 43; - poolAttr.sched_attr(&sp); - // - // Allocate and initialize first pool - // - MyPool_1 = new COOL_ThreadPool; - MyPool_1->init_pool(poolCtl_1, poolAttr, qCtl); - - COOL::EOABindingData bindingData (argv[2]); - bindingData.threadpool(MyPool_1); - - COOL_bind (cubit_impl, cubit, bindingData, env); - - if (env.exception ()) - { - ACE_DEBUG ((LM_ERROR, "Bind failed.\n")); - return -1; - } - - if (env.exception ()) { - ACE_DEBUG ((LM_ERROR, "Object Reference Export Failed.\n")); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Entering boa->run ().\n")); - boa->run (); - return 0; -} - - -int -main (int argc, char** argv) -{ - CORBA_Environment env; - int i = 0; - - COOL::EOA::bind(argv[2], env); - if (env.exception()) { - ACE_DEBUG ((LM_ERROR, "Impossible to bind the ORB to the description: %s\n", argv[2])); - return -1; - } - - CORBA_ORB_ptr orb = CORBA_ORB_init (argc, argv, 0, env); - if (env.exception ()) { - ACE_DEBUG ((LM_ERROR, "ORB_init failed..\n")); - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } else { - fprintf(stderr, "Unknown user exception.\n"); - } - return -1; - } - - boa = orb->OA_init (argc, argv, 0, env); - if (env.exception ()) - { - ACE_DEBUG ((LM_ERROR, "OA_init failed..\n")); - return -1; - } - - COOL_Activity_ptr new_activity [2]; - - for (i = 0; i < 1; i++) - { - if (thisCapsule->createActivity ((COOL_ActivityFunc) create_servant, - (void *) argv, - new_activity [i]) != C_OK) - { - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed\n")); - } - } - - CORBA_Long status; - for (i = 0; i < 1; i++) - { - if (new_activity [i]->join (status) != C_OK) - { - ACE_ERROR ((LM_ERROR, "%p\n", "join failed\n")); - } - } - - ACE_DEBUG ((LM_DEBUG, "Cubit server is exiting\n")); - return 0; -} diff --git a/TAO/tests/Cubit/COOL/Makefile b/TAO/tests/Cubit/COOL/Makefile deleted file mode 100644 index b0a5e0a8a8f..00000000000 --- a/TAO/tests/Cubit/COOL/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the COOL tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = MT_Cubit - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Cubit/CORBAplus/IDL_Cubit/Makefile b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/Makefile deleted file mode 100644 index 48238fd831b..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba -lunixsvc -lpbroker -lboadc -lnaming -llifecycl -lfsstream - -IDL_SRC = cubit.cpp cubit_s.cpp -PROG_SRCS = $(IDL_SRC) svr.cpp clnt.cpp - -LSRC = $(PROG_SRCS) - -CUBIT_SVR_OBJS = cubit.o cubit_s.o svr.o cubit_i.o -CUBIT_CLT_OBJS = cubit.o clnt.o - -BIN = svr clnt -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -exceptions = 1 - -#include $(PBHOME)/make/make.cfg - -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 - -#$(VDIR)%.o: %.C -#VOBJS = $(LSRC:%.C=$(VDIR)%.o) - -LDFLAGS += -L$(PBHOME)/lib -CPPFLAGS += -I$(PBHOME)/include - -$(IDL_SRC): cubit.idl - $(PBHOME)/bin/idlc cubit.idl - -/bin/mv cubit.C cubit.cpp - -/bin/mv cubit_s.C cubit_s.cpp - -svr: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clnt: $(addprefix $(VDIR),$(CUBIT_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -######## -# Sanity check builds by running basic functionality tests. -# -# "sleep 5" in the server startup is usually enough to get the -# objref into the file so the client can read it. -# -check: $(TESTS) - @echo "testing with 'cube' calls, stub + DII, IOR strings" - @./svr -i30 -o non-internet > obj.1 & sleep 5 - @./clnt -n250 -O `cat obj.1` -x - @echo '' - @echo "testing request forwarding with 'cube' calls, stub + DII" - @./svr -f -i30 > obj.2 & sleep 5 - @./clnt -n250 -O `cat obj.2` -x - @echo '' - @echo "testing transmission of primitive data types" - @./test1_svr -i30 > obj.3 & sleep 5 - @./test1_clnt -n50 -O `cat obj.3` -x - @echo '' -# @echo "testing echo of primitive data values" -# @./echo_svr -i30 > obj.4 & sleep 5 -# @./echo_clnt -O `cat obj.4` -x -# @echo '' - @echo "testing with 'cube' calls, MT-ized (no forwarding)" - @./svr -t -i30 -o non-internet > obj.5 & sleep 5 - @./clnt -n250 -O `cat obj.5` -x - @echo '' - -clean: - -/bin/rm -rf *.o cubit.cpp cubit.h cubit_s.cpp cubit_s.h $(CUBIT_SVR_OBJS) $(CUBIT_CLT_OBJS) $(BIN) core - -realclean: clean - diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/README b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/README deleted file mode 100644 index 7e3219a7d4c..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/README +++ /dev/null @@ -1,54 +0,0 @@ -This is the cubit example that uses the CORBAplus IDL compiler to generate -the stubs and skeletons. Additional features include presence of a -factory to create Cubit objects. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -% svr [-d] [-n ] [-pbtrace] - -The server cubit factory maintained num_of_cubit objects (default = -1). They are assigned keys that look like "key0", "key1", ... - -When the server is started and you have used the -d flag, you should -see a line of output that looks something like: -XpsIiopServerProfileFactory::XpsIiopServerProfileFactory() : new tcp server listening at port 45372 - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - -NOTE: - -0. $PBHOME is the directory where CORBAplus is installed. - -1. Set the appropriate environment variables for CORBAplus to work. Look at the example script at -$PBHOME/.cshrc_pb You can append this script to your .cshrc.mine file assuming you run a csh shell. -You can also execute it, like: - - source $PBHOME/.cshrc_pb - -2. Make sure the CORBAplus BOA server is running, before trying to run the server example. - - To run the BOA server execute: - - $PBHOME/bin/pbboad -pbtrace - -client: -------- - -% clnt [-d] [-k ] [-n ] -pbinit Cubit_Factory iiop://:/cubit_factory - - where - is the machine where the server is running. - is the port number that was displayed when the server was run. See example output above. - - corresponds to "key0", "key1", ... - - are the number of times you want to execute a call. - --d : see same option for server above. \ No newline at end of file diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp deleted file mode 100644 index 3a18184fea3..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.cpp +++ /dev/null @@ -1,725 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/CORBAplus/IDL_Cubit -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the CORBAplus ORB IDL compiler. -// -// = AUTHORS -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "pbroker/pberr.h" -//#include -#include "ace/Profile_Timer.h" -#include "clnt.h" - -int _debug_level = 1; - -// Constructor. - -Cubit_Client::Cubit_Client (void) - : cubit_factory_key_ ("cubit_factory"), - cubit_key_ ("key0"), - hostname_ (ACE_DEFAULT_SERVER_HOST), - portnum_ (ACE_DEFAULT_SERVER_PORT), - loop_count_ (250), - exit_later_ (0), - factory_ (Cubit_Factory::_nil ()), - objref_ (CORBA::Object::_nil ()), - cubit_ (Cubit::_nil ()), - orb_ptr_ (0), - call_count_ (0), - error_count_ (0) -{ -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -Cubit_Client::func (u_int i) -{ - return i - 117; -} - -// Parses the command line arguments and returns an error status. - -int -Cubit_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:k:xp:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - _debug_level++; - break; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (get_opts.optarg); - break; - case 'h': - hostname_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'p': - portnum_ = ACE_OS::atoi (get_opts.optarg); - break; - case 'k': // stringified objref - cubit_key_ = ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->exit_later_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-k cubit-obj-ref-key]" - " [-x]" - " [-pbtrace]" - " -pbinit Cubit_Factory " - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Exercise the union. Cube a union. - -void -Cubit_Client::cube_union_stub (void) -{ - CORBA::Environment env; - Cubit::oneof u, r; - - this->call_count_++; - - u.l (3); // use the long union branch - - // Cube a "union" ... - // @@ Put exception handling here !!! - r = this->cubit_->cube_union (u); - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg1 ((LM_DEBUG, "cube union ...\n")); - u.l (u.l () * u.l () * u.l ()) ; - - if (u.l () != r.l ()) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - } - - this->call_count_++; - - u._d (Cubit::e_3rd); -#if 0 - u.cm ().l = this->func (i); - u.cm ().s = this->func (i); - u.cm ().o = this->func (i); -#endif - - u.cm ().l = 7; - u.cm ().s = 5; - u.cm ().o = 3; - - // Cube another "union" which uses the default arm ... NOT tested yet - r = this->cubit_->cube_union (u); -//, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg1 ((LM_DEBUG, "cube union ...\n")); - u.cm ().l = u.cm ().l * u.cm ().l * u.cm ().l; - u.cm ().s = u.cm ().s * u.cm ().s * u.cm ().s; - u.cm ().o = u.cm ().o * u.cm ().o * u.cm ().o; - - if (u.cm ().l != r.cm ().l - || u.cm ().s != r.cm ().s - || u.cm ().o != r.cm ().o) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - } -} - -// Exercise the union using dii. - -void -Cubit_Client::cube_union_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req; - - this->call_count_++; - - req = this->cubit_->_request ((CORBA::String) "cube_union"); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - this->error_count_++; - - // this->env_.print_exception ("cube_union_dii request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::oneof *u, r; - - u = new Cubit::oneof; - u->_d (Cubit::e_3rd); - - u->cm ().l = 5; - u->cm ().s = -7; - u->cm ().o = 3; - - CORBA::Any tmp_arg (Cubit::_tc_oneof, u, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA::ARG_IN); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - this->error_count_++; - // this->env_.print_exception ("cube_union_dii request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_oneof, 0, CORBA_TRUE); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - this->error_count_++; - // this->env_.print_exception ("cube_union_dii result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result. - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->error_count_++; - // req->env ()->print_exception ("cube_union_dii invoke"); - CORBA::release (req); - return; - } - - r = *(Cubit::oneof *) req->result ()->value ()->value (); - - if (r.cm ().o != 27 || r.cm ().l != 125 || r.cm ().s != -343) - { - this->error_count_++; - ACE_ERROR ((LM_ERROR, "cube_union_dii -- bad results\n")); - } - else - dmsg1 ((LM_DEBUG, "cube_union_dii ... success!!\n")); - - CORBA::release (req); - delete u; -} - -// Cube a short. - -void -Cubit_Client::cube_short (int i) -{ - CORBA::Short arg_short = this->func (i); - // Cube a short. - CORBA::Short ret_short = cubit_->cube_short (arg_short); - //, this->env_); @@ put exception handling here !! - - this->call_count_++; - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_short"); - this->error_count_++; - } - else - { - dmsg2 ((LM_DEBUG, "cube short: %d --> %d\n", - arg_short, - ret_short)); - - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, "** cube_short (%d) ERROR (--> %d)\n", - (CORBA::Short) this->func (i), - ret_short)); - this->error_count_++; - } - } -} - -// Cube an octet - -void -Cubit_Client::cube_octet (int i) -{ - CORBA::Octet arg_octet = this->func (i); - - // Cube an octet. - CORBA::Octet ret_octet = this->cubit_->cube_octet (arg_octet); - //, this->env_); @@ put exception handling here !! - - this->call_count_++; - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_octet"); - this->error_count_++; - } - else - { - dmsg2 ((LM_DEBUG, "cube octet: %d --> %d\n", - arg_octet, - ret_octet)); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_DEBUG ((LM_DEBUG, - "** cube_octet (%d) ERROR (--> %d)\n", - (CORBA::Octet) this->func (i), - ret_octet)); - this->error_count_++; - } - } -} - -// calculate the cube from a long - -void -Cubit_Client::cube_long (int i) -{ - CORBA::Long arg_long = this->func (i); - - // Cube a long. - CORBA::Long ret_long = this->cubit_->cube_long (arg_long); - //, this->env_);; @@ put exception handling here !! - - this->call_count_++; - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_long"); - this->error_count_++; - } - else - { - dmsg2 ((LM_DEBUG, "cube long: %d --> %d\n", - arg_long, - ret_long)); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_ERROR ((LM_ERROR, - "** cube_long (%ld) ERROR (--> %ld)\n", - (CORBA::Long) this->func (i), - ret_long)); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct (int i) -{ - Cubit::Many arg_struct; - Cubit::Many ret_struct; - - this->call_count_++; - - arg_struct.l = this->func (i); - arg_struct.s = this->func (i); - arg_struct.o = this->func (i); - - // Cube a "struct" ... - ret_struct = this->cubit_->cube_struct (arg_struct); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - dmsg1 ((LM_DEBUG, "cube struct ...\n")); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o) - { - ACE_ERROR ((LM_ERROR, "** cube_struct ERROR\n")); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req = - this->cubit_->_request ((CORBA::String) "cube_struct"); - //, this->env_); @@ put exception handling here !! - - this->call_count_++; - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("DII request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::Many arg; - Cubit::Many result; - - arg.o = 3; - arg.l = 5; - arg.s = -7; - - CORBA::Any tmp_arg (Cubit::_tc_Many, &arg, CORBA_FALSE); - - req->arguments ()->add_value ("values", tmp_arg, CORBA::ARG_IN); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("DII request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (Cubit::_tc_Many, 0, CORBA_TRUE); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("DII request result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result - - req->invoke (); - - if (req->env ()->exception () != 0) - { - // req->env ()->print_exception ("DII invoke sending struct"); - CORBA::release (req); - return; - } - - result = *(Cubit::Many *) req->result ()->value ()->value (); - - if (result.o != 27 || result.l != 125 || result.s != -343) - ACE_ERROR ((LM_ERROR, "DII cube_struct -- bad results\n")); - else - dmsg1 ((LM_DEBUG, "DII cube_struct ... success!!\n")); - - CORBA::release (req); -} - -void -Cubit_Client::print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time) -{ - double tmp; - - ACE_DEBUG ((LM_DEBUG, - "%s:\n", - call_name)); - - if (this->call_count_ > 0 && this->error_count_ == 0) - { - tmp = 1000 / elapsed_time.real_time; - - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= this->call_count_; - elapsed_time.user_time /= this->call_count_; - elapsed_time.system_time /= this->call_count_; - - tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %0.06f ms, \n\t" - "user_time\t= %0.06f ms, \n\t" - "system_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0? 0.0:elapsed_time.real_time, - elapsed_time.user_time < 0.0? 0.0:elapsed_time.user_time, - elapsed_time.system_time < 0.0? 0.0:elapsed_time.system_time, - tmp < 0.0? 0.0 : tmp)); - } - else - { - ACE_ERROR ((LM_ERROR, "\tNo time stats printed. Call count zero or error ocurred.\n")); - } - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n", - this->call_count_, - this->error_count_)); -} - -// Execute client example code. - -int -Cubit_Client::run (void) -{ - u_int i; - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // ACE_Time_Value before; - - // We start an ACE_Profile_Timer here... - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_short (i); - this->cube_octet (i); - this->cube_long (i); - this->cube_struct (i); - } - - // stop the timer. - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube average call", elapsed_time); - - -#if 0 // cube_struct_dii() is not enabled for now in this test - - // Simple test for DII: call "cube_struct". (It's not timed since - // the copious mallocation of DII would bias numbers against typical - // stub-based calls). - - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_struct_dii (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_struct_dii call", elapsed_time); - -#endif /* DII test not enabled for now */ - - // ------------------> - // Two more tests, using the "cube_union" function - - // unions using stubs - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_stub (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_stub call", elapsed_time); - -#if 0 // cube_union_dii() is not enabled for now in this test - // union DII - timer.start (); - - this->call_count_ = 0; - this->error_count_ = 0; - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_dii (); - } - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_dii call", elapsed_time); -#endif /* cube_union_dii test not enabled for now */ - - if (this->exit_later_) - { - this->cubit_->please_exit (); - //this->env_); @@ put exception handling here !! - //dexc (this->env_, "server, please ACE_OS::exit"); - } - - return this->error_count_ == 0 ? 0 : 1; -} - -Cubit_Client::~Cubit_Client (void) -{ - // Free resources - CORBA::release (this->orb_ptr_); - CORBA::release (this->objref_); - CORBA::release (this->factory_); - CORBA::release (this->cubit_); -} - -int -Cubit_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - int check = 0; - - try { - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - // Retrieve the ORB. - this->orb_ptr_ = CORBA::ORB_init (this->argc_, - this->argv_); - - // @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("ORB initialization"); - return -1; - } - - // Retrieve a factory objref. - this->objref_ = this->orb_ptr_->resolve_initial_references ("Cubit_Factory"); - // @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("Cubit_Factory::_bind"); - return -1; - } - - if (CORBA::is_nil (this->objref_) == CORBA_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - "resolve_initial_references returned null object for Cubit_Factory\n"), - -1); - - // Narrow the CORBA::Object reference to the stub object - this->factory_ = Cubit_Factory::_narrow (this->objref_); - - //, this->env_); @@ put exception handling here !! - - CORBA::release (this->objref_); - - if (this->factory_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to narrow object reference to a Cubit_Factory_ptr.\n"), - -1); - - // Now retrieve the Cubit obj ref corresponding to the key. - this->cubit_ = this->factory_->make_cubit (this->cubit_key_); - //, this->env_); @@ put exception handling here !! - - if (this->env_.exception () != 0) - { - // this->env_.print_exception ("string2object"); - return -1; - } - - if (CORBA::is_nil (this->cubit_)) - ACE_ERROR_RETURN ((LM_ERROR, - "null cubit objref returned by factory\n"), - -1); - } - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): clnt.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: clnt.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: clnt.cpp\n\n")); - } - - return 0; -} - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - return cubit_client.run (); -} diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.h b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.h deleted file mode 100644 index 5713668e0e5..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/clnt.h +++ /dev/null @@ -1,135 +0,0 @@ -// $Id$ -// -*- C++ -*- -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/CORBAplus/IDL_Cubit -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ -#if !defined (_CLNT_H_) -#define _CLNT_H_ - -#include "ace/Get_Opt.h" -#include "pbroker/corba/orb.h" -#include "pbroker/corba/request.h" -#include "pbroker/corba/environ.h" -#include "cubit.h" - -class Cubit_Client - // = TITLE - // Defines a class that encapsulates behaviour of the Cubit client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Cubit CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ - public: - // = Constructor and destructor. - Cubit_Client (void); - ~Cubit_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int func (u_int i); - // simple function that returns the substraction of 117 from the parameter. - - int parse_args (void); - // Parses the arguments passed on the command line. - - void print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time); - // prints the time stats - - void cube_union_stub (void); - // Exercise the union. Cube a union. - - void cube_union_dii (void); - // Exercise the union using dii. - - void cube_struct (int i); - // calculate the cube from a struct. - - void cube_long (int i); - // calculate the cube from a long - - void cube_octet (int i); - // Cube an octet - - void cube_short (int i); - // Cube a short. - - void cube_struct_dii (void); - // Cube the numbers in a struct - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - const char *cubit_factory_key_; - // Key of factory obj ref. - - char *cubit_key_; - // Key of the obj ref to be retrieved via the factory. - - char *hostname_; - // Hostname of server. - - CORBA::ULong portnum_; - // default port number of server. - - u_int loop_count_; - // Number of times to do the cube operations. - - int exit_later_; - // Flag to tell server to not exit immediately - - Cubit_Factory_ptr factory_; - // factory pointer for cubit. - - CORBA::Object_ptr objref_; - // storage of the factory objref - - CORBA::Environment env_; - // Environment variable - - Cubit_ptr cubit_; - // Cubit obj ref - - CORBA::ORB_ptr orb_ptr_; - // Remember our orb - - u_int call_count_; - // # of calls made to functions - - u_int error_count_; - // # of errors incurred in the lifetime of the application. -}; - -#if defined (DEBUG) -#define dmsg1(X) { if (_debug_level > 0) ACE_DEBUG (X); } -#define dmsg2(X) { if (_debug_level > 1) ACE_DEBUG (X); } -#else -#define dmsg1(X) { } -#define dmsg2(X) { } -#endif /* DEBUG */ - -#endif /* _CLNT_H_ */ diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl deleted file mode 100644 index 9ddc2d8954f..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit.idl +++ /dev/null @@ -1,71 +0,0 @@ -// $Id$ - -interface Cubit - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. - -{ - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - // Cube a struct - - enum discrim - { - e_0th, - e_1st, - e_2nd, - e_3rd - }; - // Enumeration of the different elements in a union. - - union oneof switch (discrim) - { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - - // default: - // Many cm; - }; - // Union of different types. - - oneof cube_union (in oneof values); - // cube a union. - - oneway void please_exit (); - // shutdown the application. -}; - -interface Cubit_Factory - // = TITLE - // Creates Cubit objects -{ - Cubit make_cubit (in string key); -}; diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp deleted file mode 100644 index 4ad44df668b..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/CORBAplus/IDL_Cubit -// -// = FILENAME -// cubit_i.cpp -// -// = AUTHOR -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/environ.h" -#include -#include -#include "cubit_i.h" - -// Declare the Implementation -XPS_DECLARE_IMPLEMENTATION_ID(Cubit_Factory_iId,"Cubit_Factory_iId") -XPS_DECLARE_IMPLEMENTATION(Cubit_Factory_decl,Cubit_Factory_iId,Cubit_Factory) - -// Declare the associated activator, -XPS_DECLARE_DEFAULT_ACTIVATOR(Cubit_Factory_decl,Cubit_FactoryDefActivator,Cubit_Factory,Cubit_Factory_i) - -XPS_CAST1_IMPL(Cubit_Factory_i,Cubit_Factory_base_impl) - -// Constructor - -Cubit_Factory_i::Cubit_Factory_i (const char *key, int numobjs) - :numobjs_ (numobjs) -{ - // Create implementation object with user specified key. - this->my_cubit_ = new Cubit_i_ptr [this->numobjs_]; - - static char obj_str [MAXNAMELEN]; - - for (u_int i = 0; i < this->numobjs_; i++) - { - ACE_OS::memset (obj_str, '\0', MAXNAMELEN); - ACE_OS::sprintf (obj_str, "key%d", i); - - my_cubit_[i] = new Cubit_i (obj_str); - - if (my_cubit_[i] == 0) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to create implementation object%d\n", - i)); - } -} - -// Destructor - -Cubit_Factory_i::~Cubit_Factory_i (void) -{ - ACE_DEBUG ((LM_DEBUG, "~~~ in destructor ~Cubit_Factory_i()\n")); - delete [] this->my_cubit_; -} - -Cubit_ptr -Cubit_Factory_i::make_cubit (const char *key) -{ - CORBA_Environment env; - - for (size_t i = 0; i < this->numobjs_; i++) - { - const char *obj_str = this->my_cubit_[i]->_get_name (); - - // Keys matched. - if (!ACE_OS::strcmp (obj_str, key)) - return Cubit::_duplicate (this->my_cubit_ [i]); - } - - return Cubit::_nil (); -} - -// Constructor - -Cubit_i::Cubit_i (const char *obj_name) - : key_(obj_name) -{ -} - -const char * -Cubit_i::_get_name (void) -{ - return key_; -} - -// Destructor - -Cubit_i::~Cubit_i (void) -{ -} - -// Cube an octet - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o) -{ - return o * o * o; -} - -// Cube a short. - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s) -{ - return s * s * s; -} - -// Cube a long - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l) -{ - return l * l * l; -} - -// Cube a struct - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values) -{ - Cubit::Many temp; - - temp.o = values.o * values.o * values.o; - temp.s = values.s * values.s * values.s; - temp.l = values.l * values.l * values.l; - - return temp; -} - -// Cube a union - -Cubit::oneof -Cubit_i::cube_union (const Cubit::oneof &values) -{ - Cubit::oneof temp; - - switch (values._d ()) - { - case e_0th: - temp.o (values.o () * values.o () * values.o ()); - break; - case e_1st: - temp.s (values.s () * values.s () * values.s ()); - break; - case e_2nd: - temp.l (values.l () * values.l () * values.l ()); - break; - case e_3rd: - default: - temp._d (values._d ()); // set the discriminant - // use the read/write accessor - temp.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o; - temp.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s; - temp.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l; - - } - return temp; -} - -// Shutdown. - -void Cubit_i::please_exit (void) -{ - ACE_DEBUG ((LM_DEBUG, "I've been asked to shut down...\n")); - // TAO_ORB_Core_instance ()->orb ()->shutdown (); - //dexc (env, "please_exit, shutdown"); -} diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h deleted file mode 100644 index b97c92c2e7d..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/cubit_i.h +++ /dev/null @@ -1,107 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/CORBAplus/IDL_Cubit -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_HH) -#define _CUBIT_I_HH - -#include -#include - -#include "ace/OS.h" -#include "cubit_s.h" - -// Forward declarations -class Cubit_i; - -// Typedefs. -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public Cubit_base_impl - // = TITLE - // Illustrates how to integrate a servant with the - // generated skeleton. - // = DESCRIPTION - // Implementation of the cubit example at the servant side. - // Cubes an octet, short, long, struct and union. -{ -public: - Cubit_i (const char *obj_name = 0); - // Constructor - - ~Cubit_i (void); - // Destructor - - virtual CORBA::Octet cube_octet (CORBA::Octet o); - // Cube an octet - - virtual CORBA::Short cube_short (CORBA::Short s); - // Cube a short - - virtual CORBA::Long cube_long (CORBA::Long l); - // Cube a long - - virtual Cubit::Many cube_struct (const Cubit::Many &values); - // Cube a struct. - - virtual Cubit::oneof cube_union (const Cubit::oneof &values); - // Cube a union. - - virtual void please_exit (void); - // Shutdown routine. - - const char *_get_name (void); - // get the key of the object. - private: - const char *key_; -}; - - -class Cubit_Factory_i; - -typedef Cubit_Factory_i *Cubit_Factory_i_ptr; - -class Cubit_Factory_i: public Cubit_Factory_base_impl - // =TITLE - // Cubit_Factory_i - // - // DESCRIPTION - // factory object returning the cubit objrefs -{ -public: - XPS_CAST1_DECL(Cubit_Factory_i,Cubit_Factory_base_impl) - XPS_DEFINE_IMPLEMENTATION(Cubit_Factory_decl) - - Cubit_Factory_i (void) - {Cubit_Factory_i ("keyone", 1);} - - Cubit_Factory_i (const CORBA_ReferenceData & refData) - {Cubit_Factory_i ("keyone", 1);} - - Cubit_Factory_i (const char *key, int numobjs); - // constructor - - ~Cubit_Factory_i (void); - // destructor - - virtual Cubit_ptr make_cubit (const char *key); - // make the cubit object whose key is "key" - -private: - Cubit_i_ptr *my_cubit_; - u_int numobjs_; -}; - -#endif /* _CUBIT_I_HH */ diff --git a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp b/TAO/tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp deleted file mode 100644 index 28d0d5da22f..00000000000 --- a/TAO/tests/Cubit/CORBAplus/IDL_Cubit/svr.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/CORBAplus/IDL_Cubit -// -// = FILENAME -// svr.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "pbroker/corba/orb.h" -#include "pbroker/corba/environ.h" -#include "pbroker/pberr.h" -#include -#include -#include "pbroker/corba/boad/boafull.h" // will force usage of "Full" BOA API - -#include - -#include "cubit_i.h" - -// Global Variables -static int num_of_objs = 1; -static pbbool killSelf = pbfalse; - -// Declare the server activation policy -XPS_DECLARE_SERVER(Cubit_Factory,"Cubit_Factory",SHARED_SERVER) - -// Parses the command line arguments and returns an error status - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "dn:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - break; - case 'n': // number of cubit objects we hold - num_of_objs = ACE_OS::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] " - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - CORBA_Environment env; - // char *orb_name = "internet"; - - XpsORB_ptr orb_ptr = XpsORB::_nil(); - XpsBOA * oa_ptr = XpsBOA::_nil (); - CORBA_Object_ptr obj_ptr = CORBA_Object::_nil(); - - try - { - // Initialize the ORB pointer - orb_ptr = XpsORB::init (argc, argv); - - // Initialize the Object Adapter - oa_ptr = XpsBOA::init (argc, argv); - - if (CORBA::is_nil(orb_ptr) || CORBA::is_nil(oa_ptr)) - { - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the ORB and/or the BOA\n"), - 1); - } - - - // Parse remaining command line and verify parameters. - // parse_args (argc, argv); - - // create a factory implementation - Cubit_Factory_ptr factory; - - ACE_NEW_RETURN (factory, Cubit_Factory_i ("factory", num_of_objs), 1); - - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - - CORBA::String str = 0; - - str = orb_ptr->object_to_url (factory); - - ACE_DEBUG ((LM_DEBUG, "listening as object '%s'\n", str)); - CORBA_string_free (str); - - oa_ptr->obj_is_ready (factory, nil); - oa_ptr->registerAlias (factory, "cubit_factory"); - - XpsEventService eventService; - eventService.mainloop(); // control will not return to this point - } - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): svr.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: svr.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: svr.cpp\n\n")); - } - - // Free resources - CORBA::release (oa_ptr); - CORBA::release (orb_ptr); - - return 0; -} diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/Makefile b/TAO/tests/Cubit/CORBAplus/MT_Cubit/Makefile deleted file mode 100644 index 2d391b27ad6..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the TAO MT-Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = client \ - 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.nested.GNU -include $(ACE_ROOT)/include/makeinclude/rules.nolocal.GNU - diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/README b/TAO/tests/Cubit/CORBAplus/MT_Cubit/README deleted file mode 100644 index a27939bd690..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/README +++ /dev/null @@ -1,58 +0,0 @@ -The MT-Cubit example --------------------- - -Compiling ---------- - -Makefiles are provided. Use make to compile. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -./svr -pbtrace - -port_num is the port number at which the server will start the high -priority servant. The low priority servant will be created at -(port_num+1). - -The server will print the IOR of the high and low priority servants, -but it is not required by the client. - -client: -------- - -./client -d -n -t -pbtrace -pbinit Cubit iiop://:/Cubit00 - - is one of the following: - -0 Octet -1 Short -2 Long -3 Struct of the above 3 types - - is the port number of the high priority servant. The low -priority servant is assumed to be at (port_num+1). - - is the hostname of the server. - -Based on the server_hostname and the port_num, the client constructs -the IOR's for the high priority servant and the low priority servant. - - is the number of CORBA twoway calls to be made - - is the total number of concurrent clients to be -created. One of these clients will be a high priority client (and thus -send requests to the high priority servant), and the rest will have -low priority. - -The high priority client makes requests at 20Hz, and the low priority -clients make requests at 10Hz. - -Results -------- - -The client prints the latency observed by the high priority client, -and the average latency observed by the low priority client. diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Makefile b/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Makefile deleted file mode 100644 index 9441697f2d5..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Makefile +++ /dev/null @@ -1,145 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lmtcorba -lmtunixsvc -lmtpbroker -lmtboadc -lmtnaming -lmtlifecycl -lmtfsstream - -IDL_SRC = cubit.cpp -PROG_SRCS = $(IDL_SRC) Task_Client.cpp client.cpp - -LSRC = $(PROG_SRCS) - -CUBIT_CLIENT_OBJS = cubit.o Task_Client.o client.o - -BIN = client -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -#enable C++ exceptions -exceptions = 1 - -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 - -LDFLAGS += -L$(PBHOME)/lib -CPPFLAGS += -I$(PBHOME)/include - -$(IDL_SRC): cubit.idl - $(PBHOME)/bin/idlc cubit.idl - -/bin/mv cubit.C cubit.cpp - -client: $(addprefix $(VDIR),$(CUBIT_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(PBHOME)/lib/mtiiop_s.o $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.h cubit_s.* - - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit.o .shobj/cubit.: cubit.cpp -.obj/Task_Client.o .shobj/Task_Client.: Task_Client.cpp Task_Client.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Task.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Thread_Manager.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.cpp b/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.cpp deleted file mode 100644 index 8448fecb7b4..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.cpp +++ /dev/null @@ -1,357 +0,0 @@ -// $Id$ - -#include "pbroker/corba/xpsorb.h" -#include "pbroker/corba/xpsboa.h" -#include "pbroker/corba/boad/boafull.h" // will force usage of "Full" BOA API -#include "Task_Client.h" - -Task_State::Task_State (int argc, char **argv) - : start_count_ (0), - loop_count_ (5), - thread_count_ (5), - base_port_ (5000), - datatype_ (CB_OCTET), - argc_ (argc), - argv_ (argv) -{ - ACE_OS::strcpy (server_host_, "localhost"); - ACE_Get_Opt opts (argc, argv, "h:n:t:p:d:"); - int c; - int datatype; - - while ((c = opts ()) != -1) - switch (c) { - case 'd': - datatype = ACE_OS::atoi (opts.optarg); - switch (datatype) - { - case CB_OCTET: - ACE_DEBUG ((LM_DEBUG, "Testing Octets\n")); - datatype_ = CB_OCTET; - break; - case CB_LONG: - ACE_DEBUG ((LM_DEBUG, "Testing Longs\n")); - datatype_ = CB_LONG; - break; - case CB_STRUCT: - ACE_DEBUG ((LM_DEBUG, "Testing Structs\n")); - datatype_ = CB_STRUCT; - break; - case CB_SHORT: - default: - datatype_ = CB_SHORT; - ACE_DEBUG ((LM_DEBUG, "Testing Shorts\n")); - break; - } - continue; - case 'h': - ACE_OS::strcpy (server_host_, opts.optarg); - continue; - case 'p': - base_port_ = ACE_OS::atoi (opts.optarg); - continue; - case 'n': // loop count - loop_count_ = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - case 't': - thread_count_ = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - "[-d datatype Octet=0, Short=1, Long=2, Struct=3]" - " [-n num_calls]" - " [-h server_hostname]" - " [-p server_port_num]" - " [-t num_threads]" - "\n", argv [0] - ); - } - barrier_ = new ACE_Barrier (thread_count_); - latency_ = new double [thread_count_]; -} - -Client::Client (Task_State *ts) - : ACE_Task (ACE_Thread_Manager::instance ()), - ts_ (ts) -{ -} - -void -Client::put_latency (double latency, u_int thread_id) { - ts_->lock_.acquire (); - ts_->latency_[thread_id] = latency; - ACE_DEBUG ((LM_DEBUG, "(%t) My latency was %f\n", latency)); - ts_->lock_.release (); -} - -double -Client::get_high_priority_latency () { - return (double) ts_->latency_ [0]; -} - -double -Client::get_low_priority_latency () { - double l = 0; - for (u_int i = 1; i < ts_->start_count_; i++) - l += (double) ts_->latency_[i]; - return l / (double) (ts_->start_count_ - 1); -} - -int -Client::svc (void) -{ - ACE_DEBUG ((LM_DEBUG, "(%t) Thread created\n")); - u_int thread_id; - Cubit_ptr cb; - char ior [1024]; - double frequency; - XpsORB_ptr orb_ptr = XpsORB::_nil(); - // XpsBOA * oa_ptr = XpsBOA::_nil (); - //CORBA_Object_ptr obj_ptr = CORBA_Object::_nil(); - // CORBA::ORB_ptr orb_ptr; - try { - { - ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, ts_->lock_, -1); - - thread_id = ts_->start_count_; - ts_->start_count_++; - - if (thread_id == 0) - { - ACE_DEBUG ((LM_DEBUG, "(%t) Im the high priority client, my id is %d.\n", thread_id)); - ::sprintf (ior, "iiop:1.0//%s:%d/Cubit00", ts_->server_host_, ts_->base_port_); - frequency = CB_HIGH_PRIORITY_RATE; - } - else - { - ACE_DEBUG ((LM_DEBUG, "(%t) Im a low priority client, my id is %d\n", thread_id)); - ::sprintf (ior, "iiop:1.0//%s:%d/Cubit00", ts_->server_host_, ts_->base_port_ + 1); - frequency = CB_LOW_PRIORITY_RATE; - } - - ACE_DEBUG ((LM_DEBUG, "Using ior = %s\n", ior)); - - CORBA::Object_ptr objref = CORBA::Object::_nil (); - CORBA::Environment env; - - orb_ptr = XpsORB::init (ts_->argc_, ts_->argv_); - //orb_ptr = CORBA::ORB_init (ts_->argc_, ts_->argv_); - //if (env.exception () != 0) @@ put exception handling here !! - // ACE_ERROR_RETURN ((LM_ERROR,"%s:ORB initialization", env.exception ()), 2); - - // Retrieve a factory objref. - objref = orb_ptr->resolve_initial_references ("Cubit"); - - if (CORBA::is_nil (objref) == CORBA_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: must identify non-null target objref\n", - ts_->argv_ [0]), - 1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. - cb = Cubit::_narrow (objref); - - if (cb == NULL) - { - ACE_ERROR_RETURN ((LM_ERROR, "Create cubit failed\n"), 1); - } - ACE_DEBUG ((LM_DEBUG, "(%t) Binding succeeded\n")); - ACE_DEBUG ((LM_DEBUG, "(%t) Cb == %x\n", cb)); - - CORBA::String str; - - str = orb_ptr->object_to_url (cb); - // - //ACE_ERROR_RETURN ((LM_ERROR, "object_to_string\n"), -1); - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - ACE_DEBUG ((LM_DEBUG, "Object Created at: '%ul'", cb)); - ACE_DEBUG ((LM_DEBUG, "connected to object '%s'", str)); - // if (cb->cube_short (2, env) == 8) // dummy call. - // ACE_DEBUG ((LM_DEBUG, "(%t) Made successful dummy call")); - } - - ACE_DEBUG ((LM_DEBUG, "(%t) Waiting for other threads to finish binding..\n")); - ts_->barrier_->wait (); - ACE_DEBUG ((LM_DEBUG, "(%t) Everyone's done, here I go!!\n")); - - this->run_tests (cb, ts_->loop_count_, thread_id, ts_->datatype_, frequency); - - // Free resources - CORBA::release (orb_ptr); - } - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): client.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: client.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: client.cpp\n\n")); - } - - return 0; -} - -int -Client::run_tests (Cubit_ptr cb, - u_int loop_count, - u_int thread_id, - Cubit_Datatypes datatype, - double frequency) -{ - CORBA::Environment env; - unsigned i = 0; - unsigned call_count = 0, error_count = 0; - - double latency = 0; - double sleep_time = (1/frequency) * (1000 * 1000); - double delta = 0; - - // - // Make the calls in a loop. - // - for (i = 0; i < loop_count; i++) - { - ACE_Profile_Timer timer; - ACE_Time_Value tv (0, (long int) (sleep_time - delta)); - ACE_OS::sleep (tv); - timer.start (); - - switch (datatype) - { - case CB_OCTET: - { - // Cube an octet. - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet = 0; - - ret_octet = cb->cube_octet (arg_octet); - - if (env.exception () != 0) - { - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - } - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) - { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - } - break; - - case CB_SHORT: - // Cube a short. - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - ret_short = cb->cube_short (arg_short); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - } - break; - // Cube a long. - - case CB_LONG: - { - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - ret_long = cb->cube_long (arg_long); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) - { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - } - break; - - case CB_STRUCT: - // Cube a "struct" ... - { - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - ret_struct = cb->cube_struct (arg_struct); - - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - ACE_OS::printf ("**cube_struct error!\n"); - error_count++; - } - - } - break; - } - 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) - latency += et.real_time; - } - - if (call_count > 0) - { - if (error_count == 0) - { - - latency /= call_count; - - if (latency > 0) { - ACE_OS::printf ("cube average call ACE_OS::time\t= %f msec, \t" - "%f calls/second\n", - latency * 1000, - 1 / latency); - this->put_latency (latency * 1000, thread_id); - } - - } - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - - // cb->please_exit (env); - return 0; -} diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.h b/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.h deleted file mode 100644 index fa82b6a4d7b..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/Task_Client.h +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/request.h" -#include "pbroker/corba/environ.h" - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "cubit.h" -#include "ace/Profile_Timer.h" -#include - -inline int func (unsigned i) { return i - 117; } - -enum Cubit_Datatypes {CB_OCTET, CB_SHORT, CB_LONG, CB_STRUCT}; - -#define CB_HIGH_PRIORITY_RATE 20 -#define CB_LOW_PRIORITY_RATE 10 - -class Task_State -{ - public: - ACE_Barrier *barrier_; - Task_State (int argc, char **argv); - unsigned int start_count_; - unsigned int loop_count_; - unsigned int thread_count_; - unsigned int base_port_; - char server_host_ [1024]; - double *latency_; - Cubit_Datatypes datatype_; - ACE_Thread_Mutex lock_; - int argc_; - char **argv_; -}; - -class Client : public ACE_Task -{ -public: - // Client (char *hostname, unsigned int n_threads, unsigned int loop_count_); - Client (Task_State *ts); - virtual int svc (void); - double get_high_priority_latency (); - double get_low_priority_latency (); -private: - int run_tests (Cubit_ptr, unsigned int, unsigned int, Cubit_Datatypes, double frequency); - void put_latency (double latency, unsigned int); - int parse_args (int, char **); - Task_State *ts_; -}; diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp b/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp deleted file mode 100644 index 9d59bf65def..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" -#include "cubit.h" -#include "Task_Client.h" - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - Task_State ts (argc, argv); - - ACE::set_handle_limit (); - - Client low_client (&ts); - - // First activate the high priority client. - - Client high_client (&ts); - - ACE_Sched_Priority priority = - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, "Creating client with high priority\n")); - - if (high_client.activate (THR_BOUND, 1, 0, priority) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, "Creating %d clients with low priority\n", ts.thread_count_ - 1)); - - if (low_client.activate (THR_BOUND, ts.thread_count_ - 1, 0, priority) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); - - - ACE_Thread_Manager::instance ()->wait (); - - ACE_OS::printf ("Test done.\n" - "High priority client latency : %f msec\n" - "Low priority client latency : %f msec\n", - high_client.get_high_priority_latency (), - low_client.get_low_priority_latency ()); - - return 0; -} diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/cubit.idl b/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/cubit.idl deleted file mode 100644 index 5ae02365ddf..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/client/cubit.idl +++ /dev/null @@ -1,41 +0,0 @@ -// $Id$ - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - /* enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - }; - - oneof cube_union (in oneof values); */ - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in short priority); - }; - diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/Makefile b/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/Makefile deleted file mode 100644 index a992f98a221..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/Makefile +++ /dev/null @@ -1,66 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -#LDLIBS = -lmtcorba -lmtunixsvc -lmtpbroker -lmtboadc -lmtnaming -lmtlifecycl -lmtfsstream -LDLIBS = -lcorba -lunixsvc -lpbroker -lboadc -lnaming -llifecycl -lfsstream - -IDL_SRC = cubit.cpp cubit_s.cpp -PROG_SRCS = svr.cpp cubit_i.cpp - -LSRC = $(IDL_SRC) $(PROG_SRCS) - -CUBIT_SVR_OBJS = cubit.o cubit_s.o svr.o cubit_i.o - -BIN = svr -BUILD = $(BIN) -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -#enable C++ exceptions -exceptions = 1 - -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 modifications to variables imported by includes above. -LDFLAGS += -L$(PBHOME)/lib -CPPFLAGS += -I$(PBHOME)/include - -#CXX := purify $(CXX) - -$(IDL_SRC): cubit.idl - $(PBHOME)/bin/idlc cubit.idl - -/bin/mv cubit.C cubit.cpp - -/bin/mv cubit_s.C cubit_s.cpp - -svr: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(PBHOME)/lib/iiop_s.o $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf cubit.cpp cubit.h cubit_s.* -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit.o .shobj/cubit.: cubit.cpp -.obj/cubit_s.o .shobj/cubit_s.: cubit_s.cpp - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit.idl b/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit.idl deleted file mode 100644 index 2ed3ec01499..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit.idl +++ /dev/null @@ -1,41 +0,0 @@ -// $Id$ - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - /* enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - }; - - oneof cube_union (in oneof values); */ - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in short priority); - }; - diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp b/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp deleted file mode 100644 index d7b07878275..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/environ.h" -#include "cubit_i.h" - -Cubit_i::Cubit_i (const char *obj_name) -{ -} - -Cubit_i::~Cubit_i (void) -{ -} - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o) -{ - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s) -{ - return (CORBA::Short) (s * s * s); -} - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l) -{ - return (CORBA::Long) (l * l * l); -} - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values) -{ - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - - return out_values; -} - -/*Cubit_oneof * -Cubit_i::cube_union (Cubit_oneof &values, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - switch (values._disc) - { - case e_0th: - values.o = (CORBA::Octet) (values.o * values.o * values.o); - break; - case e_1st: - values.s = (CORBA::Short) (values.s * values.s * values.s); - break; - case e_2nd: - values.l = values.l * values.l * values.l; - break; - case e_3rd: - default: - values.cm.o = (CORBA::Octet) (values.cm.o * values.cm.o * values.cm.o); - values.cm.s = (CORBA::Short) (values.cm.s * values.cm.s * values.cm.s); - values.cm.l = values.cm.l * values.cm.l * values.cm.l; - } - return &values; -} */ - -void Cubit_i::please_exit (void) -{ -} diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.h b/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.h deleted file mode 100644 index 8ba58a1ccd7..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/cubit_i.h +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_I_HH -#define _CUBIT_I_HH - -#include "cubit_s.h" - -class Cubit_i; -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public Cubit_base_impl -{ -public: - Cubit_i (const char *obj_name = 0); - ~Cubit_i (void); - - virtual - CORBA::Octet cube_octet (CORBA::Octet o); - - virtual - CORBA::Short cube_short (CORBA::Short s); - - virtual - CORBA::Long cube_long (CORBA::Long l); - - virtual - Cubit::Many cube_struct (const Cubit::Many &values); - - /* virtual - Cubit::oneof *cube_union (Cubit::oneof &values, - CORBA::Environment &env); */ - - virtual - void please_exit (void); -}; - -#endif // _CUBIT_I_HH diff --git a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp b/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp deleted file mode 100644 index d76509cfa7c..00000000000 --- a/TAO/tests/Cubit/CORBAplus/MT_Cubit/server/svr.cpp +++ /dev/null @@ -1,286 +0,0 @@ -// $Id$ - -// @(#)svr.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "cubit.idl" interface. -// -// Starts up, builds an objref, prints its string in debug mode, -// listens for messages, responds to them. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/request.h" -#include "pbroker/corba/environ.h" -#include "pbroker/unixsvc/unixsvc.h" -#include "pbroker/corba/xpsorb.h" -#include "pbroker/corba/xpsboa.h" -#include "pbroker/corba/boad/boafull.h" // will force usage of "Full" BOA API -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "ace/Task.h" -#include "ace/ARGV.h" -#include "ace/Sched_Params.h" - -#include "cubit_i.h" - -// Global Variables -static CORBA::String key = (CORBA::String) "Cubit"; - - -class Cubit_Task : public ACE_Task -// = TITLE -// Encapsulates an ORB for the Cubit application -{ -public: - Cubit_Task (const char* args, const char* orbname, unsigned int num_of_objs); // - - virtual int svc (void); - -protected: - Cubit_Task () {}; - -private: - char* orbname_; - char* orbargs_; - unsigned int num_of_objs_; -}; - -Cubit_Task::Cubit_Task (const char* args, const char* orbname, unsigned int num_of_objs) - : orbname_ ((char*)orbname), - orbargs_ ((char*)args), - num_of_objs_ (num_of_objs) -{} - - -int -Cubit_Task::svc (void) -{ - CORBA::Environment env; - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Beginning Cubit task with args = '%s'\n", orbargs_)); - ACE_ARGV args (orbargs_); - - int argc = args.argc (); - char** argv = args.argv (); - - XpsORB_ptr orb_ptr = XpsORB::_nil(); - XpsBOA * oa_ptr = XpsBOA::_nil (); - CORBA_Object_ptr obj_ptr = CORBA_Object::_nil(); - - try { - // Initialize the ORB pointer - orb_ptr = XpsORB::init (argc, argv); - - // Initialize the Object Adapter - oa_ptr = XpsBOA::init (argc, argv); - - if (CORBA::is_nil(orb_ptr) || CORBA::is_nil(oa_ptr)) - { - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the ORB and/or the BOA\n"), - 1); - } - - // Create implementation object with user specified key. - Cubit_i_ptr *my_cubit = new Cubit_i_ptr[num_of_objs_]; - - u_int i; - for (i = 0; i < num_of_objs_; i++) - { - CORBA::String obj_str = CORBA::string_alloc (ACE_OS::strlen ((char *) key)+30); - -#if 0 - ACE_OS::sprintf (obj_str, "%s-%u-%02d", (char *) key, ACE_Thread::self (), i); -#else - ACE_OS::sprintf (obj_str, "%s%02d", (char *) key, i); -#endif - - my_cubit[i] = new Cubit_i (obj_str); - - if (my_cubit[i] == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to create implementation object&d\n", - i), - 2); - - //CORBA::OctetSeq obj_key; - //obj_key.buffer = (CORBA::Octet *) obj_str; - //obj_key.length = obj_key.maximum = ACE_OS::strlen (obj_str); - - //CORBA::Object_ptr obj = 0; - - // if (oa_ptr->find (obj_key, obj) == -1) - // ACE_ERROR_RETURN ((LM_ERROR, - // " (%P|%t) Unable to locate object with key '%s', %p\n", - // key), - // 3); - - // Stringify the objref we'll be implementing, and print it - // to stdout. Someone will take that string and give it to - // some client. Then release the object. - - CORBA::String str; - - // str = orb_ptr->object_to_string (obj); - str = orb_ptr->object_to_url (my_cubit[i]); - - ACE_DEBUG ((LM_DEBUG, "listening as object '%s'\n", str)); - CORBA_string_free (str); - - oa_ptr->obj_is_ready (my_cubit[i], nil); - oa_ptr->registerAlias (my_cubit[i], obj_str); - - if (env.exception () != 0) - { - // env.print_exception ("object2string"); - return 1; - } - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - //ACE_DEBUG ((LM_DEBUG,"Object Created at: '%ul'", obj)); - CORBA::string_free (obj_str); - } - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - XpsEventService eventService; - eventService.mainloop(); // control will not return to this point - // orb_ptr->run (); - - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - - // oa_ptr->clean_shutdown (env); - - // Need to clean up and do a CORBA::release on everything we've - // created! - for (i = 0; i < num_of_objs_; i++) - { - delete my_cubit[i]; - } - - // Free resources - CORBA::release (orb_ptr); - CORBA::release (oa_ptr); - } - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): svr.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: svr.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: svr.cpp\n\n")); - } - - return 0; -} - -static char *hostname = NULL; -static int base_port = 0; - -// Parses the command line arguments and returns an error status - -static int num_of_objs = 1; - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "h:p:n:"); - int c; - - while ((c = opts ()) != -1) - switch (c) - { - case 'h': - hostname = opts.optarg; - break; - case 'p': - base_port = ACE_OS::atoi (opts.optarg); - break; - case 'n': - num_of_objs = ACE_OS::atoi (opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " -p port" - " -h my_hostname" - " -n num_objects" - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - -#if 0 - parse_args (argc, argv); - - if ((hostname == NULL) || (base_port == 0)) - { - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s " - " -p port -h my_hostname" - "\n",argv [0]), 1); - - } -#endif - - const size_t arg_size = - strlen("rate20 -ORBport %d -ORBhost %s") - + 5 /* port number */ - + MAXHOSTNAMELEN /* hostname */ - + 1 /* zero terminator */; - - char *args1 = 0; - ACE_NEW_RETURN (args1, char[arg_size], -1); - - ::sprintf (args1, "rate20"); - Cubit_Task task1 (args1 , "internet", 1); - ACE_Sched_Priority priority; -#if defined(VXWORKS) - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD) + 6; -#else - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, ACE_SCOPE_THREAD); -#endif - ACE_DEBUG ((LM_DEBUG, "Creating servant with high priority\n")); - task1.activate (THR_BOUND, 1, 0, priority); - - - char *args2 = 0; - ACE_NEW_RETURN (args2, char[arg_size], -1); - - ::sprintf (args2, "rate10");//, base_port+1, hostname); - Cubit_Task task2 (args2 , "internet", 1); - priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, "Creating servant with low priority\n")); - task2.activate (THR_BOUND, 1, 0, priority); - - ACE_Thread_Manager::instance ()->wait (); - - delete [] args1; - delete [] args2; - - return 0; -} diff --git a/TAO/tests/Cubit/Makefile b/TAO/tests/Cubit/Makefile deleted file mode 100644 index db182c11161..00000000000 --- a/TAO/tests/Cubit/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Makefile for the Cubit test (for several ORBs) -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = TAO - -# These are disabled by default... -# Orbix \ -# VisiBroker - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Cubit/Orbix/Makefile b/TAO/tests/Cubit/Orbix/Makefile deleted file mode 100644 index 96935fb78fc..00000000000 --- a/TAO/tests/Cubit/Orbix/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the Gateway application -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -INFO = README - -DIRS = base_server \ - client \ - tpr \ - tpool \ - tps - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Cubit/Orbix/base_server/Makefile b/TAO/tests/Cubit/Orbix/base_server/Makefile deleted file mode 100644 index a6aa32a05ce..00000000000 --- a/TAO/tests/Cubit/Orbix/base_server/Makefile +++ /dev/null @@ -1,73 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o - -LDLIBS = -lorbixmt - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- -exceptions = 1 - -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)/inc - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf server cubitC.* cubitS.* cubit.hh -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitS.o .obj/cubitS.so .shobj/cubitS.o .shobj/cubitS.so: cubitS.cpp cubit.hh cubitC.cpp -.obj/cubit_impl.o .obj/cubit_impl.so .shobj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.hh -.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h cubit_impl.h \ - cubit.hh - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/base_server/cubit.idl b/TAO/tests/Cubit/Orbix/base_server/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/tests/Cubit/Orbix/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/Orbix/base_server/cubit_impl.cpp b/TAO/tests/Cubit/Orbix/base_server/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/tests/Cubit/Orbix/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/tests/Cubit/Orbix/base_server/cubit_impl.h b/TAO/tests/Cubit/Orbix/base_server/cubit_impl.h deleted file mode 100644 index 5fb494ad4cf..00000000000 --- a/TAO/tests/Cubit/Orbix/base_server/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.hh" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/tests/Cubit/Orbix/base_server/server.cpp b/TAO/tests/Cubit/Orbix/base_server/server.cpp deleted file mode 100644 index a7fcd84f04e..00000000000 --- a/TAO/tests/Cubit/Orbix/base_server/server.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "ace/streams.h" -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/tests/Cubit/Orbix/client/Makefile b/TAO/tests/Cubit/Orbix/client/Makefile deleted file mode 100644 index 73f775bee2f..00000000000 --- a/TAO/tests/Cubit/Orbix/client/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/client/client.cpp b/TAO/tests/Cubit/Orbix/client/client.cpp deleted file mode 100644 index a320fa2fefd..00000000000 --- a/TAO/tests/Cubit/Orbix/client/client.cpp +++ /dev/null @@ -1,297 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cb = Cubit::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - ACE_Time_Value before, after; - - - // - // Cube an octet. - // - - call_count = 0; - error_count = 0; - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - } - - // - // Cube a short. - // - call_count = 0; - error_count = 0; - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - } - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - - // - // Cube a long. - // - - call_count = 0; - error_count = 0; - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - } - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count = 0; - error_count = 0; - before = ACE_OS::gettimeofday(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } - -} diff --git a/TAO/tests/Cubit/Orbix/client/cubit.h b/TAO/tests/Cubit/Orbix/client/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/tests/Cubit/Orbix/client/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/client/cubit.idl b/TAO/tests/Cubit/Orbix/client/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/tests/Cubit/Orbix/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/Orbix/client/cubitC.cpp b/TAO/tests/Cubit/Orbix/client/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/tests/Cubit/Orbix/client/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/tests/Cubit/Orbix/factory_client/Makefile b/TAO/tests/Cubit/Orbix/factory_client/Makefile deleted file mode 100644 index 63cc8a65e02..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitC.cpp client.cpp - -CLT_OBJS = cubitC.o client.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: client - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitC.o .shobj/cubitC.so: cubitC.cpp cubit.h -.obj/client.o .shobj/client.so: client.cpp $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i cubit.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/factory_client/client.cpp b/TAO/tests/Cubit/Orbix/factory_client/client.cpp deleted file mode 100644 index 1afdecbadf4..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/client.cpp +++ /dev/null @@ -1,237 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include "ace/OS.h" -#include "ace/Get_Opt.h" -#include "cubit.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - ACE_OS::strcpy (SERVER_HOST, "localhost"); - ACE_Get_Opt opts (argc, argv, "dh:n:O:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) { - case 'h': - ACE_OS::strcpy (SERVER_HOST, opts.optarg); - continue; - case 'd': // debug flag - continue; - - case 'n': // loop count - LOOP_COUNT = (unsigned) ACE_OS::atoi (opts.optarg); - continue; - - case 'O': // stringified objref - continue; - - case 'x': - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-n loopcount]" - " [-h SERVER_HOST]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - Cubit_Factory_var cf; - - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - TRY { - cf = Cubit_Factory::_bind ("", SERVER_HOST, IT_X); - } - CATCHANY { - cerr << "Binding failed: " << IT_X; - } - ENDTRY; - cb = cf->create_cubit ("My_Cubit"); - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - call_count = 0; - error_count = 0; - - ACE_Time_Value before, after; - - before = ACE_OS::gettimeofday(); - - // - // Cube an octet. - // - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - TRY { - ret_octet = cb->cube_octet (arg_octet); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_OS::printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - - - // - // Cube a short. - // - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - TRY { - ret_short = cb->cube_short (arg_short); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - ACE_OS::printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - - // - // Cube a long. - // - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - TRY { - ret_long = cb->cube_long (arg_long); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - } - ENDTRY; - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_OS::printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - TRY { - ret_struct = cb->cube_struct (arg_struct); - } - CATCHANY { - cerr << "Call failed: " << IT_X; - error_count++; - } - ENDTRY; - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - - after = ACE_OS::gettimeofday(); - - if (call_count > 0) - { - if (error_count == 0) - { - ACE_Time_Value diff = after - before; - unsigned long us = diff.sec() * 1000 * 1000 + diff.usec(); - - us /= call_count; - - if (us > 0) - ACE_OS::printf ("cube average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - ACE_OS::printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/tests/Cubit/Orbix/factory_client/cubit.h b/TAO/tests/Cubit/Orbix/factory_client/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/factory_client/cubit.hh b/TAO/tests/Cubit/Orbix/factory_client/cubit.hh deleted file mode 100644 index 72e2fb81395..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/cubit.hh +++ /dev/null @@ -1,1111 +0,0 @@ - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/factory_client/cubit.idl b/TAO/tests/Cubit/Orbix/factory_client/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/tests/Cubit/Orbix/factory_client/cubitC.cpp b/TAO/tests/Cubit/Orbix/factory_client/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/tests/Cubit/Orbix/factory_client/cubitS.cpp b/TAO/tests/Cubit/Orbix/factory_client/cubitS.cpp deleted file mode 100644 index 56cf33174a6..00000000000 --- a/TAO/tests/Cubit/Orbix/factory_client/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.hh" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/tests/Cubit/Orbix/orb.mk b/TAO/tests/Cubit/Orbix/orb.mk deleted file mode 100644 index cf7b12d3b1b..00000000000 --- a/TAO/tests/Cubit/Orbix/orb.mk +++ /dev/null @@ -1,146 +0,0 @@ -# ------------------------------------------------------------ -# Orbix 2.2 implicit rules for SunOS/GNU Make -# ------------------------------------------------------------ -# -# If you cut'n'paste this into your /usr/include/make/default.mk -# file, beware! This is not officially supported by Iona -# Technologies, and you may want to be a bit of a Makefile hacker -# to make it integrate well with your site's setup. - -# The best thing to do would be put it in a standard place and -# anyone who wants the Orbix implicit rule set can include -# it with an "include /orbix.mk" line in their -# Makefile. A good place to put it might be /usr/include/make. - -# These rules define default C++, C++FLAGS and C++SUFFIX. -# C++ is the C++ compiler to use; C++FLAGS are command-line -# flags to the C++ compiler for use in compiling C++ source -# files into objects; C++SUFFIX is the filename suffix -# indicating C++ source. By default, it's set to "C" for AT&T C++, -# and "cc" for GNU g++. - -# Feel free to override these in your Makefiles *after* -# including this file. - -# IMPORTANT: If the -M switch is specified in IDLFLAGS, the IDL -# compiler appends to the user-specified file. The dependency for -# specified_file.o in the linking target should appear _after_ any use -# of the IDL compiler which takes the -M flag. Putting it _last_ -# is normally the best approach. - -# Note that these rule definitions use pattern matching, -# and therefore only work with SunOS make and GNU make. - -# They may not work with other vendor's versions of make. -# If they do not, you may wish to try using GNU make, which -# is free software produced by the Free Software Foundation. - -# If the version of make you wish to use does not support -# pattern matching, use the sample explicit rule set in -# the comments at the end of this file. - -# ------------------------------------------------------------ -# Essential: set these to the locations into which you -# have installed Orbix' components: - -ORBIX_BINDIR = /opt/Orbix_2.2MT/corba2/bin -ORBIX_LIBDIR = /opt/Orbix_2.2MT/corba2/lib -ORBIX_INCDIR = /opt/Orbix_2.2MT/corba2/include - -#------------------------------------------------------------- -# To compile the demos, you should change these values as -# appropriate for your particular system installation -#------------------------------------------------------------- - -X11BASE = /usr/openwin -X11INCDIR = $(X11BASE)/include -X11LIBDIR = $(X11BASE)/lib - -# C++ = CC -# C++FLAGS = -I$(ORBIX_INCDIR) -I. -mt -D_REENTRANT -# C++SUFFIX = cpp - -# ------------------------------------------------------------ -# ITCLT, IRCLT and ITSRV can be either statically or dynamically linked -# Use -Bdynamic or -Bstatic as appropriate. -# ------------------------------------------------------------ - -ITCLT = -Bstatic -lorbixmt -IRCLT = -Bstatic -lIRcltmt -ITSRV = -Bstatic -lorbixmt -ITIIOP = -Bstatic -liiopmt -ITDSI = -Bstatic -lDSImt -ITIFR = -Bstatic -lifrmt - -# ------------------------------------------------------------ -# SYSLIBS must be dynamically linked; otherwise you can expect to -# get linkage errors for symbols in the nsl library -# ------------------------------------------------------------ - -LDFLAGS += -L$(ORBIX_LIBDIR) -SYSLIBS = -Bdynamic -lnsl -lsocket - -IDL = $(ORBIX_BINDIR)/idl -IDLFLAGS = - -# ------------------------------------------------------------ -# The following section defines implicit rules for creating -# *.{C,S}.C files, rules for compiling those -# into objects, and even a rule for compiling C++ source into -# objects (in case one isn't already defined). - -# ------------------------------------------------------------ -# first, put the new suffixes at the *head* of the suffix list, -# overriding any existing .C compilation method. -.SUFFIXES: -.SUFFIXES: .$(C++SUFFIX) .idl $(SUFFIXES) - -# .SUFFIXES: .$(C++SUFFIX) .idl .hh $(SUFFIXES) -# ------------------------------------------------------------ -# *[CS].o must be compiled here, and depends -# mostly on the C++ files produced from the IDL file. - -%C.o: %C.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%S.o: %S.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%.o: %.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -%S.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%C.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%.hh: %.idl - $(IDL) $(IDLFLAGS) $< - -# ------------------------------------------------------------ -# If the version of make you wish to use does not support -# pattern matching, here's a sample of an explicit rule set. - -# We assume the IDL file is called "foobar.idl", we wish -# to compile "foobarC.o", "foobarS.o", and -# "foobar.hh", and the C++ file suffix. -# ------------------------------------------------------------ - -# foobarC.o: foobar.hh foobarC.C -# $(C++) -c ($C++FLAGS) foobarC.C -# -# foobarS.o: foobar.hh foobarS.C -# $(C++) -c ($C++FLAGS) foobarS.C -# -# foobarC.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobarS.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobar.hh: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl diff --git a/TAO/tests/Cubit/Orbix/tpool/Makefile b/TAO/tests/Cubit/Orbix/tpool/Makefile deleted file mode 100644 index 0e425af78b1..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpool.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpool.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/tpool/cubit.h b/TAO/tests/Cubit/Orbix/tpool/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/tpool/cubit.idl b/TAO/tests/Cubit/Orbix/tpool/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/Orbix/tpool/cubitC.cpp b/TAO/tests/Cubit/Orbix/tpool/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/tests/Cubit/Orbix/tpool/cubitS.cpp b/TAO/tests/Cubit/Orbix/tpool/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/tests/Cubit/Orbix/tpool/cubit_impl.cpp b/TAO/tests/Cubit/Orbix/tpool/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/tests/Cubit/Orbix/tpool/cubit_impl.h b/TAO/tests/Cubit/Orbix/tpool/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/tests/Cubit/Orbix/tpool/server.cpp b/TAO/tests/Cubit/Orbix/tpool/server.cpp deleted file mode 100644 index ac107f69ec4..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/server.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file -#include "tpool.h" - -int -main (int argc, char** argv) -{ - - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // Register our thread-pool dispatcher - int n_threads = argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_THREADS; - Thread_Pool tpool_dispatcher (n_threads); - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/tests/Cubit/Orbix/tpool/tpool.cpp b/TAO/tests/Cubit/Orbix/tpool/tpool.cpp deleted file mode 100644 index 219503a22d7..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/tpool.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -#include "tpool.h" - -Thread_Pool::Thread_Pool (int n_threads) - : ACE_Task (ACE_Thread_Manager::instance ()) -{ - if (this->activate (THR_DETACHED | THR_NEW_LWP, n_threads) == -1) - ACE_ERROR ((LM_ERROR, "%p\n", "activate failed")); -} - -int -Thread_Pool::svc (void) -{ - cout << "Pool thread activated" << endl; - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return -1; -} - - -int -Thread_Pool::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - // Enqueue the request - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - this->msg_queue ()->enqueue (mb); - // Done - return -1; -} - - - diff --git a/TAO/tests/Cubit/Orbix/tpool/tpool.h b/TAO/tests/Cubit/Orbix/tpool/tpool.h deleted file mode 100644 index 337a7f54e65..00000000000 --- a/TAO/tests/Cubit/Orbix/tpool/tpool.h +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class Thread_Pool : public ACE_Task, public CORBA::ThreadFilter -{ -public: - Thread_Pool (int n_threads); - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); - virtual int svc (void); - -}; - - diff --git a/TAO/tests/Cubit/Orbix/tpr/Makefile b/TAO/tests/Cubit/Orbix/tpr/Makefile deleted file mode 100644 index 650d6aaf259..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tpr.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tpr.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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 - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/tpr/cubit.h b/TAO/tests/Cubit/Orbix/tpr/cubit.h deleted file mode 100644 index 1fd0a2d3c7d..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubit.h +++ /dev/null @@ -1,729 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include "ace/OS.h" -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/tpr/cubit.idl b/TAO/tests/Cubit/Orbix/tpr/cubit.idl deleted file mode 100644 index d4f1610e2a8..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/Orbix/tpr/cubitC.cpp b/TAO/tests/Cubit/Orbix/tpr/cubitC.cpp deleted file mode 100644 index 1d10b058a70..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubitC.cpp +++ /dev/null @@ -1,559 +0,0 @@ -// $Id$ - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - diff --git a/TAO/tests/Cubit/Orbix/tpr/cubitC.h b/TAO/tests/Cubit/Orbix/tpr/cubitC.h deleted file mode 100644 index 584efa67c8d..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubitC.h +++ /dev/null @@ -1,345 +0,0 @@ -// $Id$ - -#ifndef _cubitC_h -#define _cubitC_h - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -#include "corba.h" - - - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr CubitRef; - -#ifndef _Cubit_var_ -#define _Cubit_var_ -class Cubit_var -{ - public: - Cubit_var(); - Cubit_var(Cubit_ptr); - Cubit_var(const Cubit_var&); - ~Cubit_var(); - Cubit_var& operator=(Cubit_ptr); - operator Cubit_ptr() const { return _ptr; } -#if defined(_HPCC_BUG) - operator Cubit *&() { return _ptr; } -#else - operator Cubit_ptr&() { return _ptr; } -#endif - Cubit_ptr operator->() const { return _ptr;} - friend NCistream& operator>>(NCistream&, Cubit_var&); - friend NCostream& operator<<(NCostream&, const Cubit_var&); - friend istream& operator>>(istream&, Cubit_var&); - friend ostream& operator<<(ostream&, const Cubit_var&); - private: - Cubit_ptr _ptr; - void operator=(const Cubit_var&) {} -}; -#endif -class Cubit: public virtual CORBA_Object -{ - private: - static const CORBA::TypeInfo _class_info; - Cubit(const Cubit&) {} - void operator=(const Cubit&){} - public: - static const CORBA::TypeInfo *_desc(); - virtual const CORBA::TypeInfo *_type_info() const; - virtual void *_safe_narrow(const CORBA::TypeInfo& ) const; - static CORBA::Object *_factory(); - protected: - Cubit(const char *obj_name = NULL) :CORBA_Object(obj_name, 1) {} - Cubit(NCistream& strm) :CORBA_Object(strm) {} - virtual ~Cubit() {} - public: - static Cubit_ptr _duplicate(Cubit_ptr obj) { - if (obj ) obj->_ref(); - return obj; - } - static Cubit_ptr _nil() { return (Cubit_ptr)NULL;} - static Cubit_ptr _narrow(CORBA::Object *obj); - static Cubit_ptr _clone(Cubit_ptr obj) { - CORBA::Object_var obj_var(__clone(obj)); - -#if defined(_HPCC_BUG) - return _narrow(obj_var.operator CORBA::Object_ptr()); -#else - return _narrow(obj_var); -#endif - } - static Cubit_ptr _bind(const char *object_name = NULL, - const char *host_name = NULL, - const CORBA::BindOptions* opt = NULL); - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - - virtual CORBA::Short cube_short(CORBA::Short s); - - virtual CORBA::Long cube_long(CORBA::Long l); - - struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - }; - friend NCostream& operator<<(NCostream&, const Many& ); - friend NCistream& operator>>(NCistream&, Many& ); - - friend ostream& operator<<(ostream&, const Many& ); - inline friend istream& operator>>(istream& _strm, Many& _obj) { - NCistream _istrm(_strm); - _istrm >> _obj; - return _strm; - } - - - typedef Many *Many_ptr; - class Many_var - { - public: - Many_var() { _ptr = (Many*)NULL;} - Many_var(Many *ptr) { - _ptr = ptr; - } - Many_var(const Many_var& var) { - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - } - ~Many_var() { - if (_ptr != (Many *)NULL) delete _ptr; - } - Many_var& operator=(Many *ptr) { - if (_ptr != (Many *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - Many_var& operator=(const Many_var& var) { - if (_ptr != (Many *)NULL) delete _ptr; - if (var._ptr) - _ptr = new Many(*var._ptr); - else - _ptr = (Many *)NULL; - return *this; - } - Many *operator->() { return _ptr; } - operator Many () const { return *_ptr; } - operator Many& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const Many_var& var) { - if (var._ptr == (Many *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - Many_var& var) { - if ( ! var._ptr) - var._ptr = new Many; - strm >> *var._ptr; - return strm; - } - private: - Many *_ptr; - }; - - - virtual Cubit::Many cube_struct(const Cubit::Many& values); - - enum discrim { - e_0th, - e_1st, - e_2nd, - e_3rd, - e_4th, - e_5th - }; - inline friend NCostream& operator<<(NCostream& _strm, discrim _enum_type) { - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend NCistream& operator>>(NCistream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - if (_temp >= 6) - throw CORBA::BAD_PARAM(); - _enum_type = discrim(_temp); - return _strm; - } - inline friend ostream& operator<<(ostream& _strm, discrim _enum_type) { - if( &_strm == &cout || &_strm == &cerr || &_strm == &clog) { - _strm << "discrim:"; - switch(_enum_type) { - case e_0th: - _strm << "e_0th" << endl; - break; - case e_1st: - _strm << "e_1st" << endl; - break; - case e_2nd: - _strm << "e_2nd" << endl; - break; - case e_3rd: - _strm << "e_3rd" << endl; - break; - case e_4th: - _strm << "e_4th" << endl; - break; - case e_5th: - _strm << "e_5th" << endl; - break; - } - } - else - _strm << (CORBA::ULong)_enum_type; - return _strm; - } - inline friend istream& operator>>(istream& _strm, discrim& _enum_type) { - CORBA::ULong _temp; - _strm >> _temp; - _enum_type = discrim(_temp); - return _strm; - } - - - class oneof - { - public: - private: - discrim _disc; - CORBA::Octet __o; - CORBA::Short __s; - CORBA::Long __l; - Cubit::Many __cm; - public: - oneof() : _disc(discrim(0)) {} - ~oneof() {} - oneof(const oneof& obj); - oneof& operator=(const oneof& obj); - - void _d(discrim val) { _disc = val; } - discrim _d() const { return _disc; } - - void o(CORBA::Octet val) { - __o = val; - _disc = Cubit::e_0th; - } - CORBA::Octet o() const { return __o; } - - void s(CORBA::Short val) { - __s = val; - _disc = Cubit::e_1st; - } - CORBA::Short s() const { return __s; } - - void l(CORBA::Long val) { - __l = val; - _disc = Cubit::e_2nd; - } - CORBA::Long l() const { return __l; } - - void cm(const Cubit::Many& val) { - __cm = val; - _disc = Cubit::e_3rd; - } - const Cubit::Many& cm() const { return __cm; } - Cubit::Many& cm() { return __cm; } - - friend NCostream& operator<<(NCostream&, const oneof& ); - friend NCistream& operator>>(NCistream&, oneof& ); - friend ostream& operator<<(ostream&, const oneof&); - inline friend istream& operator>>(istream& strm, oneof& obj) { - NCistream istrm(strm); - strm >> obj; - return strm; - } - }; - - typedef oneof *oneof_ptr; - class oneof_var - { - public: - oneof_var() { _ptr = (oneof*)NULL;} - oneof_var(oneof *ptr) { - _ptr = ptr; - } - oneof_var(const oneof_var& var) { - _ptr = new oneof(*var._ptr); - } - ~oneof_var() { - if (_ptr != (oneof *)NULL) delete _ptr; - } - oneof_var& operator=(oneof *ptr) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = ptr; - return *this; - } - oneof_var& operator=(const oneof_var& var) { - if (_ptr != (oneof *)NULL) delete _ptr; - _ptr = new oneof(*var._ptr); - return *this; - } - oneof *operator->() { return _ptr; } - operator oneof () const { return *_ptr; } - operator oneof& () { return *_ptr; } - inline friend NCostream& operator<<(NCostream& strm, - const oneof_var& var) { - if (var._ptr == (oneof *)NULL) { - throw CORBA::BAD_PARAM(); - } - else - strm << *var._ptr; - return strm; - } - inline friend NCistream& operator>>(NCistream& strm, - oneof_var& var) { - if ( ! var._ptr) - var._ptr = new oneof; - strm >> *var._ptr; - return strm; - } - private: - oneof *_ptr; - }; - - - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - - virtual void please_exit(); - - inline friend NCistream& operator>>(NCistream& strm, Cubit_ptr& obj) { - CORBA::Object_var _obj(obj); - _obj = CORBA::Object::_read(strm, Cubit::_desc()); - obj = Cubit::_narrow(_obj); - return strm; - } - inline friend ostream& operator<<(ostream& strm, const Cubit_ptr obj) { - strm << (CORBA::Object_ptr)obj; - return strm; - } - inline friend istream& operator>>(istream& strm, Cubit_ptr& obj) { - NCistream istrm(strm); - istrm >> obj; - return strm; - } -}; - - -#endif - diff --git a/TAO/tests/Cubit/Orbix/tpr/cubitS.cpp b/TAO/tests/Cubit/Orbix/tpr/cubitS.cpp deleted file mode 100644 index d72803fed0c..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubitS.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// $Id$ - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/tests/Cubit/Orbix/tpr/cubitS.h b/TAO/tests/Cubit/Orbix/tpr/cubitS.h deleted file mode 100644 index 3ca717e2b49..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubitS.h +++ /dev/null @@ -1,120 +0,0 @@ -// $Id$ - -#ifndef _cubitS_h -#define _cubitS_h - -#include "cubitC.h" - -/************************************************************************/ -/* */ -/* This file is automatically generated by ORBeline IDL compiler */ -/* Do not modify this file. */ -/* */ -/* ORBeline (c) is copyrighted by PostModern Computing, Inc. */ -/* */ -/* The generated code conforms to OMG's IDL C++ mapping as */ -/* specified in OMG Document Number: 94-9-14. */ -/* */ -/************************************************************************/ - -class _sk_Cubit : public Cubit -{ - protected: - _sk_Cubit(const char *object_name = (const char *)NULL); - _sk_Cubit(const char *service_name, const CORBA::ReferenceData& data); - virtual ~_sk_Cubit() {} - public: - static const CORBA::TypeInfo _skel_info; - - // The following operations need to be implemented by the server. - virtual CORBA::Octet cube_octet(CORBA::Octet o) = 0; - virtual CORBA::Short cube_short(CORBA::Short s) = 0; - virtual CORBA::Long cube_long(CORBA::Long l) = 0; - virtual Cubit::Many cube_struct(const Cubit::Many& values) = 0; - virtual Cubit::oneof cube_union(const Cubit::oneof& values) = 0; - virtual void please_exit() = 0; - - // Skeleton Operations implemented automatically - - static void _cube_octet(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_short(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_long(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_struct(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _cube_union(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - - static void _please_exit(void *obj, - CORBA::MarshalStream &strm, - CORBA::Principal_ptr principal, - const char *oper, - void *priv_data); - -}; -template -class _tie_Cubit : public Cubit -{ - public: - _tie_Cubit(T& t, const char *obj_name=(char*)NULL) : - Cubit(obj_name), - _ref(t) { - _object_name(obj_name); - } - _tie_Cubit(T& t, const char *service_name, - const CORBA::ReferenceData& id) - :_ref(t) { - _service(service_name, id); - } - ~_tie_Cubit() {} - CORBA::Octet cube_octet(CORBA::Octet o) { - return _ref.cube_octet( - o); - } - CORBA::Short cube_short(CORBA::Short s) { - return _ref.cube_short( - s); - } - CORBA::Long cube_long(CORBA::Long l) { - return _ref.cube_long( - l); - } - Cubit::Many cube_struct(const Cubit::Many& values) { - return _ref.cube_struct( - values); - } - Cubit::oneof cube_union(const Cubit::oneof& values) { - return _ref.cube_union( - values); - } - void please_exit() { - _ref.please_exit(); - } - - private: - T& _ref; -}; - -#endif - diff --git a/TAO/tests/Cubit/Orbix/tpr/cubit_impl.cpp b/TAO/tests/Cubit/Orbix/tpr/cubit_impl.cpp deleted file mode 100644 index e96b6e33dcd..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException) { -} diff --git a/TAO/tests/Cubit/Orbix/tpr/cubit_impl.h b/TAO/tests/Cubit/Orbix/tpr/cubit_impl.h deleted file mode 100644 index 033aa7f0cb1..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/cubit_impl.h +++ /dev/null @@ -1,29 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/tests/Cubit/Orbix/tpr/server.cpp b/TAO/tests/Cubit/Orbix/tpr/server.cpp deleted file mode 100644 index 527fa13d76e..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -//**************************************************************************** -#define IT_EX_MACROS - -#include "cubit_impl.h" // server header file - -int -main (int , char**) -{ - -#ifdef Cubit_USE_BOA - Cubit_var cb = new Cubit_Impl; - cout << "Using BOA approach" << endl; -#else - Cubit_var cb = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl); - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - IT_TRY { - CORBA::Orbix.impl_is_ready("Cubit", IT_X); - } - IT_CATCHANY { - cout << IT_X << endl; - } - IT_ENDTRY; - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/tests/Cubit/Orbix/tpr/tpr.cpp b/TAO/tests/Cubit/Orbix/tpr/tpr.cpp deleted file mode 100644 index da78690cc2c..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/tpr.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tpr.h" - -void * -worker(void *vp) -{ - ACE_Thread_Control tc (ACE_Thread_Manager::instance ()); - CORBA::Orbix.continueThreadDispatch (*(CORBA::Request *)vp); - return NULL; -} - - -int -tpr_filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment&) -{ -// thread_t tid; -// thr_create(NULL, 0, worker, (void *)&r, THR_DETACHED, &tid); - - ACE_Thread_Manager *thr_mgr = ACE_Thread_Manager::instance (); - thr_mgr->spawn (ACE_THR_FUNC (worker), - (void *) &r, - THR_DETACHED); - - return -1; -} - -tpr_filter tpr_dispatcher; diff --git a/TAO/tests/Cubit/Orbix/tpr/tpr.h b/TAO/tests/Cubit/Orbix/tpr/tpr.h deleted file mode 100644 index b5e8be94cf1..00000000000 --- a/TAO/tests/Cubit/Orbix/tpr/tpr.h +++ /dev/null @@ -1,12 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" - -// -// Create a thread filter to dispatch incoming calls -// -class tpr_filter : public CORBA::ThreadFilter { - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/tests/Cubit/Orbix/tps/Makefile b/TAO/tests/Cubit/Orbix/tps/Makefile deleted file mode 100644 index 69701ba3b63..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/Makefile +++ /dev/null @@ -1,349 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the ACE_MT_CORBA_Handler tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -SRC = cubitS.cpp cubit_impl.cpp server.cpp tps.cpp - -SVR_OBJS = cubitS.o cubit_impl.o server.o tps.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)/corba2/lib -ORBIX_INCDIR = $(ORBIX_ROOT)/corba2/include - -# Remove -DCubit_USE_BOA from below to use the TIE approach - -CPPFLAGS += -DEXCEPTIONS -I$(ORBIX_INCDIR) -DWANT_ORBIX_FDS -DCubit_USE_BOA -LDFLAGS += -L$(ORBIX_LIBDIR) -R $(ORBIX_LIBDIR) -L$(ACE)/ace - -IDLFLAGS = -s S.cpp -c C.cpp -B - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: server - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/cubitS.o .shobj/cubitS.so: cubitS.cpp cubit.h cubitC.cpp -.obj/cubit_impl.o .shobj/cubit_impl.so: cubit_impl.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/server.o .shobj/server.so: server.cpp cubit_impl.h cubit.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i -.obj/tps.o .shobj/tps.so: tps.cpp tps.h cubit.h cubit_impl.h \ - $(ACE_ROOT)/ace/Task.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/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5-sunc++-4.x.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.h \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Token.h \ - $(ACE_ROOT)/ace/Token.i \ - $(ACE_ROOT)/ace/Pipe.h \ - $(ACE_ROOT)/ace/Pipe.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Proactor.h \ - $(ACE_ROOT)/ace/Asynch_IO.h \ - $(ACE_ROOT)/ace/Timer_List.h \ - $(ACE_ROOT)/ace/Timer_List_T.h \ - $(ACE_ROOT)/ace/Timer_Heap.h \ - $(ACE_ROOT)/ace/Timer_Heap_T.h \ - $(ACE_ROOT)/ace/Timer_Wheel.h \ - $(ACE_ROOT)/ace/Timer_Wheel_T.h \ - $(ACE_ROOT)/ace/ReactorEx.h \ - $(ACE_ROOT)/ace/ReactorEx.i \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/Orbix/tps/cubit.h b/TAO/tests/Cubit/Orbix/tps/cubit.h deleted file mode 100644 index 3a2dd546608..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubit.h +++ /dev/null @@ -1,1113 +0,0 @@ -// $Id$ - - -#ifndef cubit_hh -#define cubit_hh - -#include - -#include - - -#ifndef _Cubit_defined -#define _Cubit_defined -class Cubit_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch () {} - - Cubit_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit; - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - - -#ifndef CubitForwH -#define CubitForwH -CORBA::ObjectRef Cubit_getBase (void *); -void Cubit_release (Cubit *, CORBA::Environment &IT_env); -void Cubit_release (Cubit_ptr); -Cubit* Cubit_duplicate (Cubit_ptr, CORBA::Environment &IT_env); -Cubit* Cubit_duplicate (Cubit_ptr ); -Cubit_ptr Cubit_nil (CORBA::Environment &IT_env); -Cubit_ptr Cubit_nil (); -#endif -#define Cubit_IMPL "Cubit" - - -class Cubit; - -typedef Cubit CubitProxy; -#define Cubit_IR "Cubit$v1.1" -#define Cubit_IMPL "Cubit" - -#ifndef CubitPtr -#define CubitPtr - -typedef Cubit* Cubit_ptr; - -typedef Cubit* CubitRef; - -#endif - -class Cubit: public virtual CORBA::Object { -public: - Cubit (char *IT_OR); - Cubit (ObjectReference *IT_OR); - Cubit () : CORBA::Object (1) {} -protected: - Cubit_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_ptr _duplicate( - Cubit_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _bind (CORBA::Environment &IT_env); - static Cubit* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_ptr) CORBA::OBJECT_NIL;} - -#ifndef Cubit_Many_defined -#define Cubit_Many_defined - -struct Many { - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - Many(const Many &); - Many(); - ~Many(); - Many& operator= (const Many&); -}; - -#ifndef Cubit_ManyVarH -#define Cubit_ManyVarH - -#ifndef Cubit_ManyvPtr -#define Cubit_ManyvPtr -typedef Many* Many_vPtr; -typedef const Many* Many_cvPtr; -#endif - -class Many_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Many_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - Many_var (const Many_var &IT_s) { - (void) copyHelper (IT_s); - } - - Many_var () { - _ptr = new Many; -; - } - - Many_var (Many *IT_p) { - _ptr = IT_p; - } - - Many_var &operator= (Many *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - Many_var &operator= (const Many_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new Many; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~Many_var () { - delete _ptr; - } - - Many* operator-> () { - return _ptr; - } - - operator Many_cvPtr () const { return _ptr;} - operator Many_vPtr& () { return _ptr;} - operator Many& () const { return * _ptr;} - - protected: - Many *_ptr; - private: - Many_var &operator= (const CORBA::_var &IT_s); - Many_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - -enum discrim {e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th, IT__ENUM_Cubit_discrim=CORBA_ULONG_MAX}; - -#ifndef Cubit_oneof_defined -#define Cubit_oneof_defined - -struct oneof { - private: - - discrim __d; - union { - CORBA::Octet _o_; - CORBA::Short _s_; - CORBA::Long _l_; - Many * _cm_; - }; - - public: - - void encodeOp (CORBA::Request &IT_r) const; - void decodeOp (CORBA::Request &IT_r); - void decodeInOutOp (CORBA::Request &IT_r); - - private: - - unsigned char isSet; - - public: - - discrim _d () const { return __d; } - - CORBA::Octet o () const { - return _o_; - } - - void o (CORBA::Octet IT_member) { - if (isSet && (__d != Cubit::e_0th)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_0th; - isSet = 1; - _o_ = IT_member; - } - - CORBA::Short s () const { - return _s_; - } - - void s (CORBA::Short IT_member) { - if (isSet && (__d != Cubit::e_1st)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_1st; - isSet = 1; - _s_ = IT_member; - } - - CORBA::Long l () const { - return _l_; - } - - void l (CORBA::Long IT_member) { - if (isSet && (__d != Cubit::e_2nd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_2nd; - isSet = 1; - _l_ = IT_member; - } - - Many& cm () { - return (*_cm_); - } - - const Many& cm () const { - return (*_cm_); - } - - void cm (const Many& IT_member) { - if (isSet && (__d != Cubit::e_3rd)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = Cubit::e_3rd; - - if (!isSet) { - _cm_ = new Many; - isSet = 1; - } - *(_cm_) = IT_member; - } - - - oneof(); - oneof(const oneof &); - ~oneof(); - oneof& operator= (const oneof&); -}; - -#ifndef Cubit_oneofVarH -#define Cubit_oneofVarH - -#ifndef Cubit_oneofvPtr -#define Cubit_oneofvPtr -typedef oneof* oneof_vPtr; -typedef const oneof* oneof_cvPtr; -#endif - -class oneof_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const oneof_var &IT_s) { - if (!IT_s._ptr) { - _ptr = IT_s._ptr; - } else - { - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - } - return 1; - } - - public: - - oneof_var (const oneof_var &IT_s) { - (void) copyHelper (IT_s); - } - - oneof_var () { - _ptr = NULL; - } - - oneof_var (oneof *IT_p) { - _ptr = IT_p; - } - - oneof_var &operator= (oneof *IT_p) { - if (_ptr != IT_p) { - delete _ptr; - } - _ptr = IT_p; - return (*this); - } - - oneof_var &operator= (const oneof_var &IT_s) { - if (_ptr != IT_s._ptr) { - delete _ptr; - } - _ptr = new oneof; - *(_ptr) = *(IT_s._ptr); - return (*this); - } - - ~oneof_var () { - delete _ptr; - } - - oneof* operator-> () { - return _ptr; - } - - operator oneof_cvPtr () const { return _ptr;} - operator oneof_vPtr& () { return _ptr;} - operator oneof& () const { return * _ptr;} - - protected: - oneof *_ptr; - private: - oneof_var &operator= (const CORBA::_var &IT_s); - oneof_var (const CORBA::_var &IT_s); -}; - -#endif - - -#endif - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef CubitVarH -#define CubitVarH - -#ifndef CubitvPtr -#define CubitvPtr -typedef Cubit* Cubit_vPtr; -typedef const Cubit* Cubit_cvPtr; -#endif - -class Cubit_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_var &IT_s) { - { - _ptr = Cubit_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_var (const Cubit_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_var () { - _ptr = Cubit_nil (); - } - - Cubit_var (Cubit *IT_p) { - _ptr = IT_p; - } - - Cubit_var &operator= (Cubit *IT_p) { - Cubit_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_var &operator= (const Cubit_var &IT_s) { - Cubit_release (_ptr); - _ptr = Cubit_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_var () { - Cubit_release (_ptr); - } - - Cubit* operator-> () { - return _ptr; - } - - operator Cubit_cvPtr () const { return _ptr;} - operator Cubit_vPtr& () { return _ptr;} - - protected: - Cubit *_ptr; - private: - Cubit_var &operator= (const CORBA::_var &IT_s); - Cubit_var (const CORBA::_var &IT_s); - Cubit_var &operator= (const CORBA::_mgr &IT_s); - Cubit_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_var (const CORBA::_mgr &IT_s); - Cubit_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef CubitMgrH -#define CubitMgrH - -class Cubit_mgr : public CORBA::_mgr -{ - public: - - Cubit_mgr () { - _ptr = Cubit_nil (); - _release = 1; - } - - Cubit_mgr (const Cubit_mgr &IT_s) { - _ptr = Cubit_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_mgr &operator= (Cubit *IT_p) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (const Cubit_mgr &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_mgr &operator= (Cubit_var &IT_s) { - if (_ptr && _release) - Cubit_release (_ptr); - _ptr = Cubit_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_mgr () { - if (_release) - Cubit_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit* () const { - return (Cubit*) _ptr; - } - - Cubit_ptr operator-> () const { - return _ptr; - } - - Cubit *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_mgr Cubit_mgr_IT_const; -#endif - -#ifndef CubitSeqElemH -#define CubitSeqElemH - -class Cubit_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_SeqElem (Cubit_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_SeqElem &operator= (Cubit_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_SeqElem &operator= (const Cubit_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_release (*(_ptr)); - *(_ptr) = Cubit_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_ptr () const { - return _ptr ? (Cubit_ptr) (*_ptr) : Cubit_nil(); - } - - Cubit_ptr operator->() const { return *_ptr;} - - protected: - Cubit_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit(X) Cubit##X - -#define DEF_TIE_Cubit(X) \ - class Cubit##X : public virtual Cubit { \ - X* m_obj; \ - public: \ - \ - \ - Cubit##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit(), m_obj(objp) { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,m,l,Cubit_IR,m_obj); \ - } \ - Cubit##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit() { \ - m_pptr = new Cubit_dispatch \ - (( Cubit*)this,(CORBA::Object*)this,IT_m,Cubit_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit \ -virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_octet ( o,IT_env);\ -}\ - \ -virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_short ( s,IT_env);\ -}\ - \ -virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_long ( l,IT_env);\ -}\ - \ -virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_struct ( values,IT_env);\ -}\ - \ -virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->cube_union ( values,IT_env);\ -}\ - \ -virtual void please_exit (CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -m_obj->please_exit (IT_env);\ -}\ - - - - -class CubitProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - CubitProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern CubitProxyFactoryClass CubitProxyFactory; - -class CubitBOAImpl : public virtual Cubit { -public: - CubitBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_IR)) - m_pptr = new Cubit_dispatch ( (Cubit*)this, - (CORBA::Object*)this, m, l, Cubit_IR, this); -} - - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual Many cube_struct (const Many& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual oneof cube_union (const oneof& values, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; - virtual void please_exit (CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#ifndef _Cubit_Factory_defined -#define _Cubit_Factory_defined -class Cubit_Factory_dispatch : public virtual CORBA::PPTR { -public: - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object* IT_o, const char *IT_m, - CORBA::LoaderClass *IT_l, char *IT_i, void* IT_im) - : PPTR (IT_p,IT_o,IT_m,IT_l,IT_i,IT_im) {} - - - Cubit_Factory_dispatch (char *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch () {} - - Cubit_Factory_dispatch (ObjectReference *IT_OR, void *IT_p, CORBA::Object *IT_o) - : PPTR (IT_OR,IT_p,IT_o) {} - - - Cubit_Factory_dispatch (void *IT_p, CORBA::Object *IT_o, const char *IT_m, - char *IT_i, CORBA::Object* IT_ob, void* IT_im) - : 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 Cubit_Factory; - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - - -#ifndef Cubit_FactoryForwH -#define Cubit_FactoryForwH -CORBA::ObjectRef Cubit_Factory_getBase (void *); -void Cubit_Factory_release (Cubit_Factory *, CORBA::Environment &IT_env); -void Cubit_Factory_release (Cubit_Factory_ptr); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr, CORBA::Environment &IT_env); -Cubit_Factory* Cubit_Factory_duplicate (Cubit_Factory_ptr ); -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &IT_env); -Cubit_Factory_ptr Cubit_Factory_nil (); -#endif -#define Cubit_Factory_IMPL "Cubit_Factory" - - -class Cubit_Factory; - -typedef Cubit_Factory Cubit_FactoryProxy; -#define Cubit_Factory_IR "Cubit_Factory" -#define Cubit_Factory_IMPL "Cubit_Factory" - -#ifndef Cubit_FactoryPtr -#define Cubit_FactoryPtr - -typedef Cubit_Factory* Cubit_Factory_ptr; - -typedef Cubit_Factory* Cubit_FactoryRef; - -#endif - -class Cubit_Factory: public virtual CORBA::Object { -public: - Cubit_Factory (char *IT_OR); - Cubit_Factory (ObjectReference *IT_OR); - Cubit_Factory () : CORBA::Object (1) {} -protected: - Cubit_Factory_ptr __duplicate( - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) { - CORBA::Object::__duplicate (IT_env); - return this; - } -public: - static Cubit_Factory_ptr _duplicate( - Cubit_Factory_ptr, - CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()); -public: - static Cubit_Factory* _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _bind (CORBA::Environment &IT_env); - static Cubit_Factory* _bind (const char* IT_markerServer=NULL, const char* host=NULL, - CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory* _narrow (CORBA::Object* , CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - static Cubit_Factory_ptr _nil (CORBA::Environment &IT_pEnv=CORBA::IT_chooseDefaultEnv ()) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - return (Cubit_Factory_ptr) CORBA::OBJECT_NIL;} - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException); -}; - -#ifndef Cubit_FactoryVarH -#define Cubit_FactoryVarH - -#ifndef Cubit_FactoryvPtr -#define Cubit_FactoryvPtr -typedef Cubit_Factory* Cubit_Factory_vPtr; -typedef const Cubit_Factory* Cubit_Factory_cvPtr; -#endif - -class Cubit_Factory_var : public CORBA::_var -{ - private: - - unsigned char copyHelper (const Cubit_Factory_var &IT_s) { - { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - } - return 1; - } - - public: - - Cubit_Factory_var (const Cubit_Factory_var &IT_s) { - (void) copyHelper (IT_s); - } - - Cubit_Factory_var () { - _ptr = Cubit_Factory_nil (); - } - - Cubit_Factory_var (Cubit_Factory *IT_p) { - _ptr = IT_p; - } - - Cubit_Factory_var &operator= (Cubit_Factory *IT_p) { - Cubit_Factory_release (_ptr); - _ptr = IT_p; - return (*this); - } - - Cubit_Factory_var &operator= (const Cubit_Factory_var &IT_s) { - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - return (*this); - } - - ~Cubit_Factory_var () { - Cubit_Factory_release (_ptr); - } - - Cubit_Factory* operator-> () { - return _ptr; - } - - operator Cubit_Factory_cvPtr () const { return _ptr;} - operator Cubit_Factory_vPtr& () { return _ptr;} - - protected: - Cubit_Factory *_ptr; - private: - Cubit_Factory_var &operator= (const CORBA::_var &IT_s); - Cubit_Factory_var (const CORBA::_var &IT_s); - Cubit_Factory_var &operator= (const CORBA::_mgr &IT_s); - Cubit_Factory_var &operator= (const CORBA::_SeqElem &IT_s); - Cubit_Factory_var (const CORBA::_mgr &IT_s); - Cubit_Factory_var (const CORBA::_SeqElem &IT_s); -}; - -#endif - - -#ifndef Cubit_FactoryMgrH -#define Cubit_FactoryMgrH - -class Cubit_Factory_mgr : public CORBA::_mgr -{ - public: - - Cubit_Factory_mgr () { - _ptr = Cubit_Factory_nil (); - _release = 1; - } - - Cubit_Factory_mgr (const Cubit_Factory_mgr &IT_s) { - _ptr = Cubit_Factory_duplicate (IT_s._ptr); - _release = 1; - } - - Cubit_Factory_mgr &operator= (Cubit_Factory *IT_p) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = IT_p; - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (const Cubit_Factory_mgr &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s._ptr); - _release = 1; - return (*this); - } - - Cubit_Factory_mgr &operator= (Cubit_Factory_var &IT_s) { - if (_ptr && _release) - Cubit_Factory_release (_ptr); - _ptr = Cubit_Factory_duplicate(IT_s); - _release = 1; - return (*this); - } - - ~Cubit_Factory_mgr () { - if (_release) - Cubit_Factory_release (_ptr); - } - - unsigned char release () { - return _release; - } - - void release (unsigned char rel) { - _release = rel; - } - - operator int () const { - return (((CORBA::Object_ptr) _ptr) ? 1 : 0); - } - - operator void* () const { - return _ptr; - } - - operator CORBA::Object * () const { - return (CORBA::Object *) _ptr; - } - - operator Cubit_Factory* () const { - return (Cubit_Factory*) _ptr; - } - - Cubit_Factory_ptr operator-> () const { - return _ptr; - } - - Cubit_Factory *_ptr; - - protected: - - unsigned char _release; -}; - -typedef Cubit_Factory_mgr Cubit_Factory_mgr_IT_const; -#endif - -#ifndef Cubit_FactorySeqElemH -#define Cubit_FactorySeqElemH - -class Cubit_Factory_SeqElem : public CORBA::_SeqElem -{ - public: - - Cubit_Factory_SeqElem (Cubit_Factory_ptr* IT_p, unsigned char rel) { - _ptr = IT_p; - _release = rel; - } - - Cubit_Factory_SeqElem &operator= (Cubit_Factory_ptr IT_p) { - if (_ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = IT_p; - } - return (*this); - } - - Cubit_Factory_SeqElem &operator= (const Cubit_Factory_SeqElem &IT_s) { - if (_ptr && IT_s._ptr) { - if (*(_ptr) && _release) - Cubit_Factory_release (*(_ptr)); - *(_ptr) = Cubit_Factory_duplicate(*(IT_s._ptr)); - } - return (*this); - } - - operator Cubit_Factory_ptr () const { - return _ptr ? (Cubit_Factory_ptr) (*_ptr) : Cubit_Factory_nil(); - } - - Cubit_Factory_ptr operator->() const { return *_ptr;} - - protected: - Cubit_Factory_ptr *_ptr; - unsigned char _release; -}; - -#endif - - -#define TIE_Cubit_Factory(X) Cubit_Factory##X - -#define DEF_TIE_Cubit_Factory(X) \ - class Cubit_Factory##X : public virtual Cubit_Factory { \ - X* m_obj; \ - public: \ - \ - \ - Cubit_Factory##X (X *objp, const char* m="", CORBA::LoaderClass *l=0)\ - : Cubit_Factory(), m_obj(objp) { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,m,l,Cubit_Factory_IR,m_obj); \ - } \ - Cubit_Factory##X (CORBA::Object *IT_p, const char* IT_m="", void *IT_q=0)\ - : Cubit_Factory() { \ - m_pptr = new Cubit_Factory_dispatch \ - (( Cubit_Factory*)this,(CORBA::Object*)this,IT_m,Cubit_Factory_IR,IT_p,IT_q); \ - m_obj = (X*)(m_pptr->getImplObj ()); \ - } \ - \ - virtual ~Cubit_Factory##X () { \ - if (_okToDeleteImpl ()) delete m_obj; } \ - virtual void* _deref () { \ - return m_obj; } \ - \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - \ - }; \ - - -#define QUALS_Cubit_Factory \ -virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env) throw (CORBA::SystemException){\ -return m_obj->create_cubit ( name,IT_env);\ -}\ - - - - -class Cubit_FactoryProxyFactoryClass : public virtual CORBA::ObjectFactoryClass { -public: - Cubit_FactoryProxyFactoryClass (unsigned char IT_p=0) - : CORBA::ProxyFactory (Cubit_Factory_IR, IT_p) {} - - virtual void* New (char *IT_OR, CORBA::Environment&); - - virtual void* New (ObjectReference *IT_OR, CORBA::Environment&); - - virtual void* New2 (); - - virtual CORBA::Object* NewObject (char *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* NewObject (ObjectReference *IT_OR, CORBA::Environment&); - - virtual CORBA::Object* New2Object (); - - virtual void* IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()); - - virtual CORBA::PPTR* pptr (void *IT_p); - - virtual void baseInterfaces (_IDL_SEQUENCE_string&); - - -}; - -extern Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory; - -class Cubit_FactoryBOAImpl : public virtual Cubit_Factory { -public: - Cubit_FactoryBOAImpl (const char *m="", CORBA::LoaderClass *l=NULL) { - if (CORBA::PPTR::isOK (m_pptr, Cubit_Factory_IR)) - m_pptr = new Cubit_Factory_dispatch ( (Cubit_Factory*)this, - (CORBA::Object*)this, m, l, Cubit_Factory_IR, this); -} - - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::IT_chooseDefaultEnv ()) throw (CORBA::SystemException) =0; -}; - - -#endif - - -#endif diff --git a/TAO/tests/Cubit/Orbix/tps/cubit.idl b/TAO/tests/Cubit/Orbix/tps/cubit.idl deleted file mode 100644 index 41309e997ea..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubit.idl +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - - interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); - }; - - - interface Cubit_Factory { - Cubit create_cubit (in string name); - }; - diff --git a/TAO/tests/Cubit/Orbix/tps/cubitC.cpp b/TAO/tests/Cubit/Orbix/tps/cubitC.cpp deleted file mode 100644 index d19c387bcd2..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubitC.cpp +++ /dev/null @@ -1,712 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - -Cubit::Cubit (char *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit::Cubit (ObjectReference *IT_OR) { - m_pptr = new Cubit_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef CubitForwC -#define CubitForwC -CORBA::ObjectRef Cubit_getBase(void *IT_p){ - return (Cubit*) IT_p;} - -void Cubit_release (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_release (Cubit_ptr IT_p) { - Cubit_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_ptr Cubit_nil (CORBA::Environment &) { - return Cubit:: _nil ();} - -Cubit_ptr Cubit_nil () { - return Cubit_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit::_duplicate(IT_p, IT_env)); } -Cubit_ptr Cubit_duplicate (Cubit_ptr IT_p) { - return Cubit_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_ptr Cubit::_duplicate(Cubit_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_IMPL, Cubit_IR); -} - - - -Cubit* Cubit:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit* Cubit:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit* Cubit::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit:: _nil(); - } - - Cubit* IT_p = (Cubit*)CORBA::Object::_castDown (IT_obj, Cubit_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - - -#ifndef Cubit_Many_Ops -#define Cubit_Many_Ops - -void Cubit::Many:: encodeOp (CORBA::Request &IT_r) const { - - IT_r.insertOctet (o); - - IT_r << l; - - IT_r << s; -} - -void Cubit::Many:: decodeOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -void Cubit::Many:: decodeInOutOp (CORBA::Request &IT_r) { - - IT_r.extractOctet (o); - - IT_r >> l; - - IT_r >> s; -} - -Cubit::Many ::~Many () { -} - -Cubit::Many:: Many (const Cubit::Many &IT_s) - { - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; -} - -Cubit::Many:: Many () { -} - -Cubit::Many &Cubit::Many:: operator= (const Cubit::Many& IT_s) { - if (this == &IT_s) return *this; - o = IT_s.o; - l = IT_s.l; - s = IT_s.s; - return *this; -} - - -#endif - - -#ifndef Cubit_oneof_Ops -#define Cubit_oneof_Ops -void Cubit::oneof:: encodeOp (CORBA::Request &IT_r) const { - if (!isSet) return; - { - CORBA::ULong IT_0 = (CORBA::ULong) __d; - IT_r << IT_0; - } - switch (__d) { - case Cubit::e_0th: - IT_r.insertOctet (_o_); - break; - case Cubit::e_1st: - IT_r << _s_; - break; - case Cubit::e_2nd: - IT_r << _l_; - break; - case Cubit::e_3rd: - default: - (*_cm_).encodeOp (IT_r); - break; - } - -} - -void Cubit::oneof:: decodeOp (CORBA::Request &IT_r) { - isSet = 0; - { - CORBA::ULong IT_1; - IT_r >> IT_1; - __d = Cubit::discrim(IT_1); - } - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - -} -void Cubit::oneof:: decodeInOutOp (CORBA::Request &IT_r) { - Cubit::discrim IT_d; - { - CORBA::ULong IT_2; - IT_r >> IT_2; - IT_d = Cubit::discrim(IT_2); - } - if (IT_d == __d) - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeInOutOp (IT_r); - break; - } - - else { - this->oneof:: ~oneof(); - memset(this, 0, sizeof(*this)); - __d = IT_d; - switch (__d) { - case Cubit::e_0th: - if (!isSet) { - isSet = 1; - } - IT_r.extractOctet (_o_); - break; - case Cubit::e_1st: - if (!isSet) { - isSet = 1; - } - IT_r >> _s_; - break; - case Cubit::e_2nd: - if (!isSet) { - isSet = 1; - } - IT_r >> _l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - (*_cm_).decodeOp (IT_r); - break; - } - isSet = 1; - } - -} - -Cubit::oneof:: oneof() { - memset(this, 0, sizeof(*this)); - isSet = 0; -} - -Cubit::oneof ::~oneof() { - if (!isSet) return; - switch (__d) { - case Cubit::e_0th: break; - case Cubit::e_1st: break; - case Cubit::e_2nd: break; - case Cubit::e_3rd: - default: if (_cm_) delete _cm_; - break; - } - - isSet = 0; -} - -Cubit::oneof:: oneof (const Cubit::oneof &IT_s) { - isSet = 0; - memset(this, 0, sizeof(*this)); - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; -} - -Cubit::oneof& Cubit::oneof:: operator= (const Cubit::oneof & IT_s) { - if (this == &IT_s) return *this; - if (isSet && (__d != IT_s.__d)) - { - this-> oneof::~oneof(); - memset(this, 0, sizeof(*this)); - } - - __d = IT_s.__d; - switch (__d) { - case Cubit::e_0th: isSet = 1; - _o_ = IT_s._o_; - break; - case Cubit::e_1st: isSet = 1; - _s_ = IT_s._s_; - break; - case Cubit::e_2nd: isSet = 1; - _l_ = IT_s._l_; - break; - case Cubit::e_3rd: - default: - if (!isSet) { - _cm_ = new Cubit::Many; - isSet = 1; - } - *(_cm_) = *(IT_s._cm_); - break; - } - isSet = 1; - return *this; -} - - -#endif - -void* CubitProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -void* CubitProxyFactoryClass::New2 () { - return new class Cubit((char*)0);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit(IT_OR);} - -CORBA::Object* CubitProxyFactoryClass::New2Object () { - return new class Cubit((char*)0);} - -void* CubitProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* CubitProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit*)IT_p)->_pptr ();} - -void CubitProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -CubitProxyFactoryClass CubitProxyFactory(1); - -CORBA::Octet Cubit:: cube_octet (CORBA::Octet o, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_octet",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.insertOctet (o); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Octet IT_result; - IT_r.extractOctet (IT_result); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Short Cubit:: cube_short (CORBA::Short s, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_short",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << s; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Short IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -CORBA::Long Cubit:: cube_long (CORBA::Long l, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return 0; - } - CORBA::Request IT_r (this, "cube_long",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r << l; - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - CORBA::Long IT_result; - IT_r >> IT_result; - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return 0; -} - -Cubit::Many Cubit:: cube_struct (const Cubit::Many& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::Many IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_struct",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::Many IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::Many IT_l1; - return IT_l1; - } -} - -Cubit::oneof Cubit:: cube_union (const Cubit::oneof& values, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - { - Cubit::oneof IT_l0; - return IT_l0; - } - } - CORBA::Request IT_r (this, "cube_union",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - values.encodeOp (IT_r); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit::oneof IT_result; - IT_result.decodeOp (IT_r); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - { - Cubit::oneof IT_l1; - return IT_l1; - } -} - -void Cubit:: please_exit (CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return ; - } - CORBA::Request IT_r (this, "please_exit",IT_env,1,1); - - IT_r.invoke (CORBA::Flags(CORBA::INV_NO_RESPONSE), IT_env); - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } -} - - - - - -#ifndef Cubit_dispatch_impl - -unsigned char Cubit_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit"); - return 0; -} - -#endif - -Cubit_Factory::Cubit_Factory (char *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} -Cubit_Factory::Cubit_Factory (ObjectReference *IT_OR) { - m_pptr = new Cubit_Factory_dispatch (IT_OR, this,(CORBA::Object*)this); -} - -#ifndef Cubit_FactoryForwC -#define Cubit_FactoryForwC -CORBA::ObjectRef Cubit_Factory_getBase(void *IT_p){ - return (Cubit_Factory*) IT_p;} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - CORBA::release(IT_p, IT_env);} - -void Cubit_Factory_release (Cubit_Factory_ptr IT_p) { - Cubit_Factory_release (IT_p, CORBA::IT_chooseDefaultEnv ()); } - -Cubit_Factory_ptr Cubit_Factory_nil (CORBA::Environment &) { - return Cubit_Factory:: _nil ();} - -Cubit_Factory_ptr Cubit_Factory_nil () { - return Cubit_Factory_nil (CORBA::IT_chooseDefaultEnv ());} - -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p, CORBA::Environment &IT_env) { - return (Cubit_Factory::_duplicate(IT_p, IT_env)); } -Cubit_Factory_ptr Cubit_Factory_duplicate (Cubit_Factory_ptr IT_p) { - return Cubit_Factory_duplicate (IT_p, CORBA::IT_chooseDefaultEnv ()); } -#endif - -Cubit_Factory_ptr Cubit_Factory::_duplicate(Cubit_Factory_ptr obj, CORBA::Environment& IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (!obj) { - return (obj); - } - Cubit_Factory_ptr IT_obj = obj->__duplicate (IT_env); - return IT_obj; -} - - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - const CORBA::Context &IT_c, - CORBA::Environment &IT_env) { - return (Cubit_Factory*)CORBA::Factory.New (IT_markerServer, IT_env, IT_c, host, - Cubit_Factory_IMPL, Cubit_Factory_IR); -} - - - -Cubit_Factory* Cubit_Factory:: _bind (CORBA::Environment &IT_env) { - return _bind (NULL,NULL,CORBA::Context(), IT_env); } - - -Cubit_Factory* Cubit_Factory:: _bind (const char* IT_markerServer, const char* host, - CORBA::Environment &IT_env) { - return _bind (IT_markerServer, host, CORBA::Context (), IT_env); } -Cubit_Factory* Cubit_Factory::_narrow (CORBA::Object* IT_obj, CORBA::Environment &IT_pEnv) { - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (CORBA::is_nil (IT_obj)) { - return Cubit_Factory:: _nil(); - } - - Cubit_Factory* IT_p = (Cubit_Factory*)CORBA::Object::_castDown (IT_obj, Cubit_Factory_IR, IT_env); - IT_p = IT_p ? IT_p->__duplicate(IT_env) : NULL; - if ((IT_env) &&(!strcmp(IT_env.exception()->id(), "CORBA::StExcep::BAD_PARAM")) && (((CORBA::BAD_PARAM*)IT_env.exception())-> minor() == NARROW_FAILED)) { - IT_env.exception_free(); - } - return IT_p; - } - -void* Cubit_FactoryProxyFactoryClass::New (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -void* Cubit_FactoryProxyFactoryClass::New2 () { - return new class Cubit_Factory((char*)0);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (char *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::NewObject (ObjectReference *IT_OR, CORBA::Environment&) { - return new class Cubit_Factory(IT_OR);} - -CORBA::Object* Cubit_FactoryProxyFactoryClass::New2Object () { - return new class Cubit_Factory((char*)0);} - -void* Cubit_FactoryProxyFactoryClass::IT_castUp (void *IT_p, char* IT_s, CORBA::Environment &IT_env) { - void *IT_l; - if (!CORBA::_interfaceCmp (IT_s,Cubit_Factory_IR, IT_env)) - return IT_p; - else if (IT_l=CORBA::ObjectFactoryClass::IT_castUp((CORBA::Object*)((class Cubit_Factory*)IT_p),IT_s, IT_env)) - return IT_l; - else return NULL; - } - - -CORBA::PPTR* Cubit_FactoryProxyFactoryClass::pptr (void *IT_p) { - return ((class Cubit_Factory*)IT_p)->_pptr ();} - -void Cubit_FactoryProxyFactoryClass::baseInterfaces (_IDL_SEQUENCE_string& seq) { - add (seq, Cubit_Factory_IR); - CORBA::ObjectFactoryClass::baseInterfaces (seq); -} - -Cubit_FactoryProxyFactoryClass Cubit_FactoryProxyFactory(1); - -Cubit_ptr Cubit_Factory:: create_cubit (const char * name, CORBA::Environment &IT_pEnv) throw (CORBA::SystemException) { - - CORBA::EnvExcRaiser IT_raise; - CORBA::Environment &IT_env = IT_raise.registerEnv (&IT_pEnv); - if (IT_env || m_isNull) { - return new Cubit; - } - CORBA::Request IT_r (this, "create_cubit",IT_env,1,0); - if (!IT_r.isException (IT_env)) { - - IT_r.encodeStringOp (name); - } - - IT_r.invoke (CORBA::Flags(0),IT_env); - if (!IT_r.isException (IT_env)) { - Cubit_ptr IT_result; - IT_result = (Cubit*) IT_r.decodeObjRef (Cubit_IR); - IT_r.checkEnv (IT_env); - return IT_result; - } - if (IT_r.exceptionKind () == CORBA::SYSTEM_EXCEPTION) { - IT_r.checkEnv (IT_env); - } - return new Cubit; -} - - - - - -#ifndef Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_dispatch::dispatch (CORBA::Request &IT_r, - unsigned char, void *) { - IT_r.makeRuntimeException1 ("Cubit_Factory"); - return 0; -} - -#endif - diff --git a/TAO/tests/Cubit/Orbix/tps/cubitS.cpp b/TAO/tests/Cubit/Orbix/tps/cubitS.cpp deleted file mode 100644 index e4637a23680..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubitS.cpp +++ /dev/null @@ -1,284 +0,0 @@ -// $Id$ - - - -#include "cubit.h" - - -#define Cubit_dispatch_impl - -unsigned char Cubit_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,"cube_octet")) { - CORBA::Octet IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_octet~+o{o},>{o},N{}\ -")) - return 1; - CORBA::Octet o; - - IT_r.extractOctet (o); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_octet ( o, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -o\ -", IT_env)) return 1; - IT_r.insertOctet (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_short")) { - CORBA::Short IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_short~+s{s},>{s},N{}\ -")) - return 1; - CORBA::Short s; - - IT_r >> s; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_short ( s, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -s\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_long")) { - CORBA::Long IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_long~+l{l},>{l},N{}\ -")) - return 1; - CORBA::Long l; - - IT_r >> l; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_long ( l, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -l\ -", IT_env)) return 1; - IT_r << IT_result; - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_struct")) { - Cubit::Many IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~cube_struct~+values{R~Cubit::Many~o{o},l{l},s{s}},>{R~Cubit::Many~o{o},l{l},s{s}},N{}\ -")) - return 1; - Cubit::Many values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_struct ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -R~Cubit::Many~o{o},l{l},s{s}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"cube_union")) { - Cubit::oneof IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - IT_r.tcPreAssert ( -"\ -Ro~cube_union~+values{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},>{U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,\ -"); - if (!IT_r.tcAssert ("\ -e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}},N{}\ -")) - return 1; - Cubit::oneof values; - - values.decodeOp (IT_r); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit*)IT_pp)->cube_union ( values, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -U~Cubit::oneof~{E~Cubit::discrim~e_0th,e_1st,e_2nd,e_3rd,e_4th,e_5th}~Cubit::e_0th o{o};Cubit::e_1st s{s};Cubit::e_2nd l{l};Cubit::e_3rd,$ cm{R~Cubit::Many~o{o},l{l},s{s}}\ -", IT_env)) return 1; - IT_result.encodeOp (IT_r); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (!strcmp(IT_s,"please_exit")) { - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~please_exit~>{v},O{}\ -")) - return 1; - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - ((Cubit*)IT_pp)->please_exit (IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - IT_r.replyNoResults (CORBA::Flags(CORBA::INV_NO_RESPONSE),IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#define Cubit_Factory_dispatch_impl - -unsigned char Cubit_Factory_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,"create_cubit")) { - Cubit_ptr IT_result; - CORBA::Environment IT_env (IT_r); - CORBA::Filter* IT_f = CORBA::Orbix.getFilter (); - if (!IT_r.tcAssert ("\ -Ro~create_cubit~+name{0},>{O~Cubit},N{}\ -")) - return 1; - char * name; - - IT_r.decodeStringOp(name); - - if (IT_f && !IT_r.isException (IT_env)) - IT_f->inRequestPostM (IT_r, IT_env); - if (!IT_r.isException (IT_env)) { - try { - IT_result = ((Cubit_Factory*)IT_pp)->create_cubit ( name, IT_env); - - } catch (CORBA::SystemException &IT_exSys) { - IT_env.propagate (&IT_exSys); - } catch (CORBA::UserException &IT_exUsr) { - IT_env.propagate (&IT_exUsr); - } - } - CORBA::string_free (name); - - if (!IT_r.isException (IT_env)) { - if (!IT_r.convertToReply ("\ -O~Cubit\ -", IT_env)) return 1; - { - CORBA::Object* IT_l1 = (CORBA::Object*) IT_result; - IT_r << IT_l1; - } - if (IT_result) Cubit_release (IT_result); - } - - else IT_r.makeSystemException (IT_env); - return 1; - } - - if (IT_isTarget) - IT_r.makeRuntimeException2 (); - - return 0; -} - -#include "cubitC.cpp" - diff --git a/TAO/tests/Cubit/Orbix/tps/cubit_impl.cpp b/TAO/tests/Cubit/Orbix/tps/cubit_impl.cpp deleted file mode 100644 index 02c30756efc..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubit_impl.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l, CORBA::Environment &) throw (CORBA::SystemException) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values, CORBA::Environment &) throw (CORBA::SystemException) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit (CORBA::Environment &) throw (CORBA::SystemException) { -} - -Cubit_ptr Cubit_Factory_Impl:: create_cubit (const char * name, CORBA::Environment &) throw (CORBA::SystemException) { - cerr << "Creating Cubit for " << name << endl; - -#ifdef Cubit_USE_BOA - Cubit_Impl_Task *cubit = new Cubit_Impl_Task (); -#else - Cubit_Impl_Task *cubit = new TIE_Cubit (Cubit_Impl) (new Cubit_Impl_Task); -#endif - Cubit::_duplicate ((Cubit *)cubit); - cubit->activate (1); - return (Cubit *) cubit; -} - -int -Cubit_Impl_Task::svc (void) -{ - while (1) - { - // Dequeue message - ACE_Message_Block *mb; - this->msg_queue ()->dequeue_head (mb); - CORBA::Request *vp = (CORBA::Request *) mb->base (); - mb->release (); - // Hand it off to Orbix - CORBA::Orbix.continueThreadDispatch (*vp); - } - return 0; -} - -void * -Cubit_Impl_Task::_deref (void) -{ - return this; -} diff --git a/TAO/tests/Cubit/Orbix/tps/cubit_impl.h b/TAO/tests/Cubit/Orbix/tps/cubit_impl.h deleted file mode 100644 index 0fea9857af3..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/cubit_impl.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubit.h" -#include "ace/Task.h" - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual CubitBOAImpl { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ -public: - virtual CORBA::Octet cube_octet (CORBA::Octet o, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Short cube_short (CORBA::Short s, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual CORBA::Long cube_long (CORBA::Long l, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::Many cube_struct (const Cubit::Many& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual Cubit::oneof cube_union (const Cubit::oneof& values, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - virtual void please_exit (CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); - -}; - -#ifdef Cubit_USE_BOA -class Cubit_Factory_Impl : public virtual Cubit_FactoryBOAImpl { -#else -class Cubit_Factory_Impl { -#endif - -public: - virtual Cubit_ptr create_cubit (const char * name, CORBA::Environment &IT_env=CORBA::default_environment) throw (CORBA::SystemException); -}; - -class Cubit_Impl_Task : public virtual Cubit_Impl, public virtual ACE_Task { -public: - // For ACE_Task - int svc (void); - // for narrowing - virtual void *_deref (); -}; - -#ifndef Cubit_USE_BOA -DEF_TIE_Cubit (Cubit_Impl) -DEF_TIE_Cubit_Factory (Cubit_Factory_Impl) -#endif /* Cubit_USE_BOA */ - -#endif diff --git a/TAO/tests/Cubit/Orbix/tps/tps.cpp b/TAO/tests/Cubit/Orbix/tps/tps.cpp deleted file mode 100644 index 19a86b75ffd..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/tps.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// $Id$ - -#include "tps.h" - -int -TPS_Filter::inRequestPreMarshal(CORBA::Request &r, CORBA::Environment& env) -{ - // Get target - CORBA::Object_ptr obj = r.target (); - Cubit * cb = Cubit::_narrow (obj, env); - - if (env) // Not for our object!! - return 1; // continue in the same thread - - // Enqueue the request - Cubit_Impl_Task *ct; - if (CORBA::is_nil (cb)) - return 1; - ct = (Cubit_Impl_Task *) DEREF(cb); - if (ct) { - ACE_Message_Block *mb = new ACE_Message_Block ( (char *) (&r)); - ct->msg_queue ()->enqueue (mb); - } - // Done - return -1; -} - -TPS_Filter tps_filter; diff --git a/TAO/tests/Cubit/Orbix/tps/tps.h b/TAO/tests/Cubit/Orbix/tps/tps.h deleted file mode 100644 index 362c9ed4e91..00000000000 --- a/TAO/tests/Cubit/Orbix/tps/tps.h +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ - -#include "cubit.h" -#include "cubit_impl.h" -#include "ace/Service_Config.h" -#include "ace/Thread_Manager.h" -#include "ace/Task.h" - -class TPS_Filter : public ACE_Task, public CORBA::ThreadFilter -{ -public: - virtual int inRequestPreMarshal(CORBA::Request &, CORBA::Environment&); -}; diff --git a/TAO/tests/Cubit/README b/TAO/tests/Cubit/README deleted file mode 100644 index 6f20322a2ed..00000000000 --- a/TAO/tests/Cubit/README +++ /dev/null @@ -1,4 +0,0 @@ -This is the example from the SunSoft's IIOP 1.4 distribution modified -to work with TAO, Orbix, and VisiBroker. - -Benchmarking results are under results and tnf directories. diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw b/TAO/tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/DII_Cubit.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/Makefile b/TAO/tests/Cubit/TAO/DII_Cubit/Makefile deleted file mode 100644 index 9bd9f4cdc81..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/Makefile +++ /dev/null @@ -1,1204 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lTAO - -PROG_SRCS = svr.cpp clnt.cpp cubit.cpp \ - test1.cpp test1_clnt.cpp test1_svr.cpp - -LSRC = $(PROG_SRCS) - -CUBIT_SVR_OBJS = svr.o cubit_i.o cubitS.o -CUBIT_CLT_OBJS = clnt.o cubitC.o - -BASIC_SVR_OBJS = test1.o test1_svr.o -BASIC_CLT_OBJS = test1.o test1_clnt.o - -ECHO_SVR_OBJS = test1.o -ECHO_CLT_OBJS = test1.o - -BIN = svr clnt -BUILD = $(BIN) -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.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU -include $(TAO_ROOT)/taoconfig.mk - -# Local modifications to variables imported by includes above. -#LDFLAGS += -L../../../proto/lib -#CPPFLAGS += -I../../../proto/include -DUSE_ACE_EVENT_HANDLING -DDEBUG -OCFLAGS = - -svr: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clnt: $(addprefix $(VDIR),$(CUBIT_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_svr: $(addprefix $(VDIR),$(BASIC_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -test1_clnt: $(addprefix $(VDIR),$(BASIC_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -######## -# Sanity check builds by running basic functionality tests. -# -# "sleep 5" in the server startup is usually enough to get the -# objref into the file so the client can read it. -# -check: $(TESTS) - @echo "testing with 'cube' calls, stub + DII, IOR strings" - @./svr -i30 -o non-internet > obj.1 & sleep 5 - @./clnt -n250 -O `cat obj.1` -x - @echo '' - @echo "testing request forwarding with 'cube' calls, stub + DII" - @./svr -f -i30 > obj.2 & sleep 5 - @./clnt -n250 -O `cat obj.2` -x - @echo '' - @echo "testing transmission of primitive data types" - @./test1_svr -i30 > obj.3 & sleep 5 - @./test1_clnt -n50 -O `cat obj.3` -x - @echo '' -# @echo "testing echo of primitive data values" -# @./echo_svr -i30 > obj.4 & sleep 5 -# @./echo_clnt -O `cat obj.4` -x -# @echo '' - @echo "testing with 'cube' calls, MT-ized (no forwarding)" - @./svr -t -i30 -o non-internet > obj.5 & sleep 5 - @./clnt -n250 -O `cat obj.5` -x - @echo '' - -ifdef LOCALRULES -######## -# CUBIT test -svr: svr.o cubit.o - $(LINK.cc) -o svr svr.o cubit.o $(LDLIBS) $(POSTLINK) -clnt: cubit.o clnt.o - $(LINK.cc) -o clnt clnt.o cubit.o $(LDLIBS) $(POSTLINK) - -######## -# BASIC DATATYPES test -test1_clnt: test1.o test1_clnt.o - $(LINK.cc) -o test1_clnt test1_clnt.o test1.o $(LDLIBS) $(POSTLINK) -test1_svr: test1.o test1_svr.o - $(LINK.cc) -o test1_svr test1_svr.o test1.o $(LDLIBS) $(POSTLINK) - -######## -# ECHO test ... "test1" where the operation semantics are violated; -# this aids some porting work, but is a less rigorous test -echo_clnt: test1.o echo_clnt.o - $(LINK.cc) -o echo_clnt echo_clnt.o test1.o $(LDLIBS) $(POSTLINK) -echo_svr: test1.o echo_svr.o - $(LINK.cc) -o echo_svr echo_svr.o test1.o $(LDLIBS) $(POSTLINK) -endif - - -rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - - -@echo "Nothing to install, these are tests!" - - - - - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/svr.o .obj/svr.so .shobj/svr.o .shobj/svr.so: svr.cpp \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - cubit_i.h cubitS.h cubitC.h -.obj/clnt.o .obj/clnt.so .shobj/clnt.o .shobj/clnt.so: clnt.cpp \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - cubitC.h clnt.h -.obj/cubit.o .obj/cubit.so .shobj/cubit.o .shobj/cubit.so: cubit.cpp cubit.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/test1.o .obj/test1.so .shobj/test1.o .shobj/test1.so: test1.cpp test1.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/test1_clnt.o .obj/test1_clnt.so .shobj/test1_clnt.o .shobj/test1_clnt.so: test1_clnt.cpp test1.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/test1_svr.o .obj/test1_svr.so .shobj/test1_svr.o .shobj/test1_svr.so: test1_svr.cpp test1.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.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/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/PolicyS.h \ - $(TAO_ROOT)/tao/PolicyS.i \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/README b/TAO/tests/Cubit/TAO/DII_Cubit/README deleted file mode 100644 index 2b5cefa071b..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/README +++ /dev/null @@ -1,30 +0,0 @@ -This is the cubit example that uses hand-generated stubs and -skeletons. Once we've got a real DII C++ mapping in TAO, we'll modify -this to use that mapping. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -server: -------- - -% svr [-d] -ORBhost [-orbport ] - -When the server is started and you have used the -d flag, you should -see as the first line of output something that looks like -iiop:1.0//serverhost:10013/key00. You will need this when you run the -client. - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - -client: -------- - -% clnt [-d] -n -O - -In another window (on the same machine or a different machine) type in -client -O IIOP where IIOP is the name that the server gave you. - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/client.dsp b/TAO/tests/Cubit/TAO/DII_Cubit/client.dsp deleted file mode 100644 index 15c3d76cb23..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/client.dsp +++ /dev/null @@ -1,109 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\client\Release" -# PROP BASE Intermediate_Dir ".\client\Release" -# PROP BASE Target_Dir ".\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 ".\client" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /I "..\..\..\..\..\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /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 TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\client\Debug" -# PROP BASE Intermediate_Dir ".\client\Debug" -# PROP BASE Target_Dir ".\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 ".\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 "..\..\..\..\\" /I "..\..\..\..\..\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 TAO.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "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=.\clnt.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\cubitC.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/TAO/tests/Cubit/TAO/DII_Cubit/clnt.bld b/TAO/tests/Cubit/TAO/DII_Cubit/clnt.bld deleted file mode 100644 index e9bd0318b5c..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/clnt.bld +++ /dev/null @@ -1,11 +0,0 @@ -#!build -default: - program - :debuglevel=multi -cubitC.cpp - C++ -clnt.cpp - C++ -/home/m225527/vme/src/sockem.c - C - :c_option=slashcomment diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp deleted file mode 100644 index 5bb1e2dc995..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/clnt.cpp +++ /dev/null @@ -1,656 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/DII_Cubit -// -// = FILENAME -// clnt.cpp -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ -#include "ace/Profile_Timer.h" -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "cubitC.h" -#include "clnt.h" - -// Constructor. - -Cubit_Client::Cubit_Client (void) - : loop_count_ (250), - exit_later_ (0), - objref_ (CORBA::Object::_nil ()), - cubit_ (Cubit::_nil ()), - orb_ptr_ (0), - call_count_ (0), - error_count_ (0), - cubit_key_ ("key00"), - hostname_ (ACE_DEFAULT_SERVER_HOST), - portnum_ (TAO_DEFAULT_SERVER_PORT) -{ -} - -// destructor - -Cubit_Client::~Cubit_Client (void) -{ - // Free resources - CORBA::release (this->cubit_); - CORBA::release (this->objref_); - CORBA::release (this->orb_ptr_); -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -Cubit_Client::func (u_int i) -{ - return i - 117; -} - -// Parses the command line arguments and returns an error status. - -int -Cubit_Client::parse_args (void) -{ - ACE_Get_Opt opts (argc_, argv_, "dn:k:h:p:x"); - int c; - - while ((c = opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (opts.optarg); - break; - case 'h': - hostname_ = ACE_OS::strdup (opts.optarg); - break; - case 'p': - portnum_ = ACE_OS::atoi (opts.optarg); - break; - case 'k': // stringified objref - cubit_key_ = ACE_OS::strdup (opts.optarg); - break; - case 'x': - exit_later_++; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-k cubit-obj-ref-key]" - " [-h hostname]" - " [-p port]" - " [-x]" - "\n", argv_ [0] - ), -1); - } - - return 0; // Indicates successful parsing of command line -} - -void -Cubit_Client::cube_union_stub (void) -{ - this->cubit_ = Cubit::_narrow (this->objref_); - - Cubit_oneof u, *r; - - this->call_count_++; - - u._disc = e_2nd; - u.l = 3; - - // Cube a "union" ... - r = this->cubit_->Cubit_cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg ("cube union ..."); - u.l = u.l * u.l * u.l ; - - if (u.l != r->l) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - delete r; - } - - this->call_count_++; - - u._disc = e_5th; -#if 0 - u.cm.l = this->func (i); - u.cm.s = this->func (i); - u.cm.o = this->func (i); -#endif - - u.cm.l = 7; - u.cm.s = 5; - u.cm.o = 3; - - // Cube another "union" which uses the default arm ... - r = this->cubit_->Cubit_cube_union (u, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg ("cube union ..."); - u.cm.l = u.cm.l * u.cm.l * u.cm.l; - u.cm.s = u.cm.s * u.cm.s * u.cm.s; - u.cm.o = u.cm.o * u.cm.o * u.cm.o; - - if (u.cm.l != r->cm.l - || u.cm.s != r->cm.s - || u.cm.o != r->cm.o) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - delete r; - } -} - -void -Cubit_Client::cube_union_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req; - - this->call_count_++; - - req = this->objref_->_request ((CORBA::String) "cube_union", this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - - this->env_.print_exception ("cube_union_dii request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit_oneof u, *r; - - u._disc = e_3rd; - u.cm.l = 5; - u.cm.s = -7; - u.cm.o = 3; - - CORBA::Any tmp_arg (TC_Cubit_oneof, &u, CORBA::B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA::ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->env_.print_exception ("cube_union_dii request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (TC_Cubit_oneof, 0, CORBA::B_TRUE, this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->env_.print_exception ("cube_union_dii result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result. - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->error_count_++; - req->env ()->print_exception ("cube_union_dii invoke"); - CORBA::release (req); - return; - } - - r = (Cubit_oneof *) req->result ()->value ()->value (); - - if (r->cm.o != 27 || r->cm.l != 125 || r->cm.s != -343) - { - this->error_count_++; - ACE_ERROR ((LM_ERROR, "cube_union_dii -- bad results\n")); - } - else - dmsg ("cube_union_dii ... success!!"); - - CORBA::release (req); -} - -// Cube an octet - -void -Cubit_Client::cube_octet (int i) -{ - CORBA::Octet arg_octet = this->func (i); - - // Cube an octet. - CORBA::Octet ret_octet = this->cubit_->Cubit_cube_octet (arg_octet, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_octet"); - this->error_count_++; - } - else - { - dmsg2 ("cube octet: %d --> %d\n", arg_octet, ret_octet); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_DEBUG ((LM_DEBUG, - "** cube_octet (%d) ERROR (--> %d)\n", - (CORBA::Octet) this->func (i), - ret_octet)); - this->error_count_++; - } - } -} - - -// calculate the cube from a long - -void -Cubit_Client::cube_long (int i) -{ - CORBA::Long arg_long = this->func (i); - - // Cube a long. - CORBA::Long ret_long = this->cubit_->Cubit_cube_long (arg_long, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_long"); - this->error_count_++; - } - else - { - dmsg2 ("cube long: %d --> %d\n", arg_long, ret_long); - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - ACE_ERROR ((LM_ERROR, - "** cube_long (%ld) ERROR (--> %ld)\n", - (CORBA::Long) this->func (i), - ret_long)); - this->error_count_++; - } - } -} - -// Cube a short. - -void -Cubit_Client::cube_short (int i) -{ - CORBA::Short arg_short = this->func (i); - // Cube a short. - CORBA::Short ret_short = cubit_->Cubit_cube_short (arg_short, this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_short"); - this->error_count_++; - } - else - { - dmsg2 ("cube short: %d --> %d\n", - arg_short, - ret_short); - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, "** cube_short (%d) ERROR (--> %d)\n", - (CORBA::Short) this->func (i), - ret_short)); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct (int i) -{ - Cubit_Many arg_struct; - Cubit_Many *ret_struct; - - this->call_count_++; - - arg_struct.l = this->func (i); - arg_struct.s = this->func (i); - arg_struct.o = this->func (i); - - // Cube a "struct" ... - ret_struct = this->cubit_->Cubit_cube_struct (arg_struct, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - dmsg ("cube struct ..."); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct->l - || arg_struct.s != ret_struct->s - || arg_struct.o != ret_struct->o) - { - ACE_ERROR ((LM_ERROR, "** cube_struct ERROR\n")); - this->error_count_++; - } - } - delete ret_struct; -} - -int -Cubit_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - this->argv_ = argv; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - // construct the TAO ior for the Cubit object reference - ACE_OS::sprintf (this->buf_, - "iiop:1.0//%s:%d/%s", - this->hostname_, - this->portnum_, - this->cubit_key_); - - // Retrieve the ORB. - this->orb_ptr_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("ORB initialization"); - return -1; - } - - this->objref_ = this->orb_ptr_->string_to_object ((CORBA::String) this->buf_, - this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("string2object"); - return 1; - } - - if (CORBA::is_nil (this->objref_) == CORBA::B_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: must identify non-null target objref\n", - this->argv_ [0]), - -1); - - // Narrow the CORBA::Object reference to the stub object, checking - // the type along the way using _is_a. - this->cubit_ = Cubit::_narrow (this->objref_); - - if (this->cubit_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to narrow object reference to a Cubit_ptr.\n"), - -1); - - return 0; -} - -// Simple test for DII: call "cube_struct". - -void -Cubit_Client::cube_struct_dii (void) -{ - // Create the request ... - - CORBA::Request_ptr req = - this->objref_->_request ((CORBA::String) "cube_struct", this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit_Many arg, *result; - - arg.o = 3; - arg.l = 5; - arg.s = -7; - - CORBA::Any tmp_arg (TC_Cubit_Many, &arg, CORBA::B_FALSE); - - req->arguments ()->add_value (0, tmp_arg, CORBA::ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request arg add"); - CORBA::release (req); - return; - } - - req->result ()->value ()->replace (TC_Cubit_Many, 0, CORBA::B_TRUE, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result - - this->call_count_++; - req->invoke (); - - if (req->env ()->exception () != 0) - { - req->env ()->print_exception ("DII invoke"); - CORBA::release (req); - return; - } - - result = (Cubit_Many *) req->result ()->value ()->value (); - - if (result->o != 27 || result->l != 125 || result->s != -343) - ACE_ERROR ((LM_ERROR, "DII cube_struct -- bad results\n")); - else - dmsg ("DII cube_struct ... success!!"); - - CORBA::release (req); -} - -// prints time statistics - -void -Cubit_Client::print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time) -{ - double tmp; - - ACE_DEBUG ((LM_DEBUG, - "%s:\n", - call_name)); - - if (this->call_count_ > 0 && this->error_count_ == 0) - { - tmp = 1000 / elapsed_time.real_time; - - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= this->call_count_; - elapsed_time.user_time /= this->call_count_; - elapsed_time.system_time /= this->call_count_; - - tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %0.06f ms, \n\t" - "user_time\t= %0.06f ms, \n\t" - "system_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0? 0.0:elapsed_time.real_time, - elapsed_time.user_time < 0.0? 0.0:elapsed_time.user_time, - elapsed_time.system_time < 0.0? 0.0:elapsed_time.system_time, - tmp < 0.0? 0.0 : tmp)); - } - else - { - ACE_ERROR ((LM_ERROR, "\tNo time stats printed. Call count zero or error ocurred.\n")); - } - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n", - this->call_count_, - this->error_count_)); -} - -// Execute client example code. - -int -Cubit_Client::run (void) -{ - u_int i; - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // ACE_Time_Value before; - - // We start an ACE_Profile_Timer here... - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_short (i); - this->cube_octet (i); - this->cube_long (i); - this->cube_struct (i); - } - - // stop the timer. - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube average call", elapsed_time); - - // Simple test for DII: call "cube_struct". (It's not timed since - // the copious mallocation of DII would bias numbers against typical - // stub-based calls). - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_struct_dii (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_struct_dii call", elapsed_time); - - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_stub (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_stub call", elapsed_time); - - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_union_dii (); - } - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_dii call", elapsed_time); - - if (this->exit_later_) - { - this->cubit_->Cubit_please_exit (this->env_); - dexc (this->env_, "server, please ACE_OS::exit"); - } - - return this->error_count_ == 0 ? 0 : 1; -} - - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - return cubit_client.run (); -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/clnt.h b/TAO/tests/Cubit/TAO/DII_Cubit/clnt.h deleted file mode 100644 index 058e44283c5..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/clnt.h +++ /dev/null @@ -1,138 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/DII_Cubit -// -// = FILENAME -// clnt.h -// -// = DESCRIPTION -// This class implements a simple wrapper around the "cube" CORBA -// client for the Cubit example using stubs generated by the TAO -// ORB IDL compiler. -// -// = AUTHORS -// Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "cubitC.h" - -class ACE_winsock_proper_shutdown -// @@ We need this helper class to properly shutdown -// WinSock before we figure out how to do this properly. -{ -public: - ~ACE_winsock_proper_shutdown (void) - { - ACE_OS::socket_fini (); - } -}; - -class Cubit_Client - // = TITLE - // Defines a class that encapsulates behaviour of the Cubit client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Cubit CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -{ -public: - // = Constructor and destructor. - Cubit_Client (void); - ~Cubit_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int func (u_int i); - // simple function that returns the substraction of 117 from the parameter. - - int parse_args (void); - // Parses the arguments passed on the command line. - - void print_stats (const char *call_name, ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time); - // prints the time stats - - void cube_union_stub (void); - // Exercise the union. Cube a union. - - void cube_union_dii (void); - // Exercise the union using dii. - - void cube_struct (int i); - // calculate the cube from a struct. - - void cube_long (int i); - // calculate the cube from a long - - void cube_octet (int i); - // Cube an octet - - void cube_short (int i); - // Cube a short. - - void cube_struct_dii (void); - // Cube the numbers in a struct - - // private member variables. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - u_int loop_count_; - // Number of times to do the cube operations. - - int exit_later_; - // Flag to tell server to not exit immediately - - CORBA::Object_ptr objref_; - // storage of the factory objref - - CORBA::Environment env_; - // Environment variable - - Cubit_ptr cubit_; - // Cubit obj ref - - CORBA::ORB_ptr orb_ptr_; - // Remember our orb - - u_int call_count_; - // # of calls made to functions - - u_int error_count_; - // # of errors incurred in the lifetime of the application. - - ACE_winsock_proper_shutdown shutdown_object; - // Winsock shutdown object. - - const char *TAO_arg_ior_; - // pointer to object reference string. - - char *cubit_key_; - // Key of the obj ref to be retrieved via the factory. - - char *hostname_; - // Hostname of server. - - CORBA::ULong portnum_; - // default port number of server. - - char buf_[BUFSIZ]; - // buffer for temporary use -}; diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/cubit.cpp deleted file mode 100644 index 5fd056d43a5..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.cpp +++ /dev/null @@ -1,562 +0,0 @@ -// $Id$ - -// @(#)cubit.cpp 1.2 95/09/29 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// -// NOTE: these "skeletons" are really the methods, using DSI. No real -// ORB would be implemented in this particular way. Several things would -// be more typical of real (static) skeletons: -// -// * Most of the "in" (and much of the "out") parameter data would -// be preallocated on the stack, not heap allocated. (Static -// preallocation doesnt' really work in a multithreaded system, -// and moreover can waste a lot of space.) -// -// * The ORB core wouldn't be told about parameters using heap -// allocated data structures (e.g. NVList). -// -// * Skeletons would need to some kind of "marshal the response NOW" -// API so that stack-allocated "out" values wouldn't become invalid -// up until they were safely marshaled. -// -// * They'd handle exceptions rather than just generating debugging -// messages when they happen. -// -// * Method code would be called by the skeletons, not written as -// part of the "skeleton" itself! -// -// A key part of turning this code into a complete ORB would be to ensure -// that skeletons were always efficient and correct. They might not need -// to be sharable between different implementations of the same OMG-IDL -// object interface, but many ORBs choose to be structured that way. - -#include "cubit.h" // for stubs ... -#include "tao/corba.h" // ... and skeletons - -// CUBE OCTET - -static const TAO_Param_Data Cubit_cube_octet_params [] = -{ - { CORBA::_tc_octet, PARAM_RETURN, 0 }, - { CORBA::_tc_octet, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_octet_calldata = -{ - "cube_octet", CORBA::B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - -CORBA::Octet -Cubit_cube_octet (Cubit_ptr target, - CORBA::Octet o, - CORBA::Environment &env) -{ - CORBA::Octet retval = 0; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **) &data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - data->Release (); - } - - return retval; -} - -static void -_cube_octet_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_octet); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - CORBA::Octet* value = new CORBA::Octet; - - *value = *(CORBA::Octet *)nv->value ()->value (); - // dmsg1 ("cube octet, parameter '%d'", *value); - - *value = (CORBA::Octet) ((*value) * (*value) * (*value)); - // dmsg1 ("cube octet, result '%d'", *value); - - CORBA::Any* any = - new CORBA::Any (CORBA::_tc_octet, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - -// CUBE SHORT - -static const TAO_Param_Data Cubit_cube_short_params [] = -{ - { CORBA::_tc_short, PARAM_RETURN, 0 }, - { CORBA::_tc_short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = -{ - "cube_short", CORBA::B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - -CORBA::Short -Cubit_cube_short (Cubit_ptr target, - CORBA::Short s, - CORBA::Environment &env) -{ - CORBA::Short retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **) &data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_short_calldata, - &retval, &s); - data->Release (); - } - return retval; -} - -static void -_cube_short_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_short); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - CORBA::Short* value = new CORBA::Short; - - *value = *(CORBA::Short *)nv->value ()->value (); - // dmsg1 ("cube short, parameter '%d'", *value); - - *value =(CORBA::Short) ((*value) * (*value) * (*value)); - // dmsg1 ("cube short, result '%d'", *value); - - CORBA::Any* any = - new CORBA::Any (CORBA::_tc_short, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - -// CUBE LONG - -static const TAO_Param_Data Cubit_cube_long_params [] = -{ - { CORBA::_tc_long, PARAM_RETURN, 0 }, - { CORBA::_tc_long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = -{ - "cube_long", CORBA::B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - -CORBA::Long -Cubit_cube_long (Cubit_ptr target, - CORBA::Long l, - CORBA::Environment &env) -{ - CORBA::Long retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - data->Release (); - } - return retval; -} - -static void -_cube_long_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_long); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - CORBA::Long* value = new CORBA::Long; - - *value = *(CORBA::Long *)nv->value ()->value (); - // dmsg1 ("cube long, parameter '%d'", *value); - - *value = (*value) * (*value) * (*value); - // dmsg1 ("cube long, result '%d'", *value); - - CORBA::Any* any = - new CORBA::Any (CORBA::_tc_long, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -// Encapsulated parameters for struct "Cubit_Many" typecode. -// None of these parameters is complicated, so this is just -// a linear sequence of element encodings -// -// NOTE: it's important that this be longword aligned!! - -static const CORBA::Long _oc_Cubit_Many [] = -{ - MY_BYTE_SEX, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - tk_short, -}; - -static CORBA::TypeCode _tc_Cubit_Many (tk_struct, - sizeof _oc_Cubit_Many, - (u_char *) &_oc_Cubit_Many, - CORBA::B_FALSE); - -CORBA::TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - -// CUBE STRUCT - -static const TAO_Param_Data Cubit_cube_struct_params [] = -{ - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = -{ - "cube_struct", CORBA::B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many * -Cubit_cube_struct (Cubit_ptr target, - Cubit_Many &values, - CORBA::Environment &env) -{ - Cubit_Many *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **) &data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - -static void -_cube_struct_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (TC_Cubit_Many); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - Cubit_Many *value; - Cubit_Many *retval = new Cubit_Many; - - value = (Cubit_Many *)nv->value ()->value (); - - retval->o = (CORBA::Octet) (value->o * value->o * value->o); - retval->s = (CORBA::Short) (value->s * value->s * value->s); - retval->l = value->l * value->l * value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA::Any *any = - new CORBA::Any (TC_Cubit_Many, retval, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -// CUBE UNION - -// NOTE: not all union typecodes can be encoded as an array of "long -// "values, but this one can. Ones with discriminants that are one or -// two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is twofold: -// (a) easier to read; (b) on most systems it's then adequately -// aligned for the typecode interpreter to use, so no additional -// runtime copy needs to be made. - -static const CORBA::Long _oc_Cubit_oneof [] = -{ - MY_BYTE_SEX, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // discriminant typecode: - tk_enum, // tk_enum - 72, // encapsulation length - - MY_BYTE_SEX, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - tk_struct, // tk_struct - 60, // encap length - - MY_BYTE_SEX, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - tk_octet, // member type, tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - tk_long, // member type, tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - tk_short, // member type, tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -84 // offset to struct "Many" typecode -}; - -static CORBA::TypeCode _tc_Cubit_oneof (tk_union, - (sizeof _oc_Cubit_oneof), - (u_char *) &_oc_Cubit_oneof, - CORBA::B_FALSE); - -CORBA::TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = -{ - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = -{ - "cube_union", CORBA::B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof * -Cubit_cube_union (Cubit_ptr target, - Cubit_oneof &values, - CORBA::Environment &env) -{ - Cubit_oneof *retval; - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **) &data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - data->Release (); - } - return retval; -} - -static void -cube_union_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (TC_Cubit_oneof); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - Cubit_oneof *v; - Cubit_oneof *r = new Cubit_oneof; - - v = (Cubit_oneof *)nv->value ()->value (); - r->_disc = v->_disc; - - switch (v->_disc) - { - case e_0th: - r->o = (CORBA::Octet) (v->o * v->o * v->o); - break; - - case e_1st: - r->s = (CORBA::Short) (v->s * v->s * v->s); - break; - - case e_2nd: - r->l = v->l * v->l * v->l; - break; - - case e_3rd: - default: - r->cm.o = (CORBA::Octet) (v->cm.o * v->cm.o * v->cm.o); - r->cm.s = (CORBA::Short) (v->cm.s * v->cm.s * v->cm.s); - r->cm.l = v->cm.l * v->cm.l * v->cm.l; - break; - } - - CORBA::Any *any = new CORBA::Any (TC_Cubit_oneof, r, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -// PLEASE EXIT - -static const TAO_Call_Data Cubit_please_exit_calldata = -{ - "please_exit", CORBA::B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit_please_exit (Cubit_ptr target, - CORBA::Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **) &data) != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else - { - data->do_call (env, &Cubit_please_exit_calldata); - data->Release (); - } -} - -static void -_please_exit_skel (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); -} - -const CORBA::Char *Cubit__id = (CORBA::Char *) "IDL:Eng.SUN.COM/Cubit:1.1"; - -// table of all operations, used by operation dispatch to get to the -// right skeleton ... could be sorted by the IDL compiler so bsearch -// is effective, perhaps with help from opname hashes and a small -// cache (e.g. like Obj-C?). for now, just lsearch. - -const TAO_Skel_Entry Cubit_operations [] = -{ - { &Cubit_cube_octet_calldata, _cube_octet_skel }, - { &Cubit_cube_short_calldata, _cube_short_skel }, - { &Cubit_cube_long_calldata, _cube_long_skel }, - { &Cubit_cube_struct_calldata, _cube_struct_skel }, - { &Cubit_cube_union_calldata, _cube_union_skel }, - { &Cubit_please_exit_calldata, _please_exit_skel }, - { 0, 0 } // last entry -}; diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.h b/TAO/tests/Cubit/TAO/DII_Cubit/cubit.h deleted file mode 100644 index 1bbca96331e..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.h +++ /dev/null @@ -1,107 +0,0 @@ -// $Id$ - -// @(#)cubit.hh 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Hand-crafted C language binding glue ... -// -// This doesn't use C++ since doing the obvious derivation (all parent -// interfaces are virtual public parents) makes object references have -// different "views". That is, a pointer to a Cubit (i.e. a -// Cubit_ptr) would not have the same binary value as a pointer to a -// CORBA::Object (i.e. a CORBA::Object_ptr, generic objref). That'd -// mean lots of narrowing/widening/RTTI infrastructure. - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include "tao/corba.h" - -// -// C style binding -// - -typedef CORBA::Object Cubit; -typedef Cubit *Cubit_ptr, *CubitRef; - -extern CORBA::TypeCode_ptr TC_Cubit_Many; -extern CORBA::TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many -{ - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; -}; - -enum Cubit_discrim {e_0th = 0, e_1st = 1, e_2nd = 2, - e_3rd = 3, e_4th = 4, e_5th = 5}; - -struct Cubit_oneof -{ - Cubit_discrim _disc; - - union - { - CORBA::Octet o; - CORBA::Short s; - CORBA::Long l; - Cubit_Many cm; - }; -}; - -CORBA::Octet -Cubit_cube_octet ( - Cubit_ptr target, - CORBA::Octet o, - CORBA::Environment &env -); - -CORBA::Short -Cubit_cube_short ( - Cubit_ptr target, - CORBA::Short s, - CORBA::Environment &env -); - -CORBA::Long -Cubit_cube_long ( - Cubit_ptr target, - CORBA::Long l, - CORBA::Environment &env -); - -Cubit_Many * -Cubit_cube_struct ( - Cubit_ptr target, - Cubit_Many &values, - CORBA::Environment &env -); - -Cubit_oneof * -Cubit_cube_union ( - Cubit_ptr target, - Cubit_oneof &values, - CORBA::Environment &env -); - -void -Cubit_please_exit ( - Cubit_ptr target, - CORBA::Environment &env -); - -extern const CORBA::Char *Cubit__id; // type ID - -extern const TAO_Skel_Entry Cubit_operations []; - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.idl b/TAO/tests/Cubit/TAO/DII_Cubit/cubit.idl deleted file mode 100644 index f194e2f1fa7..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubit.idl +++ /dev/null @@ -1,44 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. - -#pragma prefix "Eng.SUN.COM" -#pragma version Cubit 1.1 - -interface Cubit -{ - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof switch (discrim) - { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.cpp deleted file mode 100644 index 55961aac3ad..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.cpp +++ /dev/null @@ -1,387 +0,0 @@ -// $Id$ - -// @ (#)cubitC.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "cubitC.h" // for stubs ... - -Cubit_ptr Cubit::_duplicate (Cubit_ptr obj) -{ - if (obj) - obj->AddRef (); - - return obj; -} - -Cubit_ptr Cubit::_narrow (CORBA::Object_ptr obj) -{ - CORBA::Environment env; - - if (obj->_is_a ("IDL:Cubit:1.0", env)) - { - obj->Release (); // Release the reference grabbed by _is_a () - - STUB_Object *istub; - - if (obj->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - return Cubit::_nil (); - - obj->Release (); - Cubit_ptr new_obj = new Cubit (istub); - return Cubit::_duplicate (new_obj); - } - else - ;// Do we need to do an obj->Release () here if _is_a () failed? - - return Cubit::_nil (); -} - -Cubit_ptr Cubit::_nil (void) -{ - return (Cubit_ptr)NULL; -} - -// CUBE OCTET - -static const TAO_Param_Data Cubit_cube_octet_params [] = -{ - { CORBA::_tc_octet, PARAM_RETURN, 0 }, - { CORBA::_tc_octet, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_octet_calldata = -{ - "cube_octet", CORBA::B_TRUE, - 2, &Cubit_cube_octet_params [0], - 0, 0 -}; - -CORBA::Octet -Cubit::Cubit_cube_octet (CORBA::Octet o, - CORBA::Environment &env) -{ - CORBA::Octet retval; - - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return 0; - } - - this->Release (); - - istub->do_call (env, &Cubit_cube_octet_calldata, - &retval, &o); - istub->Release (); - - return retval; -} - -// CUBE SHORT - -static const TAO_Param_Data Cubit_cube_short_params [] = -{ - { CORBA::_tc_short, PARAM_RETURN, 0 }, - { CORBA::_tc_short, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_short_calldata = -{ - "cube_short", CORBA::B_TRUE, - 2, &Cubit_cube_short_params [0], - 0, 0 -}; - - -CORBA::Short -Cubit::Cubit_cube_short (CORBA::Short s, - CORBA::Environment &env) -{ - CORBA::Short retval; - - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return 0; - } - - this->Release (); - - istub->do_call (env, &Cubit_cube_short_calldata, - &retval, &s); - - istub->Release (); - - return retval; -} - -// CUBE LONG - -static const TAO_Param_Data Cubit_cube_long_params [] = -{ - { CORBA::_tc_long, PARAM_RETURN, 0 }, - { CORBA::_tc_long, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_long_calldata = -{ - "cube_long", CORBA::B_TRUE, - 2, &Cubit_cube_long_params [0], - 0, 0 -}; - -CORBA::Long -Cubit::Cubit_cube_long (CORBA::Long l, - CORBA::Environment &env) -{ - CORBA::Long retval; - - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return 0; - } - - this->Release (); - - istub->do_call (env, &Cubit_cube_long_calldata, - &retval, &l); - istub->Release (); - - return retval; -} - -// Encapsulated parameters for struct "Cubit_Many" typecode. None of -// these parameters is complicated, so this is just a linear sequence -// of element encodings -// -// NOTE: it's important that this be longword aligned!! - -static const CORBA::Long _oc_Cubit_Many [] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order flag (TRICKY!) - - 1, 0, // empty string: repository/type ID - 1, 0, // empty string: struct name - - 3, // three struct elements - - // First structure element: name, typecode for Octet - 1, 0, // empty string: name "o" - CORBA::tk_octet, - - // Second structure element: name, typecode for Long - 1, 0, // empty string: name "l" - CORBA::tk_long, - - // Third structure element: name, typecode for Short - 1, 0, // empty string: name "s" - CORBA::tk_short, -}; - -static CORBA::TypeCode _tc_Cubit_Many (CORBA::tk_struct, - sizeof _oc_Cubit_Many, - (u_char *) &_oc_Cubit_Many, - CORBA::B_FALSE); -CORBA::TypeCode_ptr TC_Cubit_Many = &_tc_Cubit_Many; - -// CUBE STRUCT - -static const TAO_Param_Data Cubit_cube_struct_params [] = -{ - { &_tc_Cubit_Many, PARAM_RETURN, sizeof (Cubit_Many) }, - { &_tc_Cubit_Many, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_struct_calldata = -{ - "cube_struct", CORBA::B_TRUE, - 2, &Cubit_cube_struct_params [0], - 0, 0 -}; - -Cubit_Many* -Cubit::Cubit_cube_struct (Cubit_Many &values, - CORBA::Environment &env) -{ - Cubit_Many *retval; - - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return 0; - } - - this->Release (); - - istub->do_call (env, &Cubit_cube_struct_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - -// CUBE UNION - -// NOTE: not all union typecodes can be encoded as an array of "long -// "values, but this one can. Ones with discriminants that are one or -// two bytes long can't easily be coded portably. -// -// The benefit of doing it as an array of "long" values is twofold: -// (a) easier to read; (b) on most systems it's then adequately -// aligned for the typecode interpreter to use, so no additional -// runtime copy needs to be made. - -static const CORBA::Long _oc_Cubit_oneof [] = -{ - TAO_ENCAP_BYTE_ORDER, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "oneof" - - // - // discriminant typecode: - // - CORBA::tk_enum, // CORBA::tk_enum - 72, // encapsulation length - - TAO_ENCAP_BYTE_ORDER, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted enum name, "discrim" - 6, // 5 elements in the enum - - 1, 0, // omitted member name, "e_0th" - 1, 0, // omitted member name, "e_1st" - 1, 0, // omitted member name, "e_2nd" - 1, 0, // omitted member name, "e_3rd" - 1, 0, // omitted member name, "e_4th" - 1, 0, // omitted member name, "e_5th" - - 4, // default member index (zero based) - 5, // number of union members - - // the 1st union branch arm - e_0th, // member label value - 1, 0, // omitted member name, "o" - CORBA::tk_octet, // member typecode - - // the 2nd union branch arm - e_1st, // member label value - 1, 0, // omitted member name, "s" - CORBA::tk_short, // member typecode - - // the 3rd union branch arm - e_2nd, // member label value - 1, 0, // omitted member name, "l" - CORBA::tk_long, // member typecode - - // the 4th union branch arm - e_3rd, // member label value - 1, 0, // omitted member name, "cm" - - // the 4th union member typecode - CORBA::tk_struct, // CORBA::tk_struct - 60, // encap length - - TAO_ENCAP_BYTE_ORDER, // byte order flag (TRICKY) - 1, 0, // omitted repository/type ID - 1, 0, // omitted struct name, "Many" - 3, // three struct members - - // First structure element - 1, 0, // omitted member name, "o" - CORBA::tk_octet, // member type, CORBA::tk_octet - - // Second structure element - 1, 0, // omitted member name, "l" - CORBA::tk_long, // member type, CORBA::tk_long - - // Third structure element - 1, 0, // omitted member name, "s" - CORBA::tk_short, // member type, CORBA::tk_short - - // the 5th union branch arm - 4, // the 5th member label value - 1, 0, // omitted member name, "cm" - ~0, // indirected typecode (~0) - -88 // offset to struct "Many" typecode -}; - -static CORBA::TypeCode _tc_Cubit_oneof (CORBA::tk_union, - (sizeof _oc_Cubit_oneof), - (u_char *) &_oc_Cubit_oneof, - CORBA::B_FALSE); -CORBA::TypeCode_ptr TC_Cubit_oneof = &_tc_Cubit_oneof; - -static const TAO_Param_Data Cubit_cube_union_params [] = -{ - { &_tc_Cubit_oneof, PARAM_RETURN, sizeof (Cubit_oneof) }, - { &_tc_Cubit_oneof, PARAM_IN, 0 } -}; - -static const TAO_Call_Data Cubit_cube_union_calldata = -{ - "cube_union", CORBA::B_TRUE, - 2, &Cubit_cube_union_params [0], - 0, 0 -}; - -Cubit_oneof * -Cubit::Cubit_cube_union (Cubit_oneof &values, - CORBA::Environment &env) -{ - Cubit_oneof *retval; - - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return 0; - } - - this->Release (); - - istub->do_call (env, &Cubit_cube_union_calldata, - &retval, &values); - istub->Release (); - - return retval; -} - -// PLEASE EXIT - -static const TAO_Call_Data Cubit_please_exit_calldata = -{ - "please_exit", CORBA::B_FALSE, - 0, 0, - 0, 0 -}; - -void -Cubit::Cubit_please_exit (CORBA::Environment &env) -{ - STUB_Object *istub; - - if (this->QueryInterface (IID_STUB_Object, (void **) &istub) != NOERROR) - { - env.exception (new CORBA::DATA_CONVERSION (CORBA::COMPLETED_NO)); - return; - } - - this->Release (); - - istub->do_call (env, &Cubit_please_exit_calldata); - istub->Release (); -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.h b/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.h deleted file mode 100644 index 75ca3add013..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubitC.h +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -// @(#)cubitC.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_HH -#define _CUBIT_HH - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -#include "tao/corba.h" - -#include - -extern CORBA::TypeCode_ptr TC_Cubit_Many; -extern CORBA::TypeCode_ptr TC_Cubit_oneof; - -struct Cubit_Many -{ - CORBA::Octet o; - CORBA::Long l; - CORBA::Short s; -}; - -enum Cubit_discrim -{ - e_0th = 0, - e_1st = 1, - e_2nd = 2, - e_3rd = 3, - e_4th = 4, - e_5th = 5 -}; - -struct Cubit_oneof -{ - Cubit_discrim _disc; - - union - { - CORBA::Octet o; - CORBA::Short s; - CORBA::Long l; - Cubit_Many cm; - }; -}; - -class Cubit; -typedef Cubit *Cubit_ptr; -typedef Cubit_ptr Cubit_ref; - -class Cubit : public virtual CORBA_Object -{ -public: - - static Cubit_ptr _duplicate(Cubit_ptr obj); - static Cubit_ptr _narrow(CORBA::Object_ptr obj); - static Cubit_ptr _nil(); - - virtual CORBA::Octet Cubit_cube_octet (CORBA::Octet o, - CORBA::Environment &env); - - virtual CORBA::Short Cubit_cube_short (CORBA::Short s, - CORBA::Environment &env); - - virtual CORBA::Long Cubit_cube_long (CORBA::Long l, - CORBA::Environment &env); - - virtual Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA::Environment &env); - - virtual Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA::Environment &env); - - virtual void Cubit_please_exit (CORBA::Environment &env); - -protected: - Cubit (void) { } - Cubit (STUB_Object *objref) - : CORBA_Object (objref) { } - virtual ~Cubit (void) { } -}; - -extern const CORBA::Char *Cubit__id; // type ID - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _CUBIT_HH - - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.cpp deleted file mode 100644 index 30825090adf..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.cpp +++ /dev/null @@ -1,258 +0,0 @@ -// $Id$ - -// @(#)cubitS.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written C-style "Cubit" stubs and "skeletons" -// - -#include "tao/corba.h" - -#include "cubitS.h" -#include "cubitC.cpp" - -#include "method_db.i" - -TAO_Dynamic_Hash_OpTable tao_cubit_optable (cubit_operations, 7, 14); // Dynamic Operation Table - -_skel_Cubit::_skel_Cubit (const char *obj_name) -{ -#if 0 - const char* mn = "_skel_Cubit::_skel_Cubit ()"; - - char *type_id = "IDL:Cubit:1.0"; - IIOP_Object *data; - TAO_ORB_Core *ocp = TAO_ORB_Core_instance (); - CORBA::POA_ptr oa = ocp->root_poa (); - CORBA::ORB_ptr orb = ocp->orb (); - - if (oa == 0) - { - // We just have to assume that oa will be good, or we have to - // throw an exception. For now we "assume", but we'll - ACE_ERROR ((LM_ERROR, " (%P|%t) %s Unable to locate a valid object adapter\n", mn)); - return; - } - - this->optable_ = &tao_cubit_optable; - data = new IIOP_Object (type_id); - - data->profile.iiop_version.major = IIOP::MY_MAJOR; - data->profile.iiop_version.minor = IIOP::MY_MINOR; - const ACE_INET_Addr& addr = ocp->orb_params ()->addr (); - data->profile.host = ACE_OS::strdup (addr.get_host_name ()); - data->profile.port = addr.get_port_number (); - data->profile.object_key.length = ACE_OS::strlen (obj_name); - data->profile.object_key.maximum = data->profile.object_key.length; - data->profile.object_key.buffer = - new CORBA::Octet[(size_t)data->profile.object_key.length + 1]; - - ACE_OS::memcpy (data->profile.object_key.buffer, - obj_name, - data->profile.object_key.length+1); - - this->set_parent (data); - this->sub_ = this; - - if (oa->bind (data->profile.object_key, this) == -1) - ACE_ERROR ((LM_ERROR, - " (%P|%t) %s Unable to bind object to key '%s': %p\n", - mn, - data->profile.object_key.buffer)); -#endif - const CORBA::String repoID = "IDL:Cubit:1.0"; // repository ID - IIOP_Object *data; // Actual object reference - TAO_ORB_Core *ocp = TAO_ORB_Core_instance (); // underlying ORB core instance - CORBA::POA_ptr oa = TAO_ORB_Core_instance ()->root_poa (); // underlying OA - const ACE_INET_Addr &addr = ocp->orb_params ()->addr (); - this->optable_ = &tao_cubit_optable; - - // set up an IIOP object - data = new IIOP_Object (CORBA::string_dup (repoID), addr, obj_name); - this->set_parent (data); // store the IIOP obj ref with us - if (oa) oa->bind (data->profile.object_key, this); // register ourselves -} - -void -_skel_Cubit::_cube_octet_skel (CORBA::ServerRequest &req, - void *obj, - void */*context*/, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_octet); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_octet, add value"); - - req.params (nvlist, env); - dexc (env, "cube_octet, get params"); - - // Call Implementation - CORBA::Octet *value = new CORBA::Octet; - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - - *value = the_cubit->Cubit_cube_octet (*(CORBA::Octet *) nv->value ()->value (), env); - - CORBA::Any *any = new CORBA::Any (CORBA::_tc_octet, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_octet, result"); -} - -void -_skel_Cubit::_cube_short_skel (CORBA::ServerRequest &req, - void *obj, void */*context*/, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_short); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_short, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_short, get params"); - - // Call Implementation - CORBA::Short *value = new CORBA::Short; - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - *value = the_cubit->Cubit_cube_short (*(CORBA::Short *) nv->value ()->value (), env); - - CORBA::Any *any = new CORBA::Any (CORBA::_tc_short, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_short, result"); -} - -void -_skel_Cubit::_cube_long_skel (CORBA::ServerRequest &req, - void *obj, void */*context*/, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_long); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_long, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_long, get params"); - - // Call Implementation - CORBA::Long *value = new CORBA::Long; - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - *value = the_cubit->Cubit_cube_long (*(CORBA::Long *) nv->value ()->value (), env); - - CORBA::Any *any = - new CORBA::Any (CORBA::_tc_long, value, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_long, result"); -} - -void -_skel_Cubit::_cube_struct_skel (CORBA::ServerRequest &req, - void *obj, void */*context*/, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (TC_Cubit_Many); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_struct, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_struct, get params"); - - // Call Implementation - Cubit_Many *value; - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - value = the_cubit->Cubit_cube_struct (*(Cubit_Many *) nv->value ()->value (), env); - - Cubit_Many *retval = new Cubit_Many; - retval->o = (CORBA::Octet)value->o; - retval->s = (CORBA::Short)value->s; - retval->l = value->l; - - // dmsg2 ("cube struct.o, %d -> %d", value->o, retval->o); - // dmsg2 ("cube struct.s, %d -> %d", value->s, retval->s); - // dmsg2 ("cube struct.l, %d -> %d", value->l, retval->l); - - CORBA::Any *any = new CORBA::Any (TC_Cubit_Many, retval, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_cube_union_skel (CORBA::ServerRequest &req, - void *obj, void */*context*/, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (TC_Cubit_oneof); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - dexc (env, "cube_union_3rd, add_value"); - - req.params (nvlist, env); - dexc (env, "cube_union_3rd, get params"); - - // Call Implementation - Cubit_oneof *v; - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - v = the_cubit->Cubit_cube_union (*(Cubit_oneof *) nv->value ()->value (), env); - - Cubit_oneof *r = new Cubit_oneof; - r->_disc = v->_disc; - r->o = (CORBA::Octet) (v->o); - r->s = (CORBA::Short) (v->s); - r->l = v->l; - r->cm.o = (CORBA::Octet) (v->cm.o); - r->cm.s = (CORBA::Short) (v->cm.s); - r->cm.l = v->cm.l; - - CORBA::Any *any = new CORBA::Any (TC_Cubit_oneof, r, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "cube_struct, result"); -} - -void -_skel_Cubit::_please_exit_skel (CORBA::ServerRequest &req, - void *obj, void */*context*/, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (req); - - _skel_Cubit *the_cubit = (_skel_Cubit *) obj; - the_cubit->Cubit_please_exit (env); -} - -void _skel_Cubit::dispatch (CORBA::ServerRequest &req, - void *context, - CORBA::Environment &env) -{ - TAO_Skeleton skel; // pointer to skeleton for operation - CORBA::String opname = req.op_name (); // retrieve operation name - // find the skeleton corresponding to this opname - if (this->find (opname, skel) == -1) - { - env.exception (new CORBA_BAD_OPERATION (CORBA::COMPLETED_NO)); - ACE_ERROR ((LM_ERROR, "Bad operation <%s>\n", opname)); - } - else - skel (req, this, context, env); -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.h b/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.h deleted file mode 100644 index 8db1a751c9b..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubitS.h +++ /dev/null @@ -1,93 +0,0 @@ -// $Id$ - -// @(#)cubitS.h 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _SKEL_CUBIT_HH -#define _SKEL_CUBIT_HH - -#include "cubitC.h" -#include "tao/corba.h" - -class _skel_Cubit; -typedef _skel_Cubit *_skel_Cubit_ptr; -typedef _skel_Cubit_ptr _skel_Cubit_ref; - -class _skel_Cubit : public Cubit -{ -public: - virtual - CORBA::Octet Cubit_cube_octet (CORBA::Octet o, - CORBA::Environment &env) = 0; - static - void _cube_octet_skel(CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - - virtual - CORBA::Short Cubit_cube_short (CORBA::Short s, - CORBA::Environment &env) = 0; - - static - void _cube_short_skel (CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - - virtual - CORBA::Long Cubit_cube_long (CORBA::Long l, - CORBA::Environment &env) = 0; - - static - void _cube_long_skel (CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - - virtual - Cubit_Many* Cubit_cube_struct (Cubit_Many &values, - CORBA::Environment &env) = 0; - - static - void _cube_struct_skel (CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - - virtual - Cubit_oneof* Cubit_cube_union (Cubit_oneof &values, - CORBA::Environment &env) = 0; - - static - void _cube_union_skel (CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - - virtual - void Cubit_please_exit (CORBA::Environment &env) = 0; - - static - void _please_exit_skel (CORBA::ServerRequest &req, - void *obj, - void *context, - CORBA::Environment &env); - virtual void dispatch (CORBA::ServerRequest &req, - void *context, - CORBA::Environment &env); -protected: - _skel_Cubit (const char* obj_name = 0); - virtual ~_skel_Cubit (void) { } -}; - -#endif // _SKEL_CUBIT_HH diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp deleted file mode 100644 index e18d1de8f32..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "tao/corba.h" // ... and skeletons -#include "cubit_i.h" - -Cubit_i::Cubit_i (const char *obj_name) - : _skel_Cubit (obj_name) -{ -} - -Cubit_i::~Cubit_i (void) -{ -} - -CORBA::Octet -Cubit_i::Cubit_cube_octet (CORBA::Octet o, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short -Cubit_i::Cubit_cube_short (CORBA::Short s, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return (CORBA::Short) (s * s * s); -} - -CORBA::Long -Cubit_i::Cubit_cube_long (CORBA::Long l, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return (CORBA::Long) (l * l * l); -} - -Cubit_Many * -Cubit_i::Cubit_cube_struct (Cubit_Many &values, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - values.o = values.o * values.o * values.o; - values.s = values.s * values.s * values.s; - values.l = values.l * values.l * values.l; - - return &values; -} - -Cubit_oneof * -Cubit_i::Cubit_cube_union (Cubit_oneof &values, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - switch (values._disc) - { - case e_0th: - values.o = (CORBA::Octet) (values.o * values.o * values.o); - break; - case e_1st: - values.s = (CORBA::Short) (values.s * values.s * values.s); - break; - case e_2nd: - values.l = values.l * values.l * values.l; - break; - case e_3rd: - default: - values.cm.o = (CORBA::Octet) (values.cm.o * values.cm.o * values.cm.o); - values.cm.s = (CORBA::Short) (values.cm.s * values.cm.s * values.cm.s); - values.cm.l = values.cm.l * values.cm.l * values.cm.l; - } - return &values; -} - -void Cubit_i::Cubit_please_exit (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Cubit_please_exit: I've been asked to shut down.\n")); - TAO_ORB_Core_instance()->orb ()->shutdown (); -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.h b/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.h deleted file mode 100644 index 302d1b166ee..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/cubit_i.h +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -// @(#)cubit_i.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: hand-written Cubit Implementation -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -/************************************************************************** -This file has been hand-crafted to work with the ORB API of the SUN's IIOP -implementation -***************************************************************************/ - -#ifndef _CUBIT_I_HH -#define _CUBIT_I_HH - -#include "cubitS.h" - -class Cubit_i; -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public _skel_Cubit -{ -public: - Cubit_i (const char *obj_name = 0); - ~Cubit_i (void); - - virtual - CORBA::Octet Cubit_cube_octet (CORBA::Octet o, - CORBA::Environment &env); - - virtual - CORBA::Short Cubit_cube_short (CORBA::Short s, - CORBA::Environment &env); - - virtual - CORBA::Long Cubit_cube_long (CORBA::Long l, - CORBA::Environment &env); - - virtual - Cubit_Many *Cubit_cube_struct (Cubit_Many &values, - CORBA::Environment &env); - - virtual - Cubit_oneof *Cubit_cube_union (Cubit_oneof &values, - CORBA::Environment &env); - - virtual - void Cubit_please_exit (CORBA::Environment &env); -}; - -#endif // _CUBIT_I_HH diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/default.bld b/TAO/tests/Cubit/TAO/DII_Cubit/default.bld deleted file mode 100644 index 196d95eb950..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/default.bld +++ /dev/null @@ -1,35 +0,0 @@ -#!build -default: - nobuild - :c_option=slashcomment - :cx_e_option=msgnumbers - :optimize=standard - :optimize=memory - :optimize=algorithmic - :optimize=loop - :object_dir=./.obj - :target=vxwppc - :cx_silent=21 - :cx_silent=191 - :cx_silent=610 - :sourcedirs=VME_DRV/src - :sourcedirs=VME_DRV/api/include - :sourcedirs=../../../.. - :sourcedirs=/home/ace/ACE_wrappers.vxworks - :sourcedirs=../../../../tao/compat - :libdirs=VME_DRV/vmeXportu - :libdirs=../../../../tao - :libdirs=/home/ace/ACE_wrappers.vxworks/ace - :libraries=vmeXport.a - :libraries=tao.a - :libraries=libACE.a - :libraries=/appl/newgreen/vxppc603/ghsbltin.o - :libraries=/appl/newgreen/vxppc603/ghsmath.o - :defines=DEBUG - :defines=FORCE_ARGS - :defines=VME_DRIVER -clnt.bld - program -svr.bld - program - :defines=USE_ACE_EVENT_HANDLING diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/method_db.i b/TAO/tests/Cubit/TAO/DII_Cubit/method_db.i deleted file mode 100644 index d5566eab4b0..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/method_db.i +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -// @ (#)method_db.i 05/14/97 - -// This file provides a way of initializing the method database -// Written by: Brian Mendel - -#include "cubitS.h" - -static void -is_a_skel (CORBA::ServerRequest &req, - void */* obj */, - void */* context */, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_string); - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - - req.params (nvlist, env); - - if (env.exception () != 0) - { - dexc (env, "is_a_skel, get params"); - return; - } - - CORBA::Boolean *retval; - CORBA::String value = * (CORBA::String *) nv->value ()->value (); - - if (ACE_OS::strcmp ( (char*)value, "IDL:Cubit:1.0") == 0 - || ACE_OS::strcmp ( (char *)value, CORBA::_tc_Object->id (env)) == 0) - retval = new CORBA::Boolean (CORBA::B_TRUE); - else - retval = new CORBA::Boolean (CORBA::B_FALSE); - - CORBA::Any *any = new CORBA::Any (CORBA::_tc_boolean, retval, CORBA::B_TRUE); - - req.result (any, env); - dexc (env, "_is_a, result"); -} - -static const TAO_operation_db_entry cubit_operations[] = -{ - { "_is_a", &is_a_skel }, - { "cube_octet", &_skel_Cubit::_cube_octet_skel }, - { "cube_short", &_skel_Cubit::_cube_short_skel }, - { "cube_long", &_skel_Cubit::_cube_long_skel }, - { "cube_struct", &_skel_Cubit::_cube_struct_skel }, - { "cube_union", &_skel_Cubit::_cube_union_skel }, - { "please_exit", &_skel_Cubit::_please_exit_skel }, - { 0, 0 } -}; diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/server.dsp b/TAO/tests/Cubit/TAO/DII_Cubit/server.dsp deleted file mode 100644 index 34f76f1e0b2..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/server.dsp +++ /dev/null @@ -1,117 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=server - 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 "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 Release" -!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 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 ".\server\Release" -# PROP BASE Intermediate_Dir ".\server\Release" -# PROP BASE Target_Dir ".\server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir ".\server" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /I "..\..\..\..\..\\" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\server\Debug" -# PROP BASE Intermediate_Dir ".\server\Debug" -# PROP BASE Target_Dir ".\server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir ".\server" -# 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 "..\..\..\..\\" /I "..\..\..\..\..\\" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib TAO.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=.\cubit_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# Begin Source File - -SOURCE=.\svr.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\cubit_i.h -# End Source File -# Begin Source File - -SOURCE=.\cubitS.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/TAO/tests/Cubit/TAO/DII_Cubit/svc.conf b/TAO/tests/Cubit/TAO/DII_Cubit/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/svr.bld b/TAO/tests/Cubit/TAO/DII_Cubit/svr.bld deleted file mode 100644 index 33ca5152c92..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/svr.bld +++ /dev/null @@ -1,12 +0,0 @@ -#!build -default: - program - :debuglevel=multi -cubit_i.cpp - C++ -cubitS.cpp - C++ -svr.cpp - C++ -/home/m225527/vme/src/sockem.c - C diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp deleted file mode 100644 index f0697676c5c..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/svr.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// $Id$ - -// @(#)svr.cpp 05/14/97 -// Copyright 1994-1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "cubit.idl" interface. -// -// Starts up, builds an objref, prints its string in debug mode, -// listens for messages, responds to them. -// -// Modified version of Cubit Example written by Sun Microsystems Inc. -// Modified by: Brian Mendel - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "tao/corba.h" - -#include "cubit_i.h" - -// Global Variables -static CORBA::String key = (CORBA::String) "key0"; - -static int num_of_objs = 1; - -// Parses the command line arguments and returns an error status - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "dk:n:"); - int c; - - while ((c = opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'k': // key (str) - key = (CORBA::String) opts.optarg; - break; - case 'n': // idle seconds b4 exit - num_of_objs = ACE_OS::atoi (opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-k {object_key}]" - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - CORBA::Environment env; - char *orb_name = "internet"; - - CORBA::ORB_ptr orb_ptr = CORBA::ORB_init (argc, argv, orb_name, env); - - if (env.exception () != 0) - { - env.print_exception ("ORB init"); - return 1; - } - - // Initialize the Basic Object Adapter - CORBA::POA_ptr oa_ptr = orb_ptr->POA_init (argc, argv); - - if (oa_ptr == 0) - ACE_ERROR_RETURN ((LM_ERROR, " (%P|%t) Unable to initialize the POA.\n"), 1); - - // Parse remaining command line and verify parameters. - - parse_args (argc, argv); - - // Create implementation object with user specified key. - Cubit_i_ptr *my_cubit = new Cubit_i_ptr[num_of_objs]; - - for (int i = 0; i < num_of_objs; i++) - { - CORBA::String obj_str = CORBA::string_alloc (ACE_OS::strlen ((char *) key)+2); - - ::sprintf (obj_str, "%s%d", (char *) key, i); - - my_cubit[i] = new Cubit_i (obj_str); - - if (my_cubit[i] == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to create implementation object&d\n", - i), - 2); - - if (TAO_debug_level > 0) - { - // Why are we getting the POA_ptr from here when we've - // already got it above? - - CORBA::OctetSeq obj_key; - obj_key.buffer = (CORBA::Octet *) obj_str; - obj_key.length = obj_key.maximum = ACE_OS::strlen (obj_str); - -#if 0 - CORBA::Object_ptr obj = 0; - - if (oa_ptr->find (obj_key, obj) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to locate object with key '%s', %p\n", - key), - 3); -#endif - - // Stringify the objref we'll be implementing, and print it - // to stdout. Someone will take that string and give it to - // some client. Then release the object. - - CORBA::String str; - - str = orb_ptr->object_to_string (my_cubit[i], env); - - if (env.exception () != 0) - { - env.print_exception ("object2string"); - return 1; - } - - ACE_OS::puts ((char *) str); - ACE_OS::fflush (stdout); - //dmsg1 ("Object Created at: '%ul'", obj); - dmsg1 ("listening as object '%s'", str); - } - - CORBA::string_free (obj_str); - } - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - if (orb_ptr->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), -1); - - // Free resources - CORBA::release (orb_ptr); - - return 0; -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test.mak b/TAO/tests/Cubit/TAO/DII_Cubit/test.mak deleted file mode 100644 index 5fd62ea9ef6..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test.mak +++ /dev/null @@ -1,1596 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -!IF "$(CFG)" == "" -CFG=server - Win32 Debug -!MESSAGE No configuration specified. Defaulting to server - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "client - Win32 Release" && "$(CFG)" != "client - Win32 Debug"\ - && "$(CFG)" != "server - Win32 Release" && "$(CFG)" != "server - 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 "test.mak" CFG="server - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "server - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "server - 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 "server - Win32 Debug" -RSC=rc.exe -CPP=cl.exe - -!IF "$(CFG)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "client\Release" -# PROP BASE Intermediate_Dir "client\Release" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\client-r.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(OUTDIR)\client-r.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "__ACE_INLINE__" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D\ - "__ACE_INLINE__" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"client-r.exe" -LINK32_FLAGS=ace.lib TAO.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)/client-r.pdb" /machine:I386 /out:"$(OUTDIR)/client-r.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client-r.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client\Debug" -# PROP BASE Intermediate_Dir "client\Debug" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\client.exe" - -@erase "$(OUTDIR)\client.ilk" - -@erase "$(OUTDIR)\client.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib TAO.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)/client.pdb" /debug /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "server\Release" -# PROP BASE Intermediate_Dir "server\Release" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\server-r.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(OUTDIR)\server-r.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "__ACE_INLINE__" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D\ - "__ACE_INLINE__" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"server-r.exe" -LINK32_FLAGS=ace.lib TAO.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)/server-r.pdb" /machine:I386 /out:"$(OUTDIR)/server-r.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server-r.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "server\Debug" -# PROP BASE Intermediate_Dir "server\Debug" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\server.exe" - -@erase "$(OUTDIR)\server.ilk" - -@erase "$(OUTDIR)\server.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /I "..\proto\include" /D "WIN32" /D\ - "_DEBUG" /D "_CONSOLE" /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib TAO.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)/server.pdb" /debug /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.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 "client - Win32 Release" -# Name "client - Win32 Debug" - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\clnt.cpp - -!IF "$(CFG)" == "client - Win32 Release" - -DEP_CPP_CLNT_=\ - ".\clnt.h"\ - ".\cubitC.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.i"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Profile_Timer.h"\ - {$(INCLUDE)}"\ace\Profile_Timer.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -DEP_CPP_CLNT_=\ - ".\clnt.h"\ - ".\cubitC.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.i"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Profile_Timer.h"\ - {$(INCLUDE)}"\ace\Profile_Timer.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitC.cpp -DEP_CPP_CUBIT=\ - ".\cubitC.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBIT=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBIT) "$(INTDIR)" - - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\cubitS.cpp -DEP_CPP_CUBITS=\ - ".\cubitC.cpp"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - ".\method_db.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBITS=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubitS.obj" : $(SOURCE) $(DEP_CPP_CUBITS) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubit_i.cpp -DEP_CPP_CUBIT_=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBIT_=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubit_i.obj" : $(SOURCE) $(DEP_CPP_CUBIT_) "$(INTDIR)" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\svr.cpp -DEP_CPP_SVR_C=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitS.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_SVR_C=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\svr.obj" : $(SOURCE) $(DEP_CPP_SVR_C) "$(INTDIR)" - - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test.mdp b/TAO/tests/Cubit/TAO/DII_Cubit/test.mdp deleted file mode 100644 index 50425134c35..00000000000 Binary files a/TAO/tests/Cubit/TAO/DII_Cubit/test.mdp and /dev/null differ diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test1.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/test1.cpp deleted file mode 100644 index 06ecac15263..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test1.cpp +++ /dev/null @@ -1,392 +0,0 @@ -// $Id$ - -// @(#)test1.cpp 1.4 95/09/28 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST stubs for "test1" -// - -#include - -#include "test1.h" - - -// -// Define all the stubs ... it's a lot less error prone to do it with -// macros than by hand! -// -// NOTE: the "calldata" is exported for use by the skeletons. At some -// point skeletons will probably be fully abstracted; for now they aren't. -// -// Also, for some reason, name mangling is changed by the explicit -// declaration as "extern" -- if it's not done, linking fails. -// -#define DEFINE_TEST3(typename, truetype, truetypename) \ - static const TAO_Param_Data test1_ ## typename ## _paramdata [4] = { \ - { CORBA::_tc_ ## truetypename, PARAM_RETURN, 0 }, \ - { CORBA::_tc_ ## truetypename, PARAM_IN, 0 }, \ - { CORBA::_tc_ ## truetypename, PARAM_OUT, 0 }, \ - { CORBA::_tc_ ## truetypename, PARAM_INOUT, 0 }, \ - }; \ - \ - extern const TAO_Call_Data test1_ ## typename ## _calldata; \ - \ - const TAO_Call_Data test1_ ## typename ## _calldata = { \ - "test_" #typename, CORBA::B_TRUE, \ - 4, &test1_ ## typename ## _paramdata [0], \ - 0, 0, \ - }; \ - \ - CORBA:: ## truetype \ - test1_test_ ## typename (test1_ptr target, \ - CORBA:: ## truetype in_a1, \ - CORBA:: ## truetype &out_a2, \ - CORBA:: ## truetype &inout_a3, \ - CORBA::Environment &env) { \ - CORBA:: ## truetype _retval; \ - STUB_Object *_obj; \ - if (target->QueryInterface (IID_STUB_Object, (void **)&_obj) \ - != NOERROR) \ - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); \ - else { \ - _obj->do_call (env, &test1_ ## typename ## _calldata, \ - &_retval, &in_a1, &out_a2, &inout_a3); \ - _obj->Release (); \ - } \ - return _retval; \ - } - -// changed extern const calldata test1_ ## typename ## _calldata; -// to const calldata test1_ ## typename ## _calldata; \ - -// changed CORBA:: ## truetype _retval = 0; to changed CORBA:: ## truetype _retval; - -#define DEFINE_TEST(typename, truetype) \ - DEFINE_TEST3(typename, truetype, truetype) - - -// -// Generate a system exception, passing an operation ID that's -// not allowed by IIOP (much less this interface) and verifying -// that the server returns some kind of system exception. -// -static const TAO_Call_Data illegal_calldata = { - "+_illegal", CORBA::B_TRUE, - 0, 0, - 0, 0 -}; - -void -test_illegal (test1_ptr target, CORBA::Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &illegal_calldata - ); - data->Release (); - } -} - - -extern const TAO_Call_Data test1_void_calldata; -const TAO_Call_Data test1_void_calldata = { - "test_void", CORBA::B_TRUE, - 0, 0, - 0, 0 -}; - -void -test1_test_void (test1_ptr target, CORBA::Environment &env) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_void_calldata - ); - data->Release (); - } -} - -DEFINE_TEST (short, Short); -DEFINE_TEST (long, Long); -DEFINE_TEST (ushort, UShort); -DEFINE_TEST (ulong, ULong); - -#if defined(MIPS) -// -// NOTE: C/C++ compilers as a rule pass a "float" in the space that -// a "double" takes up. Conversions are evidently optional; portability -// forces the following "explicit temporary" hack to work on at least -// one MIPS platform, which converts the parameter to "double" and -// hence changes the binary representation. (Even if that is a compiler -// bug, it's probably required by now for binary compatibility!) -// -// A "-k ansi" compiler flag may be needed to get correct behaviour; -// passing the "in" parameters by reference apparently works too. At -// this time, none of these solutions is used by default. -// -// This stub-level hackery seems like it could be replaced inside of the -// stub interpreter, which could just manually convert "float" parameters -// (all of them) as special cases. But of course, that would slow the -// interpreter down on _every_ call, not just the ones that require it -// (such as this one). Tradeoffs! -// -static const TAO_Param_Data test1_float_paramdata [4] = { - { CORBA::_tc_float , PARAM_RETURN , 0 }, - { CORBA::_tc_float , PARAM_IN , 0 }, - { CORBA::_tc_float , PARAM_OUT , 0 }, - { CORBA::_tc_float , PARAM_INOUT , 0 } -}; - -extern const TAO_Call_Data test1_float_calldata; - -const TAO_Call_Data test1_float_calldata = { - "test_float", CORBA::B_TRUE, - 4 , &test1_float_paramdata [0], - 0 , 0 -}; - -CORBA::Float -test1_test_float ( - test1_ptr target, - CORBA::Float in_a1, - CORBA::Float &out_a2, - CORBA::Float &inout_a3, - CORBA::Environment &env -) -{ - CORBA::Float _retval; - - // These three temporaries required due to MIPS compiler bug - CORBA::Float _in_a1 = in_a1; - CORBA::Float _out_a2 = out_a2; - CORBA::Float _inout_a3 = inout_a3; - - target -> data -> do_call (env, - &test1_float_calldata, - &_retval, - &_in_a1, - &_out_a2, - &_inout_a3); - return _retval; -} - -#else -DEFINE_TEST (float, Float); -#endif // MIPS - - -DEFINE_TEST (double, Double); -DEFINE_TEST (boolean, Boolean); -DEFINE_TEST (char, Char); -DEFINE_TEST (octet, Octet); - -/* -CORBA::Any * -test1_test_any (test1_ptr target, - const CORBA::Any &in_a1, - CORBA::Any *&out_a2, - CORBA::Any &inout_a3, - CORBA::Environment &env) -{ - // XXX implement this stub! ... annoying that C++ mapping - // calls for so much special casing -} -*/ - - -DEFINE_TEST3 (TypeCode, TypeCode_ptr, TypeCode); -DEFINE_TEST3 (Principal, Principal_ptr, Principal); -DEFINE_TEST3 (Object, Object_ptr, Object); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (string, Char *, String); - -DEFINE_TEST (longlong, LongLong); -DEFINE_TEST (ulonglong, ULongLong); -DEFINE_TEST (wchar, WChar); - -// NOTE: C++ mapping has "in" strings as "const", which doesn't -// show up in this macro ... -DEFINE_TEST3 (wstring, WChar *, WString); - -#if !defined(NONNATIVE_LONGDOUBLE) -DEFINE_TEST (longdouble, LongDouble); -#endif - -#undef DEFINE_TEST - - -// -// Utility macros used to construct octet codes that are aligned -// on longword boundaries, and with a known byte order. This -// happens to use big endian encoding since it was convenient. -// (Longword alignment is a happy accident of the specification -// of OMG-IDL ... it could have been much worse!) -// -// It'd be much simpler to lay out such data in assembler! -// - -#if defined (WORDS_BIGENDIAN) -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((a) & 0xff) << 24) | (((b) & 0xff) << 16) \ - | (((c) & 0xff) << 8) | ((d) & 0xff)) -# define BIG_ENDIAN_LONG(x) (x) - -#else // LITTLE_ENDIAN -# define MAKE_BIG_LONG(a,b,c,d) \ - ((((d) & 0xff) << 24) | (((c) & 0xff) << 16) \ - | (((b) & 0xff) << 8) | ((a) & 0xff)) -# define BYTE_FROM(n,integer) (((integer)>>(8*(n)))&0xff) -# define BIG_ENDIAN_LONG(integer) \ - MAKE_BIG_LONG (BYTE_FROM(3,integer), BYTE_FROM(2,integer),\ - BYTE_FROM(1,integer), BYTE_FROM(0,integer)) -#endif - - - -// -// "x1" exception typecode ... must be longword aligned -// -static CORBA::Long oc_x1 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '1'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (1), // only one struct member - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA::TypeCode tc_x1 (tk_except, sizeof oc_x1, - (unsigned char *)&oc_x1, CORBA::B_FALSE); -CORBA::TypeCode_ptr _tc_test1_x1 = &tc_x1; - - - -// -// "x2" exception typecode ... must be longword aligned -// -static CORBA::Long oc_x2 [] = { - 0, // big endian flag + padding - BIG_ENDIAN_LONG (29), // length of ID string + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('E', 'n', 'g', '.'), - MAKE_BIG_LONG ('S', 'U', 'N', '.'), - MAKE_BIG_LONG ('C', 'O', 'M', '/'), - MAKE_BIG_LONG ('t', 'e', 's', 't'), - MAKE_BIG_LONG ('1', '/', 'x', '2'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - BIG_ENDIAN_LONG (1), // (empty) namelen + NUL - 0, - BIG_ENDIAN_LONG (2), // two struct members - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_objref), - BIG_ENDIAN_LONG (29), // type ID + NUL - MAKE_BIG_LONG ('I', 'D', 'L', ':'), // bytes of ID string - MAKE_BIG_LONG ('o', 'm', 'g', '.'), - MAKE_BIG_LONG ('o', 'r', 'g', '/'), - MAKE_BIG_LONG ('C', 'O', 'R', 'B'), - MAKE_BIG_LONG ('A', '/', 'O', 'b'), - MAKE_BIG_LONG ('j', 'e', 'c', 't'), - MAKE_BIG_LONG (':', '1', '.', '0'), - 0, - - BIG_ENDIAN_LONG (1), // (empty) member name + NUL - 0, - BIG_ENDIAN_LONG (tk_long) -}; -static CORBA::TypeCode tc_x2 (tk_except, sizeof oc_x2, - (unsigned char *)&oc_x2, CORBA::B_FALSE); -CORBA::TypeCode_ptr _tc_test1_x2 = &tc_x2; - - -// -// parameter, exception, and call descriptions for "test_throw" -// -static const TAO_Param_Data test1_test_throw_paramdata [1] = { - { CORBA::_tc_long, PARAM_IN, 0 } -}; - -static CORBA::TypeCode_ptr test1_test_throw_excepts [2] = { - &tc_x1, &tc_x2 -}; - -extern const TAO_Call_Data test1_test_throw_calldata; - -const TAO_Call_Data test1_test_throw_calldata = { - "test_throw", CORBA::B_TRUE, - 1, &test1_test_throw_paramdata [0], - 2, &test1_test_throw_excepts [0] -}; - -// -// "test_throw" stub -// -void -test1_test_throw ( - test1_ptr target, - CORBA::Long case_num, - CORBA::Environment &env // throw (x1, x2) -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_test_throw_calldata, - &case_num); - data->Release (); - } -} - -// -// PLEASE EXIT -// - -static const TAO_Call_Data test1_please_exit_calldata = { - "please_exit", CORBA::B_FALSE, - 0, 0, - 0, 0 -}; - -void -test1_please_exit ( - test1_ptr target, - CORBA::Environment &env -) -{ - STUB_Object *data; - - if (target->QueryInterface (IID_STUB_Object, (void **)&data) - != NOERROR) - env.exception (new CORBA::INV_OBJREF (COMPLETED_NO)); - else { - data->do_call (env, &test1_please_exit_calldata - ); - data->Release (); - } -} - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test1.h b/TAO/tests/Cubit/TAO/DII_Cubit/test1.h deleted file mode 100644 index ad083ef7cde..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test1.h +++ /dev/null @@ -1,124 +0,0 @@ -// $Id$ - -// @(#)test1.hh 1.2 95/09/12 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST interface for "test1" -// - -#ifndef _TEST1_HH -#define _TEST1_HH - -#include "tao/corba.h" - -#ifdef _MSC_VER -#pragma pack (push, 1) // VC++, known padding rules -#endif // VC++ - -typedef CORBA::UShort test1_ushort; -typedef CORBA::ULong test1_ulong; - -typedef CORBA::LongLong test1_longlong; -typedef CORBA::ULongLong test1_ulonglong; -typedef CORBA::LongDouble test1_longdouble; - -typedef CORBA::Object test1; -typedef test1 *test1_ptr; - -#define DECL_TEST(typename, truetype) \ - truetype \ - test1_test_ ## typename ( \ - test1_ptr target, \ - truetype in_a1, \ - truetype &out_a2, \ - truetype &inout_a3, \ - CORBA::Environment &env \ - ) - -void test_illegal (test1_ptr target, CORBA::Environment &env); -void test1_test_void (test1_ptr target, CORBA::Environment &env); - -DECL_TEST (short, CORBA::Short); -DECL_TEST (long, CORBA::Long); -DECL_TEST (ushort, CORBA::UShort); -DECL_TEST (ulong, CORBA::ULong); -DECL_TEST (float, CORBA::Float); -DECL_TEST (double, CORBA::Double); -DECL_TEST (boolean, CORBA::Boolean); -DECL_TEST (char, CORBA::Char); -DECL_TEST (octet, CORBA::Octet); - -CORBA::Any * -test1_test_any ( - test1_ptr target, - const CORBA::Any &in_a1, - CORBA::Any *&out_a2, - CORBA::Any &inout_a3, - CORBA::Environment &env -); - -DECL_TEST (TypeCode, CORBA::TypeCode_ptr); -DECL_TEST (Principal, CORBA::Principal_ptr); -DECL_TEST (Object, CORBA::Object_ptr); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (string, CORBA::String); - -DECL_TEST (longlong, CORBA::LongLong); -DECL_TEST (ulonglong, CORBA::ULongLong); -DECL_TEST (wchar, CORBA::WChar); - -// NOTE: CORBA C++ mapping says the "in" string is const -DECL_TEST (wstring, CORBA::WString); - -DECL_TEST (longdouble, CORBA::LongDouble); - -#undef DECL_TEST - -extern CORBA::TypeCode_ptr _tc_test1_x1; - -class test1_x1 : public CORBA::UserException { - public: - CORBA::Long case_num; - - test1_x1 (CORBA::Long n) - : CORBA::UserException (_tc_test1_x1), case_num (n) - { } -}; - -extern CORBA::TypeCode_ptr _tc_test1_x2; - -class test1_x2 : public CORBA::UserException { - public: - CORBA::Object_ptr obj; - CORBA::Long case_num; - - test1_x2 (CORBA::Object_ptr obj1, - CORBA::Long n) - : CORBA::UserException (_tc_test1_x2), - obj (obj1), case_num (n) { } - - ~test1_x2 () - { CORBA::release (obj); } -}; - -void -test1_test_throw ( - test1_ptr target, - CORBA::Long case_num, - CORBA::Environment &env // throw (x1, x2) -); - -void -test1_please_exit ( - test1_ptr target, - CORBA::Environment &env -); - -#ifdef _MSC_VER -#pragma pack (pop) // VC++, go back to other padding rules -#endif // VC++ - -#endif // _TEST1_HH - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test1.idl b/TAO/tests/Cubit/TAO/DII_Cubit/test1.idl deleted file mode 100644 index d47ab676ef5..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test1.idl +++ /dev/null @@ -1,80 +0,0 @@ -// $Id$ - -// @(#)test1.idl 1.1 95/09/11 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -// TEST basic marshaling tests for all IDL primitive types, modes -// -// This test omits constructed types (struct, union, enum, sequence, and -// array types), and only tests very simple user defined exceptions. -// -// Values returned are well defined functions of the input values: -// -// * For numeric types (octet, short, long, longlong, float, double, -// longdouble, and unsigned variants) the value is cubed. -// * For Boolean, it's the negation. -// * For Any, TypeCode, Principal, Object, char and wchar, -// string and wstring, it's the input value. -// -// The "return" and "out" parameter is the function of the "in" parameter; -// the "inout" parameter is the function of its original value. -// -// The "echo" test has all output values be the input values, with no -// changes to the bit patterns originally transmitted. While easier to -// use to identify some kinds of problem, it is not as complete a test. -// - -#define DECL_TEST(type) \ - type test_ ## type ( in type a1, out type a2, inout type a3) - -#pragma prefix "Eng.SUN.COM" // only for Sun-defined interfaces - -interface test1 { - void test_void (); - - typedef unsigned short ushort; - typedef unsigned long ulong; - - typedef long long longlong; - typedef unsigned long long ulonglong; - typedef long double longdouble; - - DECL_TEST (short); - DECL_TEST (long); - DECL_TEST (ushort); - DECL_TEST (ulong); - DECL_TEST (float); - DECL_TEST (double); - DECL_TEST (boolean); - DECL_TEST (char); - DECL_TEST (octet); - DECL_TEST (any); - DECL_TEST (TypeCode); - DECL_TEST (Principal); - DECL_TEST (Object); // CORBA::Object - DECL_TEST (string); // unbounded string - - DECL_TEST (longlong); - DECL_TEST (ulonglong); - DECL_TEST (wchar); - DECL_TEST (wstring); // unbounded wstring - DECL_TEST (longdouble); - - // - // All cases, "case_num" in the exception is the same as the 'in' param - // * negative or zero, throws x1 - // * positive even cases, throws x2 with obj = null objref - // * positive odd cases, throws x2 with obj = target objref - // - exception x1 { long case_num; }; - exception x2 { Object obj; long case_num; }; - - void test_throw (in long case_num) raises (x1, x2); - - // - // Aid for test cleanup in case server's not told to quit after - // being idle for some time period - // - oneway void please_exit (); -}; - diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test1_clnt.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/test1_clnt.cpp deleted file mode 100644 index 9432ee32256..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test1_clnt.cpp +++ /dev/null @@ -1,637 +0,0 @@ -// $Id$ - -// @(#)test1_clnt.cpp 1.5 95/09/24 -// Copyright 1995 by Sun Microsystems, Inc. -// All Rights Reserved -// -// TEST client driver for "test1" -// - -#ifdef USE_IOSTREAM -#include -#endif - -#include -#include -#include - -#if unix -# include - -#else // windows - -#endif // unix - -#include "test1.h" -#include "tao/corba.h" - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -extern void -print_exception (const CORBA::Exception *, const char *, FILE *f=stdout); - - -// -// All tests are specified so that the return value and "out" (second) -// parameters are easily tested functions of the "in" (first) parameter, -// and the "inout" (third) parameter is the same function the its -// initial value. Caller is expected to specify two different "in" -// values. This helps make the marshaled bits vary, and turn up a class -// of potential problems that'd be hidden if parameter order had no -// effect on the test. -// -// PERFORM_TEST calls a test for a given type, reporting in cases where -// the ORB or operation failed. The COMPARE symbol can be redefined -// to achieve different functions -- e.g. cubing numbers, identity, -// negation, etc. It should return true iff the correct result was -// returned. -// -// BAD_COMPARE_VALUES is to produce diagnostics when a test fails, -// showing the actual and expected values of returned parameters. -// This helps diagnose specific porting problems. -// -// The RELEASE symbol may be defined to free memory, eliminating client -// side memory leaks in the test. -// -#define RELEASE(X) // NOP by default -#define PERFORM_TEST(name,type,value1,value2) \ - { \ - CORBA:: ## type v1, v2, v3; \ - \ - v1 = (CORBA:: ## type)(value1); \ - v2 = 0; \ - v3 = (CORBA:: ## type)(value2); \ - \ - test_count++; \ - v1 = test1_test_ ## name (target, v1, v2, v3, env); \ - if (env.exception () != 0) { \ - print_exception (env.exception (), "perform test_" #name); \ - error_count++; \ - } else if (!COMPARE (CORBA:: ## type, v1, value1) \ - || !COMPARE (CORBA:: ## type, v2, value1) \ - || !COMPARE (CORBA:: ## type, v3, value2) ) { \ - ACE_OS::fprintf (stderr, "bad comparison, test_" #name "\n"); \ - BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - error_count++; \ - } \ - RELEASE (v1); RELEASE (v2); RELEASE (v3); \ - } - -// -// This messing about is because the ostream op << cannot always -// be used with all kinds of data ... e.g. LongDouble, TypeCode. -// -#ifdef USE_IOSTREAM -# define DO_IO(x) x -#else -# define DO_IO(x) -#endif -#define BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) \ - DO_IO( cerr << " v1=" << v1; \ - cerr << " expecting " << EXPVAL(CORBA:: ## type, value1) << "\n"; \ - cerr << " v2=" << v2; \ - cerr << " expecting " << EXPVAL(CORBA:: ## type, value1) << "\n"; \ - cerr << " v3=" << v3; \ - cerr << " expecting " << EXPVAL(CORBA:: ## type, value2) << "\n"); -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) - - -// -// test utility -- should be able to just use is_equivalent() directly -// but this implementation uses null pointers for nil, so this must -// check for nulls first. (May be noncompliant with C++ mapping!) -// -static CORBA::Boolean -compare_objrefs ( - CORBA::Object_ptr v1, - CORBA::Object_ptr v2 -) -{ - CORBA::Boolean temp; - CORBA::Environment env; - - if (v1 == v2) - return CORBA::B_TRUE; - - if (CORBA::is_nil (v1)) - return CORBA::is_nil (v2); - - temp = v1->_is_equivalent (v2, env); - if (env.exception () != 0) { - print_exception (env.exception (), "compare objref"); - return CORBA::B_FALSE; - } - return temp; -} - - -// -// Helper routine to help sure math (especially for floating point) -// gets done correctly. -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - - -static int skip_longdouble = 0; - -// -// This just performs the tests ... -// -void -do_tests ( - test1_ptr target, - unsigned loop_count, - unsigned &test_count, - unsigned &error_count -) -{ - int count; - - for (count = 0; count < loop_count; count++) { - CORBA::Environment env; - CORBA::Environment env2; // XXX - - // - // test_void - // - test_count++; - test1_test_void (target, env); - if (env.exception () != 0) { - print_exception (env.exception (), "perform test_void"); - error_count++; - } - - // - // Numeric tests ... try some variety in computation, no real - // rationale in the choice of initial parameter values except - // not to use the same values all the time. - // -#define EXPVAL(type,original_value) ((type) cube((type)(original_value))) -#define COMPARE(type,retval,original_value) \ - ((retval) == EXPVAL(type, original_value)) - - PERFORM_TEST (octet, Octet, count + 29, count - 22); - - PERFORM_TEST (short, Short, count - 23, count + 19); - PERFORM_TEST (ushort, UShort, count + 23, count - 19); - - PERFORM_TEST (long, Long, count - 17, count + 20); - PERFORM_TEST (ulong, ULong, count + 17, count - 20); - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - PERFORM_TEST (longlong, LongLong, count - 177, count + 3); - PERFORM_TEST (ulonglong, ULongLong, count + 177, count - 3); -#endif // !NONNATIVE_LONGLONG - -#if !defined (i386) - // - // XXX not sure what's wrong with the COMPARE macro with respect to - // floating point on x86, since fprintf shows the values basically - // look correct ... but these float/double tests fail. - // - PERFORM_TEST (float, Float, count - 0.29, count + 3.14159); - PERFORM_TEST (double, Double, count * 1.77, count * 2.71); -#endif // !defined (i386) - - -#ifndef NONNATIVE_LONGDOUBLE -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - // - // don't try this between two platforms that don't provide - // arithmetic support for LongDouble values ... - // - if (!skip_longdouble) { - PERFORM_TEST (longdouble, LongDouble, - count - 2.33, count * 3.14159); - } - -# undef BAD_COMPARE_VALUES -# define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) \ - BAD_COMPARE_VALUE_OUT(type,v1,v2,v3,value1,value2) -#endif // !NONNATIVE_LONGDOUBLE - -#undef COMPARE -#undef EXPVAL - - - // - // Boolean -- negation - // -#define EXPVAL(type,original_value) (!(type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (boolean, Boolean, - (count & 0x01) != 0, (count & 0x01) == 0); -#undef COMPARE -#undef EXPVAL - - // - // Char, WChar -- identity - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (((type)(retval)) == EXPVAL(type,original_value)) - - PERFORM_TEST (char, Char, count + 26, count - 5); - PERFORM_TEST (wchar, WChar, count, count + 25); -#undef COMPARE -#undef EXPVAL - - // - // Object_ptr -- identity (special comparision) - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original_value) \ - (compare_objrefs (retval, original_value) == CORBA::B_TRUE) -#undef RELEASE -#define RELEASE(obj) \ - { CORBA::release (obj); } - - PERFORM_TEST (Object, Object_ptr, target, CORBA::Object::_nil ()); -#undef COMPARE -#undef EXPVAL - - // - // TypeCode_ptr -- identity (special comparision), and verifies - // that most of the built-in typecode constants exist. - // - // XXX should try this on all standard and system exceptions! - // - // XXX this currently tests only marshaling/unmarshaling of - // "no parameter" TypeCodes ... complex ones (objref, struct, - // union, enum, sequence, array, alias, exception) are _NOT_ - // currently attempted. - // - // XXX for the simple typecodes (string, wstring), the single - // "bound" parameter isn't exercised/verified as it should be. - // -#define EXPVAL(type,original_value) ((type)(original_value)) -#define COMPARE(type,retval,original) \ - (((retval) == (original)) || \ - ((retval)->_kind == (original)->_kind)) - -#undef RELEASE -#define RELEASE(tc) \ - { CORBA::release (tc); } - -#undef BAD_COMPARE_VALUES -#define BAD_COMPARE_VALUES(type,v1,v2,v3,value1,value2) // NOP - - { - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_null, _tc_CORBA_Void); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_short, _tc_CORBA_UShort); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_long, _tc_CORBA_ULong); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_longLong, _tc_CORBA_ULongLong); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_float, _tc_CORBA_Double); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_boolean, _tc_CORBA_Octet); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_any, _tc_CORBA_TypeCode); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_longDouble, _tc_CORBA_Principal); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_char, _tc_CORBA_String); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_wChar, _tc_CORBA_WString); - - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_longDouble, _tc_CORBA_Octet); - - // - // Try all of the standard exception typecodes. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_uNKNOWN, _tc_CORBA_BAD_PARAM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_nO_MEMORY, _tc_CORBA_IMP_LIMIT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_cOMM_FAILURE, _tc_CORBA_INV_OBJREF); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_oBJECT_NOT_EXIST, _tc_CORBA_NO_PERMISSION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_iNTERNAL, _tc_CORBA_MARSHAL); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_iNITIALIZE, _tc_CORBA_NO_IMPLEMENT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_bAD_TYPECODE, _tc_CORBA_BAD_OPERATION); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_nO_RESOURCES, _tc_CORBA_NO_RESPONSE); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_pERSIST_STORE, _tc_CORBA_BAD_INV_ORDER); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_tRANSIENT, _tc_CORBA_FREE_MEM); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_iNV_IDENT, _tc_CORBA_INV_FLAG); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_iNTF_REPOS, _tc_CORBA_BAD_CONTEXT); - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_oBJ_ADAPTER, _tc_CORBA_DATA_CONVERSION); - - // - // All the built-in "user defined" system exceptions. - // - PERFORM_TEST (TypeCode, TypeCode_ptr, - CORBA::_tc_badKind, _tc_CORBA_Bounds); - } -#undef COMPARE -#undef RELEASE - - // - // string (unbounded)-- identity (special comparision) - // -#define COMPARE(type,retval,original_value) \ - (strcmp ((char *)(retval), (char*)(original_value)) == 0) -#undef RELEASE -#define RELEASE(obj) CORBA::string_free(obj) - static const CORBA::Char str1 [] = "small"; - static const CORBA::Char str2 [] = - "relatively long string, constructed" - " with the aid of C++ implicit string" - " catenation, which simplifies much stuff"; - PERFORM_TEST (string, String, str1, str2); -#undef COMPARE -#undef RELEASE - - - // XXX any, principal, wstring ... output _is_ input - - - // - // Three test cases involve throwing user-defined exceptions. - // - { - CORBA::Exception *xp; - - // - // Case one: with parameter <= zero, must throw - // an "x1" exception whose "case_num" is that parameter - // - test_count++; - - test1_test_throw (target, -5, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x1->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x1 *xp2 = (test1_x1 *) xp; - - if (xp2->case_num != -5) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 1, " - "no exception thrown !!\n"); - } - - - // - // Case two: with positive odd parameter, must throw - // an "x2" exception whose obj is null, and whose case_num - // is that parameter - // - test_count++; - - test1_test_throw (target, 101, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 101) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - if (!CORBA::is_nil (xp2->obj)) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "non-null objref thrown\n"); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 2, " - "no exception thrown !!\n"); - } - - -#if 0 -// 18-sept-95: commented this out. Work remains to be done in -// this area: (a) ServerRequest::target operation unimplemented, -// so for the servers of current interest this test is no help; -// (b) probable pointer leak in exceptions holding data. - - // - // Case three: with positive even parameter, must throw - // an "x2" exception whose obj is the target, and whose - // case_num is that parameter - // - test_count++; - - test1_test_throw (target, 42, env); - if (env.exception () != 0) { - xp = env.exception (); - - if (strcmp ((char *)xp->id (), - (char *) _tc_test1_x2->id (env2)) != 0) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong exception thrown (id = '%s')\n", - xp->id ()); - } else { - test1_x2 *xp2 = (test1_x2 *) xp; - - if (xp2->case_num != 42) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "wrong value (case_num = '%ld')\n", - xp2->case_num); - } - - CORBA::Boolean status; - - status = target->_is_equivalent (xp2->obj, env); - - if (env.exception () != 0) { - error_count++; - print_exception (env.exception (), - "test_throw/3 call to is_equivalent"); - } else if (status != CORBA::B_TRUE) { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "non-equivalent objref thrown\n"); - } - - // else, right exception was thrown - } - } else { - error_count++; - ACE_OS::fprintf (stderr, "test_throw case 3, " - "no exception thrown !!\n"); - } - - env.clear (); -#endif // 0 - - } - - // - // test_illegal -- generate a BAD_OPERATION system exception - // from the remote process - // - test_count++; - test_illegal (target, env); - if (env.exception () == 0 - || ACE_OS::strcmp ((char *) env.exception()->id(), - (char *) CORBA::_tc_bAD_OPERATION->id (env2)) != 0) { - ACE_OS::fprintf (stderr, "couldn't generate BAD_OPERATION exception\n"); - error_count++; - } - } -} - - -int -main (int argc, char *argv[]) -{ - CORBA::ORB_ptr orb_ptr; - CORBA::Environment env; - CORBA::Object_ptr objref = CORBA::Object::_nil(); - unsigned loop_count = 1; - unsigned tests = 0, errors = 0; - int exit_later = 0; - - orb_ptr = CORBA_ORB_init (argc, argv, "internet", env); - if (env.exception () != 0) { - dexc (env, "ORB initialisation"); - return 1; - } - - // - // Parse and verify parameters. - // - ACE_Get_Opt get_opt (argc, argv, "dln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) { - case 'd': // debug flag - TAO_debug_level++; - continue; - - case 'l': // skip "long double" test - skip_longdouble++; - continue; - - case 'n': // loop count - loop_count = (unsigned) ACE_OS::atoi (get_opt.optarg); - continue; - - case 'O': // stringified objref - { - objref = orb_ptr->string_to_object ( - (CORBA::String)get_opt.optarg, env); - if (env.exception () != 0) { - dexc (env, "string2object"); - return 1; - } - } - continue; - - case 'x': - exit_later++; - continue; - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-l]" - " [-n loopcount]" - " [-O objref]" - " [-x]" - "\n", argv [0] - ); - return 1; - } - - if (CORBA::is_nil (objref) == CORBA::B_TRUE) { - ACE_OS::fprintf (stderr, "%s: must identify non-null target objref\n", - argv [0]); - return 1; - } - - - do_tests (objref, loop_count, tests, errors); - - char *progname = ACE_OS::strrchr (argv [0], '/'); - - if (progname != 0) - progname += 1; - else - progname = argv [0]; - - ACE_OS::fprintf (stderr, "%s: %d loops, %d tests (%d errors)\n", - progname, loop_count, tests, errors); - - if (exit_later) { - test1_please_exit (objref, env); - if (env.exception () != 0) - print_exception (env.exception (), "test1_please_exit"); - } - - CORBA::release (objref); - - return errors != 0; -} diff --git a/TAO/tests/Cubit/TAO/DII_Cubit/test1_svr.cpp b/TAO/tests/Cubit/TAO/DII_Cubit/test1_svr.cpp deleted file mode 100644 index b2a88f26a2f..00000000000 --- a/TAO/tests/Cubit/TAO/DII_Cubit/test1_svr.cpp +++ /dev/null @@ -1,668 +0,0 @@ -// $Id$ - -// @(#)test1_svr.cpp 1.7 95/09/25 -// Copyright 1995 by Sun Microsystems Inc. -// All Rights Reserved -// -// TEST: simple IIOP server for "test1.idl" interface. -// -// Starts up, builds an objref, prints its string, listens for -// messages, responds to them. -// - -#include -#include -#include - -#if unix -# include // for getopt on some systems - -#else // windows - -#endif - -#include "test1.h" -#include "tao/corba.h" - - -#if !defined (_WIN32) -extern char *optarg; // missing on some platforms -#endif - -// -// Skeleton code ... just a macro for a bunch of DSI-based method code, -// in lieu of having an IDL compmiler generate static skeletons. Static -// skeletons would be more efficient; most mallocation could go away. -// -// Use by: defining OPERATION macro, call DEFINE_SKEL3 as needed, then -// undef OPERATION. -// -// NOTE: "v1_copy" below is needed to work around a bug with the -// HP9000 G++ 2.6.3 compiler, with "LongLong". -// -// XXX this could probably be a template ... or could even be merged -// directly into the Dynamic Implementation Routine below. -// -// XXX we must currently use IN_COPY_VALUE since the memory consumed -// by the parameters must be deallocated by the ORB. When we get an -// updated version of DSI which provides "send it now" semantics, -// these should preallocate the values and not use IN_COPY_VALUE. A -// net decrease in malloc overhead can be had that way. (NVList should -// also get a public constructor, and a way to provide the buffer.) -// -#define DEFINE_SKEL3(name,truetype,truetypename) \ - static void \ - _test1_test_ ## name ( \ - CORBA::ServerRequest &req, \ - CORBA::Object_ptr obj, \ - CORBA::Environment &env \ - ) \ - { \ - CORBA::NVList_ptr nvlist; \ - CORBA:: ## truetype scratch = 0; \ - CORBA::Any temp_value (CORBA::_tc_ ## truetypename, \ - &scratch, CORBA::B_FALSE); \ - \ - req.orb ()->create_list (3, nvlist); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA::IN_COPY_VALUE|CORBA::ARG_IN, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA::IN_COPY_VALUE|CORBA::ARG_OUT, env); \ - (void) nvlist->add_value (0, temp_value, \ - CORBA::IN_COPY_VALUE|CORBA::ARG_INOUT, env); \ - \ - req.params (nvlist, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, req.params"); \ - return; \ - } \ - \ - CORBA:: ## truetype *v1, *v2, *retval; \ - \ - v1 = (CORBA:: ## truetype *) nvlist->item (0)->value ()->value (); \ - v2 = new CORBA:: ## truetype; \ - *v2 = (CORBA:: ## truetype) OPERATION (*v1); \ - retval = new CORBA:: ## truetype; \ - *retval = (CORBA:: ## truetype) OPERATION (*v1); \ - \ - CORBA::Any_ptr any_val; \ - \ - any_val = nvlist->item (1)->value (); \ - any_val->replace (any_val->type (), v2, CORBA::B_TRUE, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, val2 replace"); \ - return; \ - } \ - \ - v1 = (CORBA:: ## truetype *) nvlist->item (2)->value ()->value (); \ - CORBA:: ## truetype v1copy = *v1; \ - *v1 = (CORBA:: ## truetype) OPERATION (v1copy); \ - \ - any_val = new CORBA::Any (CORBA::_tc_ ## truetypename, \ - retval, CORBA::B_TRUE); \ - req.result (any_val, env); \ - if (env.exception () != 0) { \ - dexc (env, "test1_test_" # name "skeleton, result"); \ - return; \ - } \ - } \ - extern TAO_Call_Data test1_ ## name ## _calldata; - - -extern const TAO_Call_Data test1_void_calldata; - -static void -_test1_test_void (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - - req.orb ()->create_list (0, nvlist); - req.params (nvlist, env); - - if (env.exception () != 0) - dexc (env, "test_throw, get params"); -} - - -// -// Dynamic Skeleton methods for numeric types ... these all just -// cube their parameters in various permutations -// -template -Type cube (Type arg) -{ - Type temp = arg; - - temp = temp * arg; - temp = temp * arg; - return temp; -} - -#define OPERATION(n) cube(n) - -DEFINE_SKEL3 (octet, Octet, Octet) - -DEFINE_SKEL3 (short, Short, Short) -DEFINE_SKEL3 (ushort, UShort, UShort) - -DEFINE_SKEL3 (long, Long, Long) -DEFINE_SKEL3 (ulong, ULong, ULong) - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... -DEFINE_SKEL3 (longlong, LongLong, LongLong) -DEFINE_SKEL3 (ulonglong, ULongLong, ULongLong) -#endif // !NONNATIVE_LONGLONG - -DEFINE_SKEL3 (float, Float, Float) -DEFINE_SKEL3 (double, Double, Double) - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... -DEFINE_SKEL3 (longdouble, LongDouble, LongDouble) -#endif // !NONNATIVE_LONGDOUBLE - -#undef OPERATION - -// -// Dynamic Skeleton methods for Boolean type ... just negates its -// parameters -// -#define OPERATION(x) (!(x)) -DEFINE_SKEL3 (boolean, Boolean, Boolean) -#undef OPERATION - -// -// For character types, output is same as input, no magic needed. -// -#define OPERATION(x) (x) -DEFINE_SKEL3 (char, Char, Char) -DEFINE_SKEL3 (wchar, WChar, WChar) -#undef OPERATION - -// -// For objref, typecode, output is same as input but duplication -// is needed -// -#define OPERATION(x) ((x) ? (x)->AddRef() : 0, x) -DEFINE_SKEL3 (Object, Object_ptr, Object) -DEFINE_SKEL3 (TypeCode, TypeCode_ptr, TypeCode) -#undef OPERATION - -// -// For string, output is copy of input -// -#define OPERATION(x) (CORBA::string_copy(x)) -DEFINE_SKEL3 (string, String, String) -#undef OPERATION - -// -// For wstring, output is copy of input -// -#define OPERATION(x) (CORBA::wstring_copy(x)) -DEFINE_SKEL3 (wstring, WString, WString) -#undef OPERATION - -// -// XXX IMPLEMENT THE REST OF THE DATA TYPES -// -// any, principal -- out is in -// - - -// -// All cases, "case_num" in the exception is the same as the 'in' param -// * negative or zero, throws x1 -// * positive even cases, throws x2 with obj = null objref -// * positive odd cases, throws x2 with obj = target objref -// -// exception x1 { long case_num; }; -// exception x2 { Object obj; long case_num; }; -// -// void test_throw (in long case_num) raises (x1, x2); -// - -extern const TAO_Call_Data test1_test_throw_calldata; - -static void -_test1_test_throw (CORBA::ServerRequest &req, - CORBA::Object_ptr obj, - CORBA::Environment &env) -{ - CORBA::NVList_ptr nvlist; - CORBA::NamedValue_ptr nv; - CORBA::Any temp_value (CORBA::_tc_long); - CORBA::Long value; - - req.orb ()->create_list (0, nvlist); - nv = nvlist->add_value (0, temp_value, CORBA::ARG_IN, env); - - req.params (nvlist, env); - if (env.exception () != 0) - { - dexc (env, "test_throw, get params"); - return; - } - - value = *(CORBA::Long *)nv->value ()->value (); - if (env.exception () != 0) - { - dexc (env, "test_throw, param value"); - return; - } - - CORBA::Any_ptr any; - - if (value <= 0) - { - test1_x1 *x; - - x = new test1_x1 (value); - any = new CORBA::Any (_tc_test1_x1, x, CORBA::B_TRUE); - - } - else if (value & 0x01) - { - test1_x2 *x; - - x = new test1_x2 (CORBA::Object::_nil (), value); - any = new CORBA::Any (_tc_test1_x2, x, CORBA::B_TRUE); - - } - else - { -#if 0 - test1_x2 *x; - - x = new test1_x2 (req.oa()->target (), value); - any = new CORBA::Any (_tc_test1_x2, x, CORBA::B_TRUE); -#else - // - // XXX right now, we don't have a target() operation on the - // POA ... needs to be added. Verify the client side memory - // leak of pointers embedded in user exceptions is fixed, too. - // - env.exception (new CORBA::IMP_LIMIT (COMPLETED_NO)); - return; -#endif - } - - req.exception (USER_EXCEPTION, any, env); -} - - -// -// This table is used to associate operation names with the Dynamic -// Skeleton method ... someday it could return static skeletons. -// -#define DECL_SKEL(name) \ - { & test1_ ## name ## _calldata, _test1_test_ ## name } - -static const TAO_Skel_Entry test1_operations [] = { - DECL_SKEL (void), - - DECL_SKEL (octet), - DECL_SKEL (char), - - DECL_SKEL (wchar), - - DECL_SKEL (short), - DECL_SKEL (ushort), - DECL_SKEL (long), - DECL_SKEL (ulong), - -#if !defined (NONNATIVE_LONGLONG) - // don't try this on platforms that don't support - // math on longlongs ... - DECL_SKEL (longlong), - DECL_SKEL (ulonglong), -#endif - - DECL_SKEL (float), - DECL_SKEL (double), - -#if !defined (NONNATIVE_LONGDOUBLE) - // don't try this on platforms that don't support - // math on long doubles ... - DECL_SKEL (longdouble), -#endif // !NONNATIVE_LONGDOUBLE - - DECL_SKEL (boolean), - - DECL_SKEL (Object), - DECL_SKEL (TypeCode), - - DECL_SKEL (string), - DECL_SKEL (wstring), - - { & test1_test_throw_calldata, _test1_test_throw }, - - { 0, 0 } -}; - - -// -// Dispatch to method code ... -// -// Knows how to interpret "context" to get target objref, and where to -// get second level skeletons for that target. Both of those operations -// will generally be abstracted (into library and stub code) so the main -// body of this routine would be invisible to most applications. -// -// However, there are applications that need to do this stuff themselves -// (like bridging between environments, e.g. different ORBs, languages, or -// other object systems). Everything needed to work without using an IDL -// compiler is a public, supported API. -// -static void -level1_skeleton ( - CORBA::OctetSeq &key, - CORBA::ServerRequest &req, - void *context, - CORBA::Environment &env -) -{ - // - // Verify that the target object and "this" object have the - // same key. Normally, this would be used to figure out - // which object was the target, and hence which operations - // vector to dispatch the request. - // - CORBA::OctetSeq *obj_key; - - obj_key = (CORBA::OctetSeq *) context; - if (obj_key->length != key.length - || ACE_OS::memcmp (obj_key->buffer, key.buffer, - obj_key->length) != 0) - { - env.exception (new CORBA::OBJECT_NOT_EXIST (COMPLETED_NO)); -#ifdef DEBUG - if (TAO_debug_level) - dmsg_opaque ("request to nonexistent object, key = ", - key.buffer, key.length); -#endif - return; - } - - // - // Find a "level 2 skeleton" for this operation, then - // call it with the right per-object state. - // - const TAO_Skel_Entry *entry; - CORBA::String opname; - - opname = req.op_name (); - for (entry = &test1_operations [0]; entry->op_descriptor; entry++) - { - if (strcmp ((char *)opname, entry->op_descriptor->opname) == 0) - { - // We pass a bogus object because this version of the cubit example is - // so tightly coupled that it doesn't use it. Future modifications will, - // hopefully! - CORBA::Object_ptr bogus_object = 0; - entry->impl_skeleton (req, bogus_object, env); - return; - } - } - - // - // XXX True top-level skeleton code would also have to understand - // the built-in operations: - // - // * _is_a (for narrowing tests) ... can be derived by searching an - // appropriately structured graph of level2 skeletons. - // - // * _non_existent ... if the level1 skeleton consults a module - // which understands object lifespans, this should be simple. - // - // * _get_interface ... could either (a) fail; (b) return the ref - // from some IFR; or most interestingly (c) return a ref to some - // code in this process that can answer all IFR queries from the - // skeleton data structures. - // - // * _get_implementation ... return some administrative hook to - // the object implementation: - // - // No other legal operations start with a character that's not an - // ASCII alphanumeric, for what it's worth. - // - // The skeleton might want to use data in the object key to find - // the objref's type; if it's integrated with object creation, and - // an per-process implementation repository, this should be easy. - // - - // - // bypass level 2 skeletons for this one ... - // - if (strcmp ((char *) opname, "please_exit") == 0) - { - dmsg ("I've been asked to shut down..."); - req.oa ()->please_shutdown (env); - dexc (env, "please_exit, please_shutdown"); - return; - } - - // - // No match. Operation not implemented; say so. - // - dmsg1 ("unknown operation, %s", opname); - env.exception (new CORBA::BAD_OPERATION (COMPLETED_NO)); -} - - -// -// Create and print the objref, listen for calls on it until done. -// -extern void -print_exception (const CORBA::Exception *, const char *, FILE *f=stdout); - -int -OA_listen (CORBA::ORB_ptr orb_ptr, - CORBA::POA_ptr oa_ptr, - CORBA::String key, - int idle) -{ - // - // Create the object we'll be implementing. - // - CORBA::OctetSeq obj_key; - CORBA::Object_ptr obj; - CORBA::Environment env; - - obj_key.buffer = (CORBA::Octet *) key; - obj_key.length = obj_key.maximum = ACE_OS::strlen (key); - - obj = oa_ptr->create (obj_key, (CORBA::String) "", env); - if (env.exception () != 0) - { - print_exception (env.exception (), "POA::create"); - return 1; - } - - // - // Stringify the objref we'll be implementing, and - // print it to stdout. Someone will take that string - // and give it to some client. - // - CORBA::String str; - - str = orb_ptr->object_to_string (obj, env); - if (env.exception () != 0) - { - print_exception (env.exception (), "object2string"); - return 1; - } - ACE_OS::puts ((char *)str); - ACE_OS::fflush (stdout); - dmsg1 ("listening as object '%s'", str); - - // - // Clean up -- "key" is sufficient to dispatch all requests. - // - CORBA::release (obj); - CORBA::string_free (str); - env.clear (); - - // - // Handle requests for this object until we're killed, or one of - // the methods makes us exit. - // - // NOTE: apart from registering the top level skeleton, the rest - // of this loop is exactly what POA::run() does. It's here to - // show there's no magic. - // -#if 0 - oa_ptr->register_dir (level1_skeleton, &obj_key, env); -#else - oa_ptr->register_dir (oa_ptr->dispatch, &obj_key, env); -#endif - if (env.exception () != 0) - { - print_exception (env.exception (), "register_dir"); - return 1; - } - - for (;;) { - if (idle == -1) - oa_ptr->get_request (CORBA::B_FALSE, 0, env); - else - { - timeval tv; - - tv.tv_sec = idle; - tv.tv_usec = 0; - oa_ptr->get_request (CORBA::B_FALSE, &tv, env); - } - - CORBA::Exception_ptr xp; - - if ((xp = env.exception ()) != 0) - { - CORBA::Environment env2; // XXX - char *id; - - id = env.exception ()->id (); - - // - // We get BAD_INV_ORDER if we call get_request() after - // shutdown was initiated. Simpler to rely on that - // than to arrange any handshaking in this simple app. - // - if (strcmp (id, CORBA::_tc_bAD_INV_ORDER->id (env2)) == 0) - { - break; - - // - // Other exceptions are errors. - // - } - else - { - print_exception (env.exception (), "POA::get_request"); - return 1; - } - } - env.clear (); - } - - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - // XXX shutdown is not quite the same as release, unless we want mem - // leaks to cause some rude failure modes. POA just hasn't been - // updated yet to have any handshake about this though. - // - oa_ptr->Release (); - return 0; -} - - -// -// Standard command line parsing utilities used. -// -int -main (int argc, char *argv[]) -{ - CORBA::Environment env; - CORBA::ORB_ptr orb_ptr; - CORBA::POA_ptr oa_ptr; - CORBA::String key = (CORBA::String) "elvis"; - char *oa_name = 0; - char *orb_name = "internet"; - int idle = -1; - - // - // Parse the command line, get options - // - ACE_Get_Opt get_opt (argc, argv, "dln:O:x"); - int c; - - while ((c = get_opt ()) != -1) - switch (c) - { - case 'd': // more debug noise - TAO_debug_level++; - continue; - - case 'i': // idle seconds b4 exit - idle = ACE_OS::atoi (get_opt.optarg); - continue; - - case 'k': // key (str) - key = (CORBA::String) get_opt.optarg; - continue; - - case 'o': // orb name - orb_name = get_opt.optarg; - continue; - - case 'p': // portnum - oa_name = get_opt.optarg; - continue; - - // XXX set debug filters ... - - // - // XXX ignore OMG-specified options ... hope nobody ever tries - // to use that "-ORB* param" and "-OA* param" syntax, it flies - // in the face of standard command parsing algorithms which - // require single-character option specifiers. - // - - - case '?': - default: - ACE_OS::fprintf (stderr, "usage: %s" - " [-d]" - " [-i idle_seconds]" - " [-k object_key=elvis]" - " [-o orbname=internet]" - " [-p oa_name]" - "\n", argv [0] - ); - return 1; - } - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init"); - return 1; - } - - // - // The POA may or may not actually be named ... - // - oa_ptr = CORBA::POA::get_named_boa (orb_ptr, oa_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "OA init"); - return 1; - } - - return OA_listen (orb_ptr, oa_ptr, key, idle); -} - diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mak b/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mak deleted file mode 100644 index afa815291e8..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mak +++ /dev/null @@ -1,2068 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -!IF "$(CFG)" == "" -CFG=client - Win32 Debug -!MESSAGE No configuration specified. Defaulting to client - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "server - Win32 Release" && "$(CFG)" != "server - Win32 Debug"\ - && "$(CFG)" != "client - Win32 Release" && "$(CFG)" != "client - 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 "Cubit.mak" CFG="client - 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 "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - 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 "client - Win32 Debug" -RSC=rc.exe -CPP=cl.exe - -!IF "$(CFG)" == "server - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "server\Release" -# PROP BASE Intermediate_Dir "server\Release" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(OUTDIR)\server.exe" - -@erase ".\cubitC.cpp" - -@erase ".\cubitC.h" - -@erase ".\cubitC.i" - -@erase ".\cubitS.cpp" - -@erase ".\cubitS.h" - -@erase ".\cubitS.i" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\ - /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib TAO.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)/server.pdb" /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitC.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "server\Debug" -# PROP BASE Intermediate_Dir "server\Debug" -# PROP BASE Target_Dir "server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "server" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\server.exe" - -CLEAN : - -@erase "$(INTDIR)\cubit_i.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\cubitS.obj" - -@erase "$(INTDIR)\svr.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\server.exe" - -@erase "$(OUTDIR)\server.ilk" - -@erase "$(OUTDIR)\server.pdb" - -@erase ".\cubitC.cpp" - -@erase ".\cubitC.h" - -@erase ".\cubitC.i" - -@erase ".\cubitS.cpp" - -@erase ".\cubitS.h" - -@erase ".\cubitS.i" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\ - /Fp"$(INTDIR)/server.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/server.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib TAO.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)/server.pdb" /debug /machine:I386 /out:"$(OUTDIR)/server.exe" -LINK32_OBJS= \ - "$(INTDIR)\cubit_i.obj" \ - "$(INTDIR)\cubitC.obj" \ - "$(INTDIR)\cubitS.obj" \ - "$(INTDIR)\svr.obj" - -"$(OUTDIR)\server.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "client\Release" -# PROP BASE Intermediate_Dir "client\Release" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Release - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(OUTDIR)\client.exe" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE"\ - /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 ace.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -LINK32_FLAGS=ace.lib TAO.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)/client.pdb" /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client\Debug" -# PROP BASE Intermediate_Dir "client\Debug" -# PROP BASE Target_Dir "client" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "client" -OUTDIR=. -INTDIR=.\Debug - -ALL : "$(OUTDIR)\client.exe" - -CLEAN : - -@erase "$(INTDIR)\clnt.obj" - -@erase "$(INTDIR)\cubitC.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(OUTDIR)\client.exe" - -@erase "$(OUTDIR)\client.ilk" - -@erase "$(OUTDIR)\client.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /YX /c -CPP_PROJ=/nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE"\ - /Fp"$(INTDIR)/client.pch" /YX /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS=.\. -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/client.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -# ADD LINK32 aced.lib TAO.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 -LINK32_FLAGS=aced.lib TAO.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)/client.pdb" /debug /machine:I386 /out:"$(OUTDIR)/client.exe" -LINK32_OBJS= \ - "$(INTDIR)\clnt.obj" \ - "$(INTDIR)\cubitC.obj" - -"$(OUTDIR)\client.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 "server - Win32 Release" -# Name "server - Win32 Debug" - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\svr.cpp -DEP_CPP_SVR_C=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitC.i"\ - ".\cubitS.h"\ - ".\cubitS.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_SVR_C=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\svr.obj" : $(SOURCE) $(DEP_CPP_SVR_C) "$(INTDIR)" ".\cubitC.h"\ - ".\cubitC.i" ".\cubitS.h" ".\cubitS.i" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitS.cpp -DEP_CPP_CUBIT=\ - ".\cubitC.h"\ - ".\cubitC.i"\ - ".\cubitS.h"\ - ".\cubitS.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBIT=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubitS.obj" : $(SOURCE) $(DEP_CPP_CUBIT) "$(INTDIR)" ".\cubitC.h"\ - ".\cubitC.i" ".\cubitS.h" ".\cubitS.i" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubit_i.cpp -DEP_CPP_CUBIT_=\ - ".\cubit_i.h"\ - ".\cubitC.h"\ - ".\cubitC.i"\ - ".\cubitS.h"\ - ".\cubitS.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBIT_=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubit_i.obj" : $(SOURCE) $(DEP_CPP_CUBIT_) "$(INTDIR)" ".\cubitC.h"\ - ".\cubitC.i" ".\cubitS.h" ".\cubitS.i" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitC.cpp -DEP_CPP_CUBITC=\ - ".\cubitC.h"\ - ".\cubitC.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBITC=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBITC) "$(INTDIR)" ".\cubitC.h"\ - ".\cubitC.i" - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# PROP Exclude_From_Build 0 -# Begin Custom Build - Compiling IDL file(s): -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl.exe $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP Exclude_From_Build 0 -# Begin Custom Build - Compiling IDL file(s): -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl.exe $(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) -# End Custom Build - -!ENDIF - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\clnt.cpp - -!IF "$(CFG)" == "client - Win32 Release" - -DEP_CPP_CLNT_=\ - ".\clnt.h"\ - ".\cubitC.h"\ - ".\cubitC.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.i"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Profile_Timer.h"\ - {$(INCLUDE)}"\ace\Profile_Timer.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -DEP_CPP_CLNT_=\ - ".\clnt.h"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.h"\ - {$(INCLUDE)}"\ace\High_Res_Timer.i"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Profile_Timer.h"\ - {$(INCLUDE)}"\ace\Profile_Timer.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - - -"$(INTDIR)\clnt.obj" : $(SOURCE) $(DEP_CPP_CLNT_) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\cubitC.cpp - -!IF "$(CFG)" == "client - Win32 Release" - -DEP_CPP_CUBITC=\ - ".\cubitC.h"\ - ".\cubitC.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Dynamic_Service.cpp"\ - {$(INCLUDE)}"\ace\Dynamic_Service.h"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Repository.h"\ - {$(INCLUDE)}"\ace\Service_Repository.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\any.i"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\cdr.i"\ - {$(INCLUDE)}"\tao\client_factory.h"\ - {$(INCLUDE)}"\tao\client_factory.i"\ - {$(INCLUDE)}"\tao\connect.h"\ - {$(INCLUDE)}"\tao\connect.i"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\corbacom.i"\ - {$(INCLUDE)}"\tao\debug.h"\ - {$(INCLUDE)}"\tao\default_client.h"\ - {$(INCLUDE)}"\tao\default_client.i"\ - {$(INCLUDE)}"\tao\default_server.h"\ - {$(INCLUDE)}"\tao\default_server.i"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\giop.h"\ - {$(INCLUDE)}"\tao\giop.i"\ - {$(INCLUDE)}"\tao\iiopobj.h"\ - {$(INCLUDE)}"\tao\iiopobj.i"\ - {$(INCLUDE)}"\tao\iioporb.h"\ - {$(INCLUDE)}"\tao\iioporb.i"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\marshal.i"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\object.i"\ - {$(INCLUDE)}"\tao\objtable.h"\ - {$(INCLUDE)}"\tao\optable.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orb_core.h"\ - {$(INCLUDE)}"\tao\orb_core.i"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\orbobj.h"\ - {$(INCLUDE)}"\tao\orbobj.i"\ - {$(INCLUDE)}"\tao\params.h"\ - {$(INCLUDE)}"\tao\params.i"\ - {$(INCLUDE)}"\tao\poa.h"\ - {$(INCLUDE)}"\tao\poa.i"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\sequence.i"\ - {$(INCLUDE)}"\tao\server_factory.h"\ - {$(INCLUDE)}"\tao\server_factory.i"\ - {$(INCLUDE)}"\tao\singletons.h"\ - {$(INCLUDE)}"\tao\stub.h"\ - {$(INCLUDE)}"\tao\stub.i"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\svrrqst.i"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\typecode.i"\ - {$(INCLUDE)}"\tao\varout.h"\ - -NODEP_CPP_CUBITC=\ - "..\..\..\..\tao\tao\factories.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBITC) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -DEP_CPP_CUBITC=\ - ".\cubitC.h"\ - ".\cubitC.i"\ - {$(INCLUDE)}"\ace\Acceptor.cpp"\ - {$(INCLUDE)}"\ace\Acceptor.h"\ - {$(INCLUDE)}"\ace\Acceptor.i"\ - {$(INCLUDE)}"\ace\ACE.h"\ - {$(INCLUDE)}"\ace\ACE.i"\ - {$(INCLUDE)}"\ace\Addr.h"\ - {$(INCLUDE)}"\ace\Addr.i"\ - {$(INCLUDE)}"\ace\Atomic_Op.i"\ - {$(INCLUDE)}"\ace\Auto_Ptr.cpp"\ - {$(INCLUDE)}"\ace\Auto_Ptr.h"\ - {$(INCLUDE)}"\ace\Auto_Ptr.i"\ - {$(INCLUDE)}"\ace\config-win32-common.h"\ - {$(INCLUDE)}"\ace\config-win32.h"\ - {$(INCLUDE)}"\ace\config.h"\ - {$(INCLUDE)}"\ace\Connector.cpp"\ - {$(INCLUDE)}"\ace\Connector.h"\ - {$(INCLUDE)}"\ace\Connector.i"\ - {$(INCLUDE)}"\ace\Containers.cpp"\ - {$(INCLUDE)}"\ace\Containers.h"\ - {$(INCLUDE)}"\ace\Containers.i"\ - {$(INCLUDE)}"\ace\Dynamic.h"\ - {$(INCLUDE)}"\ace\Dynamic.i"\ - {$(INCLUDE)}"\ace\Event_Handler.h"\ - {$(INCLUDE)}"\ace\Event_Handler.i"\ - {$(INCLUDE)}"\ace\Free_List.cpp"\ - {$(INCLUDE)}"\ace\Free_List.h"\ - {$(INCLUDE)}"\ace\Free_List.i"\ - {$(INCLUDE)}"\ace\Get_Opt.h"\ - {$(INCLUDE)}"\ace\Get_Opt.i"\ - {$(INCLUDE)}"\ace\Handle_Set.h"\ - {$(INCLUDE)}"\ace\Handle_Set.i"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Hash_Map_Manager.h"\ - {$(INCLUDE)}"\ace\INET_Addr.h"\ - {$(INCLUDE)}"\ace\INET_Addr.i"\ - {$(INCLUDE)}"\ace\IO_Cntl_Msg.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.h"\ - {$(INCLUDE)}"\ace\IPC_SAP.i"\ - {$(INCLUDE)}"\ace\Log_Msg.h"\ - {$(INCLUDE)}"\ace\Log_Priority.h"\ - {$(INCLUDE)}"\ace\Log_Record.h"\ - {$(INCLUDE)}"\ace\Log_Record.i"\ - {$(INCLUDE)}"\ace\Malloc.h"\ - {$(INCLUDE)}"\ace\Malloc.i"\ - {$(INCLUDE)}"\ace\Malloc_T.cpp"\ - {$(INCLUDE)}"\ace\Malloc_T.h"\ - {$(INCLUDE)}"\ace\Malloc_T.i"\ - {$(INCLUDE)}"\ace\Managed_Object.cpp"\ - {$(INCLUDE)}"\ace\Managed_Object.h"\ - {$(INCLUDE)}"\ace\Managed_Object.i"\ - {$(INCLUDE)}"\ace\Map_Manager.cpp"\ - {$(INCLUDE)}"\ace\Map_Manager.h"\ - {$(INCLUDE)}"\ace\Map_Manager.i"\ - {$(INCLUDE)}"\ace\Mem_Map.h"\ - {$(INCLUDE)}"\ace\Mem_Map.i"\ - {$(INCLUDE)}"\ace\Memory_Pool.h"\ - {$(INCLUDE)}"\ace\Memory_Pool.i"\ - {$(INCLUDE)}"\ace\Message_Block.h"\ - {$(INCLUDE)}"\ace\Message_Block.i"\ - {$(INCLUDE)}"\ace\Message_Queue.cpp"\ - {$(INCLUDE)}"\ace\Message_Queue.h"\ - {$(INCLUDE)}"\ace\Message_Queue.i"\ - {$(INCLUDE)}"\ace\Module.cpp"\ - {$(INCLUDE)}"\ace\Module.h"\ - {$(INCLUDE)}"\ace\Module.i"\ - {$(INCLUDE)}"\ace\Object_Manager.h"\ - {$(INCLUDE)}"\ace\Object_Manager.i"\ - {$(INCLUDE)}"\ace\OS.h"\ - {$(INCLUDE)}"\ace\OS.i"\ - {$(INCLUDE)}"\ace\Reactor.h"\ - {$(INCLUDE)}"\ace\Reactor.i"\ - {$(INCLUDE)}"\ace\Reactor_Impl.h"\ - {$(INCLUDE)}"\ace\Service_Config.h"\ - {$(INCLUDE)}"\ace\Service_Config.i"\ - {$(INCLUDE)}"\ace\Service_Object.h"\ - {$(INCLUDE)}"\ace\Service_Object.i"\ - {$(INCLUDE)}"\ace\Service_Types.h"\ - {$(INCLUDE)}"\ace\Service_Types.i"\ - {$(INCLUDE)}"\ace\Shared_Object.h"\ - {$(INCLUDE)}"\ace\Shared_Object.i"\ - {$(INCLUDE)}"\ace\Signal.h"\ - {$(INCLUDE)}"\ace\Signal.i"\ - {$(INCLUDE)}"\ace\Singleton.cpp"\ - {$(INCLUDE)}"\ace\Singleton.h"\ - {$(INCLUDE)}"\ace\Singleton.i"\ - {$(INCLUDE)}"\ace\SOCK.h"\ - {$(INCLUDE)}"\ace\SOCK.i"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.h"\ - {$(INCLUDE)}"\ace\SOCK_Acceptor.i"\ - {$(INCLUDE)}"\ace\SOCK_Connector.h"\ - {$(INCLUDE)}"\ace\SOCK_Connector.i"\ - {$(INCLUDE)}"\ace\SOCK_IO.h"\ - {$(INCLUDE)}"\ace\SOCK_IO.i"\ - {$(INCLUDE)}"\ace\SOCK_Stream.h"\ - {$(INCLUDE)}"\ace\SOCK_Stream.i"\ - {$(INCLUDE)}"\ace\SString.h"\ - {$(INCLUDE)}"\ace\SString.i"\ - {$(INCLUDE)}"\ace\stdcpp.h"\ - {$(INCLUDE)}"\ace\Strategies.h"\ - {$(INCLUDE)}"\ace\Strategies_T.cpp"\ - {$(INCLUDE)}"\ace\Strategies_T.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.cpp"\ - {$(INCLUDE)}"\ace\Stream_Modules.h"\ - {$(INCLUDE)}"\ace\Stream_Modules.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Complex.i"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.h"\ - {$(INCLUDE)}"\ace\SV_Semaphore_Simple.i"\ - {$(INCLUDE)}"\ace\Svc_Conf_Tokens.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.cpp"\ - {$(INCLUDE)}"\ace\Svc_Handler.h"\ - {$(INCLUDE)}"\ace\Svc_Handler.i"\ - {$(INCLUDE)}"\ace\Synch.h"\ - {$(INCLUDE)}"\ace\Synch.i"\ - {$(INCLUDE)}"\ace\Synch_Options.h"\ - {$(INCLUDE)}"\ace\Synch_T.cpp"\ - {$(INCLUDE)}"\ace\Synch_T.h"\ - {$(INCLUDE)}"\ace\Synch_T.i"\ - {$(INCLUDE)}"\ace\Task.h"\ - {$(INCLUDE)}"\ace\Task.i"\ - {$(INCLUDE)}"\ace\Task_T.cpp"\ - {$(INCLUDE)}"\ace\Task_T.h"\ - {$(INCLUDE)}"\ace\Task_T.i"\ - {$(INCLUDE)}"\ace\Thread.h"\ - {$(INCLUDE)}"\ace\Thread.i"\ - {$(INCLUDE)}"\ace\Thread_Manager.h"\ - {$(INCLUDE)}"\ace\Thread_Manager.i"\ - {$(INCLUDE)}"\ace\Time_Value.h"\ - {$(INCLUDE)}"\ace\Timer_Queue.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.cpp"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.h"\ - {$(INCLUDE)}"\ace\Timer_Queue_T.i"\ - {$(INCLUDE)}"\ace\Trace.h"\ - {$(INCLUDE)}"\ace\Version.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.h"\ - {$(INCLUDE)}"\ace\WFMO_Reactor.i"\ - {$(INCLUDE)}"\ace\ws2tcpip.h"\ - {$(INCLUDE)}"\tao\align.h"\ - {$(INCLUDE)}"\tao\any.h"\ - {$(INCLUDE)}"\tao\cdr.h"\ - {$(INCLUDE)}"\tao\corba.h"\ - {$(INCLUDE)}"\tao\corbacom.h"\ - {$(INCLUDE)}"\tao\except.h"\ - {$(INCLUDE)}"\tao\marshal.h"\ - {$(INCLUDE)}"\tao\nvlist.h"\ - {$(INCLUDE)}"\tao\object.h"\ - {$(INCLUDE)}"\tao\orb.h"\ - {$(INCLUDE)}"\tao\orbconf.h"\ - {$(INCLUDE)}"\tao\principa.h"\ - {$(INCLUDE)}"\tao\request.h"\ - {$(INCLUDE)}"\tao\sequence.h"\ - {$(INCLUDE)}"\tao\svrrqst.h"\ - {$(INCLUDE)}"\tao\typecode.h"\ - {$(INCLUDE)}"\tao\varout.h"\ - - -"$(INTDIR)\cubitC.obj" : $(SOURCE) $(DEP_CPP_CUBITC) "$(INTDIR)" - - -!ENDIF - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mdp b/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mdp deleted file mode 100644 index c26de1aa337..00000000000 Binary files a/TAO/tests/Cubit/TAO/IDL_Cubit/Cubit.mdp and /dev/null differ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp b/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp deleted file mode 100644 index 90e24e67e53..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsp +++ /dev/null @@ -1,92 +0,0 @@ -# Microsoft Developer Studio Project File - Name="IDL_Cubit" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=IDL_Cubit - 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 "IDL_Cubit.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 "IDL_Cubit.mak" CFG="IDL_Cubit - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "IDL_Cubit - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "IDL_Cubit - 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)" == "IDL_Cubit - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "IDL_Cubi" -# PROP BASE Intermediate_Dir "IDL_Cubi" -# 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /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" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "IDL_Cubit - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "IDL_Cub0" -# PROP BASE Intermediate_Dir "IDL_Cub0" -# 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 "..\..\..\..\\" /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" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "IDL_Cubit - Win32 Release" -# Name "IDL_Cubit - Win32 Debug" -# Begin Source File - -SOURCE=.\IDL_Cubit_Test.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw b/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw deleted file mode 100644 index db8173fcabf..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit.dsw +++ /dev/null @@ -1,65 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "IDL_Cubit"=.\IDL_Cubit.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "collocation_test"=.\collocation_test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit_Test.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit_Test.cpp deleted file mode 100644 index 1f5b01d9818..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/IDL_Cubit_Test.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Cubit/TAO/IDL_Cubit -// -// = FILENAME -// IDL_Cubit_Test.cpp -// -// = DESCRIPTION -// This example tests the IDL Cubit server and client -// components. The test forks and execs two processes to run both -// the cubit client and the cubit server. The client makes calls on -// the cubit server object and shutdowns the server in the end. -// No command line arguments are needed to run the test. -// -// = AUTHOR -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#include "tests/test_config.h" -#include "ace/Process.h" - -int -main (int, char *[]) -{ - ACE_START_TEST ("IDL_Cubit_Test:"); - - ACE_Process_Options server_options; - server_options.command_line ("./server -ORBport 0 -ORBobjrefstyle url"); - ACE_Process server; - - if (server.spawn (server_options) == -1) - ACE_ERROR_RETURN ((LM_DEBUG, - "%n %p.\n", - "Server fork failed"), - 0); - else - ACE_DEBUG ((LM_DEBUG, - "Server forked with pid = %d.\n", - server.getpid ())); - - ACE_OS::sleep (5); - - // create a client that will shutdown the server after the tests. - ACE_Process_Options client_options; - client_options.command_line ("./client -ORBport 0 -ORBobjrefstyle url -x"); - ACE_Process client; - - if (client.spawn (client_options) == -1) - ACE_ERROR_RETURN ((LM_DEBUG, - "%p.\n", - "Client spawn failed"), - 0); - else - ACE_DEBUG ((LM_DEBUG, - "Client forked with pid = %d.\n", - client.getpid ())); - - if (server.wait () < 0) - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Wait on server failed\n")); - if (client.wait () < 0) - ACE_DEBUG ((LM_DEBUG,"(%P|%t) Wait on client failed\n")); - - ACE_END_TEST; - return 0; -} diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/Makefile b/TAO/tests/Cubit/TAO/IDL_Cubit/Makefile deleted file mode 100644 index ccbcd42c852..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/Makefile +++ /dev/null @@ -1,101 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Top-level Makefile for the ACE-ified Sun Ref. implementation -# of IIOP ORB -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO - -IDL_SRC = cubitC.cpp cubitS.cpp -PROG_SRCS = server_i.cpp \ - server.cpp \ - client_i.cpp \ - collocation_test.cpp \ - client.cpp \ - cubit_i.cpp \ - tmplinst.cpp - -LSRC = $(IDL_SRC) $(PROG_SRCS) - -CUBIT_SVR_OBJS = cubitC.o \ - cubitS.o \ - server_i.o \ - cubit_i.o \ - server.o \ - tmplinst.o -CUBIT_CLT_OBJS = cubitC.o \ - cubitS.o \ - client_i.o \ - client.o \ - tmplinst.o -COLLOCATION_OBJS = cubitC.o \ - cubitS.o \ - server_i.o \ - cubit_i.o \ - client_i.o \ - collocation_test.o \ - tmplinst.o -TEST_OBJS = IDL_Cubit_Test.o - -BIN = server \ - client \ - IDL_Cubit_Test \ - collocation_test -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/Naming_Service -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs - -.PRECIOUS: cubitC.cpp cubitS.cpp cubitC.h cubitS.h -#$(IDL_SRC): cubit.idl -# $(TAO_ROOT)/TAO_IDL/tao_idl cubit.idl - -server: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CUBIT_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -collocation_test: $(addprefix $(VDIR),$(COLLOCATION_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -IDL_Cubit_Test: $(addprefix $(VDIR),$(TEST_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf cubitC.* cubitS.* - -# 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/TAO/tests/Cubit/TAO/IDL_Cubit/README b/TAO/tests/Cubit/TAO/IDL_Cubit/README deleted file mode 100644 index 8561086fc7a..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/README +++ /dev/null @@ -1,165 +0,0 @@ -// $Id$ - -This is the cubit example that uses the TAO IDL compiler to generate -the stubs and skeletons. Additional features include presence of a -factory to create Cubit objects and testing the _bind call to get the -factory object reference. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -The client and server by default make use of the Naming Service. -The cubit server now has its own NamingServer implementation and hence -you don't have to start the NamingService before starting the client -and server. - -The collocation_test demonstrates how the performance improves when -objects are collocated. The test runs both server and client in -different threads. To run it, simply run collocation_test. It -accepts any command line arguments for the client side, but there is -not way to specify command line arguments for the server side at this -moment. This may be changed in the future. At this moment, the -collocation_test must use Naming_Service to resolve object -references. This may be changed later, also. - - You just have to use the -s flags on both the server and -client if you don't want to use the naming service. - -server: -------- - -% server [-d] [-s] [-ORBhost ] [-ORBport ] - [-n ] [-o ] - -Options: -------- --s Tells the server not to register the cubit-factory object - with the Naming Service. - --d Debug flag (It is additive more -d flags will give debugging). - --o Outputs the cubit_factory ior file to the file - --n Number of cubit objects exported by the server - -The server cubit factory maintains num_of_cubit objects (default = -1). They are assigned keys that look like "key0", "key1", ... - -When the server is started and you have used the -d flag, you should -see as the first line of output something that looks like - iiop:1.0//swarm:10015/Persistent/886013035/850128/RootPOA/RootPOA_is_BAD/factory - (-ORBobjrefstyle url) -or - IOR:000000000000001649444c3a43756269745... - (-ORBobjrefstyle ior) - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - - -client: -------- - -% client [-d] [-s] [-x] <-f cubit_factory_ior_file> <-k cubit_factory_ior> -n - -Options: -------- - d Debug flag - s Don't Use the Naming Service - x Tells the server to shutdown. - f Reads the cubit factory ior from the file - k Reads the cubit factory ior from commandline - n no. of iterations - - There are 3 ways of giving the CubitFactory IOR to the client: - - 1. From a file using the -f option. (This file can be produced using - the -o option of the server.) - - 2. Directly on the commandline using the -k option. - - 3. Get it from the Naming Service (which is the default client - behavior). - -IDL_Cubit_Test: --------------- - - This is a simple test program which tests the server and -client using the default options of the server and client. To test -using this just run - - %IDL_Cubit_Test - -collocation_test: ------------------ - - This test demonstrates how collocation optimization improve -performance of collocated objects. Run the test without any argument -to see results with collocation optimization. Run it with -<-ORBcollocation no> to perform the same test without the optimization. - -Sample Run- Using files to communicate IOR: ------------------------------------------- - -1. Start the server. - -% server -s -ORBport 20000 -ORBobjrefstyle url -o theior - -starting up daemon -opening dynamic service Resource_Factory -did dynamic on Resource_Factory, error = 0 -opening dynamic service Client_Strategy_Factory -did dynamic on Client_Strategy_Factory, error = 0 -opening dynamic service Server_Strategy_Factory -did dynamic on Server_Strategy_Factory, error = 0 -The IOR is: - - -2.Start the client. - -%client -s -ORBport 19998 -f theior - -starting up daemon -opening dynamic service Resource_Factory -did dynamic on Resource_Factory, error = 0 -opening dynamic service Client_Strategy_Factory -did dynamic on Client_Strategy_Factory, error = 0 -opening dynamic service Server_Strategy_Factory -did dynamic on Server_Strategy_Factory, error = 0 -Factory received OK -. -. -. - -Sample Run-Using Naming Service: --------------------------------- -1. Start the server - %server -ORBport 19999 - -2. Start the client - %client -ORBport 19998 - if you don't want the server to shutdown. - %client -ORBport 19998 -x - if you want to shutdown the server after this request. - -3. If Multicast is not supported the naming service can be reached by -the following 2 methods. - - a) use the -ORBnameserviceior flag to the client to give the - naming service ior outputted by the server. - - b)set the ENVIRONMENT variable "NameService" - - This might be helpful if more than one person is running the - Naming service in which case Multicast might cause confusion with some - other Naming Service trying to answer your call. - -To build the client for VxWorks, for running the server and client -on a single target: - - % make BIN=client ACELIB= LDLIBS="$ACE_ROOT/ace/.obj/High_Res_Timer.o $ACE_ROOT/ace/.obj/gethrtime.o" - -The gethrtime.o component should only be included in LDLIBS if -building with GreenHills for Pentium target. diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/client.bld b/TAO/tests/Cubit/TAO/IDL_Cubit/client.bld deleted file mode 100755 index 9b912e57dd0..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/client.bld +++ /dev/null @@ -1,12 +0,0 @@ -#!build -default: - program - :debuglevel=multi -cubitC.cpp - C++ -cubitS.cpp - C++ -client.cpp - C++ -tmplinst.cpp - C++ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/client.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/client.cpp deleted file mode 100644 index 746ba11a02c..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/client.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// $Id$ - -#include "client_i.h" - -// This function runs the test. - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - - ACE_DEBUG ((LM_DEBUG, - "\n \t IDL_Cubit: client \n\n")); - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - return cubit_client.run (); -} - diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/client.dsp b/TAO/tests/Cubit/TAO/IDL_Cubit/client.dsp deleted file mode 100644 index 6713a32d946..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/client.dsp +++ /dev/null @@ -1,166 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "client - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\client\Release" -# PROP BASE Intermediate_Dir ".\client\Release" -# PROP BASE Target_Dir ".\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 ".\client" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D TAO_ORBSVCS_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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\client\Debug" -# PROP BASE Intermediate_Dir ".\client\Debug" -# PROP BASE Target_Dir ".\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 ".\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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D TAO_ORBSVCS_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 -# ADD LINK32 aced.lib TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "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=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\client_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\cubit_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\cubitC.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/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.cpp deleted file mode 100644 index 9099e6af18b..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.cpp +++ /dev/null @@ -1,1123 +0,0 @@ -// $Id$ - -#include "ace/Env_Value_T.h" -#include "ace/Read_Buffer.h" -#include "client_i.h" -#include "orbsvcs/CosNamingC.h" - -#include "tao/Timeprobe.h" - -#if defined (ACE_ENABLE_TIMEPROBES) - -static const char *Cubit_Client_Timeprobe_Description[] = -{ - "Cubit_Client::cube_octet - start", - "Cubit_Client::cube_octet - end", - - "Cubit_Client::cube_short - start", - "Cubit_Client::cube_short - end", - - "Cubit_Client::cube_long - start", - "Cubit_Client::cube_long - end", - - "Cubit_Client::cube_struct - start", - "Cubit_Client::cube_struct - end", - - "Cubit_Client::cube_union - start", - "Cubit_Client::cube_union - end", - - "Cubit_Client::cube_sequence - start", - "Cubit_Client::cube_sequence - end", - - "Cubit_Client::cube_raw - start", - "Cubit_Client::cube_raw - end" -}; - -enum -{ - CUBIT_CLIENT_CUBE_OCTET_START = 10000, - CUBIT_CLIENT_CUBE_OCTET_END, - - CUBIT_CLIENT_CUBE_SHORT_START, - CUBIT_CLIENT_CUBE_SHORT_END, - - CUBIT_CLIENT_CUBE_LONG_START, - CUBIT_CLIENT_CUBE_LONG_END, - - CUBIT_CLIENT_CUBE_STRUCT_START, - CUBIT_CLIENT_CUBE_STRUCT_END, - - CUBIT_CLIENT_CUBE_UNION_START, - CUBIT_CLIENT_CUBE_UNION_END, - - CUBIT_CLIENT_CUBE_SEQUENCE_START, - CUBIT_CLIENT_CUBE_SEQUENCE_END, - - CUBIT_CLIENT_CUBE_RAW_START, - CUBIT_CLIENT_CUBE_RAW_END -}; - -#endif /* ACE_ENABLE_TIMEPROBES */ - -// Setup Timeprobes -ACE_TIMEPROBE_EVENT_DESCRIPTIONS (Cubit_Client_Timeprobe_Description, - CUBIT_CLIENT_CUBE_OCTET_START); - -// Constructor. -Cubit_Client::Cubit_Client (void) - : cubit_factory_key_ (0), - cubit_key_ (ACE_OS::strdup ("key0")), - loop_count_ (250), - shutdown_ (0), - cubit_ (Cubit::_nil ()), - call_count_ (0), - error_count_ (0), - cubit_factory_ior_file_ (0), - f_handle_ (ACE_INVALID_HANDLE), - use_naming_service_ (1) -{ -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -Cubit_Client::func (u_int i) -{ - return i - 117; -} - -// Reads the Cubit factory ior from a file - -int -Cubit_Client::read_ior (char *filename) -{ - // Open the file for reading. - this->f_handle_ = ACE_OS::open (filename,0); - - if (this->f_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - filename), - -1); - ACE_Read_Buffer ior_buffer (this->f_handle_); - this->cubit_factory_key_ = ior_buffer.read (); - - if (this->cubit_factory_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - return 0; -} - -// Parses the command line arguments and returns an error status. - -int -Cubit_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:f:k:xs"); - int c; - int result; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'n': // loop count - this->loop_count_ = (u_int) ACE_OS::atoi (get_opts.optarg); - break; - case 'f': // read the IOR from the file. - result = this->read_ior (get_opts.optarg); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'k': // read the cubit IOR from the command-line. - this->cubit_factory_key_ = - ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->shutdown_ = 1; - break; - case 's': // Don't use the TAO Naming Service. - this->use_naming_service_ = 0; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-f cubit_factory-obj-ref-key-file]" - " [-k cubit-obj-ref-key]" - " [-x]" - " [-s]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Exercise the union. Cube a union. - -void -Cubit_Client::cube_union_stub (void) -{ - CORBA::Environment env; - Cubit::oneof u; - - this->call_count_++; - - u.l (3); // use the long union branch. - - // Cube a "union" ... - Cubit::oneof r; - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_UNION_START); - - r = this->cubit_->cube_union (u, this->env_); - } - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg ("cube union ..."); - u.l (u.l () * u.l () * u.l ()) ; - - if (u.l () != r.l ()) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - - } - - this->call_count_++; - - u._d (Cubit::e_3rd); -#if 0 - u.cm ().l = this->func (i); - u.cm ().s = this->func (i); - u.cm ().o = this->func (i); -#endif - - u.cm ().l = 7; - u.cm ().s = 5; - u.cm ().o = 3; - - // Cube another "union" which uses the default arm ... NOT tested yet - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_UNION_START); - - r = this->cubit_->cube_union (u, this->env_); - } - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_union"); - this->error_count_++; - } - else - { - dmsg ("cube union ..."); - u.cm ().l = u.cm ().l * u.cm ().l * u.cm ().l; - u.cm ().s = u.cm ().s * u.cm ().s * u.cm ().s; - u.cm ().o = u.cm ().o * u.cm ().o * u.cm ().o; - - if (u.cm ().l != r.cm ().l - || u.cm ().s != r.cm ().s - || u.cm ().o != r.cm ().o) - { - ACE_DEBUG ((LM_DEBUG, "** cube_union ERROR\n")); - this->error_count_++; - } - } -} - -// Exercise the union using dii. - -void -Cubit_Client::cube_union_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req; - - this->call_count_++; - - req = this->cubit_->_request ((CORBA::String) "cube_union", this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - - this->env_.print_exception ("cube_union_dii request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::oneof *u, *r; - - u = new Cubit::oneof; - u->_d (Cubit::e_3rd); - - u->cm ().l = 5; - u->cm ().s = -7; - u->cm ().o = 3; - - CORBA::Any tmp_arg (Cubit::_tc_oneof, u, CORBA::B_FALSE); - - req->arguments ()->add_value ("values", - tmp_arg, - CORBA::ARG_IN, - this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->env_.print_exception ("cube_union_dii request arg add"); - CORBA::release (req); - return; - } - - // set the result's typecode to indicate what we expect. Let the ORB allocate - // the memory - req->result ()->value ()->replace (Cubit::_tc_oneof, - 0, - 0, - this->env_); - - if (this->env_.exception () != 0) - { - this->error_count_++; - this->env_.print_exception ("cube_union_dii result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result. - - req->invoke (); - - if (req->env ()->exception () != 0) - { - this->error_count_++; - req->env ()->print_exception ("cube_union_dii invoke"); - CORBA::release (req); - return; - } - - // retrieve the value in "r". Note that we don't own the memory that the ORb - // has allocated - if (!((*req->result ()->value ()) >>= r)) - { - ACE_ERROR ((LM_ERROR, - "Error retrieving union oneof via the >>= operator\n")); - CORBA::release (req); - return; - } - - if (r->cm ().o != 27 || r->cm ().l != 125 || r->cm ().s != -343) - { - this->error_count_++; - ACE_ERROR ((LM_ERROR, "cube_union_dii -- bad results\n")); - } - else - dmsg ("cube_union_dii ... success!!"); - - CORBA::release (req); - delete u; - delete r; -} - -// Cube a short. - -void -Cubit_Client::cube_short (int i) -{ - CORBA::Short arg_short = this->func (i); - - // Cube a short. - CORBA::Short ret_short; - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_SHORT_START); - - ret_short = cubit_->cube_short (arg_short, this->env_); - } - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_short"); - this->error_count_++; - } - else - { - dmsg2 ("cube short: %d --> %d\n", - arg_short, - ret_short); - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, "** cube_short (%d) ERROR (--> %d)\n", - (CORBA::Short) this->func (i), - ret_short)); - this->error_count_++; - } - } -} - -// Cube an octet - -void -Cubit_Client::cube_octet (int i) -{ - CORBA::Octet arg_octet = this->func (i); - - // Cube an octet. - CORBA::Octet ret_octet; - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_OCTET_START); - - ret_octet = this->cubit_->cube_octet (arg_octet, this->env_); - } - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_octet"); - this->error_count_++; - } - else - { - dmsg2 ("cube octet: %d --> %d\n", arg_octet, ret_octet); - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - ACE_DEBUG ((LM_DEBUG, - "** cube_octet (%d) ERROR (--> %d)\n", - (CORBA::Octet) this->func (i), - ret_octet)); - this->error_count_++; - } - } -} - -// calculate the cube from a long - -void -Cubit_Client::cube_long (int i) -{ - CORBA::Long arg_long = this->func (i); - - // Cube a long. - CORBA::Long ret_long; - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_LONG_START); - - ret_long = this->cubit_->cube_long (arg_long, this->env_); - } - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_long"); - this->error_count_++; - } - else - { - dmsg2 ("cube long: %d --> %d\n", arg_long, ret_long); - arg_long = arg_long * arg_long * arg_long; - - if (arg_long != ret_long) - { - ACE_ERROR ((LM_ERROR, - "** cube_long (%ld) ERROR (--> %ld)\n", - (CORBA::Long) this->func (i), - ret_long)); - this->error_count_++; - } - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct (int i) -{ - Cubit::Many arg_struct; - Cubit::Many ret_struct; - - this->call_count_++; - - arg_struct.l = this->func (i); - arg_struct.s = this->func (i); - arg_struct.o = this->func (i); - - // Cube a "struct" ... - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_STRUCT_START); - - ret_struct = this->cubit_->cube_struct (arg_struct, this->env_); - } - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - dmsg ("cube struct ..."); - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o) - { - ACE_ERROR ((LM_ERROR, "** cube_struct ERROR\n")); - this->error_count_++; - } - } -} - -// Cube the numbers in a sequence - -void -Cubit_Client::cube_sequence (int i, int l) -{ - this->call_count_++; - - Cubit::vector input (l); - input.length (l); - -#if 0 - // Fill in the input sequence... - for (int j = 0; j < l; ++j) - input[j] = j; -#else - // Just set the first item, otherwise it is hard to compare the - // results for longer sequences, i.e. more than just marshalling - // gets in the way. - input[0] = 4; -#endif - - Cubit::vector_var output; - Cubit::vector_out vout (output); - - // Cube the sequence - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_SEQUENCE_START); - - this->cubit_->cube_sequence (input, vout, this->env_); - } - - // Cubit::vector& output = *vout.ptr (); - // output = vout; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - if (output->length () != input.length ()) - { - ACE_ERROR ((LM_ERROR, "** cube sequence, wrong length\n")); - this->error_count_++; - } - - u_int rl = output->length (); - if (input.length () < rl) - rl = input.length (); -#if 0 - for (u_int j = 0; j < rl; ++j) - { - CORBA::Long x = input[j]; - if (x*x*x != output[j]) - { - ACE_ERROR ((LM_ERROR, "** cube_sequence ERROR\n")); - this->error_count_++; - } - } -#else - CORBA::Long x = input[0]; - if (x * x *x != output[0]) - { - ACE_ERROR ((LM_ERROR, "** cube_sequence ERROR\n")); - this->error_count_++; - } -#endif - } -} - -void -Cubit_Client::cube_raw (int i, int l) -{ - this->call_count_++; - - Cubit::Raw input (l); - input.length (l); - -#if 0 - // Fill in the input sequence... - for (int j = 0; j < l; ++j) - input[j] = j; -#else - // Just set the first item, otherwise it is hard to compare the - // results for longer sequences, i.e. more than just marshalling - // gets in the way. - input[0] = 4; -#endif - - Cubit::Raw_var output; - Cubit::Raw_out vout (output); - - // Cube the sequence - { - ACE_FUNCTION_TIMEPROBE (CUBIT_CLIENT_CUBE_RAW_START); - - this->cubit_->cube_raw (input, vout, this->env_); - } - - // Cubit::vector& output = *vout.ptr (); - // output = vout; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("from cube_struct"); - this->error_count_++; - } - else - { - if (output->length () != input.length ()) - { - ACE_ERROR ((LM_ERROR, "** cube octet, wrong length\n")); - this->error_count_++; - } - - u_int rl = output->length (); - if (input.length () < rl) - rl = input.length (); -#if 0 - for (u_int j = 0; j < rl; ++j) - { - CORBA::Octet x = input[j]; - if (x*x*x != output[j]) - { - ACE_ERROR ((LM_ERROR, "** cube_octet ERROR\n")); - this->error_count_++; - } - } -#else - CORBA::Octet x = input[0]; - if (x * x *x != output[0]) - { - ACE_ERROR ((LM_ERROR, "** cube_octet ERROR\n")); - this->error_count_++; - } -#endif - } -} - -// Cube the numbers in a struct - -void -Cubit_Client::cube_struct_dii (void) -{ - // Create the request ... - CORBA::Request_ptr req = - this->cubit_->_request ((CORBA::String) "cube_struct", this->env_); - - this->call_count_++; - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request create"); - return; - } - - // ... initialise the argument list and result ... - Cubit::Many arg; - Cubit::Many *result; - - arg.o = 3; - arg.l = 5; - arg.s = -7; - - CORBA::Any tmp_arg (Cubit::_tc_Many, &arg, CORBA::B_FALSE); - - req->arguments ()->add_value ("values", - tmp_arg, - CORBA::ARG_IN, this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request arg add"); - CORBA::release (req); - return; - } - - // set the typecode for the result and expect the ORB to allocate the memory - req->result ()->value ()->replace (Cubit::_tc_Many, - 0, - 0, - this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("DII request result type"); - CORBA::release (req); - return; - } - - // Make the invocation, verify the result - - req->invoke (); - - if (req->env ()->exception () != 0) - { - req->env ()->print_exception ("DII invoke sending struct"); - CORBA::release (req); - return; - } - - if (!((*req->result ()->value ()) >>= result)) - { - ACE_ERROR ((LM_ERROR, - "Error retrieving struct Many via the >>= operator\n")); - CORBA::release (req); - return; - } - - if (result->o != 27 || result->l != 125 || result->s != -343) - ACE_ERROR ((LM_ERROR, "DII cube_struct -- bad results\n")); - else - dmsg ("DII cube_struct ... success!!"); - - CORBA::release (req); - delete result; -} - -void -Cubit_Client::print_stats (const char *call_name, - ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time) -{ - ACE_DEBUG ((LM_DEBUG, - "%s:\n", - call_name)); - - if (this->call_count_ > 0 && this->error_count_ == 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - // elapsed_time.real_time is in units of microseconds. - const u_int calls_per_sec = - this->call_count_ * 1000000u / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %u ms,\n" - "\t%u calls/second\n", - elapsed_time.real_time / 1000u, - calls_per_sec)); -#else /* ! ACE_LACKS_FLOATING_POINT */ - // elapsed_time.real_time is in units of seconds. - double calls_per_sec = this->call_count_ / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t= %0.06f ms, \n\t" - "user_time\t= %0.06f ms, \n\t" - "system_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0 ? 0.0 - : elapsed_time.real_time * ACE_ONE_SECOND_IN_MSECS, - elapsed_time.user_time < 0.0 ? 0.0 - : elapsed_time.user_time * ACE_ONE_SECOND_IN_MSECS, - elapsed_time.system_time < 0.0 ? 0.0 - : elapsed_time.system_time * ACE_ONE_SECOND_IN_MSECS, - calls_per_sec < 0.0 ? 0.0 : calls_per_sec)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - else - ACE_ERROR ((LM_ERROR, - "\tNo time stats printed. Call count zero or error ocurred.\n")); - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n", - this->call_count_, - this->error_count_)); -} - -// Execute client example code. - -int -Cubit_Client::run (int testing_collocation) -{ - u_int i; - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // ACE_Time_Value before; - - // We start an ACE_Profile_Timer here... - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - { - this->cube_short (i); - this->cube_octet (i); - this->cube_long (i); - this->cube_struct (i); - this->cube_sequence (i, 4); - this->cube_raw (i, 16); - } - - // stop the timer. - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube average call", elapsed_time); - - // Simple test for DII: call "cube_struct". (It's not timed since - // the copious mallocation of DII would bias numbers against typical - // stub-based calls). - this->call_count_ = 0; - this->error_count_ = 0; - - if (! testing_collocation) - { - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_struct_dii (); - - timer.stop (); - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_struct_dii call", elapsed_time); - } - - // ------------------> - // Two more tests, using the "cube_union" function - - this->call_count_ = 0; - this->error_count_ = 0; - - // unions using stubs - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_union_stub (); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_stub call", elapsed_time); - - this->call_count_ = 0; - this->error_count_ = 0; - - if (! testing_collocation) - { - // union DII - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_union_dii (); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_union_dii call", elapsed_time); - } - - // Small Long Sequences - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_sequence (this->loop_count_, 4); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_small_sequence", elapsed_time); - - // Large Long Sequences - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_sequence (this->loop_count_, 1024); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_large_sequence", elapsed_time); - - // Small Octet Sequences - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_raw (this->loop_count_, 16); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_small_octet_sequence", elapsed_time); - - // Large Octet Sequences - this->call_count_ = 0; - this->error_count_ = 0; - - timer.start (); - - // Make the calls in a loop. - for (i = 0; i < this->loop_count_; i++) - this->cube_raw (this->loop_count_, 4096); - - timer.stop (); - - timer.elapsed_time (elapsed_time); - // compute call average call time. - this->print_stats ("cube_large_octet_sequence", elapsed_time); - - if (testing_collocation) - { - TAO_ORB_Core_instance ()->using_collocation (CORBA::B_FALSE); - // Make sure we call the following method "remotely" so - // the right ORB could be used. - - TAO_TRY - { - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name cubit_shutdown_name (2); - cubit_shutdown_name.length (2); - cubit_shutdown_name[0].id = CORBA::string_dup ("IDL_Cubit"); - cubit_shutdown_name[1].id = CORBA::string_dup ("shutdown"); - CORBA::Object_var shutdown_obj = - naming_context->resolve (cubit_shutdown_name,TAO_TRY_ENV); - TAO_CHECK_ENV; - - Cubit_Shutdown_var shutdown = - Cubit_Shutdown::_narrow (shutdown_obj.in (),TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (shutdown.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "null cubit objref returned by factory\n"), - -1); - shutdown->shutdown (this->env_); - TAO_CHECK_ENV; - - dexc (this->env_, "server, please ACE_OS::exit"); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Cubit::init"); - return -1; - } - TAO_ENDTRY; - - } - else if (this->shutdown_) - { - this->cubit_->shutdown (this->env_); - dexc (this->env_, "server, please ACE_OS::exit"); - } - - - return this->error_count_ == 0 ? 0 : 1; -} - -Cubit_Client::~Cubit_Client (void) -{ - // Free resources - // Close the ior files - if (this->cubit_factory_ior_file_) - ACE_OS::fclose (this->cubit_factory_ior_file_); - if (this->f_handle_ != ACE_INVALID_HANDLE) - ACE_OS::close (this->f_handle_); - - CORBA::release (this->cubit_); - - if (this->cubit_factory_key_ != 0) - ACE_OS::free (this->cubit_factory_key_); - if (this->cubit_key_ != 0) - ACE_OS::free (this->cubit_key_); -} - -int -Cubit_Client::init_naming_service (void) -{ - TAO_TRY - { - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name cubit_factory_name (2); - cubit_factory_name.length (2); - cubit_factory_name[0].id = CORBA::string_dup ("IDL_Cubit"); - cubit_factory_name[1].id = CORBA::string_dup ("cubit_factory"); - CORBA::Object_var factory_obj = - naming_context->resolve (cubit_factory_name,TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->factory_ = - Cubit_Factory::_narrow (factory_obj.in (),TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->factory_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve cubit factory in Naming service <%s>\n"), - -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Cubit::init_naming_service"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -int -Cubit_Client::init (int argc, char **argv) -{ - int naming_result; - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - if (this->use_naming_service_) - { - naming_result = this->init_naming_service (); - if (naming_result < 0) - return naming_result; - } - else - { - if (this->cubit_factory_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: no cubit factory key specified\n", - this->argv_[0]), - -1); - - - CORBA::Object_var factory_object = - this->orb_->string_to_object (this->cubit_factory_key_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->factory_ = - Cubit_Factory::_narrow (factory_object.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->factory_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid factory key <%s>\n", - this->cubit_factory_key_), - -1); - } - - ACE_DEBUG ((LM_DEBUG, "Factory received OK\n")); - - // Now retrieve the Cubit obj ref corresponding to the key. - this->cubit_ = - this->factory_->make_cubit (this->cubit_key_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->cubit_)) - ACE_ERROR_RETURN ((LM_ERROR, - "null cubit objref returned by factory\n"), - -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Cubit::init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Env_Value; -template class ACE_Env_Value; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Env_Value -#pragma instantiate ACE_Env_Value -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.h b/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.h deleted file mode 100644 index 86c2b7126e3..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/client_i.h +++ /dev/null @@ -1,138 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// client.h -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA client for the Cubit -// example using stubs generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include "tao/corba.h" -#include "cubitC.h" - -class Cubit_Client -{ - // = TITLE - // Defines a class that encapsulates behaviour of the Cubit client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Cubit CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -public: - // = Constructor and destructor. - Cubit_Client (void); - ~Cubit_Client (void); - - int run (int testing_collocation = 0); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int init_naming_service (void); - // Function to initialize the naming service. - - int func (u_int i); - // Simple function that returns the substraction of 117 from the - // parameter. - - int read_ior (char *filename); - // Function to read the cubit factory ior from a file. - - int parse_args (void); - // Parses the arguments passed on the command line. - - void print_stats (const char *call_name, - ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time); - // Prints the time stats. - - void cube_union_stub (void); - // Exercise the union. Cube a union. - - void cube_union_dii (void); - // Exercise the union using DII. - - void cube_struct (int i); - // calculate the cube from a struct. - - void cube_long (int i); - // calculate the cube from a long. - - void cube_octet (int i); - // Cube an octet. - - void cube_short (int i); - // Cube a short. - - void cube_sequence (int i, int l); - // Cube a sequence is the length of the sequence. - - void cube_raw (int i, int l); - // Cube a sequence of octets, is the length of the sequence. - - void cube_struct_dii (void); - // Cube the numbers in a struct. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - char *cubit_factory_key_; - // Key of factory obj ref. - - char *cubit_key_; - // Key of the obj ref to be retrieved via the factory. - - u_int loop_count_; - // Number of times to do the cube operations. - - int shutdown_; - // Flag to tell server to shutdown. - - Cubit_Factory_var factory_; - // factory pointer for cubit. - - CORBA::Environment env_; - // Environment variable. - - Cubit_ptr cubit_; - // Cubit obj ref. - - CORBA::ORB_var orb_; - // Remember our orb. - - u_int call_count_; - // # of calls made to functions. - - u_int error_count_; - // # of errors incurred in the lifetime of the application. - - FILE *cubit_factory_ior_file_; - // File from which to obtain the IOR. - - ACE_HANDLE f_handle_; - // File handle to read the IOR. - - int use_naming_service_; - // Flag to tell client not to use Namingservice to find the cubit - // Factory. -}; diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp deleted file mode 100644 index 44f04167926..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// $Id$ - -#include "ace/Synch.h" -#include "client_i.h" -#include "server_i.h" - -#define ACE_THREAD_MANAGER ACE_Thread_Manager::instance () - -void * -svr_worker (void *arg) -{ - Cubit_Server cubit_server; - ACE_Barrier *barrier = (ACE_Barrier *) arg; - char *fake[] = {"server"}; - - TAO_TRY - { - if (cubit_server.init (1, fake, TAO_TRY_ENV) == -1) - return (void *) 1; - else - { - barrier->wait (); - cubit_server.run (TAO_TRY_ENV); - } - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return (void *) 1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return (void *) 1; - } - TAO_ENDTRY; - return 0; -} - - -int -main (int argc, char **argv) -{ - Cubit_Client cubit_client; - CORBA::Environment env; - ACE_Barrier barrier (2); - - int retv = 1; - - ACE_DEBUG ((LM_DEBUG, - "\n \t IDL_Cubit: Collocation test \n\n")); - - ACE_THREAD_MANAGER->spawn (ACE_static_cast (ACE_THR_FUNC, svr_worker), - &barrier); - barrier.wait (); - ACE_OS::sleep (1); - - if (cubit_client.init (argc, argv) == -1) - return 1; - else - retv = cubit_client.run (1); - - ACE_THREAD_MANAGER->wait (); - return retv; -} diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp b/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp deleted file mode 100644 index f3357c3864b..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/collocation_test.dsp +++ /dev/null @@ -1,165 +0,0 @@ -# Microsoft Developer Studio Project File - Name="collocation_test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=collocation_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 "collocation_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 "collocation_test.mak" CFG="collocation_test - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "collocation_test - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "collocation_test - Win32 Debug" (based on\ - "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -# PROP WCE_Configuration "H/PC Ver. 2.00" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "collocation_test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "collocat" -# PROP BASE Intermediate_Dir "collocat" -# 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ELSEIF "$(CFG)" == "collocation_test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "colloca0" -# PROP BASE Intermediate_Dir "colloca0" -# 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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D TAO_ORBSVCS_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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "collocation_test - Win32 Release" -# Name "collocation_test - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;idl" -# Begin Source File - -SOURCE=.\client_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\collocation_test.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "collocation_test - Win32 Release" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "collocation_test - Win32 Debug" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\cubit_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server_i.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h" -# End Group -# End Target -# End Project diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit.idl b/TAO/tests/Cubit/TAO/IDL_Cubit/cubit.idl deleted file mode 100644 index e4942ffe72d..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit.idl +++ /dev/null @@ -1,91 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -interface Cubit - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. -{ - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - // Cube a struct - - enum discrim - { - e_0th, - e_1st, - e_2nd, - e_3rd - }; - // Enumeration of the different elements in a union. - - union oneof switch (discrim) - { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - Many cm; - - // default: - // Many cm; - }; - // Union of different types. - - oneof cube_union (in oneof values); - // cube a union. - - typedef sequence vector; - - void cube_sequence (in vector input, - out vector output); - // Cube several longs. - - - typedef sequence Raw; - void cube_raw (in Raw input, out Raw output); - // Cube an octet sequence. - - oneway void shutdown (); - // shutdown the application. -}; - -interface Cubit_Shutdown -{ - // = TITLE - // We need this class to shutdown the server - // when testing collocation. - oneway void shutdown (); - // shutdown the program. -}; - -interface Cubit_Factory - // = TITLE - // Creates Cubit objects. -{ - Cubit make_cubit (in string key); -}; diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp deleted file mode 100644 index 48adff2bd8f..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.cpp +++ /dev/null @@ -1,285 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "tao/corba.h" -#include "ace/Auto_Ptr.h" -#include "cubit_i.h" - -#include "tao/Timeprobe.h" - -#if defined (ACE_ENABLE_TIMEPROBES) - -static const char *Cubit_i_Timeprobe_Description[] = -{ - "Cubit_i::cube_octet - start", - "Cubit_i::cube_octet - end", - - "Cubit_i::cube_short - start", - "Cubit_i::cube_short - end", - - "Cubit_i::cube_long - start", - "Cubit_i::cube_long - end", - - "Cubit_i::cube_struct - start", - "Cubit_i::cube_struct - end", - - "Cubit_i::cube_union - start", - "Cubit_i::cube_union - end", - - "Cubit_i::cube_sequence - start", - "Cubit_i::cube_sequence - end" -}; - -enum -{ - CUBIT_I_CUBE_OCTET_START = 10000, - CUBIT_I_CUBE_OCTET_END, - - CUBIT_I_CUBE_SHORT_START, - CUBIT_I_CUBE_SHORT_END, - - CUBIT_I_CUBE_LONG_START, - CUBIT_I_CUBE_LONG_END, - - CUBIT_I_CUBE_STRUCT_START, - CUBIT_I_CUBE_STRUCT_END, - - CUBIT_I_CUBE_UNION_START, - CUBIT_I_CUBE_UNION_END, - - CUBIT_I_CUBE_SEQUENCE_START, - CUBIT_I_CUBE_SEQUENCE_END -}; - -#endif /* ACE_ENABLE_TIMEPROBES */ - -// Setup Timeprobes -ACE_TIMEPROBE_EVENT_DESCRIPTIONS (Cubit_i_Timeprobe_Description, - CUBIT_I_CUBE_OCTET_START); - -// Constructor - -Cubit_Factory_i::Cubit_Factory_i (void) -{ -} - -// Destructor - -Cubit_Factory_i::~Cubit_Factory_i (void) -{ -} - -Cubit_ptr -Cubit_Factory_i::make_cubit (const char *, - CORBA::Environment &env) -{ - return my_cubit_._this (env); -} - -// Constructor - -Cubit_i::Cubit_i (const char *) -{ -} - -// Destructor - -Cubit_i::~Cubit_i (void) -{ -} - -// Cube an octet - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o, - CORBA::Environment &env) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_OCTET_START); - - ACE_UNUSED_ARG (env); - return o * o * o; -} - -// Cube a short. - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s, - CORBA::Environment &env) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_SHORT_START); - - ACE_UNUSED_ARG (env); - return s * s * s; -} - -// Cube a long - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l, - CORBA::Environment &env) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_LONG_START); - - ACE_UNUSED_ARG (env); - return l * l * l; -} - -// Cube a struct - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values, - CORBA::Environment &env) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_STRUCT_START); - - Cubit::Many temp; - - ACE_UNUSED_ARG (env); - temp.o = values.o * values.o * values.o; - temp.s = values.s * values.s * values.s; - temp.l = values.l * values.l * values.l; - - return temp; -} - -// Cube a union - -Cubit::oneof -Cubit_i::cube_union (const Cubit::oneof &values, - CORBA::Environment &env) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_UNION_START); - - Cubit::oneof temp; - - ACE_UNUSED_ARG (env); - switch (values._d ()) - { - case Cubit::e_0th: - temp.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - temp.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - temp.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - temp._d (values._d ()); // set the discriminant - // use the read/write accessor - temp.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o; - temp.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s; - temp.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l; - - } - return temp; -} - -// Cube a sequence -void -Cubit_i::cube_sequence(const Cubit::vector &input, - Cubit::vector_out output, - CORBA::Environment &) -{ - ACE_FUNCTION_TIMEPROBE (CUBIT_I_CUBE_SEQUENCE_START); - - if (output.ptr () == 0) - output = new Cubit::vector (input.length ()); - - output->length (input.length ()); - -#if 0 - for (CORBA::ULong i = 0; i < input.length (); ++i) - { - CORBA::Long x = input[i]; - output[i] = x * x * x; - } -#else - CORBA::ULong i = 0; - CORBA::Long x = input[0]; - output[i] = x * x * x; -#endif -} - -// Cube an octet sequence -void -Cubit_i::cube_raw (const Cubit::Raw &input, - Cubit::Raw_out output, - CORBA::Environment &) -{ - if (output.ptr () == 0) - { - ACE_Message_Block mb (input.length ()); - mb.wr_ptr (input.length ()); - TAO_Unbounded_Sequence* tmp = - new TAO_Unbounded_Sequence (&mb); - // @@ TODO this is a temporary hack until the IDL compiler - // generates the constructor taking a Message_Block. - output = (Cubit::Raw*)tmp; - } - - output->length (input.length ()); - -#if 0 - for (CORBA::ULong i = 0; i < input.length (); ++i) - { - CORBA::Octet x = input[i]; - output[i] = x * x * x; - } -#else - CORBA::ULong i = 0; - CORBA::Octet x = input[0]; - output[i] = x * x * x; -#endif -} - -// Shutdown. - -void Cubit_i::shutdown (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - - ACE_DEBUG ((LM_DEBUG, - "%s\n", - "Cubit_i is shutting down")); - - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} - -// Constructor - -Cubit_Shutdown_i::Cubit_Shutdown_i (const char *) -{ -} - -// Destructor - -Cubit_Shutdown_i::~Cubit_Shutdown_i (void) -{ -} - -void -Cubit_Shutdown_i::shutdown (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - - ACE_DEBUG ((LM_DEBUG, - "%s\n", - "Cubit_i is shutting down")); - - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} - diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.h b/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.h deleted file mode 100644 index bdaf66eeb1a..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/cubit_i.h +++ /dev/null @@ -1,117 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_H) -#define _CUBIT_I_H - -#include "cubitS.h" - -// Forward declarations. -class Cubit_i; - -// Typedefs. -typedef Cubit_i *Cubit_i_ptr; -typedef Cubit_i_ptr Cubit_i_ref; - -class Cubit_i : public POA_Cubit -{ - // = TITLE - // Illustrates how to integrate a servant with the generated - // skeleton. - // - // = DESCRIPTION - // Implementation of the cubit example at the servant side. - // Cubes an octet, short, long, struct and union. -public: - Cubit_i (const char *obj_name = 0); - // Constructor - - ~Cubit_i (void); - // Destructor - - virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - // Cube an octet - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - // Cube a short - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - // Cube a long - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - // Cube a struct. - - virtual Cubit::oneof cube_union (const Cubit::oneof &values, - CORBA::Environment &env); - // Cube a union. - - virtual void cube_sequence (const Cubit::vector &input, - Cubit::vector_out output, - CORBA::Environment &env); - // Cube a sequence. - - virtual void cube_raw (const Cubit::Raw &input, - Cubit::Raw_out output, - CORBA::Environment &_env); - // Cube an octet sequence. - - virtual void shutdown (CORBA::Environment &env); - // Shutdown routine. -}; - -class Cubit_Shutdown_i : public POA_Cubit_Shutdown -{ -public: - Cubit_Shutdown_i (const char *obj_name = 0); - // Constructor - - ~Cubit_Shutdown_i (void); - // Destructor - - virtual void shutdown (CORBA::Environment &env); - // Shutdown routine. -}; - -class Cubit_Factory_i; - -typedef Cubit_Factory_i *Cubit_Factory_i_ptr; - -class Cubit_Factory_i: public POA_Cubit_Factory -{ - // = TITLE - // Cubit_Factory_i - // - // = DESCRIPTION - // Factory object returning the cubit objrefs -public: - Cubit_Factory_i (void); - // Constructor. - - ~Cubit_Factory_i (void); - // Destructor. - - virtual Cubit_ptr make_cubit (const char *key, - CORBA::Environment &env); - // Make the cubit object whose key is "key". - -private: - Cubit_i my_cubit_; -}; - -#endif /* _CUBIT_I_H */ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/default.bld b/TAO/tests/Cubit/TAO/IDL_Cubit/default.bld deleted file mode 100644 index c678d14dca1..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/default.bld +++ /dev/null @@ -1,32 +0,0 @@ -#!build -default: - nobuild - :c_option=slashcomment - :cx_e_option=msgnumbers - :object_dir=./obj - :target=vxwppc - :cx_silent=21 - :cx_silent=191 - :cx_silent=610 - :sourcedirs=VME_DRV/src - :sourcedirs=VME_DRV/api/include - :sourcedirs=../../../../orbsvcs - :sourcedirs=/home/ace/ACE_wrappers.latest - :sourcedirs=../../../../tao/compat - :sourcedirs=../../../.. - :libdirs=VME_DRV/vmeXportu - :libdirs=../../../../orbsvcs - :libdirs=../../../../tao - :libdirs=/home/ace/ACE_wrappers.latest/ace - :libraries=vmeXportNoLogging.a - :libraries=orbsvcs.a - :libraries=tao.a - :libraries=libACE.a - :libraries=/appl/newgreen/vxppc603/ghsbltin.o - :defines=DEBUG - :defines=VME_DRIVER -client.bld - program -server.bld - program - :defines=USE_ACE_EVENT_HANDLING diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/run_test.pl b/TAO/tests/Cubit/TAO/IDL_Cubit/run_test.pl deleted file mode 100755 index 07044ac883d..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/run_test.pl +++ /dev/null @@ -1,39 +0,0 @@ -#!/pkg/gnu/bin/perl -I../../../../../bin -# -# If your perl installation isn't in /pkg/gnu/bin/perl, -# please make the change accordingly - -use Process; - -if ($^O eq "MSWin32") -{ - system ("ipconfig | find \"Address\">ipnum"); - - open (IPNUM, "ipnum"); - - read (IPNUM, $line, 80); - - ($junk, $ip1, $ip2, $ip3, $ip4) = split (/: (\d+)\.(\d+)\.(\d+)\.(\d+)/, $line); - - close IPNUM; - - system ("del /q ipnum"); - - $uid = $ip4; -} -else -{ - $uid = getpwnam (getlogin ()); -} - -$nsport = 20000 + $uid; -$client_port = 0; -$server_port = 0; -$iorfile = "cubit_ior"; - -$SV = Process::Create ("server".$Process::EXE_EXT, - "-ORBport ".$server_port." -ORBnameserviceport ".$nsport." -ORBobjrefstyle url"); - -sleep (2); - -system ("client".$Process::EXE_EXT." -x -ORBnameserviceport ".$nsport." -ORBport ".$client_port ); diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/server.bld b/TAO/tests/Cubit/TAO/IDL_Cubit/server.bld deleted file mode 100755 index 8fab8b0f590..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/server.bld +++ /dev/null @@ -1,12 +0,0 @@ -#!build -default: - program - :debuglevel=multi -cubit_i.cpp - C++ -cubitS.cpp - C++ -cubitC.cpp - C++ -server.cpp - C++ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/server.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/server.cpp deleted file mode 100644 index 7e91b8ad3cd..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/server.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// $Id$ - -#include "server_i.h" - -int -main (int argc, char *argv[]) -{ - Cubit_Server cubit_server; - - ACE_DEBUG ((LM_DEBUG, - "\n\tIDL_Cubit:SERVER\n\n")); - TAO_TRY - { - if (cubit_server.init (argc, argv, TAO_TRY_ENV) == -1) - return 1; - else - { - cubit_server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/server.dsp b/TAO/tests/Cubit/TAO/IDL_Cubit/server.dsp deleted file mode 100644 index 845e3615e78..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/server.dsp +++ /dev/null @@ -1,192 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=server - 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 "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 Release" -!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 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 ".\server\Release" -# PROP BASE Intermediate_Dir ".\server\Release" -# PROP BASE Target_Dir ".\server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir ".\server" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /YX /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D TAO_ORBSVCS_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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\tao\\" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\server\Debug" -# PROP BASE Intermediate_Dir ".\server\Debug" -# PROP BASE Target_Dir ".\server" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir ".\server" -# 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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D TAO_ORBSVCS_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 -# ADD LINK32 aced.lib TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" /libpath:"..\..\..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\cubit.idl -InputName=cubit - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\cubit_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# Begin Source File - -SOURCE=.\server_i.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\cubit_i.h -# End Source File -# Begin Source File - -SOURCE=.\cubitS.h -# End Source File -# Begin Source File - -SOURCE=.\server.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/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.cpp deleted file mode 100644 index 617dc3bd6c8..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.cpp +++ /dev/null @@ -1,162 +0,0 @@ -// $Id$ - -#include "server_i.h" - -Cubit_Server::Cubit_Server (void) - : num_of_objs_ (1), - use_naming_service_ (1), - ior_output_file_ (0) -{ -} - -int -Cubit_Server::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:o:s"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag. - TAO_debug_level++; - break; - case 'n': // number of cubit objects we export - this->num_of_objs_ = ACE_OS::atoi (get_opts.optarg); - break; - case 'o': // output the IOR to a file. - this->ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (this->ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 's': // Don't use the TAO Naming Service. - this->use_naming_service_=0; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] " - " [-o] " - " [-s]" - "\n", - argv_ [0]), - 1); - } - - // Indicates successful parsing of command line. - return 0; -} - -int -Cubit_Server::init (int argc, - char** argv, - CORBA::Environment& env) -{ - // Call the init of to initialize the ORB and - // create a child POA under the root POA. - if (this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init_child_poa"), - -1); - - TAO_CHECK_ENV_RETURN (env,-1); - this->argc_ = argc; - this->argv_ = argv; - - this->parse_args (); - // @@ Check for the return value here. - - CORBA::String_var str = - this->orb_manager_.activate_under_child_poa ("factory", - &this->factory_impl_, - env); - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - if (this->ior_output_file_) - { - ACE_OS::fprintf (this->ior_output_file_, - "%s", - str.in ()); - ACE_OS::fclose (this->ior_output_file_); - } - - if (this->use_naming_service_) - return this->init_naming_service (env); - - return 0; -} - -// Initialisation of Naming Service and register IDL_Cubit Context and -// cubit_factory object. - -int -Cubit_Server::init_naming_service (CORBA::Environment& env) -{ - int result; - CORBA::ORB_var orb; - PortableServer::POA_var child_poa; - - orb = this->orb_manager_.orb (); - child_poa = this->orb_manager_.child_poa (); - - result = this->my_name_server_.init (orb.in (), - child_poa.in ()); - if (result < 0) - return result; - factory = this->factory_impl_._this (env); - TAO_CHECK_ENV_RETURN (env,-1); - - CosNaming::Name cubit_context_name (1); - cubit_context_name.length (1); - cubit_context_name[0].id = CORBA::string_dup ("IDL_Cubit"); - this->cubit_context_ = - this->my_name_server_->bind_new_context (cubit_context_name, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - //Register the cubit_factory name with the IDL_Cubit Naming - //Context... - CosNaming::Name factory_name (1); - factory_name.length (1); - factory_name[0].id = CORBA::string_dup ("cubit_factory"); - this->cubit_context_->bind (factory_name, - factory.in (), - env); - TAO_CHECK_ENV_RETURN (env,-1); - - shutdown_ = this->shutdown_impl_._this (env); - TAO_CHECK_ENV_RETURN (env,-1); - - CosNaming::Name shutdown_name (1); - shutdown_name.length (1); - shutdown_name[0].id = CORBA::string_dup ("shutdown"); - this->cubit_context_->bind (shutdown_name, - shutdown_.in (), - env); - TAO_CHECK_ENV_RETURN (env,-1); - return 0; -} - -int -Cubit_Server::run (CORBA::Environment& env) -{ - if (this->orb_manager_.run (env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Cubit_Server::run"), - -1); - return 0; -} - -Cubit_Server::~Cubit_Server (void) -{ -} diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.h b/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.h deleted file mode 100644 index 64651873a2e..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/server_i.h +++ /dev/null @@ -1,106 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// This class implements a simple "cube" CORBA server for the Cubit -// example using skeletons generated by the TAO ORB IDL compiler. -// -// = AUTHORS -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_C_SERVER_H) -#define _C_SERVER_H - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "tao/TAO.h" -#include "orbsvcs/CosNamingC.h" -#include "cubit_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class Cubit_Server -{ - // = TITLE - // Defines a Cubit Server class that implements the functionality - // of a server process as an object. - // - // = DESCRIPTION - // The interface is quite simple. A server program has to call - // init to initialize the cubit_server's state and then call run - // to run the orb. -public: - // = Initialization and termination methods. - Cubit_Server (void); - // Default constructor - - ~Cubit_Server (void); - // Destructor - - int init (int argc, - char **argv, - CORBA::Environment& env); - // Initialize the Cubit_Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb - -private: - int parse_args (void); - // Parses the commandline arguments. - - int init_naming_service (CORBA::Environment &env); - // Initialises the name server and registers cubit factory with the - // name server. - - int num_of_objs_; - // Number of cubit objects we export. - - int use_naming_service_; - //Flag to tell server not to use the TAO Naming Service to register - //the cubit factory. - - FILE* ior_output_file_; - // File to output the cubit factory IOR. - - TAO_ORB_Manager orb_manager_; - // The ORB manager. - - TAO_Naming_Server my_name_server_; - // An instance of the name server used for registering the factory - // objects. - - Cubit_Factory_i factory_impl_; - // Implementation object of the cubit factory. - - Cubit_Factory_var factory; - // Factory_var to register with NamingService. - - Cubit_Shutdown_i shutdown_impl_; - // Implementation object of shutdown object. - - Cubit_Shutdown_var shutdown_; - - CosNaming::NamingContext_var cubit_context_; - // Naming context for the cubit_factory. - - CosNaming::NamingContext_var naming_context_; - // Naming context for the Naming Service. - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. -}; - -#endif /* _C_SERVER_H */ diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/svc.conf b/TAO/tests/Cubit/TAO/IDL_Cubit/svc.conf deleted file mode 100644 index 6eee002c688..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources tss" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp b/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp deleted file mode 100644 index 91836d349b2..00000000000 --- a/TAO/tests/Cubit/TAO/IDL_Cubit/tmplinst.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "cubitC.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw b/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test b/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test deleted file mode 100755 index f75e46c2bdf..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/MT_Cubit_Test +++ /dev/null @@ -1,61 +0,0 @@ -#! /bin/sh -# $Id$ -# -# Spawns MT_Cubit server and client executables on a single host. - -usage="usage: $0 [-n ] [-t] " - -user=`whoami` -ior_file=/tmp/MT_Cubit-ior.${user} -iterations=1000 -client_exec_prefix=time - -if [ "$HOSTTYPE" = "lynxos" ]; then - server_exec_prefix='prio 30' - tmp='/tmp/' -else - server_exec_prefix= - tmp= -fi - - -######## -######## Interpret command arguments. -######## -while getopts ?n:t arg; do - case $arg in - n ) iterations=$OPTARG ;; - t ) tmp='/tmp/' ;; - '?' ) echo $usage; exit 0 ;; - esac -done -shift `expr $OPTIND - 1` - -if [ $# -ne 1 ]; then - echo $usage - exit 1 -fi -threads=`expr $1 + 1` - - -######## -######## Enable signal handler. -######## -trap 'kill -1 $server_pid; /bin/rm -f $ior_file' 0 1 2 15 - - -######## -######## Start server and save its pid. -######## -$server_exec_prefix ./server -s -f $ior_file -t $threads > \ - ${tmp}server.log 2>&1 & -server_pid=$! - -sleep 4 - - -######## -######## Start client. -######## -$client_exec_prefix ./client -s -f $ior_file -t $threads -n $iterations > \ - ${tmp}client-${threads}.log 2>&1 diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/Makefile b/TAO/tests/Cubit/TAO/MT_Cubit/Makefile deleted file mode 100644 index 22163a681e8..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/Makefile +++ /dev/null @@ -1,103 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO $(MATHLIB) - -IDL_SRC = cubitC.cpp cubitS.cpp -PROG_SRCS = server.cpp \ - cubit_i.cpp \ - Task_Client.cpp \ - client.cpp \ - Util_Thread.cpp \ - tmplinst.cpp - -LSRC = $(IDL_SRC) $(PROG_SRCS) - -CUBIT_SVR_OBJS = \ - cubitC.o \ - cubitS.o \ - server.o \ - cubit_i.o \ - Task_Client.o \ - Util_Thread.o \ - tmplinst.o - -CUBIT_CLIENT_OBJS = \ - cubitC.o \ - cubitS.o \ - Task_Client.o \ - client.o \ - Util_Thread.o \ - tmplinst.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 modifications to variables imported by includes above. -#CPPFLAGS += -DACE_NLOGGING - -#CXX := purify $(CXX) - -LDFLAGS += -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/tao/compat - -# pccTimer will eventually get integrated into ACE. It is specific for ClassiX on VME -ifdef CHORUS - LSRC += pccTimer.cpp - CUBIT_CLIENT_OBJS += pccTimer.o - CUBIT_SVR_OBJS += pccTimer.o - LDLIBS += -lOrb -else - LDLIBS += -lOrb-mt -endif - -# -ifdef quantify - CPPFLAGS += -I/pkg/purify/quantify-3.0-solaris2 -endif - -.PRECIOUS: cubitC.h cubitC.i cubitC.cpp cubitS.h cubitS.i cubitS.cpp - -server: $(addprefix $(VDIR),$(CUBIT_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CUBIT_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf cubitC.* cubitS.* cubitS_T.* - -# 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/TAO/tests/Cubit/TAO/MT_Cubit/README b/TAO/tests/Cubit/TAO/MT_Cubit/README deleted file mode 100644 index e0b79a019f3..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/README +++ /dev/null @@ -1,206 +0,0 @@ -// $Id$ - -The MT-Cubit example --------------------- - -COMPILING ---------- - -Makefile is provided. Use make to compile. Except, see below for -VxWorks-specific instructions for building the client. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - - -OPTIONS -------- -Options are case sensitive, e.g., "-U" has a different meaning than "-u". - - -(1) server: - -./server [-p ] // starting port - [-h ] // IP address to use - [-t ] // # of servant threads to create - [-s ] // Do NOT use the naming service - [-f ] // specify a file to output all ior's - [-m ] // Use multiple priorities for threads - [-U ] // Run the server utilization test - // use the same option on the client - [-r ] // Run the thread-per-rate test - -[-p ] is the port number at which the server will start the - first (and highest priority) servant. Successive servants will be - created starting at (port_num+1). The -t parameter specifies the total - number of servants. - - Default Value: ACE_DEFAULT_SERVER_PORT /* see $ACE/ace/OS.h for actual number value */ - -[-h ] indicates the IP address the ORB should bind to. - This is useful when a machine has more than one network interface. - - Default Value: Whatever ACE_OS::hostname () returns, which depends on the platform. - -[-t ] tells the server how many servants to create. - - Default Value: 2 - -[-s ] Disables the use of the naming service to register the servants. - - Default Value: Use naming service enabled. - -[-f ] Use to specify a file to write all the iors from the - different servants out to disk. - - Default Value: nil, which means not to write the iors to disk. - -[-m ] For the 1 to n low priority servants, this parameter indicates - the use of a range of priorities for the threads. - - Default Value: Disabled. One priority will be used for the - low priority threads. - -[-U ] Run the server utilization test. This option overrides the "-t" - option. This option sets the number threads to one. NOTE: to use - this option successfully, you should also use "-U" on the client - side. - - Default Value: Disabled. To enable, specify "-U" on the - command line. - -[-r] turn on the thread-per-rate tests. (Priority inversion tests) - - Default Value: Disabled. - -The server will print the IOR of the servants, but it is not required -by the client. - - - -(2) client: - -./client [] // ORB options, e.g., "-ORBobjrefstyle url" - [-d ] // what datatype to use for calls - [-n ] // number of CORBA calls to make. - [-t ] // number of client threads to create - [-f ] // specify a file to dump the iors - [-r] // use thread-per-rate test. - [-o] // makes client use oneway calls instead - [-x] // makes a call to servant to shutdown - [-u ] // run the client utilization test for seconds - [-U ] // run the servant utilization test for seconds - [-1] // use one to n test. - [-g ] // choose the granularity of timing calls - [-c] // obtain number of context switches. - [-s] // makes client *NOT* use the name service - [-m] // use multiple priorities for the low priority client. - -[-d ] is one of the following: - - 0 Octet - 1 Short - 2 Long - 3 Struct of the above 3 types - - Default Value: 0 - -[-n ] is the number of CORBA twoway calls to be made - - Default Value: 1000 - -[-t ] is the total number of concurrent clients to be - created. The clients will have successively decreasing - priorities if "-m" is specified. - - Default Value: 2 - -[-f ] Use to specify a file to write all the iors from the - different servants out to disk. - - Default Value: nil, which means not to write the iors to disk. - -[-r] turn on the thread-per-rate tests. (Priority inversion tests) - - Default Value: Disabled. - -[-o] enables oneway calls instead of two-way calls. The oneway call - is a noop call (for now). - - Default Value: Disabled - -[-x] makes the client call the shutdown() method on the servant which - invokes the shutdown() method on the ORB and causes it to exit. - - Default Value: Disabled - -[-u] runs the client utilization test. This option overrides the "-t" - option to specify one client. - - Default Value: Disabled - -[-U] runs the *servant* utilization test. This option should be used - in conjunction with the server's "-U" option. - - Default Value: Disabled - -[-1] runs one to n test. One servant services all low priority clients. - - Default Value: Disabled - -[-g ] choose the granularity of timing the CORBA calls. - This option should disappear sometime in the future, together with - all the modifications done to support this. - - What happens when this options is not used, is that (1) we start a - timer, (2) invoke the CORBA call, (3) stop the timer after call - returns. Some platforms have a very coarse grain timer (e.g. 10 - msec) and timing individual calls does not report very accurate - latency results. - - This option enables a way to (1) start the timer, (2) invoke - calls, and (3) stop the timer. This way, we get a - better sense of the average latency of the CORBA calls. - - The downside is that the mechanism to enforce the frequency of calls - (i.e., 20 Hz, 10Hz, etc) is in conflict with this option. Such - mechanism depends on the individual time for each call to enforce - the calling frequency. - - Default Value: 1 (time each CORBA call) - -[-c] Obtain number of context switches. - - Default Value: Disabled - -[-s] Makes client *NOT* use the name service - - Default Value: Disabled. Will try to use the naming service. - -[-m] Use multiple priorities for the low priority client - - Default Value: Disabled. Will use one priority for all low priority clients. - - -VXWORKS specifics ------------------ - -To build the client for VxWorks, for running the server and client -on a single target: - - % make BIN=client ACELIB= LDLIBS="$ACE_ROOT/ace/.obj/High_Res_Timer.o $ACE_ROOT/ace/.obj/gethrtime.o $ACE/ace/.obj/Stats.o $ACE/ace/.obj/Log_Msg.o" - -To run the server and client on a single target: - - -> iam "" - -> ld < server - -> ld < client - -> spa server, "-s", "-f", "ior.txt", "-t", "2" - -> spa client, "-s", "-f", "ior.txt", "-t", "2", "-n", "1000" - -RESULTS -------- - -The client prints the latency observed by the high priority client, -and the average latency observed by the low priority clients. Jitter -(standard deviation of the latency) is also printed by the client. diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/README.tests b/TAO/tests/Cubit/TAO/MT_Cubit/README.tests deleted file mode 100644 index c05572a1019..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/README.tests +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -Note: this file is in very rough version. Updates are coming soon. - -Server Utilization Test ------------------------ -on the server side: - ./server -s -f /project/doc/sergio/ior -U - -on the client side: - ./client -s -f /project/doc/sergio/ior -U 60 - -Client Utilization Test ------------------------ -on the server side: - ./server -s -f /project/doc/sergio/ior -t 1 - -on the client side: - ./client -s -f /project/doc/sergio/ior -u 60 - -NOTE: before running the client side, edit the ior file and replace -the ip address to make it have it's numeric form. - - -Latency Test ------------------------- --- configuration: - (1) su to root when running Solaris or LynxOS. - (2) Make yourself an Administrator in Windows NT - -on the server side: - ./server -s -f ior -t 2 & -on the client side: - ./client -s -f ior -t 2 -n 4000 -x - -NOTE: run_same is a script that automates the running of the latency -tests. This script output everything to a file. - -Context Switch Test -------------------- -Use the same arguments as the latency test, and add "-c" - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.cpp deleted file mode 100644 index 29cb263d76d..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.cpp +++ /dev/null @@ -1,1062 +0,0 @@ -// $Id$ - -#include "Task_Client.h" -#include "ace/Stats.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -Task_State::Task_State (int argc, char **argv) - : key_ ("Cubit"), - loop_count_ (1000), - thread_count_ (2), - datatype_ (CB_OCTET), - argc_ (argc), - argv_ (argv), - thread_per_rate_ (0), - global_jitter_array_ (0), - shutdown_ (0), - oneway_ (0), - use_name_service_ (1), - one_to_n_test_ (0), - context_switch_test_ (0), - ior_file_ (0), - granularity_ (1), - use_utilization_test_ (0), - high_priority_loop_count_ (0), - use_multiple_priority_ (0), - utilization_task_started_ (0), - run_server_utilization_test_ (0), - util_time_ (0) -{ - ACE_Get_Opt opts (argc, argv, "U:mu:sn:t:d:rxof:g:1c"); - int c; - int datatype; - - while ((c = opts ()) != -1) - switch (c) { - case 'g': - granularity_ = ACE_OS::atoi (opts.optarg); - if (granularity_ < 1) - granularity_ = 1; - break; - case 'U': - run_server_utilization_test_ = 1; - util_time_ = ACE_OS::atoi (opts.optarg); - break; - case 'm': - use_multiple_priority_ = 1; - break; - case 'c': - context_switch_test_ = 1; - break; - case '1': - one_to_n_test_ = 1; - break; - case 'u': - use_utilization_test_ = 1; - util_time_ = ACE_OS::atoi (opts.optarg); - break; - case 's': - use_name_service_ = 0; - break; - case 'f': - ior_file_ = ACE_OS::strdup (opts.optarg); - break; - case 'o': - oneway_ = 1; - break; - case 'x': - shutdown_ = 1; - break; - case 'r': - thread_per_rate_ = 1; - break; - case 'd': - datatype = ACE_OS::atoi (opts.optarg); - switch (datatype) - { - case CB_OCTET: - ACE_DEBUG ((LM_DEBUG, "Testing Octets\n")); - datatype_ = CB_OCTET; - break; - case CB_LONG: - ACE_DEBUG ((LM_DEBUG, "Testing Longs\n")); - datatype_ = CB_LONG; - break; - case CB_STRUCT: - ACE_DEBUG ((LM_DEBUG, "Testing Structs\n")); - datatype_ = CB_STRUCT; - break; - case CB_SHORT: - default: - ACE_DEBUG ((LM_DEBUG, "Testing Shorts\n")); - datatype_ = CB_SHORT; - break; - } - continue; - case 'n': // loop count - loop_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case 't': - thread_count_ = (u_int) ACE_OS::atoi (opts.optarg); - continue; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, "usage: %s" - "[-d datatype Octet=0, Short=1, Long=2, Struct=3]" - " [-n num_calls]" - " [-t num_threads]" - " [-f ior_file]" - " [-x] // makes a call to servant to shutdown" - " [-o] // makes client use oneway calls instead" - " [-s] // makes client *NOT* use the name service" - " [-g granularity_of_timing]" - "\n", argv [0])); - } - - if (thread_per_rate_ == 1) - thread_count_ = 4; - - if (run_server_utilization_test_ == 1) - { - shutdown_ = 1; - thread_count_ = 1; - datatype_ = CB_OCTET; - } - - if (use_utilization_test_ == 1) - { - thread_count_ = 1; - } - - // allocate the array of character pointers. - ACE_NEW (iors_, - char *[thread_count_]); - - if (ior_file_ != 0) - { - FILE *ior_file = ACE_OS::fopen (ior_file_, "r"); - char buf[BUFSIZ]; - u_int i = 0; - int j = 0; - - while (ACE_OS::fgets (buf, BUFSIZ, ior_file) != 0 && i < thread_count_) - { - j = ACE_OS::strlen (buf); - buf[j - 1] = 0; // this is to delete the "\n" that was read from the file. - iors_[i] = ACE_OS::strdup (buf); - i++; - } - - ACE_OS::fclose (ior_file); - } - - // thread_count_ + 2 because there is one utilization thread also - // wanting to begin at the same time the clients begin && the main - // thread wants to know when clients will start running to get - // accurate context switch numbers. - if (thread_per_rate_ == 0) - { - if (use_utilization_test_ == 1) - // If we are to use the utilization test, include it in the - // barrier count. See description of this variable in header - // file. - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_ + 2)); - } - else - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_ + 1)); - } - } - else - { - ACE_NEW (barrier_, - ACE_Barrier (thread_count_)); - } - - ACE_NEW (semaphore_, - ACE_Thread_Semaphore (0)); - ACE_NEW (latency_, - double [thread_count_]); - ACE_NEW (global_jitter_array_, - double *[thread_count_]); - ACE_NEW (count_, - u_int [thread_count_]); -} - -Client::Client (ACE_Thread_Manager *thread_manager, Task_State *ts, u_int id) - : ACE_MT (ACE_Task (thread_manager)), - ts_ (ts), - id_ (id) -{ -} - -void -Client::put_latency (double *jitter, - double latency, - u_int thread_id, - u_int count) -{ - ACE_MT (ACE_GUARD (ACE_SYNCH_MUTEX, ace_mon, ts_->lock_)); - - ts_->latency_[thread_id] = latency; - ts_->global_jitter_array_[thread_id] = jitter; - ts_->count_[thread_id] = count; - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %u msec\n", - latency)); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) My latency was %f msec\n", - latency)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ -} - -double -Client::get_high_priority_latency (void) -{ - return (double) ts_->latency_ [0]; -} - -double -Client::get_low_priority_latency (void) -{ - if (ts_->thread_count_ == 1) - return 0; - - double l = 0; - - for (u_int i = 1; i < ts_->thread_count_; i++) - l += (double) ts_->latency_[i]; - - return l / (double) (ts_->thread_count_ - 1); -} - -double -Client::get_latency (u_int thread_id) -{ - return ACE_static_cast (double, ts_->latency_ [thread_id]); -} - -double -Client::get_high_priority_jitter (void) -{ - double jitter = 0.0; - double average = get_high_priority_latency (); - double number_of_samples = ts_->high_priority_loop_count_ / ts_->granularity_; - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences - // each latency has from the average - for (u_int i = 0; i < number_of_samples; i ++) - { - double difference = - ts_->global_jitter_array_ [0][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [0][i] * 1000 + 0.5)); - } - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - - ACE_OS::fprintf (stderr, "high priority jitter:\n"); - stats.print_summary (3, 1000, stderr); - - return sqrt (jitter / (number_of_samples - 1)); -} - -double -Client::get_low_priority_jitter (void) -{ - if (ts_->thread_count_ == 1) - return 0; - - double jitter = 0.0; - double average = get_low_priority_latency (); - double number_of_samples = 0; - //(ts_->thread_count_ - 1) * (ts_->loop_count_ / ts_->granularity_); - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences each - // latency has from the average. - for (u_int j = 1; j < ts_->thread_count_; j ++) - { - number_of_samples += ts_->count_[j]; - for (u_int i = 0; i < ts_->count_[j] / ts_->granularity_; i ++) - { - double difference = - ts_->global_jitter_array_[j][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [j][i] * 1000 + 0.5)); - } - } - - ACE_OS::fprintf (stderr, "low priority jitter:\n"); - stats.print_summary (3, 1000, stderr); - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter / (number_of_samples - 1)); -} - -double -Client::get_jitter (u_int id) -{ - double jitter = 0.0; - double average = get_latency (id); - double number_of_samples = ts_->count_[id] / ts_->granularity_; - - // Compute the standard deviation (i.e. jitter) from the values - // stored in the global_jitter_array_. - - ACE_Stats stats; - - // We first compute the sum of the squares of the differences each - // latency has from the average. - for (u_int i = 0; i < ts_->count_[id] / ts_->granularity_; i ++) - { - double difference = - ts_->global_jitter_array_[id][i] - average; - jitter += difference * difference; - stats.sample ((ACE_UINT32) (ts_->global_jitter_array_ [id][i] * 1000 + 0.5)); - } - - ACE_OS::fprintf (stderr, "jitter for thread id %d:\n", id); - stats.print_summary (3, 1000, stderr); - - // Return the square root of the sum of the differences computed - // above, i.e. jitter. - return sqrt (jitter / (number_of_samples - 1)); -} - -int -Client::svc (void) -{ - Cubit_ptr cb = 0; - CORBA::ORB_var orb; - CORBA::Object_var objref (0); - CORBA::Object_var naming_obj (0); - CORBA::Environment env; - - double frequency = 0.0; - - /// Add "-ORBobjrefstyle url" argument to the argv vector for the - //orb to / use a URL style to represent the ior. - - // Convert the argv vector into a string. - ACE_ARGV tmp_args (ts_->argv_); - char tmp_buf[BUFSIZ]; - - ACE_OS::strcpy (tmp_buf, - tmp_args.buf ()); - - // Add the argument. - ACE_OS::strcat (tmp_buf, - " -ORBobjrefstyle url " - " -ORBrcvsock 32768 " - " -ORBsndsock 32768 "); - - // Convert back to argv vector style. - ACE_ARGV tmp_args2 (tmp_buf); - int argc = tmp_args2.argc (); - - char *const *argv = tmp_args2.argv (); - - u_int naming_success = CORBA::B_FALSE; - - orb = CORBA::ORB_init (argc, - argv, - "internet", - env); - - if (env.exception () != 0) - { - env.print_exception ("ORB_init()\n"); - return -1; - } - - if (ts_->use_name_service_ != 0) - { - naming_obj = - orb->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n")); - else - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), env); - } - - { - ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, ts_->lock_, -1)); - - if (ts_->thread_per_rate_ == 0) - { - if (this->id_ == 0) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm the high priority client, my id is %d.\n", - this->id_)); - frequency = CB_HIGH_PRIORITY_RATE; - } - else - { - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a low priority client, my id is %d.\n", - this->id_)); - frequency = CB_LOW_PRIORITY_RATE; - } - } - else - switch (this->id_) - { - case CB_20HZ_CONSUMER: - frequency = CB_20HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_20HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_10HZ_CONSUMER: - frequency = CB_10HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_10HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_5HZ_CONSUMER: - frequency = CB_5HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_5HZ_CONSUMER_RATE, - this->id_)); - break; - case CB_1HZ_CONSUMER: - frequency = CB_1HZ_CONSUMER_RATE; - ACE_DEBUG ((LM_DEBUG, - "(%t) I'm a %u Hz frequency client, " - "my id is %u.\n", - CB_1HZ_CONSUMER_RATE, - this->id_)); - break; - default: - ACE_DEBUG ((LM_DEBUG, "(%t) Invalid Thread ID!!!!\n", this->id_)); - } - - TAO_TRY - { - // if the naming service was resolved successsfully ... - if (!CORBA::is_nil (this->naming_context_.in ())) - { - ACE_DEBUG ((LM_DEBUG, - " (%t) ----- Using the NameService resolve() method" - " to get cubit objects -----\n")); - - // Construct the key for the name service lookup. - CosNaming::Name mt_cubit_context_name (1); - mt_cubit_context_name.length (1); - mt_cubit_context_name[0].id = CORBA::string_dup ("MT_Cubit"); - - objref = - this->naming_context_->resolve (mt_cubit_context_name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->mt_cubit_context_ = - CosNaming::NamingContext::_narrow (objref.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - char *buffer; - int l = ACE_OS::strlen (ts_->key_) + 3; - ACE_NEW_RETURN (buffer, - char[l], - -1); - - ACE_OS::sprintf (buffer, - "%s%02d", - (char *) ts_->key_, - this->id_); - - // Construct the key for the name service lookup. - CosNaming::Name cubit_name (1); - cubit_name.length (1); - cubit_name[0].id = CORBA::string_dup (buffer); - - objref = this->mt_cubit_context_->resolve (cubit_name, - TAO_TRY_ENV); - - if (TAO_TRY_ENV.exception () != 0 - || CORBA::is_nil (objref.in ())) - { - ACE_DEBUG ((LM_DEBUG, - " (%t) resolve() returned nil\n")); - TAO_TRY_ENV.print_exception ("Attempt to resolve() a cubit object" - "using the name service Failed!\n"); - } - else - { - naming_success = CORBA::B_TRUE; - ACE_DEBUG ((LM_DEBUG, - " (%t) Cubit object resolved to the name \"%s\".\n", - buffer)); - } - } - - if (naming_success == CORBA::B_FALSE) - { - char *my_ior = ts_->iors_[this->id_]; - - // if we are running the "1 to n" test make sure all low - // priority clients use only 1 low priority servant. - if (this->id_ > 0 && ts_->one_to_n_test_ == 1) - my_ior = ts_->iors_[1]; - - if (my_ior == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Must specify valid factory ior key with -k option," - " naming service, or ior filename\n"), - -1); - - objref = orb->string_to_object (my_ior, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - - if (CORBA::is_nil (objref.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%t) string_to_object or NameService->resolve() Failed!\n"), - -1); - - // Narrow the CORBA::Object reference to the stub object, - // checking the type along the way using _is_a. - cb = Cubit::_narrow (objref.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (cb)) - ACE_ERROR_RETURN ((LM_ERROR, - "Create cubit failed\n"), - 1); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Binding succeeded\n")); - - CORBA::String_var str = - orb->object_to_string (cb, TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, - "(%t) CUBIT OBJECT connected <%s>\n", - str.in ())); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Waiting for other threads to " - "finish binding..\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("get_object"); - return 1; - } - TAO_ENDTRY; - } - - // Wait for all the client threads to be initialized before going - // any further. - ts_->barrier_->wait (); - ACE_DEBUG ((LM_DEBUG, - "(%t) Everyone's done, here I go!!\n")); - - if (ts_->oneway_ == 1) - ACE_DEBUG ((LM_DEBUG, - "(%t) **** USING ONEWAY CALLS ****\n")); - - // Perform the tests. - int result = this->run_tests (cb, - ts_->loop_count_, - this->id_, - ts_->datatype_, - frequency); - - if (ts_->thread_per_rate_ == 1 && this->id_ == (ts_->thread_count_ - 1) ) - ts_->semaphore_->release (ts_->thread_count_ - 1); - else - ts_->semaphore_->release (); - - if (result == -1) - return -1; - - if (ts_->shutdown_) - { - ACE_DEBUG ((LM_DEBUG, - "(%t) CALLING SHUTDOWN() ON THE SERVANT\n")); - cb->shutdown (env); - if (env.exception () != 0) - { - ACE_ERROR ((LM_ERROR, - "Shutdown of the server failed!\n")); - env.print_exception ("shutdown() call failed.\n"); - } - } - - return 0; -} - -int -Client::run_tests (Cubit_ptr cb, - u_int loop_count, - u_int thread_id, - Cubit_Datatypes datatype, - double frequency) -{ - CORBA::Environment env; - u_int i = 0; - u_int call_count = 0; - u_int error_count = 0; - u_int low_priority_client_count = ts_->thread_count_ - 1; - double *my_jitter_array; - - if (id_ == 0 && ts_->thread_count_ > 1) - ACE_NEW_RETURN (my_jitter_array, - double [(loop_count/ts_->granularity_)*30], // magic number, for now. - -1); - else - ACE_NEW_RETURN (my_jitter_array, - double [loop_count/ts_->granularity_*15], - -1); - - double latency = 0; - double sleep_time = (1 / frequency) * ACE_ONE_SECOND_IN_USECS * ts_->granularity_; // usec - double delta = 0; - - // time to wait for utilization tests to know when to stop. - ACE_Time_Value max_wait_time (ts_->util_time_, 0); - ACE_Countdown_Time countdown (&max_wait_time); - -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; -#endif /* CHORUS */ - double real_time = 0.0; - - ACE_High_Res_Timer timer_; - - // Make the calls in a loop. - - for (i = 0; - // keep running for loop count, OR - i < loop_count || - // keep running if we are the highest priority thread and at - // least another lower client thread is running, OR - (id_ == 0 && ts_->thread_count_ > 1) || - // keep running if test is thread_per_rate and we're not the - // lowest frequency thread. - (ts_->thread_per_rate_ == 1 && id_ < (ts_->thread_count_ - 1)) || - // continous loop if we are running the utilization test - (ts_->use_utilization_test_ == 1) || - // continous loop if we are running the SERVER utilization test - (ts_->run_server_utilization_test_ == 1); - i++) - { - // Elapsed time will be in microseconds. - ACE_Time_Value delta_t; - - // start timing a call - if ( (i % ts_->granularity_) == 0 && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { - // delay a sufficient amount of time to be able to enforce - // the calling frequency (i.e., 20Hz, 10Hz, 5Hz, 1Hz). - ACE_Time_Value tv (0, - (u_long) ((sleep_time - delta) < 0 - ? 0 - : (sleep_time - delta))); - ACE_OS::sleep (tv); - -#if defined (CHORUS) - pstartTime = pccTime1Get(); -#else /* CHORUS */ - timer_.start (); -#endif /* !CHORUS */ - } - - if (ts_->oneway_ == 0) - { - switch (datatype) - { - case CB_OCTET: - { - // Cube an octet. - CORBA::Octet arg_octet = func (i), ret_octet = 0; - -#if defined (NO_ACE_QUANTIFY) - /* start recording quantify data from here */ - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - ret_octet = cb->cube_octet (arg_octet, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_octet()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_octet = arg_octet * arg_octet * arg_octet; - - if (arg_octet != ret_octet) - { - ACE_ERROR ((LM_ERROR, - "** cube_octet(%d) (--> %d)\n", - arg_octet, - ret_octet)); - error_count++; - } - call_count++; - break; - } - case CB_SHORT: - // Cube a short. - { - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_short = cb->cube_short (arg_short, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_short()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_short = arg_short * arg_short * arg_short; - - if (arg_short != ret_short) - { - ACE_ERROR ((LM_ERROR, - "** cube_short(%d) (--> %d)\n", - arg_short , - ret_short)); - error_count++; - } - break; - } - // Cube a long. - - case CB_LONG: - { - call_count++; - - CORBA::Long arg_long = func (i); - CORBA::Long ret_long; - -#if defined (NO_ACE_QUANTIFY) - /* start recording quantify data from here */ - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_long = cb->cube_long (arg_long, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_long()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "%s:Call failed\n", - env.exception ()), - 2); - } - - arg_long = arg_long * arg_long * arg_long; - - if (arg_long != ret_long) - { - ACE_ERROR ((LM_ERROR, - "** cube_long(%d) (--> %d)\n", - arg_long, - ret_long)); - error_count++; - } - break; - } - - case CB_STRUCT: - // Cube a "struct" ... - { - Cubit::Many arg_struct, ret_struct; - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - - ret_struct = cb->cube_struct (arg_struct, env); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (env.exception () != 0) - { - env.print_exception ("call to cube_struct()\n"); - ACE_ERROR_RETURN ((LM_ERROR,"%s:Call failed\n", env.exception ()), 2); - } - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - ACE_ERROR ((LM_ERROR, "**cube_struct error!\n")); - error_count++; - } - - break; - } - default: - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t); %s:%d; unexpected datatype: %d\n", - datatype), -1); - } - } - else - { - call_count++; -#if defined (NO_ACE_QUANTIFY) - // start recording quantify data from here. - quantify_start_recording_data (); -#endif /* NO_ACE_QUANTIFY */ - cb->noop (env); -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - if (env.exception () != 0) - { - env.print_exception ("oneway call noop()\n"); - ACE_ERROR_RETURN ((LM_ERROR, - "(%t) noop() call failed\n"), - 2); - } - } - - // stop the timer - if ( (i % ts_->granularity_) == (ts_->granularity_ - 1) && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { -#if defined (CHORUS) - pstopTime = pccTime1Get(); -#else /* CHORUS */ - // if CHORUS is not defined just use plain timer_.stop (). - timer_.stop (); - timer_.elapsed_time (delta_t); -#endif /* !CHORUS */ - - // Calculate time elapsed -#if defined (ACE_LACKS_FLOATING_POINT) -# if defined (CHORUS) - real_time = (pstopTime - pstartTime) / ts_->granularity_; -# else /* CHORUS */ - // Store the time in usecs. - real_time = (delta_t.sec () * ACE_ONE_SECOND_IN_USECS + - delta_t.usec ()) / ts_->granularity_; -# endif /* !CHORUS */ - delta = ((40 * fabs (real_time) / 100) + (60 * delta / 100)); // pow(10,6) - latency += real_time * ts_->granularity_; - my_jitter_array [i/ts_->granularity_] = real_time; // in units of microseconds. - // update the latency array, correcting the index using the granularity -#else /* ACE_LACKS_FLOATING_POINT */ - - // Store the time in secs. - -#if defined (VXWORKS) - // @@ David, these comments are to temporarily fix what - // seems a bug in the ACE_Long_Long class that is used to - // calc the elapsed time. It seems that subtraction of two - // ACE_Long_Long are not done correctly when the least - // significant value has wrapped around. For example to - // subtract these values: 00ff1001:00000001 minus - // 00ff1000:ffffffff would give a huge number, instead of - // giving 2. - - // This is only occuring in VxWorks. - // I'll leave these here to debug it later. - double tmp = (double)delta_t.sec (); - double tmp2 = (double)delta_t.usec (); - if (tmp > 100000) - { - tmp = 0.0; - tmp2 = 2000.0; - fprintf (stderr, "tmp > 100000!, delta_t.usec ()=%u\n", delta_t.usec ()); - } - - real_time = tmp + tmp2 / (double)ACE_ONE_SECOND_IN_USECS; -#else - real_time = ((double) delta_t.sec () + - (double) delta_t.usec () / (double) ACE_ONE_SECOND_IN_USECS); -#endif /* VXWORKS */ - - real_time /= ts_->granularity_; - - delta = ((0.4 * fabs (real_time * ACE_ONE_SECOND_IN_USECS)) + (0.6 * delta)); // pow(10,6) - latency += (real_time * ts_->granularity_); - my_jitter_array [i/ts_->granularity_] = real_time * ACE_ONE_SECOND_IN_MSECS; -#endif /* !ACE_LACKS_FLOATING_POINT */ - } // END OF IF : - // if ( (i % ts_->granularity_) == (ts_->granularity_ - 1) && - // (ts_->use_utilization_test_ == 0) && - // (ts_->run_server_utilization_test_ == 0) - // ) - - if ( ts_->thread_per_rate_ == 1 && id_ < (ts_->thread_count_ - 1) ) - { - if (ts_->semaphore_->tryacquire () != -1) - break; - } - else - // if We are the high priority client. - // if tryacquire() succeeded then a client must have done a - // release () on it, thus we decrement the client counter. - if (id_ == 0 && ts_->thread_count_ > 1) - { - if (ts_->semaphore_->tryacquire () != -1) - { - low_priority_client_count --; - // if all clients are done then break out of loop. - if (low_priority_client_count <= 0) - break; - } - } - - if (ts_->use_utilization_test_ == 1 || - ts_->run_server_utilization_test_ == 1) - { - countdown.update (); - if (max_wait_time == ACE_Time_Value::zero) - { - ts_->loop_count_ = call_count; - break; - } - } - - } /* end of for () */ - - if (id_ == 0) - ts_->high_priority_loop_count_ = call_count; - - // perform latency stats onlt if we are not running the utilization - // tests. - if (call_count > 0 && - (ts_->use_utilization_test_ == 0) && - (ts_->run_server_utilization_test_ == 0) - ) - { - if (error_count == 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - double calls_per_second = (call_count * ACE_ONE_SECOND_IN_USECS) / latency; -#endif /* ACE_LACKS_FLOATING_POINT */ - - latency /= call_count; // calc average latency - - if (latency > 0) - { -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) cube average call ACE_OS::time\t= %u usec, \t" - "%u calls/second\n", - latency, - calls_per_second)); - - this->put_latency (my_jitter_array, - latency, - thread_id, - call_count); -#else - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) cube average call ACE_OS::time\t= %f msec, \t" - "%f calls/second\n", - latency * 1000, - 1 / latency)); - - this->put_latency (my_jitter_array, - latency * ACE_ONE_SECOND_IN_MSECS, - thread_id, - call_count); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - else - { - // still we have to call this function to store a valid array pointer. - this->put_latency (my_jitter_array, - 0, - thread_id, - call_count); - - ACE_DEBUG ((LM_DEBUG, - "*** Warning: Latency, %f, is less than or equal to zero." - " Precision may have been lost.\n, latency")); - } - } - ACE_DEBUG ((LM_DEBUG, - "%d calls, %d errors\n", - call_count, - error_count)); - } - - return 0; -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.h b/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.h deleted file mode 100644 index 27dfc1195c2..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/Task_Client.h +++ /dev/null @@ -1,264 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Task_Client.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (TASK_CLIENT_H) -#define TASK_CLIENT_H - -#include "ace/Synch.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include "ace/ARGV.h" -#include "ace/Sched_Params.h" -#include "ace/High_Res_Timer.h" - -#include "orbsvcs/CosNamingC.h" -#include "cubitC.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#include - -// @@ Should we put this into a more general file, e.g., OS.h? -// -// I will integrate this, together with the sqrt() function when -// the implementation is complete. --Sergio. -#if defined (ACE_LACKS_FLOATING_POINT) -#define double ACE_UINT32 -#define fabs(X) ((X) >= 0 ? (X) : -(X)) -// the following is just temporary, until we finish the sqrt() -// implementation. -#define sqrt(X) (1) -#endif /* ACE_LACKS_FLOATING_POINT */ - -#if !defined (ACE_HAS_THREADS) -class NOOP_ACE_Barrier -{ -public: - NOOP_ACE_Barrier (int) {} - void wait (void) {} -}; -#define ACE_Barrier NOOP_ACE_Barrier -#endif /* ACE_HAS_THREADS */ - -// Arbitrary generator used by the client to create the numbers to be -// cubed. -static inline int -func (u_int i) -{ - return i - 117; -} - -enum Cubit_Datatypes -{ - // = The various datatypes the client and the server can exchange. - CB_OCTET, - CB_SHORT, - CB_LONG, - CB_STRUCT, - - // = Rate constants. - CB_20HZ_CONSUMER = 0, - CB_10HZ_CONSUMER = 1, - CB_5HZ_CONSUMER = 2, - CB_1HZ_CONSUMER = 3, - - CB_20HZ_CONSUMER_RATE = 20, - CB_10HZ_CONSUMER_RATE = 10, - CB_5HZ_CONSUMER_RATE = 5, - CB_1HZ_CONSUMER_RATE = 1, - - CB_HIGH_PRIORITY_RATE = 20, - CB_LOW_PRIORITY_RATE = 10 -}; - -class Task_State -{ - // = TITLE - // Maintains state common to multiple Cubit clients. - // - // = DESCRIPTION - // This class maintains state which is common to the potentially - // multiple concurrent clients. -public: - ACE_Barrier *barrier_; - // Barrier for the multiple clients to synchronize after binding to - // the servants. - - Task_State (int argc, char **argv); - // Constructor. Takes the command line arguments, which are later - // passed into ORB_init. - - CORBA::String key_; - // All cubit objects will have this as prefix to its key. - - u_int loop_count_; - // Number of times to loop, making calls. - - u_int thread_count_; - // Number of concurrent clients to create. - - double *latency_; - // Array to store the latency for every client, indexed by - // thread-id. - - int *ave_latency_; - // Int array to store the latencies. - - Cubit_Datatypes datatype_; - // Which datatype to use to make the calls. - - ACE_SYNCH_MUTEX lock_; - // Lock to protect access to this object. - - // = Command line arguments. - int argc_; - char **argv_; - - u_int thread_per_rate_; - // Flag for the thread_per_rate test. - - double **global_jitter_array_; - // This array stores the latency seen by each client for each - // request, to be used later to compute jitter. - - u_int *count_; - // This array stores the call count of each thread. They will not - // always have the same call count. - - u_int shutdown_; - // Flag that indicates if we are going to call the shutdown methos - // for the servant. - - u_int oneway_; - // Flag that indicates if we are going to use oneway calls instead - // of two-way. - - u_int use_name_service_; - // Flag that say if we are using the or not the name service. - - u_int one_to_n_test_; - // indicates whether we are running the "1 to n" test, which has 1 - // low priority servant and n low priority clients. - - u_int context_switch_test_; - // flag to run context switch test - - char **iors_; - // Array of pointers used to hold the ior strings read from the ior file - // that the server created. - - char *ior_file_; - // Name of the filename that the server used to store the iors. - - u_int granularity_; - // this is the granularity of the timing of the CORBA requests. A - // value of 5 represents that we will take time every 5 requests, - // instead of the default of every request (1). - - u_int use_utilization_test_; - // flag to indicate we are to use the utilization test. By default - // we do not use it, because it can cause starvation with real-time - // threads - - u_int high_priority_loop_count_; - // Number of times the high priority looped. We are going to loop - // as long as there is low priority clients running, so as to - // maintain high priority traffic as long as low priority traffic is - // going through. - - ACE_Thread_Semaphore *semaphore_; - // semaphore in order for the high priority client to keep running - // as long as the low priority clients are running. See explanation - // of "high_priority_loop_count_" member in this class. - - u_int use_multiple_priority_; - // flag to indicate we are to use multiple priorities for the low - // priority clients. By default we use only one priority for all - // client threads. - - int utilization_task_started_; - // Indicates whether the utilization task has started. - - ACE_High_Res_Timer timer_; - // global timer to be started by the utilization task. - - u_int run_server_utilization_test_; - // flag to indicate we are to run the utilization test of the server. - // This means we are not sending requests at a determined frequency, - // but rather "let it rip"! - - u_int util_time_; - // the amount of time in seconds that the utilization test will run. -}; - -class Client : public ACE_Task -{ - // = TITLE - // The Cubit client. - // - // = DESCRIPTION - // This class implements the Cubit Client, which is an active object. - // `n' threads execute svc, and make 2way CORBA calls on the server -public: - Client (ACE_Thread_Manager *, Task_State *ts, u_int id); - // Constructor, with a pointer to the common task state. - - virtual int svc (void); - // The thread function. - - double get_high_priority_latency (void); - double get_low_priority_latency (void); - double get_high_priority_jitter (void); - double get_low_priority_jitter (void); - double get_latency (u_int thread_id); - double get_jitter (u_int id); - // Accessors to get the various measured quantities. - -private: - int run_tests (Cubit_ptr, - u_int, - u_int, - Cubit_Datatypes, - double frequency); - // Makes the calls to the servant. - - void put_latency (double *jitter, - double latency, - u_int thread_id, - u_int count); - // Records the latencies in the . - - int parse_args (int, char **); - // Parses the arguments. - - Task_State *ts_; - // Pointer to shared state. - - u_int id_; - // unique id of the task - - CosNaming::NamingContext_var naming_context_; - // Object reference to the naming service. - - CosNaming::NamingContext_var mt_cubit_context_; - // Object reference to the cubit context "MT_Cubit". -}; - -#endif /* !defined (TASK_CLIENT_H) */ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp deleted file mode 100644 index 8a33b046b0b..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -#include "Util_Thread.h" - -Util_Thread::Util_Thread (Task_State *ts, - ACE_Thread_Manager *thr_mgr) - : ACE_MT (ACE_Task (thr_mgr)), - done_ (0), - number_of_computations_ (0), - ts_ (ts) -{ -} - -int -Util_Thread::svc (void) -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - // thr_getprio () on the current thread should never fail. - ACE_OS::thr_getprio (thr_handle, prio); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Utilization Thread created with priority %d, " - "waiting for threads to finish binding\n", prio)); - - // this barrier synchronizes the utilization thread with - // the client threads - // i.e., the Util_thread should wait until all the - // clients have finished binding, and only then - // start measuring the utilization. - this->ts_->barrier_->wait (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) )))))))) " - "utilization test STARTED at %D\n")); - - this->ts_->utilization_task_started_ = 1; - - this->ts_->timer_.start (); - - this->run_computations (); - - this->ts_->timer_.stop (); - - ACE_DEBUG ((LM_DEBUG, - "(%t) (((((((( " - "utilization test ENDED at %D\n")); - - return 0; -} - -u_long -Util_Thread::get_number_of_computations (void) -{ - return this->number_of_computations_; -} - -// computation performed by the Utilization thread. We need this in a -// separate function to get it's execution time. -//inline -void -Util_Thread::computation (void) -{ - // This is the number that the Util_Thread uses to check for - // primality. - const u_long CUBIT_PRIME_NUMBER = 509UL; - - // See if this number is prime. 2 and CUBIT_PRIME_NUMBER / 2 are - // the recommended values for min_factor and max_factor, as - // explained in ACE.h (is_prime). - ACE::is_prime (CUBIT_PRIME_NUMBER, - 2UL, - CUBIT_PRIME_NUMBER / 2); -} - -// Perform repeated prime factor computations on an arbitrary number. -// And you thought your life was boring... :-) -int -Util_Thread::run_computations (void) -{ - while (this->done_ == 0) - { - // bound the number of computations, since we can potentially - // block the machine if this thread never leaves the loop. - if (this->number_of_computations_ > (ts_->loop_count_ * 1000)) // magic number - { - ACE_DEBUG ((LM_DEBUG, - "\t(%t) utilization test breaking loop so machine won't block.\n")); - break; - } - this->computation (); - this->number_of_computations_ ++; - // ACE_OS::thr_yield (); // Shouldn't need this. And I'm not sure - // if it really helps. - - if (ts_->utilization_task_started_ == 0) - break; - } - - return 0; -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.h b/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.h deleted file mode 100644 index 5509de3d32b..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/Util_Thread.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// Util_Thread.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (UTIL_THREAD_H) -#define UTIL_THREAD_H - -#include "Task_Client.h" - -class Util_Thread : public ACE_Task -{ - // = TITLE - // The thread that computes utilization. -public: - Util_Thread (Task_State *, - ACE_Thread_Manager *thr_mgr); - // Constructor. - - virtual int svc (void); - // The thread entry point function. - - u_long get_number_of_computations (void); - // Gets the number of computations the thread was able to perform. - - void computation (void); - // this is the actual "computation" being performed. - - int done_; - // Indicates whether we're done. - -private: - int run_computations (void); - // Run the computations. - - u_long number_of_computations_; - // This stores the number of computations performed - // by the Util_Thread so far - - Task_State *ts_; - // Pointer to the Task state. Stores the state - // common to the multiple client threads -}; - -#endif /* !defined (UTIL_THREAD_H) */ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp deleted file mode 100644 index 0aa507cac31..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/client.cpp +++ /dev/null @@ -1,796 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.cpp -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "client.h" -#include "ace/Sched_Params.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -double csw = 0.0; - -#if defined (VXWORKS) -u_int ctx = 0; -u_int ct = 0; - -typedef struct { - char name[15]; - WIND_TCB *tcb; - INSTR * pc; -} task_info; - -#define SWITCHES 25000 -task_info tInfo[SWITCHES]; - -extern "C" -int -switchHook ( WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ - WIND_TCB *pNewTcb ) /* pointer to new task's WIND_TCB */ -{ - // We create the client threads with names starting with "@". - if ( pNewTcb->name[0] == '@') - ctx++; - - if (ct < SWITCHES) - { - strncpy (tInfo[ct].name, pNewTcb->name, 14); - tInfo[ct].tcb = pNewTcb; - tInfo[ct].pc = pNewTcb->regs.pc; - ct++; - } - - return 0; -} -#endif /* VXWORKS */ - -int -initialize (void) -{ -#if defined (VXWORKS) && defined (VME_DRIVER) - STATUS status = vmeDrv (); - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - status = vmeDevCreate ("/vme"); - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* VXWORKS && VME_DRIVER */ - - // Make sure we've got plenty of socket handles. This call will - // use the default maximum. - ACE::set_handle_limit (); - - return 0; -} - -#if defined (VXWORKS) -void -output_taskinfo (void) -{ - FILE *file_handle = 0; - - if ((file_handle = ACE_OS::fopen ("taskinfo.txt", "w")) == 0) - perror ("open"); - - ACE_OS::fprintf(stderr, - "--->Output file for taskinfo data is \"taskinfo.txt\"\n"); - - // This loop visits each client. thread_count_ is the number of clients. - for (u_int j = 0; j < SWITCHES; j ++) - { - ACE_OS::fprintf(file_handle, - "\tname= %s\ttcb= %p\tpc= %p\n", - tInfo[j].name, - tInfo[j].tcb, - tInfo[j].pc); - } - - ACE_OS::fclose (file_handle); -} -#endif /* VXWORKS */ - -void -output_latency (Task_State *ts) -{ - FILE *latency_file_handle = 0; - char latency_file[BUFSIZ]; - char buffer[BUFSIZ]; - - ACE_OS::sprintf (latency_file, - "cb__%d.txt", - ts->thread_count_); - - ACE_OS::fprintf(stderr, - "--->Output file for latency data is \"%s\"\n", - latency_file); - - latency_file_handle = ACE_OS::fopen (latency_file, "w"); - - // This loop visits each client. thread_count_ is the number of clients. - for (u_int j = 0; j < ts->thread_count_; j ++) - { - ACE_OS::sprintf(buffer, - "%s #%d", - j==0? "High Priority": "Low Priority", - j); - // this loop visits each request latency from a client - for (u_int i = 0; i < (j==0? ts->high_priority_loop_count_:ts->loop_count_)/ts->granularity_; i ++) - { - ACE_OS::sprintf(buffer+strlen(buffer), -#if defined (CHORUS) - "\t%u\n", -#else - "\t%f\n", -#endif /* !CHORUS */ - ts->global_jitter_array_[j][i]); - fputs (buffer, latency_file_handle); - buffer[0]=0; - } - } - - ACE_OS::fclose (latency_file_handle); -} - -int -do_priority_inversion_test (ACE_Thread_Manager *thread_manager, - Task_State *ts) -{ - int i; - u_int j; - - char * task_id = 0; - - ACE_High_Res_Timer timer_; - ACE_Time_Value delta_t; - - timer_.start (); - -#if defined (VXWORKS) - ctx = 0; - ACE_NEW_RETURN (task_id, - char [32], - -1); -#endif /* VXWORKS */ - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) <<<<<<< starting test on %D\n")); - - // stores the total number of context switches incurred by the - // program while making CORBA requests -#if defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE) - u_int context_switch = 0; -#endif /* ACE_HAS_PRUSAGE_T || ACE_HAS_GETRUSAGE */ - - double util_task_duration = 0.0; - double total_latency = 0.0; - double total_latency_high = 0.0; - double total_util_task_duration = 0.0; - - // Create the clients. - Client high_priority_client (thread_manager, ts, 0); - - // Create an array to hold pointers to the low priority tasks. - Client **low_priority_client; - - ACE_NEW_RETURN (low_priority_client, - Client *[ts->thread_count_], - -1); - - // hack to make sure we have something in this pointer, when - // thread_count == 1 - low_priority_client[0] = &high_priority_client; - - // Create the daemon thread in its own . - ACE_Thread_Manager util_thr_mgr; - - Util_Thread util_thread (ts, &util_thr_mgr); - - // - // Time the utilization thread' "computation" to get %IdleCPU at the end of the test. - // -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; - // Elapsed time will be in microseconds. - pstartTime = pccTime1Get(); - // execute one computation. - util_thread.computation (); - pstopTime = pccTime1Get(); - // Store the time in micro-seconds. - util_task_duration = pstopTime - pstartTime; -#else /* CHORUS */ - // Elapsed time will be in microseconds. - timer_.start (); - // execute computations. - for (i = 0; i < 10000; i++) - util_thread.computation (); - timer_.stop (); - timer_.elapsed_time (delta_t); - // Store the time in milli-seconds. - util_task_duration = (delta_t.sec () * - ACE_ONE_SECOND_IN_MSECS + - (double)delta_t.usec () / ACE_ONE_SECOND_IN_MSECS) / 10000; -#endif /* !CHORUS */ - - // The thread priority - ACE_Sched_Priority priority; - -#if defined (VXWORKS) - // set a task_id string starting with "@", so we are able to - // accurately count the number of context switches. - strcpy (task_id, "@High"); -#endif /* VXWORKS */ - - // Now activate the high priority client. -#if defined (VXWORKS) - priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else /* ! VXWORKS */ - priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* ! ACE_WIN32 */ - - ACE_DEBUG ((LM_DEBUG, - "Creating 1 client with high priority of %d\n", - priority)); - - if (high_priority_client.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority, - -1, - 0, - 0, - 0, - 0, - (ACE_thread_t*)task_id) == -1) - ACE_ERROR ((LM_ERROR, - "%p; priority is %d\n", - "activate failed", - priority)); - - u_int number_of_low_priority_client = 0; - u_int number_of_priorities = 0; - u_int grain = 0; - u_int counter = 0; - - number_of_low_priority_client = ts->thread_count_ - 1; - - // mechanism to distribute the available priorities among the - // threads when there are not enough different priorities for all - // threads. - if (ts->use_multiple_priority_ == 1) - { - ACE_Sched_Priority_Iterator priority_iterator (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - number_of_priorities = 0; - while (priority_iterator.more ()) - { - number_of_priorities ++; - priority_iterator.next (); - } - - // 1 priority is exclusive for the high priority client. - number_of_priorities --; - - // if utilization thread is present, reduce in 1 the available - // priorities. - if (ts->use_utilization_test_ == 1) - { - number_of_priorities --; - } - - // Drop the priority, so that the priority of clients will - // increase with increasing client number. - for (j = 0; j < number_of_low_priority_client; j++) - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // if the lowest priority of the "low priority clients" is the - // minimum, and we are running the utilization thread, increment - // the priority, since we don't want the utlization thread and a - // "low priority thread" to have the same priority. - if ( priority == ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD) && - ts->use_utilization_test_ == 1) - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // granularity of the assignment of the priorities. Some OSs - // have fewer levels of priorities than we have threads in our - // test, so with this mechanism we assign priorities to groups - // of threads when there are more threads than priorities. - grain = number_of_low_priority_client / number_of_priorities; - counter = 0; - - if (grain <= 0) - grain = 1; - } - else - { - // Drop the priority one level - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - ACE_DEBUG ((LM_DEBUG, - "Creating %d clients at priority %d\n", - ts->thread_count_ - 1, - priority)); - - for (i = number_of_low_priority_client; i > 0; i--) - { - ACE_NEW_RETURN (low_priority_client [i - 1], - Client (thread_manager, ts, i), - -1); - -#if defined (VXWORKS) - // Pace the connection establishment on VxWorks. - const ACE_Time_Value delay (0L, 500000L); - ACE_OS::sleep (delay); - - // set a task_id string startiing with "@", so we are able to - // accurately count the number of context switches on VXWORKS - sprintf (task_id, "@Low%u", i); -#endif /* VXWORKS */ - - ACE_DEBUG ((LM_DEBUG, - "Creating client with thread ID %d and priority %d\n", - i, - priority)); - - // The first thread starts at the lowest priority of all the low - // priority clients. - if (low_priority_client[i - 1]->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority, // These are constructor defaults. - -1, // int grp_id = -1, - 0, // ACE_Task_Base *task = 0, - 0, // ACE_hthread_t thread_handles[] = 0, - 0, // void *stack[] = 0, - 0, // size_t stack_size[] = 0, - (ACE_thread_t*)task_id) == -1) - ACE_ERROR ((LM_ERROR, - "%p; priority is %d\n", - "activate failed", - priority)); - - if (ts->use_multiple_priority_ == 1) - { - counter = (counter + 1) % grain; - if ( (counter == 0) && - //Just so when we distribute the priorities among the - //threads, we make sure we don't go overboard. - ((number_of_priorities * grain) > (number_of_low_priority_client - (i - 1))) ) - { - // Get the next higher priority. - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - } - } /* end of for () */ - - if (ts->use_utilization_test_ == 1) - // activate the utilization thread only if specified. See - // description of this variable in header file. - { - priority = - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating utilization thread with priority of %d\n", - priority)); - - // activate the Utilization thread. It will wait until - // all threads have finished binding. - util_thread.activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority); - } - else - { - util_thread.close (); - } - - // Wait for all the client threads to be initialized before going - // any further. - ts->barrier_->wait (); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); - quantify_clear_data (); -#endif /* NO_ACE_QUANTIFY */ - -#if (defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE)) && !defined (ACE_WIN32) - ACE_Profile_Timer timer_for_context_switch; - ACE_Profile_Timer::Rusage usage; - - if (ts->context_switch_test_ == 1) - { - timer_for_context_switch.start (); - timer_for_context_switch.get_rusage (usage); -# if defined (ACE_HAS_PRUSAGE_T) - context_switch = usage.pr_vctx + usage.pr_ictx; -# else /* ACE_HAS_PRUSAGE_T */ - context_switch = usage.ru_nvcsw + usage.ru_nivcsw; -# endif /* ACE_HAS_GETRUSAGE */ - } -#endif /* ACE_HAS_PRUSAGE_T || ACE_HAS_GETRUSAGE */ - -#if defined (VXWORKS) - if (ts->context_switch_test_ == 1) - { - fprintf(stderr, "Adding the context switch hook!\n"); - taskSwitchHookAdd ((FUNCPTR)&switchHook); - } -#endif - - // Wait for all the client threads to exit (except the utilization - // thread). - thread_manager->wait (); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) >>>>>>> ending test on %D\n")); - - timer_.stop (); - timer_.elapsed_time (delta_t); - - if (ts->use_utilization_test_ == 1) - // signal the utilization thread to finish with its work.. only - // if utilization test was specified. See description of this - // variable in header file. - { - util_thread.done_ = 1; - - // This will wait for the utilization thread to finish. - util_thr_mgr.wait (); - } - - ACE_DEBUG ((LM_DEBUG, - "-------------------------- Stats -------------------------------\n")); - - if (ts->context_switch_test_ == 1) - { -#if defined (ACE_HAS_PRUSAGE_T) - timer_for_context_switch.stop (); - timer_for_context_switch.get_rusage (usage); - // Add up the voluntary context switches & involuntary context - // switches - context_switch = usage.pr_vctx + usage.pr_ictx - context_switch; - ACE_DEBUG ((LM_DEBUG, - "Voluntary context switches=%d, Involuntary context switches=%d\n", - usage.pr_vctx, - usage.pr_ictx)); -#elif defined (ACE_HAS_GETRUSAGE) && !defined (ACE_WIN32) - timer_for_context_switch.stop (); - timer_for_context_switch.get_rusage (usage); - // Add up the voluntary context switches & involuntary context - // switches - context_switch = usage.ru_nvcsw + usage.ru_nivcsw - context_switch; - ACE_DEBUG ((LM_DEBUG, - "Voluntary context switches=%d, Involuntary context switches=%d\n", - usage.ru_nvcsw, - usage.ru_nivcsw)); -#elif defined (VXWORKS) /* ACE_HAS_GETRUSAGE */ - taskSwitchHookDelete ((FUNCPTR)&switchHook); - ACE_DEBUG ((LM_DEBUG, - "Context switches=%d\n", - ctx)); -#endif - } - - // if running the utilization test, don't report latency nor jitter. - if (ts->use_utilization_test_ == 0 && - ts->run_server_utilization_test_ == 0) - { -#if defined (VXWORKS) - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client[0]->get_low_priority_latency (), - low_priority_client[0]->get_low_priority_jitter ())); - // output the latency values to a file, tab separated, to import - // it to Excel to calculate jitter, in the mean time we come up - // with the sqrt() function. - output_latency (ts); -#elif defined (CHORUS) - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "High priority client latency : %u usec\n" - "Low priority client latency : %u usec\n", - high_priority_client.get_high_priority_latency (), - low_priority_client[0]->get_low_priority_latency () )); - - // output the latency values to a file, tab separated, to import - // it to Excel to calculate jitter, in the mean time we come up - // with the sqrt() function. - output_latency (ts); -#else /* !CHORUS */ - ACE_DEBUG ((LM_DEBUG, "Test done.\n" - "High priority client latency : %f msec, jitter: %f msec\n" - "Low priority client latency : %f msec, jitter: %f msec\n" - "# of context switches: %d, context_switch_time: %f msec\n" - "total context switch time: %f msec\n", - high_priority_client.get_high_priority_latency (), - high_priority_client.get_high_priority_jitter (), - low_priority_client[0]->get_low_priority_latency (), - low_priority_client[0]->get_low_priority_jitter (), - context_switch, - csw/1000, - csw * context_switch/1000 )); - // output_latency (ts); -#endif /* !VXWORKS && !CHORUS */ - } - - if (ts->use_utilization_test_ == 1) - { - total_util_task_duration = util_task_duration * util_thread.get_number_of_computations (); - - total_latency = (delta_t.sec () * - ACE_ONE_SECOND_IN_MSECS + - (double)delta_t.usec () / ACE_ONE_SECOND_IN_MSECS); - - total_latency_high = total_latency - total_util_task_duration; - - // Calc and print the CPU percentage. I add 0.5 to round to the - // nearest integer before casting it to int. - ACE_DEBUG ((LM_DEBUG, - "\t%% ORB Client CPU utilization: %u %%\n" - "\t%% Idle time: %u %%\n\n", - (u_int) (total_latency_high * 100 / total_latency + 0.5), - (u_int) (total_util_task_duration * 100 / total_latency + 0.5) )); - - ACE_DEBUG ((LM_DEBUG, - "(%t) UTILIZATION task performed \t%u computations\n" - "(%t) CLIENT task performed \t\t%u CORBA calls\n" - "\t Ratio of computations to CORBA calls is %u.%u:1\n\n", - util_thread.get_number_of_computations (), - ts->loop_count_, - util_thread.get_number_of_computations () / ts->loop_count_, - (util_thread.get_number_of_computations () % ts->loop_count_) * 100 / ts->loop_count_ - )); - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization computation time is %u usecs\n", - util_task_duration)); -#else - ACE_DEBUG ((LM_DEBUG, - "(%t) utilization computation time is %f msecs\n", - util_task_duration)); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - } - -#if defined (VXWORKS) - delete task_id; -#endif /* VXWORKS */ - return 0; -} - -int -do_thread_per_rate_test (ACE_Thread_Manager *thread_manager, - Task_State *ts) -{ - Client CB_20Hz_client (thread_manager, ts, CB_20HZ_CONSUMER); - Client CB_10Hz_client (thread_manager, ts, CB_10HZ_CONSUMER); - Client CB_5Hz_client (thread_manager, ts, CB_5HZ_CONSUMER); - Client CB_1Hz_client (thread_manager, ts, CB_1HZ_CONSUMER); - - ACE_Sched_Priority priority; - -#if defined (VXWORKS) - priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else /* ! VXWORKS */ - priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* ! ACE_WIN32 */ - - ACE_DEBUG ((LM_DEBUG, - "Creating 20 Hz client with priority %d\n", - priority)); - - if (CB_20Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating 10 Hz client with priority %d\n", - priority)); - - if (CB_10Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating 5 Hz client with priority %d\n", - priority)); - - if (CB_5Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - ACE_DEBUG ((LM_DEBUG, - "Creating 1 Hz client with priority %d\n", - priority)); - - if (CB_1Hz_client.activate (THR_BOUND | ACE_SCHED_FIFO, 1, 1, priority) == -1) - ACE_ERROR ((LM_ERROR, "(%P|%t) errno = %p: activate failed\n")); - - // Wait for all the threads to exit. - thread_manager->wait (); - -#if defined (ACE_LACKS_FLOATING_POINT) - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "20Hz client latency : %u usec, jitter: %u usec\n" - "10Hz client latency : %u usec, jitter: %u usec\n" - "5Hz client latency : %u usec, jitter: %u usec\n" - "1Hz client latency : %u usec, jitter: %u usec\n", - CB_20Hz_client.get_latency (0), CB_20Hz_client.get_jitter (0), - CB_10Hz_client.get_latency (1), CB_10Hz_client.get_jitter (1), - CB_5Hz_client.get_latency (2), CB_5Hz_client.get_jitter (2), - CB_1Hz_client.get_latency (3), CB_1Hz_client.get_jitter (3) )); -#else - ACE_DEBUG ((LM_DEBUG, - "Test done.\n" - "20Hz client latency : %f msec, jitter: %f msec\n" - "10Hz client latency : %f msec, jitter: %f msec\n" - "5Hz client latency : %f msec, jitter: %f msec\n" - "1Hz client latency : %f msec, jitter: %f msec\n", - CB_20Hz_client.get_latency (0), CB_20Hz_client.get_jitter (0), - CB_10Hz_client.get_latency (1), CB_10Hz_client.get_jitter (1), - CB_5Hz_client.get_latency (2), CB_5Hz_client.get_jitter (2), - CB_1Hz_client.get_latency (3), CB_1Hz_client.get_jitter (3) )); -#endif /* ! ACE_LACKS_FLOATING_POINT */ - return 0; -} - -// This is the main routine of the client, where we create a high -// priority and a low priority client. we then activate the clients -// with the appropriate priority threads, and wait for them to -// finish. After they aer done, we compute the latency and jitter -// metrics and print them. - -#if defined (VXWORKS) -extern "C" -int -client (int argc, char *argv[]) -{ - ACE_Object_Manager ace_object_manager; -#else -int -main (int argc, char *argv[]) -{ -#endif - -#if defined (ACE_HAS_THREADS) -#if defined (FORCE_ARGS) - int argc = 4; - char *argv[] = {"client", - "-s", - "-f", - "ior.txt"}; -#endif /* defined (FORCE_ARGS) */ - - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - if (ACE_OS::sched_params ( - ACE_Sched_Params ( - ACE_SCHED_FIFO, -#if defined (__Lynx__) - 30, -#elif defined (VXWORKS) /* ! __Lynx__ */ - 6, -#elif defined (ACE_WIN32) - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), -#else - ACE_THR_PRI_FIFO_DEF + 25, -#endif /* ! __Lynx__ */ - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_MAX, "preempt: user is not superuser, " - "so remain in time-sharing class\n")); - else - ACE_ERROR_RETURN ((LM_ERROR, "%n: ACE_OS::sched_params failed\n%a"), - -1); - } - - ACE_High_Res_Timer timer_; - ACE_Time_Value delta_t; - -#if 0 // this is a debug section that will be removed soon. 1/6/98 - ACE_DEBUG ((LM_MAX, "<<<<>>>>\n")); - - timer_.start (); - - const ACE_Time_Value delay (5L, 0L); - ACE_OS::sleep (delay); - - timer_.stop (); - timer_.elapsed_time (delta_t); - - ACE_DEBUG ((LM_DEBUG, "5secs= %u secs, %u usecs\n", delta_t.sec (), delta_t.usec ())); -#endif - - initialize (); - - Task_State ts (argc, argv); - -#if defined (CHORUS) - // start the pccTimer for chorus classix - int pTime; - - // Initialize the PCC timer Chip - pccTimerInit(); - - if(pccTimer(PCC2_TIMER1_START,&pTime) != K_OK) - { - printf("pccTimer has a pending benchmark\n"); - } -#endif /* CHORUS */ - - // Create a separate manager for the client. This allows the use - // of its wait () method on VxWorks, without interfering with the - // server's (global) thread manager. - ACE_Thread_Manager client_thread_manager; - - if (ts.thread_per_rate_ == 0) - do_priority_inversion_test (&client_thread_manager, &ts); - else - do_thread_per_rate_test (&client_thread_manager, &ts); - -#if defined (CHORUS) - if(pccTimer(PCC2_TIMER1_STOP,&pTime) !=K_OK) - { - printf("pccTimer has a pending bench mark\n"); - } -#elif defined (VXWORKS) - // Shoot myself. Otherwise, there's a General Protection Fault. This - // will leak memory, but that's preferable. It looks like the problem - // might be due to static objects in libTAO or liborbsvcs? - int status; - ACE_OS::thr_exit (&status); -#endif /* CHORUS */ - -#else /* !ACE_HAS_THREADS */ - ACE_DEBUG ((LM_DEBUG, - "Test not run. This platform doesn't seem to have threads.\n")); -#endif /* ACE_HAS_THREADS */ - - return 0; -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/client.dsp b/TAO/tests/Cubit/TAO/MT_Cubit/client.dsp deleted file mode 100644 index 4b250527400..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/client.dsp +++ /dev/null @@ -1,167 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "client - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -# PROP WCE_Configuration "H/PC Ver. 2.00" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "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 "" -# 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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "PRIORITY_INV_TEST" /YX /FD /I /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 orbsvcs.lib ace.lib TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\orbsvcs\orbsvcs" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!ELSEIF "$(CFG)" == "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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "PRIORITY_INV_TEST" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\orbsvcs\orbsvcs" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\cubit.idl - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl cubit.idl - -"cubitC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\cubit.idl - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl cubit.idl - -"cubitC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# Begin Source File - -SOURCE=.\Task_Client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Util_Thread.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/client.h b/TAO/tests/Cubit/TAO/MT_Cubit/client.h deleted file mode 100644 index a9386c52596..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/client.h +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// client.h -// -// = AUTHOR -// Andy Gokhale, Brian Mendel, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "ace/Get_Opt.h" -#include "ace/Sched_Params.h" - -#include "cubitC.h" -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (CHORUS) -#include "pccTimer.h" -#endif /* CHORUS */ - -#if defined (VME_DRIVER) -#include -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* defined (VME_DRIVER) */ - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/clnt.bld b/TAO/tests/Cubit/TAO/MT_Cubit/clnt.bld deleted file mode 100644 index 8bd06f00178..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/clnt.bld +++ /dev/null @@ -1,10 +0,0 @@ -#!build -default: - program - :debuglevel=multi -client.cpp - C++ -Task_Client.cpp - C++ -cubitC.cpp - C++ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/cubit.idl b/TAO/tests/Cubit/TAO/MT_Cubit/cubit.idl deleted file mode 100644 index 74041bad851..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/cubit.idl +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ - -interface Cubit -{ - // = TITLE - // Defines an interface that encapsulates operations that cube - // numbers. - // - // = DESCRIPTION - // This interface encapsulates operations that cube - // octets, shorts, longs, structs and unions. - - struct Many - { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - octet cube_octet (in octet o); - // cube an octet - - short cube_short (in short s); - // cube a short - - long cube_long (in long l); - // cube a long - - Many cube_struct (in Many values); - // cube each of the members of a struct - - oneway void noop (); - // null operation - - oneway void shutdown (); - // shut down the application -}; - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.cpp deleted file mode 100644 index 1c4d2799ac4..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ - -#include "tao/corba.h" -#include "cubit_i.h" - -Cubit_i::Cubit_i (Task_State *ts) - :ts_ (ts), - util_started_ (0) -{ -} - -Cubit_i::~Cubit_i (void) -{ -} - -CORBA::Octet -Cubit_i::cube_octet (CORBA::Octet o, - CORBA::Environment &) -{ - if (ts_->run_server_utilization_test_ == 1 && - ts_->utilization_task_started_ == 0 && - this->util_started_ == 0 ) - { - this->util_started_ = 1; - ts_->barrier_->wait (); - } - - ts_->loop_count_++; - - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short -Cubit_i::cube_short (CORBA::Short s, - CORBA::Environment &) -{ - return (CORBA::Short) (s * s * s); -} - -CORBA::Long -Cubit_i::cube_long (CORBA::Long l, - CORBA::Environment &) -{ - return (CORBA::Long) (l * l * l); -} - -Cubit::Many -Cubit_i::cube_struct (const Cubit::Many &values, - CORBA::Environment &) -{ - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - - return out_values; -} - -void -Cubit_i::noop (CORBA::Environment &) -{ - // does nothing. -} - -void Cubit_i::shutdown (CORBA::Environment &) -{ - ACE_DEBUG ((LM_DEBUG, - "(%t) Calling TAO_ORB_Core_instance ()->orb ()->shutdown ()\n")); - - TAO_ORB_Core_instance ()->orb ()->shutdown (); - - // this is to signal the utilization thread to exit its loop. - ts_->utilization_task_started_ = 0; -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.h b/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.h deleted file mode 100644 index 46434ec5c4f..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/cubit_i.h +++ /dev/null @@ -1,51 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// cubit_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_CUBIT_I_HH) -#define _CUBIT_I_HH - -#include "cubitS.h" -#include "Task_Client.h" - -class Cubit_i : public POA_Cubit -{ - // = TITLE - // Cubit implementation class. -public: - Cubit_i (Task_State *ts); - ~Cubit_i (void); - - virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - - virtual void noop (CORBA::Environment &env); - - virtual void shutdown (CORBA::Environment &env); -private: - Task_State *ts_; - u_int util_started_; -}; - -#endif /* _CUBIT_I_HH */ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/default.bld b/TAO/tests/Cubit/TAO/MT_Cubit/default.bld deleted file mode 100644 index e13ed31e337..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/default.bld +++ /dev/null @@ -1,33 +0,0 @@ -#!build -default: - nobuild - :c_option=slashcomment - :cx_e_option=msgnumbers - :object_dir=./.obj - :target=vxwppc - :cx_silent=21 - :cx_silent=191 - :cx_silent=610 - :sourcedirs=VME_DRV/src - :sourcedirs=VME_DRV/api/include - :sourcedirs=../../../.. - :sourcedirs=/home/ace/ACE_wrappers.vxworks - :sourcedirs=../../../../tao/compat - :sourcedirs=./client - :sourcedirs=./server - :libdirs=VME_DRV/vmeXportu - :libdirs=../../../../tao - :libdirs=/home/ace/ACE_wrappers.vxworks/ace - :libraries=vmeXport.a - :libraries=tao.a - :libraries=libACE.a - :libraries=/appl/newgreen/vxppc603/ghsbltin.o - :libraries=/appl/newgreen/vxppc603/ghsmath.o - :defines=DEBUG - :defines=FORCE_ARGS - :defines=VME_DRIVER -clnt.bld - program -svr.bld - program - :defines=USE_ACE_EVENT_HANDLING diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.cpp deleted file mode 100644 index 771747c8acb..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.cpp +++ /dev/null @@ -1,277 +0,0 @@ -// $Id$ -/* - **************************************************************** - * - * Component = pccTimer.C - mvme167 - * - * Synopsis = - * - * Copyright (c) 1995, 1996, 1997 Chorus systemes - * (R) Chorus is a registered trademark of Chorus systemes - * - **************************************************************** - * - * - **************************************************************** - */ -/* Everything is relative from -/vobs/chorus_work/merge1/mvme177/appl/include/chorus -*/ - -#include -#include -#include -//#include -#include -//#include -#include -//#include -//#include -#include -#include -#include -#include -#include -#include -#include -#include -//#include -//#include -#include "pccTimer.h" - - -static unsigned int quartz; -static unsigned int timer_reload_value; -int timerHz = 100; - -volatile struct -pccchip2 *pccchip2 = (volatile struct pccchip2 *) PCCchip2_BASE; - -volatile struct -nvram* nvram = ((volatile struct nvram*)NVRAM_BASE); - - -int -pccTimer(int option, int* uTime) -{ - KnTimeVal time; - - int res = K_EOK; - //option &= ~PCC_USERDATA; - static int benchEnable1 = 0; - static int benchEnable2 = 0; - static unsigned int benchLastTime = 0; - - switch(option) - { - - case PCC2_TIMER1_START: - if (benchEnable1) return K_EINVAL; - benchEnable1 = 1; - pccTimer1Start(); - benchLastTime = pccTimer1Reset(); - break; - - case PCC2_TIMER1_STOP: - benchLastTime = pccTime1Get(); - if (!benchEnable1) return K_EINVAL; - benchEnable1 = 0; - pccTimer1Stop(); - break; - - case PCC2_TIMER1_BPOINT: - benchLastTime = pccTime1Get(); - if (!benchEnable1) return K_EINVAL; - break; - - case PCC2_TIMER2_START: - if (benchEnable2) return K_EINVAL; - benchEnable2 = 1; - pccTimer2Start(); - benchLastTime = pccTimer2Reset(); - break; - - case PCC2_TIMER2_STOP: - benchLastTime = pccTime2Get(); - if (!benchEnable2) return K_EINVAL; - benchEnable2 = 0; - pccTimer2Stop(); - break; - - case PCC2_TIMER2_BPOINT: - benchLastTime = pccTime2Get(); - if (!benchEnable2) return K_EINVAL; - break; - - default: - return K_EINVAL; - } - - // Here only is last time must be returned - if (uTime) - { - *uTime = benchLastTime; - } - - return res; -} - - - // - // Return the value of the timer counter, in microseconds. - // - unsigned int -pccTime1Get() -{ - return pccchip2->timer1cnt; -} - - unsigned int -pccTimer1Reset() -{ - pccchip2->timer1cnt = 0; - return pccchip2->timer1cnt; -} - - void -pccTimer1Start() -{ - unsigned int temp; - - // Clear the counter - pccchip2->timer1cnt = 0; - // Start the counter running - // Do not reset the counter when it matches the compare register (~PCC2_COC) - // Clear the overflow counter - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | PCC2_COVF | ~PCC2_COC | PCC2_CEN; - -} - - void -pccTimer1Stop() -{ - unsigned int temp; - - // Stop the counter running - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | ~PCC2_CEN; - -} - - - // - // Return the value of the timer counter, in microseconds. - // - unsigned int -pccTime2Get() -{ - return pccchip2->timer2cnt; -} - - unsigned int -pccTimer2Reset() -{ - pccchip2->timer2cnt = 0; - return pccchip2->timer2cnt; -} - - void -pccTimer2Start() -{ - unsigned int temp; - - // Clear the counter - pccchip2->timer2cnt = 0; - // Start the counter running - // Do not reset the counter when it matches the compare register (~PCC2_COC) - // Clear the overflow counter - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | PCC2_COVF | ~PCC2_COC | PCC2_CEN; - -} - - void -pccTimer2Stop() -{ - unsigned int temp; - - // Stop the counter running - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | ~PCC2_CEN; - -} - - // - // Init the PCC2 timer - // - void -pccTimerInit() -{ - volatile unsigned int temp; - char c; - - /* compute board quartz frequency from nvram information */ - c = nvram->config_rom.speed[0]; - quartz = ((unsigned int) c - (unsigned int) '0') * 10; - c = nvram->config_rom.speed[1]; - quartz += ((unsigned int) c - (unsigned int) '0'); - - /* Step 1. Initialize prescaler control register */ - /* On a mvme177, the VME2Chip runs at half the MPU speed */ - temp = pccchip2->prescaleadjust & 0xFFFFFF00; - - switch(quartz) { - case 60 : pccchip2->prescaleadjust = temp | 0x000000E2; /* 256-30 */ - // ASSERT(((BoardInfo*)chorusContext->ctxBoardInfo)->boardId - // == BOARD_MVME177); - break; - default : { - char tab [80]; - printf(tab,"%s : %d", "Unknown clock frequency", quartz); - svSysPanic(KP_DEBUG, 0, 0, tab, __FILE__, __LINE__); - } - } - - timer_reload_value = 1000000 / timerHz; - - - /* Step 2. Set pcc timer 1 and timer 2 compare register */ -// pccchip2->timer1cmp = timer_reload_value; - pccchip2->timer1cmp = ~0; - pccchip2->timer2cmp = ~0; - - - /* Step 3. Clear timer 1 and timer 2 counter register */ - pccchip2->timer1cnt = 0; - pccchip2->timer2cnt = 0; - - - /* Step 4. Enable pcc timer 1 and timer 2*/ - temp = pccchip2->timer1ctl; - pccchip2->timer1ctl = temp | PCC2_COVF | PCC2_COC | PCC2_CEN; - - temp = pccchip2->timer2ctl; - pccchip2->timer2ctl = temp | PCC2_COVF | PCC2_COC | PCC2_CEN; - - - /* Step 5. VBR is already set */ -// No need to change the VBR if we are not Compare Feature of the PCC2 Timer - - /* Step 6. set the pcc timer 1 interrupt level */ -// temp = pccchip2->irqlvl1; -// temp = temp & 0xfffffff8; -// pccchip2->irqlvl1 = temp | TIMER_INT_LEVEL; - - - // KnIntrEntry clockConf; - - //clockConf.name = VME_CHIP2_TIMER1; - //clockConf.hdl = getHdlFromCf(); - //clockConf.on = clockStart_p; - //clockConf.off = clockStop_p; - //clockConf.down = clockDown_p; - //clockConf.ison = clockTest_p; - - //svIntrConnect (&clockConf); -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.h b/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.h deleted file mode 100644 index 453977e6661..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/pccTimer.h +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ -/* - **************************************************************** - * - * Component = PCC2 Timer Header File - * - * Synopsis = - * - * - **************************************************************** - * - * - **************************************************************** - */ - - - -#ifndef _PCCTIMER_H -#define _PCCTIMER_H - -int -pccTimer(int option, int* uTime); -unsigned int -pccTime1Get(); -unsigned int -pccTimer1Reset(); -void -pccTimer1Start(); -void -pccTimer1Stop(); -unsigned int -pccTime2Get(); -unsigned int -pccTimer2Reset(); -void -pccTimer2Start(); -void -pccTimer2Stop(); -void -pccTimerInit(); - - -#define PCC2_TIMER1_START 0x0 -#define PCC2_TIMER1_STOP 0x1 -#define PCC2_TIMER1_BPOINT 0x2 -#define PCC2_TIMER2_START 0x10 -#define PCC2_TIMER2_STOP 0x20 -#define PCC2_TIMER2_BPOINT 0x40 -#define PCC2_USERDATA 0x100 - -#include -#include - -//extern_C int sysBench __((int, int*)); - -#endif /* _PCCTIMER_H */ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/server.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/server.cpp deleted file mode 100644 index 0e0ae8f8824..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/server.cpp +++ /dev/null @@ -1,917 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "server.h" -#include "ace/Sched_Params.h" - -#if defined (NO_ACE_QUANTIFY) -#include "quantify.h" -#endif /* NO_ACE_QUANTIFY */ - -// Global options used to configure various parameters. -static char hostname[BUFSIZ]; -static char *ior_file = 0; -static int base_port = ACE_DEFAULT_SERVER_PORT; -static u_int num_of_objs = 2; -static u_int use_name_service = 1; -static u_int thread_per_rate = 0; -static u_int use_multiple_priority = 0; -static u_int run_utilization_test = 0; - -Cubit_Task::Cubit_Task (void) -{ - // No-op. -} - -Cubit_Task::Cubit_Task (const char *args, - const char *orbname, - u_int num_of_objs, - ACE_Barrier *barrier, - Task_State *ts, - ACE_Thread_Manager *thr_mgr, - u_int task_id) - : ACE_MT (ACE_Task (thr_mgr)), - key_ ("Cubit"), - orbname_ ((char *) orbname), - orbargs_ ((char *) args), - num_of_objs_ (num_of_objs), - servants_ (0), - barrier_ (barrier), - servants_iors_ (0), - task_id_ (task_id), - ts_ (ts) -{ -} - -int -Cubit_Task::svc (void) -{ - ACE_hthread_t thr_handle; - ACE_Thread::self (thr_handle); - int prio; - - // thr_getprio () on the current thread should never fail. - ACE_OS::thr_getprio (thr_handle, prio); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) Beginning Cubit task with args = '%s' and priority %d\n", - orbargs_, prio)); - - int rc = this->initialize_orb (); - if (rc == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "ORB initialization failed.\n"), - -1); - - rc = this->create_servants (); - if (rc == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Create Servants failed.\n"), - -1); - - TAO_TRY - { - this->poa_manager_->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->barrier_->wait (); - - // Handle requests for this object until we're killed, or one of - // the methods asks us to exit. - if (this->orb_->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - - // Shut down the OA. - this->poa_->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("poa->destroy()"); - } - TAO_ENDTRY; - - // Need to clean up and do a CORBA::release on everything we've - // created! - - for (u_int i = 0; i < num_of_objs_; i++) - delete servants_ [i]; - - return 0; -} - -int -Cubit_Task::initialize_orb (void) -{ - TAO_TRY - { - ACE_ARGV args (this->orbargs_); - - int argc = args.argc (); - char **argv = args.argv (); - - // Initialize the ORB. - this->orb_ = CORBA::ORB_init (argc, - argv, - this->orbname_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Initialize the Object Adapter. - CORBA::Object_var poa_object = - this->orb_->resolve_initial_references("RootPOA"); - if (CORBA::is_nil (poa_object.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - 1); - - this->root_poa_ = - PortableServer::POA::_narrow (poa_object.in(), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->poa_manager_ = - this->root_poa_->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::PolicyList policies (2); - policies.length (2); - - // Id Assignment policy - policies[0] = - this->root_poa_->create_id_assignment_policy (PortableServer::USER_ID, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Lifespan policy - policies[1] = - this->root_poa_->create_lifespan_policy (PortableServer::PERSISTENT, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // We use a different POA, otherwise the user would have to - // change the object key each time it invokes the server. - this->poa_ = - this->root_poa_->create_POA ("Persistent_POA", - this->poa_manager_.in (), - policies, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Creation of the new POAs over, so destroy the Policy_ptr's. - for (CORBA::ULong i = 0; - i < policies.length () && TAO_TRY_ENV.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (TAO_TRY_ENV); - } - TAO_CHECK_ENV; - - if (use_name_service == 0) - return 0; - - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - 1); - - this->naming_context_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - - // Check the environment and return 1 if exception occurred or - // nil pointer. - if (TAO_TRY_ENV.exception () != 0 || - CORBA::is_nil (this->naming_context_.in ())==CORBA::B_TRUE ) - return 1; - - // Register the servant with the Naming Context.... - CosNaming::Name cubit_context_name (1); - cubit_context_name.length (1); - cubit_context_name[0].id = - CORBA::string_dup ("MT_Cubit"); - - TAO_TRY_ENV.clear (); - CORBA::Object_var objref = - this->naming_context_->bind_new_context (cubit_context_name, - TAO_TRY_ENV); - - if (TAO_TRY_ENV.exception() != 0) - { - CosNaming::NamingContext::AlreadyBound_ptr ex = - CosNaming::NamingContext::AlreadyBound::_narrow (TAO_TRY_ENV.exception()); - if (ex != 0) - { - TAO_TRY_ENV.clear (); - objref = this->naming_context_->resolve (cubit_context_name, - TAO_TRY_ENV); - printf("NamingContext::AlreadyBound\n"); - } - else - TAO_TRY_ENV.print_exception ("bind() Cubit context object\n"); - } - TAO_CHECK_ENV; - - this->mt_cubit_context_ = - CosNaming::NamingContext::_narrow (objref.in (), - TAO_TRY_ENV); - - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("orb_init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -CORBA::String -Cubit_Task::get_servant_ior (u_int index) -{ - if (index >= num_of_objs_) - return 0; - - return ACE_OS::strdup (this->servants_iors_[index]); -} - -int -Cubit_Task::create_servants () -{ - TAO_TRY - { - // Create the array of cubit implementations. - ACE_NEW_RETURN (this->servants_, - Cubit_i *[this->num_of_objs_], - -1); - - // Create the array of strings. - ACE_NEW_RETURN (this->servants_iors_, - CORBA::String [this->num_of_objs_], - -1); - - char *buffer; - int l = ACE_OS::strlen (this->key_) + 3; - - ACE_NEW_RETURN (buffer, - char[l], - -1); - - // This loop creates multiple servants, and prints out their - // IORs. - for (u_int i = 0; - i < this->num_of_objs_; - i++) - { - ACE_OS::sprintf (buffer, - "%s%02d", - (char *) this->key_, - this->task_id_); - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId (buffer); - - ACE_NEW_RETURN (this->servants_[i], - Cubit_i (ts_), - -1); - - if (this->servants_[i] == 0) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to create " - "implementation object #%d\n", - i), - 2); - - this->poa_->activate_object_with_id (id.in (), - this->servants_[i], - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Stringify the objref we'll be implementing, and print it - // to stdout. Someone will take that string and give it to - // some client. Then release the object. - - Cubit_var cubit = - this->servants_[i]->_this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - this->orb_->object_to_string (cubit.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->servants_iors_[i] = ACE_OS::strdup (str.in ()); - - // Register the servant with the Naming Context.... - CosNaming::Name cubit_name (1); - cubit_name.length (1); - cubit_name[0].id = - CORBA::string_dup (buffer); - - if (CORBA::is_nil (this->mt_cubit_context_.in ()) == CORBA::B_FALSE) - { - this->mt_cubit_context_->bind (cubit_name, - cubit.in (), - TAO_TRY_ENV); - if (TAO_TRY_ENV.exception () != 0) - TAO_TRY_ENV.print_exception ("Attempt to bind() a cubit object to the name service Failed!\n"); - else - ACE_DEBUG ((LM_DEBUG, - " (%t) Cubit object bound to the name \"%s\".\n", - buffer)); - } - } - delete [] buffer; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("print IOR"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -// Parses the command line arguments and returns an error status. -// @@ This method should be integrated into one of the classes -// (preferably into an Options singleton) rather than kept as a -// stand-alone function. - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt opts (argc, argv, "sh:p:t:f:rmU"); - int c; - - if (ACE_OS::hostname (hostname, BUFSIZ) != 0) - { - perror ("gethostname"); - return -1; - } - - while ((c = opts ()) != -1) - switch (c) - { - case 'U': - run_utilization_test = 1; - break; - case 'm': - use_multiple_priority = 1; - break; - case 'r': - thread_per_rate = 1; - break; - case 's': - use_name_service = 0; - break; - case 'f': - ior_file = opts.optarg; - break; - case 'h': - ACE_OS::strcpy (hostname, opts.optarg); - ACE_DEBUG ((LM_DEBUG, "h\n")); - break; - case 'p': - base_port = ACE_OS::atoi (opts.optarg); - ACE_DEBUG ((LM_DEBUG, "p\n")); - break; - case 't': - num_of_objs = ACE_OS::atoi (opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " \t[-s Means NOT to use the name service] \n" - " \t[-p ]\n" - " \t[-h ]\n" - " \t[-t ]\n" - " \t[-f ]\n" - " \t[-r Use thread per rate]\n" - "\n", argv [0]), - 1); - } - - if (thread_per_rate == 1) - num_of_objs = 4; - - if (run_utilization_test == 1) - num_of_objs = 1; - - // Indicates successful parsing of command line - return 0; -} - -// @@ This method should be integrated into one of the classes rather -// than kept as a stand-alone function. - -static int -initialize (int argc, char **argv) -{ -#if defined (VXWORKS) -#if defined (VME_DRIVER) - STATUS status = vmeDrv (); - - if (status != OK) - printf ("ERROR on call to vmeDrv()\n"); - - status = vmeDevCreate ("/vme"); - - if (status != OK) - printf ("ERROR on call to vmeDevCreate()\n"); -#endif /* defined (VME_DRIVER) */ - -#if defined (FORCE_ARGS) - int argc = 4; - char *argv[] = { "server", - "-s", - "-f", - "ior.txt" }; - -#endif /* defined (FORCE_ARGS) */ -#endif /* defined (VXWORKS) */ - - // Standard command line parsing utilities used. - if (parse_args (argc, argv) != 0) return 1; - - if (hostname == 0 || base_port == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-s Means NOT to use the name service] " - " [-p port]" - " [-h my_hostname]" - " [-t num_objects]" - " [-f ]" - " [-r Use thread per rate]" - "\n", argv [0]), - 1); - - // Make sure we've got plenty of socket handles. This call will use - // the default maximum. - ACE::set_handle_limit (); - - return 0; -} - -// Starts up the servants - -// @@ This method should be integrated into one of the classes rather -// than kept as a stand-alone function. - -static int -start_servants (ACE_Thread_Manager *serv_thr_mgr, ACE_Barrier &start_barrier, Task_State *ts) -{ - char *args1; - - ACE_NEW_RETURN (args1, - char[BUFSIZ], - -1); - u_int i; - - // Create an array to hold pointers to the Cubit objects. - CORBA::String *cubits; - - ACE_NEW_RETURN (cubits, - CORBA::String [num_of_objs], - -1); - - ACE_OS::sprintf (args1, - "rate20 -ORBport %d " - "-ORBhost %s " - "-ORBobjrefstyle URL " - "-ORBsndsock 32768 " - "-ORBrcvsock 32768 ", - base_port, - hostname); - - Cubit_Task *high_priority_task; - - ACE_NEW_RETURN (high_priority_task, - Cubit_Task (args1, - "internet", - 1, - &start_barrier, - ts, - serv_thr_mgr, - 0), //task id 0. - -1); - -#if defined (VXWORKS) - ACE_Sched_Priority priority = ACE_THR_PRI_FIFO_DEF; -#elif defined (ACE_WIN32) - ACE_Sched_Priority priority = ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); -#else - ACE_Sched_Priority priority = ACE_THR_PRI_FIFO_DEF + 25; -#endif /* VXWORKS */ - - if (run_utilization_test == 1) - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating servant 0 with high priority %d\n", - priority)); - - // Make the high priority task an active object. - if (high_priority_task->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\thigh_priority_task->activate failed")); - } - - // Create an array to hold pointers to the low priority tasks. - Cubit_Task **low_priority_task; - - ACE_NEW_RETURN (low_priority_task, - Cubit_Task *[num_of_objs], - -1); - - u_int number_of_low_priority_servants = 0; - u_int number_of_priorities = 0; - u_int grain = 0; - u_int counter = 0; - - number_of_low_priority_servants = num_of_objs - 1; - - // Drop the priority - if (thread_per_rate == 1 || use_multiple_priority == 1) - { - ACE_Sched_Priority_Iterator priority_iterator (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - number_of_priorities = 0; - - while (priority_iterator.more ()) - { - number_of_priorities ++; - priority_iterator.next (); - } - - // 1 priority is exclusive for the high priority client. - number_of_priorities --; - - // Drop the priority, so that the priority of clients will increase - // with increasing client number. - for (i = 0; i < number_of_low_priority_servants; i++) - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - - // granularity of the assignment of the priorities. Some OSs have - // fewer levels of priorities than we have threads in our test, so - // with this mechanism we assign priorities to groups of threads when - // there are more threads than priorities. - grain = number_of_low_priority_servants / number_of_priorities; - counter = 0; - - if (grain <= 0) - grain = 1; - - } - else - { - priority = ACE_Sched_Params::previous_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - ACE_DEBUG ((LM_DEBUG, - "Creating %d servants starting at priority %d\n", - number_of_low_priority_servants, - priority)); - - // Create the low priority servants. - - for (i = number_of_low_priority_servants; i > 0; i--) - { - char *args; - - ACE_NEW_RETURN (args, - char [BUFSIZ], - -1); - - ACE_OS::sprintf (args, - "rate10 -ORBport %d " - "-ORBhost %s " - "-ORBobjrefstyle URL " - "-ORBsndsock 32768 " - "-ORBrcvsock 32768 ", - base_port + i, - hostname); - - ACE_NEW_RETURN (low_priority_task [i - 1], - Cubit_Task (args, - "internet", - 1, - &start_barrier, - ts, - serv_thr_mgr, - i), - -1); - - // Make the low priority task an active object. - if (low_priority_task [i - 1]->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\tlow_priority_task[i]->activate")); - } - - ACE_DEBUG ((LM_DEBUG, - "Created servant %d with priority %d\n", - i, - priority)); - - // use different priorities on thread per rate or multiple priority. - if (use_multiple_priority == 1 || thread_per_rate == 1) - { - counter = (counter + 1) % grain; - if ( (counter == 0) && - //Just so when we distribute the priorities among the - //threads, we make sure we don't go overboard. - ((number_of_priorities * grain) > (number_of_low_priority_servants - (i - 1))) ) - { - // Get the next higher priority. - priority = ACE_Sched_Params::next_priority (ACE_SCHED_FIFO, - priority, - ACE_SCOPE_THREAD); - } - - } - } /* end of for() */ - - start_barrier.wait (); - - // Write the ior's to a file so the client can read them. - { - cubits[0] = high_priority_task->get_servant_ior (0); - - for (i = 0; i < num_of_objs-1; ++i) - cubits[i + 1] = low_priority_task[i]->get_servant_ior (0); - - FILE *ior_f = 0; - - if (ior_file != 0) - ior_f = ACE_OS::fopen (ior_file, "w+"); - - for (i = 0; i < num_of_objs; ++i) - { - if (ior_f != 0) - { - ACE_OS::fprintf (ior_f, "%s\n", cubits[i]); - } - ACE_OS::printf ("cubits[%d] ior = %s\n", - i, - cubits[i]); - } - - if (ior_f != 0) - ACE_OS::fclose (ior_f); - } - return 0; - -} - -Util_Thread * -start_utilization (ACE_Thread_Manager *util_thr_mgr, Task_State *ts) -{ - Util_Thread *util_task; - - ACE_NEW_RETURN (util_task, - Util_Thread (ts, - util_thr_mgr), - 0); - - ACE_Sched_Priority priority = ACE_Sched_Params::priority_min (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD); - - ACE_DEBUG ((LM_DEBUG, - "Creating Utilization Task with priority %d\n", - priority)); - - // Make the high priority task an active object. - if (util_task->activate (THR_BOUND | ACE_SCHED_FIFO, - 1, - 0, - priority) == -1) - { - ACE_ERROR ((LM_ERROR, "(%P|%t) %p\n" - "\tutil_task->activate failed")); - } - - return util_task; -} - -// main routine. - -#if defined (VXWORKS) - // Rename main to server to make it easier to run both client and - // server on one target. -extern "C" -int -server (int argc, char *argv[]) -{ - ACE_Object_Manager ace_object_manager; -#else -int -main (int argc, char *argv[]) -{ -#endif - -#if defined (ACE_HAS_THREADS) - // Enable FIFO scheduling, e.g., RT scheduling class on Solaris. - if (ACE_OS::sched_params ( - ACE_Sched_Params ( - ACE_SCHED_FIFO, -#if defined (__Lynx__) - 30, -#elif defined (VXWORKS) /* ! __Lynx__ */ - 6, -#elif defined (ACE_WIN32) - ACE_Sched_Params::priority_max (ACE_SCHED_FIFO, - ACE_SCOPE_THREAD), -#else - ACE_THR_PRI_FIFO_DEF + 25, -#endif /* ! __Lynx__ */ - ACE_SCOPE_PROCESS)) != 0) - { - if (ACE_OS::last_error () == EPERM) - ACE_DEBUG ((LM_MAX, "preempt: user is not superuser, " - "so remain in time-sharing class\n")); - else - ACE_ERROR_RETURN ((LM_ERROR, "%n: ACE_OS::sched_params failed\n%a"), - -1); - } - - if (initialize (argc, argv) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error in Initialization\n"), - 1); - int _argc = 3; - char *_argv[] = {"server", - "-t", - "1"}; - - Task_State ts ( _argc, _argv); - - if (run_utilization_test == 1) - { - ts.run_server_utilization_test_ = 1; - ts.loop_count_ = 0; - } - - Util_Thread * util_task = 0; - - // Create the daemon thread in its own . - ACE_Thread_Manager servant_thread_manager; - ACE_Thread_Manager util_thr_mgr; - ACE_Time_Value total_elapsed; - double util_task_duration = 0.0; - double total_latency = 0.0; - double total_latency_servants = 0.0; - double total_util_task_duration = 0.0; - - if (run_utilization_test == 1) - { - if ((util_task = start_utilization (&util_thr_mgr, &ts)) == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error creating the utilization thread!\n"), - 1); - - // - // Time the utilization thread' "computation" to get %IdleCPU at the end of the test. - // - -#if defined (CHORUS) - int pstartTime = 0; - int pstopTime = 0; - // Elapsed time will be in microseconds. - pstartTime = pccTime1Get(); - // execute one computation. - util_task->computation (); - pstopTime = pccTime1Get(); - // Store the time in micro-seconds. - util_task_duration = pstopTime - pstartTime; -#else /* CHORUS */ - ACE_High_Res_Timer timer_; - // Elapsed time will be in microseconds. - ACE_Time_Value delta_t; - timer_.start (); - // execute computation. - for (int k=0; k < 10000; k++) - util_task->computation (); - timer_.stop (); - timer_.elapsed_time (delta_t); - // Store the time in milli-seconds. - util_task_duration = ((double)delta_t.sec () * - ACE_ONE_SECOND_IN_USECS + - (double)delta_t.usec ()) / 10000; -#endif /* !CHORUS */ - } - // Barrier for the multiple clients to synchronize after binding to - // the servants. - ACE_Barrier start_barrier (num_of_objs + 1); - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); - quantify_clear_data (); - quantify_start_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - - if (start_servants (&servant_thread_manager, start_barrier, &ts) != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Error creating the servants\n"), - 1); - - ACE_DEBUG ((LM_DEBUG, - "Wait for all the threads to exit\n")); - - // Wait for all the threads to exit. - servant_thread_manager.wait (); - // ACE_Thread_Manager::instance ()->wait (); - - if (run_utilization_test == 1) - { - util_task->done_ = 1; - - // This will wait for the utilization thread to finish. - util_thr_mgr.wait (); - - ts.timer_.elapsed_time (total_elapsed); - - total_util_task_duration = util_task_duration * util_task->get_number_of_computations (); - - total_latency = (total_elapsed.sec () * - ACE_ONE_SECOND_IN_USECS + - (double)total_elapsed.usec ()); - - total_latency_servants = total_latency - total_util_task_duration; - - ACE_DEBUG ((LM_DEBUG, - "-------------------------- Stats -------------------------------\n")); - - ACE_DEBUG ((LM_DEBUG, - "(%t) UTILIZATION task performed \t%u computations\n" - "(%t) SERVANT task serviced \t\t%u CORBA calls\n" - "\t Ratio of computations to CORBA calls is %u.%u:1\n\n", - util_task->get_number_of_computations (), - ts.loop_count_, - util_task->get_number_of_computations () / ts.loop_count_, - (util_task->get_number_of_computations () % ts.loop_count_) * 100 / ts.loop_count_ - )); - - ACE_DEBUG ((LM_DEBUG, - "(%t) Each computation had a duration of %f msecs\n" - "(%t) Total elapsed time of test is %f msecs\n", - util_task_duration / 1000, - total_latency / 1000)); - - // Calc and print the CPU percentage. I add 0.5 to round to the - // nearest integer before casting it to int. - ACE_DEBUG ((LM_DEBUG, - "\t%% ORB Servant CPU utilization: %d %%\n" - "\t%% Idle time: %d %%\n", - (int) (total_latency_servants * 100 / total_latency + 0.5), - (int) (total_util_task_duration * 100 / total_latency + 0.5) )); - } - -#if defined (NO_ACE_QUANTIFY) - quantify_stop_recording_data(); -#endif /* NO_ACE_QUANTIFY */ - -#else - ACE_DEBUG ((LM_DEBUG, - "Test not run. This platform doesn't seem to have threads.\n")); -#endif /* ACE_HAS_THREADS */ - return 0; -} diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/server.dsp b/TAO/tests/Cubit/TAO/MT_Cubit/server.dsp deleted file mode 100644 index 1458f88329b..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/server.dsp +++ /dev/null @@ -1,171 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 Scc_ProjName "" -# PROP Scc_LocalPath "" -# PROP WCE_Configuration "H/PC Ver. 2.00" -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 "" -# 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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "PRIORITY_INV_TEST" /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 orbsvcs.lib ace.lib TAO.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\orbsvcs\orbsvcs" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!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 "..\..\..\..\\" /I "..\..\..\..\..\\" /I "..\..\..\..\orbsvcs" /D "_DEBUG" /D "WIN32" /D "_CONSOLE" /D "PRIORITY_INV_TEST" /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 orbsvcs.lib aced.lib TAO.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\orbsvcs\orbsvcs" /libpath:"..\..\..\..\tao" /libpath:"..\..\..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\cubit.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\cubit.idl - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl cubit.idl - -"cubitC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\cubit.idl - -BuildCmds= \ - ..\..\..\..\tao_idl\tao_idl cubit.idl - -"cubitC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"cubitS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\cubit_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitC.cpp -# End Source File -# Begin Source File - -SOURCE=.\cubitS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# Begin Source File - -SOURCE=.\Task_Client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Util_Thread.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/server.h b/TAO/tests/Cubit/TAO/MT_Cubit/server.h deleted file mode 100644 index 9fabfef8040..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/server.h +++ /dev/null @@ -1,123 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests -// -// = FILENAME -// server.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -// ACE includes. -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "ace/ARGV.h" -#include "ace/Sched_Params.h" -#include "orbsvcs/CosNamingC.h" - -// TAO includes. -#include "tao/corba.h" - -// MT Cubit application includes. -#include "cubit_i.h" -#include "Task_Client.h" -#include "Util_Thread.h" - -#if defined (VME_DRIVER) -#include -extern "C" STATUS vmeDrv (void); -extern "C" STATUS vmeDevCreate (char *); -#endif /* VME_DRIVER */ - -#if !defined (ACE_HAS_THREADS) -class NOOP_ACE_Barrier -{ -public: - NOOP_ACE_Barrier (int ) {} - void wait (void) {} -}; -#define ACE_Barrier NOOP_ACE_Barrier -#endif /* ACE_HAS_THREADS */ - -class Cubit_Task : public ACE_Task -{ - // = TITLE - // Encapsulates an ORB for the Cubit application. - public: - Cubit_Task (const char *args, - const char* orbname, - u_int num_of_objs, - ACE_Barrier *barrier, - Task_State *ts, - ACE_Thread_Manager *thr_mgr, - u_int task_id); - // Constructor. - - virtual int svc (void); - // Active Object entry point. - - CORBA::String get_servant_ior (u_int index); - -protected: - Cubit_Task (void); - // No-op constructor. - -private: - int initialize_orb (void); - // Initialize the ORB, and POA. - - int create_servants (void); - // Create the servants - - CORBA::String key_; - // All cubit objects will have this as prefix to its key. - - char *orbname_; - // Name of the ORB. - - char *orbargs_; - // ORB arguments. - - u_int num_of_objs_; - // Number of objects we're managing. - - CORBA::ORB_var orb_; - // Pointer to the ORB - - PortableServer::POA_var root_poa_; - // Pointer to the Root POA - - PortableServer::POA_var poa_; - // Pointer to the child POA used on the application. - - PortableServer::POAManager_var poa_manager_; - // The POA Manager for both the root POA and the child POA. - - Cubit_i **servants_; - // Array to hold the servants - - ACE_Barrier *barrier_; - // Barrier for the multiple servants to synchronize after - // binding to the orb. - - CORBA::String *servants_iors_; - // ior strings of the servants - - CosNaming::NamingContext_var naming_context_; - // Object reference to the naming service - - u_int task_id_; - // id used for naming service object name. - - CosNaming::NamingContext_var mt_cubit_context_; - // context where all MT Cubit objects will be created. - - Task_State *ts_; - // state for the utilization thread to synchronize with the servants. -}; - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/svc.conf b/TAO/tests/Cubit/TAO/MT_Cubit/svc.conf deleted file mode 100644 index 284c327aa0a..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources tss" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() "" -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" - diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/svr.bld b/TAO/tests/Cubit/TAO/MT_Cubit/svr.bld deleted file mode 100644 index 94b68d515c4..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/svr.bld +++ /dev/null @@ -1,12 +0,0 @@ -#!build -default: - program - :debuglevel=multi -cubit_i.cpp - C++ -cubitS.cpp - C++ -svr.cpp - C++ -cubitC.cpp - C++ diff --git a/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp b/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp deleted file mode 100644 index 91836d349b2..00000000000 --- a/TAO/tests/Cubit/TAO/MT_Cubit/tmplinst.cpp +++ /dev/null @@ -1,12 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "cubitC.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Cubit/TAO/Makefile b/TAO/tests/Cubit/TAO/Makefile deleted file mode 100644 index 66b7272553a..00000000000 --- a/TAO/tests/Cubit/TAO/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the TAO tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = IDL_Cubit \ - MT_Cubit - -# These are disabled by default... -# Orbix \ -# VisiBroker - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Cubit/TAO/README b/TAO/tests/Cubit/TAO/README deleted file mode 100644 index 61da08408de..00000000000 --- a/TAO/tests/Cubit/TAO/README +++ /dev/null @@ -1,20 +0,0 @@ -There are three versions of the Cubit example. Individual README files -in the respective directories explain these versions in further -detail. - - . IDL_Cubit - - Cubit example with tao_idl compiler generated stubs - and skeletons - - . MT_Cubit - - Multithreaded real-time Cubit example. - - . DII_Cubit - - Cubit example with hand-generated stubs. When - TAO supports the DII interface this will - illustrate how it works. - - diff --git a/TAO/tests/Cubit/VisiBroker/base_server/Makefile b/TAO/tests/Cubit/VisiBroker/base_server/Makefile deleted file mode 100644 index 9fdad280ffc..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = server - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -server: cubitS.o cubitC.o server.o Profile_Timer.o cubit_impl.o - $(CC) -o server cubitS.o cubitC.o cubit_impl.o server.o Profile_Timer.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp b/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.h b/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/tests/Cubit/VisiBroker/base_server/cubit.idl b/TAO/tests/Cubit/VisiBroker/base_server/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp b/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp deleted file mode 100644 index c4313a1fccb..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -#include "cubit_impl.h" - -CORBA::Octet Cubit_Impl:: cube_octet (CORBA::Octet o) { - return (CORBA::Octet) (o * o * o); -} - -CORBA::Short Cubit_Impl:: cube_short (CORBA::Short s) { - return (CORBA::Short) (s * s * s); -} - -CORBA::Long Cubit_Impl:: cube_long (CORBA::Long l) { - return (CORBA::Long) (l * l * l); -} - -Cubit::Many Cubit_Impl:: cube_struct (const Cubit::Many& values) { - Cubit::Many out_values; - out_values.o = values.o * values.o * values.o; - out_values.s = values.s * values.s * values.s; - out_values.l = values.l * values.l * values.l; - return out_values; -} - -Cubit::oneof Cubit_Impl:: cube_union (const Cubit::oneof& values) { - Cubit::oneof out_values; - switch (values._d ()) { - case Cubit::e_0th: - out_values.o (values.o () * values.o () * values.o ()); - break; - case Cubit::e_1st: - out_values.s (values.s () * values.s () * values.s ()); - break; - case Cubit::e_2nd: - out_values.l (values.l () * values.l () * values.l ()); - break; - case Cubit::e_3rd: - default: - out_values.cm ().o = values.cm ().o * values.cm ().o * values.cm ().o ; - out_values.cm ().s = values.cm ().s * values.cm ().s * values.cm ().s ; - out_values.cm ().l = values.cm ().l * values.cm ().l * values.cm ().l ; - break; - } - return out_values; -} - -void Cubit_Impl:: please_exit () - {} diff --git a/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.h b/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.h deleted file mode 100644 index f1f5e3fa3ea..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/cubit_impl.h +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - - -#ifndef cubit_ih -#define cubit_ih - -#include "cubitS.h" - - -#ifdef Cubit_USE_BOA -class Cubit_Impl : public virtual _sk_Cubit { -#else -class Cubit_Impl { -#endif /* Cubit_USE_BOA */ - -public: - -#ifdef Cubit_USE_BOA - Cubit_Impl (const char *obj_name = NULL) : - _sk_Cubit(obj_name) - {} -#else - Cubit_Impl (const char *obj_name = NULL) - {} -#endif /* Cubit_USE_BOA */ - - virtual CORBA::Octet cube_octet(CORBA::Octet o); - virtual CORBA::Short cube_short(CORBA::Short s); - virtual CORBA::Long cube_long(CORBA::Long l); - virtual Cubit::Many cube_struct(const Cubit::Many& values); - virtual Cubit::oneof cube_union(const Cubit::oneof& values); - virtual void please_exit(); -}; - -#endif diff --git a/TAO/tests/Cubit/VisiBroker/base_server/server.cpp b/TAO/tests/Cubit/VisiBroker/base_server/server.cpp deleted file mode 100644 index 12ef0a6b9ba..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/server.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// $Id$ - -// ************************************************************************** -// -// NAME : tpr_server.cpp -// DESCRIPTION: -// -// Server mainline -// -// **************************************************************************** -#include "cubit_impl.h" // server header file - -int -main (int argc, char** argv) -{ - - CORBA::ORB_var orb = CORBA::ORB_init(argc, argv); - CORBA::BOA_var boa = orb->BOA_init(argc, argv); - -#ifdef Cubit_USE_BOA - Cubit_Impl cb("Cubit"); - cout << "Using BOA approach" << endl; -#else - Cubit_Impl tied("Cubit"); - _tie_Cubit cb(tied, "Cubit"); - - cout << "Using TIE approach" << endl; -#endif /* Cubit_USE_BOA */ - - // - // Go get some work to do.... - // - try { - - boa->obj_is_ready(&cb); - - boa->impl_is_ready(); - - } catch (const CORBA::Exception &excep) { - cerr << "Server error: " << excep << endl; - return -1; - } catch (...) { - cerr << "Unknown exception" << endl; - return -1; - } - - cout << "Cubit server is exiting." << endl; - - - return 0; -} diff --git a/TAO/tests/Cubit/VisiBroker/base_server/stdmk b/TAO/tests/Cubit/VisiBroker/base_server/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/tests/Cubit/VisiBroker/base_server/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/tests/Cubit/VisiBroker/client/Makefile b/TAO/tests/Cubit/VisiBroker/client/Makefile deleted file mode 100644 index d9c26fe56f0..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -include stdmk - -EXE = client - -all: $(EXE) - -clean: - -rm -f core *.o cubitC.* cubitS.* $(EXE) - -rm -rf Templates.DB - -cubitS.cpp: cubit.idl - $(ORBCC) cubit.idl - -cubitC.cpp: cubit.idl - $(ORBCC) cubit.idl - -client: cubitC.o Profile_Timer.o client.o - $(CC) -o client cubitC.o Profile_Timer.o client.o \ - $(LIBPATH) $(LIBORB) $(STDCC_LIBS) diff --git a/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.cpp b/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.cpp deleted file mode 100644 index d20d988f48b..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.cpp +++ /dev/null @@ -1,129 +0,0 @@ -// $Id$ - -#include "Profile_Timer.h" - -/* Initialize interval timer. */ - -Profile_Timer::Profile_Timer (void) -{ - char buf[20]; - ::sprintf(buf, "/proc/%d", ::getpid ()); - - ::memset (&this->end_usage_, 0, sizeof this->end_usage_); - ::memset (&this->begin_usage_, 0, sizeof this->begin_usage_); - ::memset (&this->last_usage_, 0, sizeof this->last_usage_); - if ((this->proc_fd_ = ::open (buf, O_RDONLY, 0)) == -1) - ::perror (buf); -} - -/* Terminate the interval timer. */ -Profile_Timer::~Profile_Timer (void) -{ - if (::close (this->proc_fd_) == -1) - ::perror ("Profile_Timer::~Profile_Timer"); -} - -/* Return the resource utilization. */ - -void -Profile_Timer::get_rusage (prusage_t &rusage) -{ - rusage = this->end_usage_; -} - -/* Compute the amount of resource utilization since the start time. */ - -void -Profile_Timer::elapsed_rusage (prusage_t &rusage) -{ - rusage.pr_lwpid = this->end_usage_.pr_lwpid - this->last_usage_.pr_lwpid; - rusage.pr_count = this->end_usage_.pr_count - this->last_usage_.pr_count; - rusage.pr_minf = this->end_usage_.pr_minf - this->last_usage_.pr_minf; - rusage.pr_majf = this->end_usage_.pr_majf - this->last_usage_.pr_majf; - rusage.pr_inblk = this->end_usage_.pr_inblk - this->last_usage_.pr_inblk; - rusage.pr_oublk = this->end_usage_.pr_oublk - this->last_usage_.pr_oublk; - rusage.pr_msnd = this->end_usage_.pr_msnd - this->last_usage_.pr_msnd; - rusage.pr_mrcv = this->end_usage_.pr_mrcv - this->last_usage_.pr_mrcv; - rusage.pr_sigs = this->end_usage_.pr_sigs - this->last_usage_.pr_sigs; - this->subtract (rusage.pr_wtime, this->end_usage_.pr_wtime, this->last_usage_.pr_wtime); - this->subtract (rusage.pr_ltime, this->end_usage_.pr_ltime, this->last_usage_.pr_ltime); - this->subtract (rusage.pr_slptime, this->end_usage_.pr_slptime, this->last_usage_.pr_slptime); - rusage.pr_vctx = this->end_usage_.pr_vctx - this->last_usage_.pr_vctx; - rusage.pr_ictx = this->end_usage_.pr_ictx - this->last_usage_.pr_ictx; - rusage.pr_sysc = this->end_usage_.pr_sysc - this->last_usage_.pr_sysc; - rusage.pr_ioch = this->end_usage_.pr_ioch - this->last_usage_.pr_ioch; -} - -/* Compute the elapsed time. */ - -void -Profile_Timer::compute_times (Elapsed_Time &et, prusage_t &end, prusage_t &begin) -{ - timespec_t td; - - this->subtract (td, end.pr_tstamp, begin.pr_tstamp); - et.real_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_utime, begin.pr_utime); - et.user_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); - this->subtract (td, end.pr_stime, begin.pr_stime); - et.system_time = td.tv_sec + ((double) td.tv_nsec) / (1000 * 1000 * 1000); -} - -/* Compute the amount of time that has elapsed between start and stop. */ - -int -Profile_Timer::elapsed_time (Elapsed_Time &et) -{ - this->compute_times (et, this->end_usage_, this->begin_usage_); - return 0; -} - -/* Determine the difference between T1 and T2. */ - -void -Profile_Timer::subtract (timespec_t &tdiff, timespec_t &t1, timespec_t &t0) -{ - tdiff.tv_sec = t1.tv_sec - t0.tv_sec; - tdiff.tv_nsec = t1.tv_nsec - t0.tv_nsec; - - /* Normalize the time. */ - - while (tdiff.tv_nsec < 0) - { - tdiff.tv_sec--; - tdiff.tv_nsec += (1000 * 1000 * 1000); - } -} - -#if defined (DEBUG) -#include -extern "C" int gettimeofday (timeval *tp); - -const int DEFAULT_ITERATIONS = 1000000; - -int -main (int argc, char *argv[]) -{ - Profile_Timer timer; - int iterations = argc > 1 ? atoi (argv[1]) : DEFAULT_ITERATIONS; - timeval tv; - - timer.start (); - - for (int i = 0; i < iterations; i++) - gettimeofday (&tv); - - timer.stop (); - - Profile_Timer::Elapsed_Time et; - - timer.elapsed_time (et); - - printf ("iterations = %d\n", iterations); - printf ("real time = %f secs, user time = %f secs, system time = %f secs\n", - et.real_time, et.user_time, et.system_time); - - printf ("time per call = %f usecs\n", (et.real_time / double (iterations)) * 1000000); - return 0; -} -#endif /* DEBUG */ diff --git a/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.h b/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.h deleted file mode 100644 index 4198fba9a10..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/Profile_Timer.h +++ /dev/null @@ -1,62 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -/* An interval timer class using C++. */ - -#if !defined (ACE_PROFILE_TIMER_H) -#define ACE_PROFILE_TIMER_H - -#include -#include -#include -#include -#include -#include - -class Profile_Timer -{ -public: - struct Elapsed_Time - { - double real_time; - double user_time; - double system_time; - }; - - Profile_Timer (void); - ~Profile_Timer (void); - int start (void); - int stop (void); - int elapsed_time (Elapsed_Time &et); - void elapsed_rusage (prusage_t &rusage); - void get_rusage (prusage_t &rusage); - -private: - void subtract (timespec_t &tdiff, timespec_t &t0, timespec_t &t1); - void compute_times (Elapsed_Time &et, prusage_t &, prusage_t &); - - prusage_t begin_usage_; - prusage_t end_usage_; - prusage_t last_usage_; - int proc_fd_; -}; - -/* Start timing */ - -inline int -Profile_Timer::start (void) -{ - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->begin_usage_); -} - -/* Stop timing */ - -inline int -Profile_Timer::stop (void) -{ - this->last_usage_ = this->end_usage_; - return ::ioctl (this->proc_fd_, PIOCUSAGE, &this->end_usage_); -} - -#endif /* ACE_PROFILE_TIMER_H */ - diff --git a/TAO/tests/Cubit/VisiBroker/client/client.cpp b/TAO/tests/Cubit/VisiBroker/client/client.cpp deleted file mode 100644 index 3edd6e36dc2..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/client.cpp +++ /dev/null @@ -1,318 +0,0 @@ -// $Id$ - -//************************************************************************** -// -// NAME : client.C -// DESCRIPTION: -// -// Client for the Cubit example -// -//**************************************************************************** - -#include -#include -#include -#include -#include -#include "cubitC.h" -#include "Profile_Timer.h" - -int LOOP_COUNT; -char SERVER_HOST [1024]; - -inline int func (unsigned i) { return i - 117; } -void run_tests (Cubit_var, int); - -// = TITLE -// Parses the command line arguments and returns an error status -// -// = DESCRIPTION -// This method parses the command line arguments -int parse_args(int argc, char *argv[]) -{ - if (argc != 3) { - cerr << "Format: client " << endl; - return -1; - } - - strcpy(SERVER_HOST, argv[1]); - - LOOP_COUNT = atoi(argv[2]); - - return 0; // Indicates successful parsing of command line -} - - -// -// Mainline -// -int -main (int argc, char *argv[]) -{ - if (parse_args (argc, argv) != 0) - return -1; - - Cubit_var cb; - // cout << "attempting to contact server at host " << SERVER_HOST << '\n' ; - - // - // Initialise client's binding to an - // arbitrary cubit server (at some host) - // - try { - cb = Cubit::_bind ("Cubit", SERVER_HOST); - - } catch (const CORBA::Exception & sysEx) { - cerr << "Binding failed: " << endl; - cerr << sysEx; - } catch (...) { - cerr << "Unexpected exception" << endl; - } - - run_tests (cb, LOOP_COUNT); - return 0; -} - - -void -run_tests (Cubit_var cb, int loop_count) -{ - // - // Make the calls in a loop. - // - unsigned i; - unsigned call_count, error_count; - - Profile_Timer pt; - Elapsed_Time et; - - // - // Cube an octet. - // - - call_count = 0; - error_count = 0; - pt.start(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Octet arg_octet = func (i), ret_octet; - - try { - ret_octet = cb->cube_octet (arg_octet); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_octet = arg_octet * arg_octet * arg_octet; - if (arg_octet != ret_octet) { - printf ("** cube_octet(%d) (--> %d)\n", arg_octet , ret_octet); - error_count++; - } - } - - pt.stop(); - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube octet average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } - - - // - // Cube a short. - // - call_count = 0; - error_count = 0; - pt.start(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Short arg_short = func (i), ret_short; - - try { - ret_short = cb->cube_short (arg_short); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_short = arg_short * arg_short * arg_short; - if (arg_short != ret_short) { - printf ("** cube_short(%d) (--> %d)\n", arg_short , ret_short); - error_count++; - } - } - - pt.stop(); - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube short average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } - - // - // Cube a long. - // - - call_count = 0; - error_count = 0; - pt.start(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - CORBA::Long arg_long = func (i), ret_long; - - try { - ret_long = cb->cube_long (arg_long); - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - arg_long = arg_long * arg_long * arg_long; - if (arg_long != ret_long) { - printf ("** cube_long(%d) (--> %d)\n", arg_long , ret_long); - error_count++; - } - } - - pt.stop(); - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube long average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } - - - // - // Cube a "struct" ... - // - Cubit::Many arg_struct, ret_struct; - - call_count = 0; - error_count = 0; - pt.start(); - - for (i = 0; i < loop_count; i++) - { - - call_count++; - - arg_struct.l = func (i); - arg_struct.s = func (i); - arg_struct.o = func (i); - - try { - ret_struct = cb->cube_struct (arg_struct); - - } catch (const CORBA::Exception &sysEx) { - cerr << "Call failed: " << endl; - cerr << sysEx; - error_count++; - } catch (...) { - cerr << "Unexpected exception" << endl; - error_count++; - } - - - arg_struct.l = arg_struct.l * arg_struct.l * arg_struct.l ; - arg_struct.s = arg_struct.s * arg_struct.s * arg_struct.s ; - arg_struct.o = arg_struct.o * arg_struct.o * arg_struct.o ; - - if (arg_struct.l != ret_struct.l - || arg_struct.s != ret_struct.s - || arg_struct.o != ret_struct.o ) - { - cerr << "** cube_struct ERROR\n"; - error_count++; - } - } - - pt.stop(); - pt.elapsed_time(et); - - if (call_count > 0) - { - if (error_count == 0) - { - unsigned long us = et.real_time * 1000 * 1000; - - us /= call_count; - - if (us > 0) - printf ("cube struuct average call ACE_OS::time\t= %ld.%.03ldms, \t" - "%ld calls/second\n", - us / 1000, us % 1000, - 1000000L / us); - } - - printf ("%d calls, %d errors\n", call_count, error_count); - } -} diff --git a/TAO/tests/Cubit/VisiBroker/client/cubit.idl b/TAO/tests/Cubit/VisiBroker/client/cubit.idl deleted file mode 100644 index 7eedbe786ab..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/cubit.idl +++ /dev/null @@ -1,42 +0,0 @@ -// $Id$ - -// @(#)cubit.idl 1.1 95/09/10 -// Copyright 1994-1995 by Sun Microsystems, Inc. -// -//#pragma prefix "Eng.SUN.COM" -//#pragma version Cubit 1.1 - -interface Cubit { - octet cube_octet (in octet o); - short cube_short (in short s); - long cube_long (in long l); - - struct Many { - octet o; // + 3 bytes padding (normally) ... - long l; - short s; // + 2 bytes padding (normally) ... - }; - - Many cube_struct (in Many values); - - enum discrim {e_0th, e_1st, e_2nd, e_3rd, e_4th, e_5th}; - - union oneof - switch (discrim) { - // this is an easy union to interpret; no padding - // is needed between discriminant and value. - case e_0th: - octet o; - case e_1st: - short s; - case e_2nd: - long l; - case e_3rd: - default: - Many cm; - }; - - oneof cube_union (in oneof values); - - oneway void please_exit (); -}; diff --git a/TAO/tests/Cubit/VisiBroker/client/stdmk b/TAO/tests/Cubit/VisiBroker/client/stdmk deleted file mode 100644 index df4125a38d8..00000000000 --- a/TAO/tests/Cubit/VisiBroker/client/stdmk +++ /dev/null @@ -1,36 +0,0 @@ -CC = CC -DEBUG = - -ORBELINEDIR = /project/waltz/Orbeline2.0 - -ORBCC = $(ORBELINEDIR)/bin/orbeline -v C -m S -c cpp -h h - -CCINCLUDES = -I. -I$(ORBELINEDIR)/include -I$(STL_DIR) -I$(ACE_DIR) - -CCFLAGS = -g $(CCINCLUDES) $(DEBUG) -DCubit_USE_BOA - -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 $@ $< -.cpp.o: - $(CC) $(CCFLAGS) -c -o $@ $< - -.C.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - -.cc.cpp: - $(CC) -E $(CCFLAGS) $< > $@ - - diff --git a/TAO/tests/Cubit/results/Orbix b/TAO/tests/Cubit/results/Orbix deleted file mode 100644 index c3abce78d3f..00000000000 --- a/TAO/tests/Cubit/results/Orbix +++ /dev/null @@ -1,133 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.876 533 - 2 2.202 454 - 3 2.740 364 - -MT-Orbix Thread-Per-Request 1 1.886 530 - 2 3.1 322 - 3 5.0 200 - -MT-Orbix Thread-Pool (25) 1 1.875 533 - 2 3.1 322 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 2.002 499 - 2 3.306 302 - 3 5.15 194 - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 1.818 550 - 2 1.968 508 - 3 2.803 356 - - -MT-Orbix Thread-Per-Request 1 1.846 541 - 2 3.1 322 - 3 4.98 200 - -MT-Orbix Thread-Pool (25) 1 1.913 522 - 2 3.18 314 - 3 5.1 196 - -MT-Orbix Thread-Per-Session 1 1.959 510 - 2 3.29 303 - 3 5.15 194 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 7.918 126 - 2 14.300 70 - 3 21.000 47 - - -MT-Orbix Thread-Per-Request 1 8.302 120 - 2 10.128 98 - 3 13.722 72 - -MT-Orbix Thread-Pool (25) 1 8.442 118 - 2 15.764 63 - 3 22.595 44 - -MT-Orbix Thread-Per-Session 1 8.956 111 - 2 9.581 104 - 3 16.702 59 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -MT-Orbix without filters 1 6.667 149 - 2 12.165 82 - 3 18.634 54 - - -MT-Orbix Thread-Per-Request 1 6.812 146 - 2 6.937 144 - 3 7.706 128 - -MT-Orbix Thread-Pool (25) 1 6.813 146 - 2 6.954 144 - 3 7.776 128 - -MT-Orbix Thread-Per-Session 1 6.85 145 - 2 7.253 137 - 3 7.645 130 - - TNF client-side profile for MT-Orbix without filters for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_wait 6.23 4250.242 1824 2.330 106.171 1.205 0.091 -mutex_lock 0.23 159.830 56662 0.003 1.215 0.002 0.000 -mutex_unlock 0.22 146.756 56663 0.003 0.326 0.002 0.000 -cond_signal 0.09 61.030 1825 0.033 0.475 0.009 0.000 -rw_rdlock 0.01 7.179 1826 0.004 0.014 0.003 0.000 -rw_unlock 0.01 6.548 1827 0.004 0.014 0.003 0.000 -rw_wrlock 0.00 0.004 1 0.004 0.004 0.004 0.000 - - TNF server-side profile for MT-Orbix without filters for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -cond_timedwait 1.25 923.527 797 1.159 20.219 0.324 0.028 -mutex_lock 0.21 153.839 56435 0.003 4.342 0.002 0.000 -mutex_unlock 0.20 149.208 56433 0.003 3.559 0.002 0.000 -cond_signal 0.03 21.506 809 0.027 1.826 0.003 0.002 -rw_unlock 0.02 16.058 3224 0.005 2.915 0.003 0.001 -rw_rdlock 0.02 11.924 3221 0.004 0.087 0.003 0.000 -rw_wrlock 0.00 0.010 2 0.005 0.005 0.004 0.000 - - TNF server-side profile for MT-Orbix with thread-per-request for 20000 calls - - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.55 797.890 57618 0.014 4.624 0.002 0.000 -cond_timedwait 0.52 748.560 478 1.566 3.918 0.222 0.019 -mutex_unlock 0.36 514.627 57616 0.009 3.975 0.002 0.000 -cond_signal 0.02 24.216 1151 0.021 1.161 0.002 0.001 -rw_rdlock 0.01 13.120 2301 0.006 1.180 0.003 0.001 -rw_unlock 0.01 10.575 2307 0.005 0.316 0.003 0.000 -thr_sigsetmask 0.00 1.949 30 0.065 1.064 0.013 0.035 -rw_wrlock 0.00 0.033 6 0.006 0.008 0.004 0.001 - - - diff --git a/TAO/tests/Cubit/results/TAO b/TAO/tests/Cubit/results/TAO deleted file mode 100644 index de4a7bf23ae..00000000000 --- a/TAO/tests/Cubit/results/TAO +++ /dev/null @@ -1,92 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.172 853 - 2 1.342 745 - 3 1.902 525 - -TAO threaded version 1 1.174 851 - 2 1.219 820 - 3 1.600 625 - - -Cubit results over ATM with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.161 861 - 2 1.302 768 - 3 1.732 577 - -TAO threaded version 1 1.170 854 - 2 1.3 769 - 3 1.600 625 - - -Cubit results over ATM after optimizations with 20,000 calls ------------------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 1.127 887 - 2 1.238 807 - 3 1.501 666 - -TAO threaded version 1 1.057 946 - 2 1.225 816 - 3 1.471 679 - -Prime_Factor results over ATM with 20,000 calls -------------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 7.407 135 - 2 13.7 73 - 3 19.7 51 - -TAO threaded version 1 7.389 135 - 2 8.080 124 - 3 10.726 93 - -IO-bound results over ATM with 20,000 calls --------------------------------------------- - - Clients Latency (ms) Calls/Sec - -TAO reactive 1 6.404 156 - 2 11.909 83 - 3 17.324 57 - -TAO threaded version 1 6.378 156 - 2 6.449 155 - 3 6.500 153 - - - - - Sample client-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -rw_rdlock 0.40 146.579 20006 0.007 1.200 0.005 0.000 -rw_unlock 0.25 91.386 20009 0.005 0.058 0.004 0.000 -mutex_lock 0.06 21.087 5265 0.004 0.178 0.002 0.000 -mutex_unlock 0.04 14.372 5271 0.003 0.075 0.002 0.000 -rw_wrlock 0.00 0.045 3 0.015 0.034 0.005 0.008 - - - Sample server-side profile for TAO for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 1.12 154.491 54507 0.003 0.140 0.002 0.000 -mutex_unlock 1.06 145.638 54508 0.003 0.310 0.002 0.000 -rw_rdlock 0.27 37.265 6813 0.005 0.037 0.004 0.000 -rw_unlock 0.20 27.792 6813 0.004 0.045 0.004 0.000 - diff --git a/TAO/tests/Cubit/results/Visibroker b/TAO/tests/Cubit/results/Visibroker deleted file mode 100644 index 8d6bb2457c7..00000000000 --- a/TAO/tests/Cubit/results/Visibroker +++ /dev/null @@ -1,79 +0,0 @@ -Cubit results over Ethernet with 20,000 calls ---------------------------------------------- - - Clients Latency (ms) Calls/Sec - - -Visibroker reactive 1 1.167 856 - 2 1.39 718 - 3 1.664 600 - -Visibroker thr-per-connection 1 1.077 928 - 2 1.228 814 - 3 1.789 558 - - - -Cubit results over ATM with 20,000 calls ----------------------------------------- - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 1.195 836 - 2 1.241 805 - 3 1.56 641 - -Visibroker thr-per-connection 1 1.060 943 - 2 1.327 753 - 3 2.108 474 - - -Prime_Factor results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 7.43 134 - 2 13.652 73 - 3 17.738 56 - -Visibroker thr-per-connection 1 7.371 135 - 2 8.561 116 - 3 11.376 87 - -IO-intensive results over ATM with 20,000 calls ------------------------------------------------ - - Clients Latency (ms) Calls/Sec - -Visibroker reactive 1 6.424 155 - 2 11.895 84 - 3 17.468 57 - -Visibroker thr-per-connection 1 6.41 156 - 2 6.496 154 - 3 6.524 153 - - - - - TNF client-side profile for Visibroker for 20000 calls - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_unlock 1.31 188.930 61797 0.003 1.027 0.002 0.000 -mutex_lock 1.21 175.465 61790 0.003 0.330 0.002 0.000 - - - TNF server-side profile for Visibroker for 20000 calls - - Profile - -Function name % self+desc. mean max min std. - time ms calls ms/call ms/call ms/call err -________________________________________________________________________________ -mutex_lock 0.18 165.141 60432 0.003 0.501 0.002 0.000 -mutex_unlock 0.16 153.891 60432 0.003 0.373 0.002 0.000 - - diff --git a/TAO/tests/Cubit/results/orbs.xls b/TAO/tests/Cubit/results/orbs.xls deleted file mode 100644 index 53a7948d182..00000000000 Binary files a/TAO/tests/Cubit/results/orbs.xls and /dev/null differ diff --git a/TAO/tests/Demux_Test/CodeGen/Makefile b/TAO/tests/Demux_Test/CodeGen/Makefile deleted file mode 100644 index a0218e3634c..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/Makefile +++ /dev/null @@ -1,316 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile to compile the Demux application -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -BIN = tao -LIB = libtao.a -SHLIB = libtao.$(SOEXT) - -FILES = tao \ - gen \ - client \ - stub \ - skel \ - impl \ - perf \ - objcreate - -LSRC = $(addsuffix .cpp,$(FILES)) -LOBJ = $(addsuffix .o,$(FILES)) -SHOBJ = $(addsuffix .so,$(FILES)) - -LDLIBS = -ltao -LIBS = -lACE - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -#BUILD = $(VLIB) $(VSHLIB) $(SHLIBA) $(VBIN) -BUILD = $(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 - -#---------------------------------------------------------------------------- -# Include macros and targets -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -CPPFLAGS += -DDEBUG - -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/tao.o .shobj/tao.so: tao.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/gen.o .shobj/gen.so: gen.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/client.o .shobj/client.so: client.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/stub.o .shobj/stub.so: stub.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/skel.o .shobj/skel.so: skel.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/impl.o .shobj/impl.so: impl.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/perf.o .shobj/perf.so: perf.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i -.obj/objcreate.o .shobj/objcreate.so: objcreate.cpp tao.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(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/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Demux_Test/CodeGen/README b/TAO/tests/Demux_Test/CodeGen/README deleted file mode 100644 index 13fcae3c48f..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/README +++ /dev/null @@ -1,12 +0,0 @@ -This directory contains a code generator that will generate stubs and -skeletons for an interface called "tao_demux". The number of -operations in this interface is controlled by the -m option to the -executable "tao". - -Usage: - -tao -o -m < num of operations> - -The stubs and skeletons are for 2-way calls. The operation names and -object keys are automatically generated and have arbitrary string -names. \ No newline at end of file diff --git a/TAO/tests/Demux_Test/CodeGen/client.cpp b/TAO/tests/Demux_Test/CodeGen/client.cpp deleted file mode 100644 index 8cd3bd441be..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/client.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// $Id$ - -#include "tao.h" - - -// Generate the client side include file "client.i". This file has a table of -// function pointers to the the different operations of the -// interface. Depending on the strategy chosen, we make appropriate calls - -long GenClientCode(ACE_Unbounded_Queue &arr, int limit) -{ - fstream client_incl; - int i; - ACE_CString *str; - - client_incl.open("client.i", ios::out); - - for(i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - client_incl << "void " << str->rep() << "(tao_demux_ptr obj)" << endl; - client_incl << "{" << endl; - client_incl << "\tCORBA_Environment env;" << endl << endl; - client_incl << "\tobj->" << str->rep() << "(env);" << endl; - client_incl << "}" << endl; - } - client_incl << endl; - client_incl << "static const method_db mtbl[] = {" << endl; - for (i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - client_incl << "\t" << str->rep() << "," << endl; - } - client_incl << "};" << endl << endl; - client_incl.close(); -} - diff --git a/TAO/tests/Demux_Test/CodeGen/gen.cpp b/TAO/tests/Demux_Test/CodeGen/gen.cpp deleted file mode 100644 index abe4a15e8f7..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/gen.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// $Id$ - -#include "tao.h" - -static long GenDistinctString(ACE_Unbounded_Queue &, int); -static long GenRand(int, int); -static long IsPresent(ACE_Unbounded_Queue &, int, ACE_CString &); -static ACE_CString CreateString(long); -static char GetVarChar(int); - -// object table generator -long GenObjectTable(ACE_Unbounded_Queue &arr, int limit) -{ - int i,j,k; // indices - long rnd; // random number - int opt; - fstream arrfp; - ACE_CString *str; - - - // Generate "limit" distinct strings - for (i=0; i < limit; i++) - { - if (GenDistinctString(arr, i) == -1) // side effect: inserts a new string - return -1; // at locn i in array "arr" - } - - // write the strings into a file whose format will be understood by GPERF - arrfp.open("gperf_objects.dat",ios::out); - - arrfp << "struct object_db {" << endl; - arrfp << "\tchar *name; // name of method" << endl; - arrfp << "\tCORBA_Object_ptr obj; //fn pointer to obj impl" << endl; - arrfp << "};" << endl; - arrfp << "%%" << endl; - - for(i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - { - // error - return -1; - } - arrfp << str->rep() << ", " << "0" << endl; - // we do not know the addresses of the objects. We shall insert them - // later. - } - arrfp.close(); - return 0; -} - -// method table generator -long GenMethodTable(ACE_Unbounded_Queue &arr, int limit) -{ - int i,j,k; // indices - long rnd; // random number - int opt; - fstream arrfp; - ACE_CString *str; - - - // Generate "limit" distinct strings - for (i=0; i < limit; i++){ - if (GenDistinctString(arr, i) == -1) // side effect: inserts a new string at locn i - return -1; // in array "arr" - } - - // write the strings into a file whose format will be understood by GPERF - arrfp.open("gperf_methods.dat",ios::out); - - arrfp << "struct method_db {" << endl; - arrfp << "\tchar *name; // name of method" << endl; - arrfp << "\tTAO_Skeleton skel_ptr; //fn pointer to skeleton" << endl; - arrfp << "};" << endl; - arrfp << "%%" << endl; - - for(i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - { - // error - return -1; - } - arrfp << (str->rep()) << ", " << "_skel_tao_demux::" << str->rep() << - "_skel" << endl; - } - arrfp.close(); - return 0; -} - - -// generate a distinct string and insert it at location "limit" -long GenDistinctString(ACE_Unbounded_Queue &arr, int limit) -{ - int i, j; // indices - long rnd; - ACE_CString s; - long status; - - rnd = GenRand(3,32); // get a random number between 3 and 32 which will be - // used as a string length of the distinct string to be - // generated. We use 3-32 because certain function - // names such as _N, _C cause name conflicts. - // Continue generating strings until a distinct one not generated before - // is formed - do { - s = CreateString(rnd); - status = IsPresent (arr, limit, s); - if (status == -1) - return -1; - } while (status > 0); - - // save it at this location - if (arr.enqueue_tail(s) == -1) - { - return -1; - } - return 0; -} - -// generate a random number in the given limits -long GenRand(int low, int up) -{ - return (lrand48() % (up-low+1)) + low; // rnd will be the size of the -} - -// check if the given string is present in the array -long IsPresent(ACE_Unbounded_Queue &arr, int limit, ACE_CString &s) -{ - ACE_CString *str; - - if (!strcasecmp(s.rep(), "_is_a")) - return 1; - - for (int i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - if (!strcasecmp(str->rep(), s.rep())) - return 1; // they are same - } - return 0; // not present -} - -// create a string of length = len -ACE_CString CreateString(long len) -{ - int i; - ACE_CString s; - char ch; - - for (i=0; i < len; i++){ - ch = GetVarChar(i); - s += ACE_CString(&ch); - } - return s; -} - -// Generate a valid character for a C++ variable -char GetVarChar(int i) -{ - // for i == 0, we cannot return a digit as the first character - char ch; - while(1) { - ch = GenRand(48, 122); - if (isdigit(ch) || isupper(ch) || islower(ch) || (ch == '_')){ - if ((i == 0) && (isdigit(ch) || (ch == '_'))) - continue; - break; //otherwise - } - } - return ch; -} - diff --git a/TAO/tests/Demux_Test/CodeGen/impl.cpp b/TAO/tests/Demux_Test/CodeGen/impl.cpp deleted file mode 100644 index 7395201c253..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/impl.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ - -#include "tao.h" - -// generate the implementation header -long GenServantHeader(ACE_Unbounded_Queue &arr, int limit) -{ - // generate the implementation class - fstream hdr; - int i; - ACE_CString *str; - - hdr.open("tao_demux_i.h", ios::out); - - hdr << "#if !defined(TAO_DEMUX_I_H)" << endl; - hdr << "#define TAO_DEMUX_I_H" << endl << endl; - - hdr << "#include \"tao_demuxS.h\"" << endl << endl; - - hdr << "class tao_demux_i: public virtual _skel_tao_demux" << endl; - hdr << "{" << endl; - hdr << "public:" << endl; - hdr << "\ttao_demux_i(char *obj_name);" << endl; - hdr << "\t~tao_demux_i();" << endl; - hdr << "\t//now all the methods" << endl; - - for(i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - return -1; - - hdr << "\tvoid " << str->rep() << - "(CORBA_Environment &env);" << endl; - } - hdr << "};" << endl; - - hdr << "#endif" << endl; -} - - -// generate the implementation -long GenServantImpl(ACE_Unbounded_Queue &arr, int limit) -{ - // generate the implementation class - fstream impl; - int i; - ACE_CString *str; - - impl.open("tao_demux_i.cpp", ios::out); - - impl << "#include " << endl; - impl << "#include \"tao_demux_i.h\"" << endl << endl; - - impl << "tao_demux_i::tao_demux_i(char *obj_name)" << endl; - impl << " :_skel_tao_demux(obj_name){}" << endl; - impl << "tao_demux_i::~tao_demux_i(){}" << endl; - impl << "\t//now all the methods" << endl; - - for(i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - return -1; - - impl << "void tao_demux_i::" << str->rep() << - "(CORBA_Environment &env)" << endl; - impl << "{" << endl; - impl << "#ifdef DEBUG" << endl; - impl << " cout << \"Object name = \" << this->_get_name(env) << " << - "\", Operation name = " << str->rep() << "\" << endl;" << endl; - impl << "#endif" << endl; - impl << "}" << endl << endl; - } -} - diff --git a/TAO/tests/Demux_Test/CodeGen/objcreate.cpp b/TAO/tests/Demux_Test/CodeGen/objcreate.cpp deleted file mode 100644 index 2c9e5ef1c51..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/objcreate.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -#include "tao.h" - -long GenObjectCreateCode(ACE_Unbounded_Queue &arr, int limit) -{ - // code for creating objects. The strategy will be based on active demux or - // other strategies - fstream file; - int i; - ACE_CString *str; - - file.open("obj_create.i", ios::out); - - file << "\t if (params->demux_strategy() == " << - "TAO_OA_Parameters::TAO_ACTIVE_DEMUX){" << endl; - - for (i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - return -1; - - file << "\t\tmymux[" << i << "] = new tao_demux_i(\"" << i << "\");" << - endl; - file << "\t\tstr = orb_ptr->object_to_string(mymux[" << i << "], env);" - << endl; - file << "#ifdef DEBUG" << endl; - file << "\t\tcout << \"IOR = \" << (char *)str << endl;" << endl; - file << "#endif" << endl; - file << "\t\tiorfile << (char *)str << endl; " << endl; - file << "\t\tCORBA_string_free(str);" << endl; - } - file << "\t } else {" << endl; - for (i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - return -1; - - file << "\t\tmymux[" << i << "] = new tao_demux_i(CORBA_string_dup (\"" - << str->rep() << "\"));" << endl; - file << "\t\tstr = orb_ptr->object_to_string(mymux[" << i << "], env);" - << endl; - file << "#ifdef DEBUG" << endl; - file << "\t\tcout << \"IOR = \" << (char *)str << endl;" << endl; - file << "#endif" << endl; - file << "\t\tiorfile << (char *)str << endl; " << endl; - file << "\t\tCORBA_string_free(str);" << endl; - } - file << "\t }" << endl; - - file.close(); - return 0; -} diff --git a/TAO/tests/Demux_Test/CodeGen/perf.cpp b/TAO/tests/Demux_Test/CodeGen/perf.cpp deleted file mode 100644 index 774da595c4e..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/perf.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -#include "tao.h" - -void GenGPERFCode() -{ - char command[500]; - - // first generate code for object hash - sprintf(command, - "gperf -c -C -D -E -T -f 0 -a -o -t -p -L C++ -Z Method_Hash %s >\ -gperf_method.i", "gperf_methods.dat"); - system(command); - - // omit the -C switch for gperf because we will not know the address of the - // objects until they are instantiated. But we do know the keys in advance. - sprintf(command, - "gperf -c -D -E -T -f 0 -a -o -t -p -L C++ -Z Object_Hash %s >\ -gperf_object.i", "gperf_objects.dat"); - system(command); - -} - diff --git a/TAO/tests/Demux_Test/CodeGen/skel.cpp b/TAO/tests/Demux_Test/CodeGen/skel.cpp deleted file mode 100644 index a25edf9c374..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/skel.cpp +++ /dev/null @@ -1,219 +0,0 @@ -// $Id$ - -#include "tao.h" - -long GenServerHeader(ACE_Unbounded_Queue &arr, int limit) -{ - fstream hdr; - int i; - ACE_CString *str; - - hdr.open("tao_demuxS.h", ios::out); - - hdr << "#if !defined(TAO_DEMUX_S_H)" << endl; - hdr << "#define TAO_DEMUX_S_H" << endl << endl; - - hdr << "#include \"tao_demuxC.h\"" << endl; - hdr << "class _skel_tao_demux: public tao_demux" << endl; - hdr << "{" << endl; - hdr << "protected:" << endl; - hdr << "\t_skel_tao_demux(const char *objname=0);" << endl; - hdr << "\tvirtual ~_skel_tao_demux() {}" << endl; - hdr << "public:" << endl; - hdr << "\t//All methods defined on this interface" << endl; - for(i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - //generate skeletons - hdr << "\tvirtual void " << str->rep() << - "(CORBA_Environment &env) = 0;" << endl; - } - hdr << endl; - hdr << "\t// All skeletons used for dispatching" << endl; - for(i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - //generate skeletons - hdr << "\tstatic void " << str->rep() << - "_skel(CORBA_ServerRequest &req, CORBA_Object_ptr obj, " << - "CORBA_Environment &env);" << endl; - } - hdr << "\tstatic void " << - "_is_a_skel(CORBA_ServerRequest &req, CORBA_Object_ptr obj, " << - "CORBA_Environment &env);" << endl; - hdr << "};" << endl; - - hdr << "#endif" << endl; - hdr.close(); -} - -// generate server side skeletons -long GenServerSkels(ACE_Unbounded_Queue &arr, int limit) -{ - fstream skel; - int i; - ACE_CString *str; - - skel.open("tao_demuxS.cpp", ios::out); - - skel << "#include \"tao_demuxS.h\"" << endl; - // skel << "#include \"iiopobj.h\"" << endl; - // skel << "#include \"params.h\"" << endl; - // skel << "#include \"corba/optable.h\"" << endl; - // skel << "#include \"corba/corbacom.h\"" << endl << endl; - - // table of methods - skel << "static const TAO_operation_db_entry tao_demux_operations [] = {" << endl; - for (i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - { - return -1; - } - skel << "\t{\"" << str->rep() << "\", &_skel_tao_demux::" << str->rep() << - "_skel}," << endl; - - } - skel << "\t{\"_is_a\", &_skel_tao_demux::_is_a_skel}" << endl; - skel << "};" << endl; - - // table of methods - skel << "static const TAO_operation_db_entry tao_active_demux_operations [] = {" << endl; - for (i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - { - return -1; - } - skel << "\t{\"" << i << "\", &_skel_tao_demux::" << str->rep() << - "_skel}," << endl; - - } - skel << "\t{\"" << limit << "\", &_skel_tao_demux::_is_a_skel}" << endl; - skel << "};" << endl; - - // instantiate operation lookup tables - skel << "// instantiate a dynamic hash operation table" << endl; - skel << "TAO_Dynamic_Hash_OpTable dyn_hash_tao_demux_op_tbl(" << - "tao_demux_operations, " << (limit+1) << ", " << (limit+1)*2 << ");" << endl; - - skel << "// instantiate a linear search based operation table" << endl; - skel << "TAO_Linear_OpTable linear_tao_demux_op_tbl(" << - "tao_demux_operations, " << limit+1 << ");" << endl; - - skel << "// instantiate a active demux operation table" << endl; - skel << "TAO_Active_Demux_OpTable active_tao_demux_op_tbl(" << - "tao_active_demux_operations, " << limit+1 << ");" << endl; - - skel << "// constructor for skel_tao_demux" << endl; - skel << "_skel_tao_demux::_skel_tao_demux(const char *obj_name)" << endl; - // skel << "\t:optable_(&tao_demux_op_tbl)" << endl; - skel << "{" << endl; - skel << "\tconst char* repoID = \"IDL:tao_demux:1.0\";" << endl; - skel << "\tCORBA_String_var _tao_typeid = repoID;" << endl; - skel << "\tIIOP_Object *data; // IIOP object reference" << endl; - skel << "\tCORBA_POA_ptr oa = TAO_OA_PARAMS::instance()->oa(); // our OA" << endl; - skel << "\tTAO_Operation_Table_Parameters *op_params = " << endl; - skel << "\t\tTAO_OP_TABLE_PARAMETERS::instance();" << endl << endl; - skel << "\tCORBA_Long i;" << endl; - - // set the operation table based on user's choice - skel << "\tswitch(op_params->lookup_strategy()){" << endl; - skel << "\tcase TAO_Operation_Table_Parameters::TAO_ACTIVE_DEMUX:" << endl; - skel << "\t\tthis->optable_ = &active_tao_demux_op_tbl;" << endl; - skel << "\t\tbreak;" << endl; - skel << "\tcase TAO_Operation_Table_Parameters::TAO_LINEAR:" << endl; - skel << "\t\tthis->optable_ = &linear_tao_demux_op_tbl;" << endl; - skel << "\t\tbreak;" << endl; - skel << "\tcase TAO_Operation_Table_Parameters::TAO_DYNAMIC_HASH:" << endl; - skel << "\t\tthis->optable_ = &dyn_hash_tao_demux_op_tbl;" << endl; - skel << "\t\tbreak;" << endl; - skel << "\tcase TAO_Operation_Table_Parameters::TAO_PERFECT_HASH:" << endl; - skel << "\t\tthis->optable_ = op_params->concrete_strategy ();" << endl; - skel << "\t\tbreak;" << endl; - skel << "\tcase TAO_Operation_Table_Parameters::TAO_USER_DEFINED:" << endl; - skel << "\t\tthis->optable_ = op_params->concrete_strategy ();" << endl; - skel << "\t\tbreak;" << endl; - skel << "\t}" << endl << endl; - - // code to create IIOP object - skel << "\tdata = new IIOP_Object(CORBA_string_dup(_tao_typeid));" << endl; - skel << "\tdata->profile.iiop_version.major = IIOP::MY_MAJOR;" << endl; - skel << "\tdata->profile.iiop_version.minor = IIOP::MY_MINOR;" << endl; - skel << "\tdata->profile.host = ACE_OS::strdup(oa->get_addr().get_host_name());" << endl; - skel << "\tdata->profile.port = oa->get_addr().get_port_number();" << endl; - skel << "\tdata->profile.object_key.length = ACE_OS::strlen(obj_name);" << endl; - skel << "\tdata->profile.object_key.maximum = " << - "data->profile.object_key.length;" << endl; - skel << "\tdata->profile.object_key.buffer = " << - "new CORBA_Octet [(size_t)data->profile.object_key.length+1];" << endl; - skel << "\tACE_OS::memcpy(data->profile.object_key.buffer, obj_name, " << - "data->profile.object_key.length);" << endl; - skel << "\tthis->set_parent(data);" << endl; - skel << "\tthis->sub_ = this;" << endl; - skel << "\tif (oa) oa->bind(data->profile.object_key, this);" << - "// register ourselves" << endl; - skel << "}" << endl << endl; - - // now the code for each skeleton - for(i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - skel << "void _skel_tao_demux::" << str->rep() << - "_skel(CORBA_ServerRequest &req, CORBA_Object_ptr obj, " << - "CORBA_Environment&env)" << endl; - skel << "{" << endl; - skel << "\tCORBA_NVList_ptr nvlist;" << endl; - skel << "\ttao_demux_ptr impl;" << endl << endl; - - // create a NVlist and populate it - skel << "\treq.orb()->create_list(0, nvlist);" << endl; - skel << "\treq.params(nvlist,env); //useless operation, but required " - << endl; - skel << "\t impl = (tao_demux_ptr) (obj->get_subclass());" << endl; - skel << "\t// now the magic of dynamic binding" << endl; - skel << "\timpl->" << str->rep() << "(env);" << endl; - skel << "}" << endl; - } - - // finally the code for _is_a - skel << "void _skel_tao_demux::_is_a_skel" << - "(CORBA_ServerRequest &req, CORBA_Object_ptr obj, " << - "CORBA_Environment&env)" << endl; - skel << "{" << endl; - skel << "\tCORBA_NVList_ptr nvlist;" << endl; - skel << "\tCORBA_NamedValue_ptr nv;" << endl; - skel << "\tCORBA_Any temp_value(_tc_CORBA_String);" << endl; - skel << "\tchar *_tao_typeid = \"IDL:tao_demux:1.0\";" << endl << endl; - - // create a NVlist and populate it - skel << "\treq.orb()->create_list(0, nvlist);" << endl; - skel << "\tnv = nvlist->add_value(0, temp_value, CORBA_ARG_IN, env);" << endl; - skel << "\treq.params(nvlist,env);" << endl; - skel << "\tif (env.exception() != 0)" << endl; - skel << "\t {" << endl; - skel << "\t\tdexc(env, \"is_a_skel, params\");" << endl; - skel << "\t\treturn;" << endl; - skel << "\t }" << endl << endl; - skel << "\tCORBA_Boolean *retval;" << endl; - skel << "\tCORBA_String value = *(CORBA_String *)nv->value()->value();" << endl; - skel << "\tif (strcmp((char *)value,(char *)_tao_typeid) == 0" << endl; - skel << "\t || strcmp((char *)value, _tc_CORBA_Object->id(env)) == 0)" << endl; - skel << "\t\tretval = new CORBA_Boolean(CORBA_B_TRUE);" << endl; - skel << "\telse" << endl; - skel << "\t\tretval = new CORBA_Boolean(CORBA_B_FALSE);" << endl; - skel << "\tCORBA_Any *any = new CORBA_Any(_tc_CORBA_Boolean, retval," << - "CORBA_B_TRUE);" << endl; - skel << "\treq.result(any, env);" << endl; - skel << "\tdexc(env, \"_is_a, result\");" << endl; - skel << "}" << endl; - - skel.close(); -} - diff --git a/TAO/tests/Demux_Test/CodeGen/stub.cpp b/TAO/tests/Demux_Test/CodeGen/stub.cpp deleted file mode 100644 index 04355b76b21..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/stub.cpp +++ /dev/null @@ -1,157 +0,0 @@ -// $Id$ - -#include "tao.h" - -long GenClientHeader(ACE_Unbounded_Queue &arr, int limit) -{ - fstream hdr; - int i; - ACE_CString *str; - - hdr.open("tao_demuxC.h", ios::out); - - hdr << "//******** Generated by the tool: taoidl ********" << endl << endl; - - hdr << "#if !defined (TAO_DEMUXC_H)" << endl; - hdr << "#define TAO_DEMUXC_H" << endl << endl; - - hdr << "#include " << endl; - hdr << "#include \"tao/corba.h\"" << endl; - // hdr << "#include \"tao/orb.h\"" << endl; - // hdr << "#include \"tao/stub.h\"" << endl; - // hdr << "#include \"tao/optable.h\"" << endl; - - hdr << "class tao_demux;" << endl; - hdr << "typedef tao_demux *\ttao_demux_ptr;" << endl; - hdr << "class tao_demux: public virtual CORBA_Object" << endl; - hdr << "{" << endl; - hdr << "public:" << endl; - // define the CORBA compliant mapping - hdr << "\tstatic tao_demux_ptr _duplicate(tao_demux_ptr obj);" << endl; - hdr << "\tstatic tao_demux_ptr _narrow(CORBA_Object_ptr obj);" << endl; - hdr << "\tstatic tao_demux_ptr _nil();" << endl << endl; - - // now generate all the methods - for(i=0; i < limit; i++) - { - if (arr.get(str, i) == -1) - { - return -1; - } - hdr << "\tvirtual void " << str->rep() << "(CORBA_Environment &env);" << endl; - } - hdr << "protected:" << endl; - hdr << "\ttao_demux() {}" << endl; - hdr << "\ttao_demux(STUB_Object *objref): CORBA_Object(objref) {}" << endl; - hdr << "\tvirtual ~tao_demux() {}" << endl; - hdr << "private:" << endl; - hdr << "\t//copy constructor and assignment operator" << endl; - hdr << "\ttao_demux(const tao_demux&) { }" << endl; - hdr << "\tvoid operator=(const tao_demux&) { }" << endl; - hdr << "};" << endl; - - hdr << "#endif" << endl; - hdr.close(); -} - -long GenClientStubs(ACE_Unbounded_Queue &arr, int limit) -{ - fstream stub; - int i; - ACE_CString *str; - - stub.open("tao_demuxC.cpp", ios::out); - - stub << "#include \"tao_demuxC.h\"" << endl << endl; - - // generate the static functions - - // the _duplicate method - stub << "tao_demux_ptr tao_demux::_duplicate(tao_demux_ptr obj)" << endl; - stub << "{" << endl; - stub << "\tif (obj) obj->AddRef();" << endl; - stub << "\treturn obj;" << endl; - stub << "}" << endl << endl; - - // the _narrow method - stub << "tao_demux_ptr tao_demux::_narrow(CORBA_Object_ptr obj)" << endl; - stub << "{" << endl; - // check if object "is_a" IDL:tao_demux:1.0 and if so, addref and return a - // pointer to it - stub << "\tCORBA_Environment env;" << endl; - stub << "\tif (obj->_is_a(\"IDL:tao_demux:1.0\", env)){" << endl; - stub << "\t STUB_Object *istub;" << endl; - stub << "\t if (obj->QueryInterface(IID_STUB_Object, (void **)&istub)" << - " != NOERROR){" << endl; - stub << "\t\treturn tao_demux::_nil();" << endl; - stub << "\t }" << endl; - stub << "\t tao_demux_ptr new_obj = new tao_demux(istub);" << endl; - stub << "\t return tao_demux::_duplicate(new_obj);" << endl; - stub << "\t}" << endl; - stub << "\treturn tao_demux::_nil();" << endl; - stub << "}" << endl << endl; - - // the _nil method - stub << "tao_demux_ptr tao_demux::_nil()" << endl; - stub << "{" << endl; - stub << "\treturn (tao_demux_ptr)NULL;" << endl; - stub << "}" << endl << endl; - - // All the TAO_Param_Data and TAO_Call_Data structures - stub << - "// All the TAO_Param_Data and TAO_Call_Data structures required for invoking do_call" - << endl; - for(i=0; i < limit; i++){ - if (arr.get(str, i) == -1) - { - return -1; - } - - // generate TAO_Param_Data structure - stub << "static const TAO_Param_Data tao_demux_" << str->rep() << - "_params[] = {" << endl; - stub << "\t{_tc_CORBA_Void, PARAM_RETURN, 0}" << endl; - stub << "};" << endl; - - // generate TAO_Call_Data structure - stub << "static const TAO_Call_Data tao_demux_" << str->rep() << - "_calldata = {" << endl; - stub << "\t\"" << str->rep() << "\"," << endl; - stub << "\tCORBA_B_TRUE, //twoway" << endl; - stub << "\t1, &tao_demux_" << str->rep() << "_params[0]," << endl; - stub << "\t0, 0" << endl; - stub << "};" << endl; - - // generate TAO_Call_Data structure that uses active demultiplexing - stub << "static const TAO_Call_Data tao_demux_" << str->rep() << - "_active_calldata = {" << endl; - stub << "\t\"" << i << "\"," << endl; - stub << "\tCORBA_B_TRUE, //twoway" << endl; - stub << "\t1, &tao_demux_" << str->rep() << "_params[0]," << endl; - stub << "\t0, 0" << endl; - stub << "};" << endl; - - // now the actual stub - stub << "void tao_demux::" << str->rep() << "(CORBA_Environment &env)" - << endl; - stub << "{" << endl; - stub << "\tSTUB_Object *istub;" << endl; - stub << "\tif (this->QueryInterface (IID_STUB_Object, (void **) &istub) " - << "!= NOERROR){" << endl; - stub << "\t env.exception (new CORBA_DATA_CONVERSION (COMPLETED_NO));" << endl; - stub << "\t return;" << endl; - stub << "\t}" << endl; - stub << "\tTAO_Operation_Table_Parameters *paramTbl = " << endl; - stub << "\t\tTAO_OP_TABLE_PARAMETERS::instance();" << endl; - stub << "\tif (paramTbl->lookup_strategy() == "; - stub << "TAO_Operation_Table_Parameters::TAO_ACTIVE_DEMUX)" << endl; - stub << "\t\tistub->do_call(env, &tao_demux_" << str->rep() << - "_active_calldata);" << endl; - stub << "\telse" << endl; - stub << "\t\tistub->do_call(env, &tao_demux_" << str->rep() << - "_calldata);" << endl; - stub << "}" << endl << endl; - } - stub.close(); -} - diff --git a/TAO/tests/Demux_Test/CodeGen/tao.cpp b/TAO/tests/Demux_Test/CodeGen/tao.cpp deleted file mode 100644 index f1a2d9b6c50..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/tao.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// $Id$ - -#include "tao.h" - -int main (int argc, char *argv[]) -{ - // define the two arrays that will hold generated object keys and method - // names of the hypothetical "tao_demux" interface - ACE_Unbounded_Queue *objectArr, *methodArr; - - // provide default values to the limit on the number of object keys and - // method names - long objectLimit = 5, - methodLimit = 4; - - // for parsing the arguments - ACE_Get_Opt get_opt (argc, argv, "hm:o:"); - - for (int c; (c = get_opt ()) != EOF;) - { - switch (c) - { - case 'm': // number of methods - methodLimit = ACE_OS::atoi (get_opt.optarg); - break; - case 'o': // number of object keys - objectLimit = ACE_OS::atoi (get_opt.optarg); - break; - case 'h': // usage - default: - Usage (); - return 1; - } - } - - cout << "Generating code for " << objectLimit << " objects and " << - methodLimit << " methods" << endl; - objectArr = new ACE_Unbounded_Queue [objectLimit]; - methodArr = new ACE_Unbounded_Queue [methodLimit]; - - // generate the object keys - if (GenObjectTable (*objectArr, objectLimit) == -1) - { - } - - // generate method names - if (GenMethodTable (*methodArr, methodLimit) == -1) - { - } - - // generate client side stub headers - if (GenClientHeader (*methodArr, methodLimit) == -1) - { - } - - // generate client stubs - if (GenClientStubs (*methodArr, methodLimit) == -1) - { - } - - // generate include code for client-side main program - if (GenClientCode (*methodArr, methodLimit) == -1) - { - } - - // generate server skeleton header - if (GenServerHeader (*methodArr, methodLimit) == -1) - { - } - - // generate server skeletons - if (GenServerSkels (*methodArr, methodLimit) == -1) - { - } - - // generate th eimpl header - if (GenServantHeader (*methodArr, methodLimit) == -1) - { - } - - // generate impl - if (GenServantImpl (*methodArr, methodLimit) == -1) - { - } - - // generate code that creates instances of objects - if (GenObjectCreateCode (*objectArr, objectLimit) == -1) - { - } - - GenGPERFCode (); -} - -void Usage (void) -{ - cerr << "Usage: tao [-m <#methods>] [-o <#objects>] [-h]" << endl; - return; -} diff --git a/TAO/tests/Demux_Test/CodeGen/tao.h b/TAO/tests/Demux_Test/CodeGen/tao.h deleted file mode 100644 index d35b3548996..00000000000 --- a/TAO/tests/Demux_Test/CodeGen/tao.h +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ - -#include -#include - -#include "ace/SString.h" -#include "ace/Containers.h" -#include "ace/Singleton.h" -#include "ace/Get_Opt.h" - -long GenObjectTable(ACE_Unbounded_Queue &arr, int limit); -long GenMethodTable(ACE_Unbounded_Queue &arr, int limit); -long GenClientHeader(ACE_Unbounded_Queue &arr, int limit); -long GenClientStubs(ACE_Unbounded_Queue &arr, int limit); -long GenClientCode(ACE_Unbounded_Queue &arr, int limit); -long GenObjectCreateCode(ACE_Unbounded_Queue &arr, int limit); -long GenServerHeader(ACE_Unbounded_Queue &arr, int limit); -long GenServerSkels(ACE_Unbounded_Queue &arr, int limit); -long GenServantHeader(ACE_Unbounded_Queue &arr, int limit); -long GenServantImpl(ACE_Unbounded_Queue &arr, int limit); -void GenGPERFCode(); -void Usage(); - diff --git a/TAO/tests/Demux_Test/Makefile b/TAO/tests/Demux_Test/Makefile deleted file mode 100755 index 81821f77342..00000000000 --- a/TAO/tests/Demux_Test/Makefile +++ /dev/null @@ -1,65 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the CORBA request demultiplexing benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lTAO - -PROG_SRCS = client.cpp tao_demuxC.cpp tao_demuxS.cpp tao_demux_i.cpp server.cpp - -LSRC = $(PROG_SRCS) - -TAO_DEMUX_CLIENT_OBJS = client.o tao_demuxC.o - -TAO_DEMUX_SERVER_OBJS = server.o tao_demuxC.o tao_demuxS.o tao_demux_i.o - -BIN = client server - -BUILD = $(BIN) - -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.lib.GNU -#include $(ACE_ROOT)/include/makeinclude/rules.bin.GNU -include $(ACE_ROOT)/include/makeinclude/rules.local.GNU - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -LDFLAGS += -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat - -ifdef quantify -LDFLAGS += -L/pkg/purify/quantify-2.1-solaris2/ -lquantify_stubs -endif - -ifdef debug -CPPFLAGS += -DDEBUG -endif - -server: $(addprefix $(VDIR),$(TAO_DEMUX_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(TAO_DEMUX_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - $(MAKE) realclean - rm -fr tao_demux* gperf* *.i client server - diff --git a/TAO/tests/Demux_Test/README b/TAO/tests/Demux_Test/README deleted file mode 100644 index 133758e62e6..00000000000 --- a/TAO/tests/Demux_Test/README +++ /dev/null @@ -1,20 +0,0 @@ - -***** NOTE: This is still under development and will not work ***** - - -This test directory tests various demultiplexing strategies used in -TAO. - -Description of various files: - -make_all script that generates executables for different number - of objects and methods -gen_bin generates the binary for the desired number of objects - and methods -run_client runs a client -run_server runs a server -run_all_client runs all clients generated by the make_all -run_all_server runs all servers generated by the make_all -CodeGen Directory containing the code generator -server.cpp server main program -client.cpp client main program diff --git a/TAO/tests/Demux_Test/client.cpp b/TAO/tests/Demux_Test/client.cpp deleted file mode 100755 index fb73dd5037b..00000000000 --- a/TAO/tests/Demux_Test/client.cpp +++ /dev/null @@ -1,310 +0,0 @@ -// $Id$ - -#include -#include -#include -#include -#include -#include - -#include "tao_demuxC.h" -#include "tao/debug.h" - -#include "ace/streams.h" - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -char Usage[] = "\ -Usage: client options\n\ -options:\n\ --l strategy: operation lookup strategy - a(active), l(linear), d (dyn hash), p (perf)\n\ --i iter: number of iterations \n\ --m num: number of methods \n\ --o num: number of objects \n\ --t type: type can be l(linear), r(random), b (best), w (worst)\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -static const char ior_prefix [] = "IOR:"; -static const char iiop_prefix [] = "iiop:"; - -enum SendType{ - LINEAR, - BEST, - WORST, - RANDOM -}; - -void do_test(tao_demux_ptr *demux, int olimit, int mlimit, SendType, int iter); - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - unsigned short done = 0; - int c; - - CORBA_ORB_ptr orb_ptr; - CORBA_Environment env; - CORBA_Object_ptr objref; - tao_demux_ptr *demux; - unsigned loop_count = 0; - int exit_later = 0; - int i; - int ObjectLimit = 5, - MethodLimit = 4; - int iter= 1; // number of iterations - SendType st = RANDOM; - TAO_Operation_Table_Parameters *op_params = TAO_OP_TABLE_PARAMETERS::instance(); - - CORBA_String str; - fstream iorfile; - - while (!done && ((c = getopt (argc, argv, "i:l:t:m:o:")) != - -1)){ - switch(c){ - case 'i': - iter = atoi (optarg); - break; - case 'l': // op table lookup strategy - break; - case 'm': - MethodLimit = atoi(optarg); - break; - case 'o': - ObjectLimit = atoi(optarg); - break; - case 't': - switch(*optarg){ - case 'b': - st = BEST; - break; - case 'w': - st = WORST; - break; - case 'l': - st = LINEAR; - break; - case 'r': - default: - st = RANDOM; - break; - } - break; - default: - goto usage; - } - } - - TAO_debug_level = 0; - // - // Transmitter - // - orb_ptr = CORBA_ORB_init (argc, argv, "ior", env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB initialization", stdout); - return 1; - } - - str = CORBA_string_alloc (500); - - // read the IOR from the file ior.txt - iorfile.open("./ior.txt", ios::in); - - for (;!iorfile.eof ();){ - memset(str, '\0', 500); - iorfile >> ((char *)str); - if (iorfile.good ()) - loop_count++; - } - iorfile.close(); - - ACE_DEBUG ((LM_DEBUG, "Total of %d object references read\n", loop_count)); - demux = new tao_demux_ptr [loop_count]; - for (i=0; i < loop_count; i++){ - demux[i] = 0; - } - - // read the IOR from the file ior.txt - iorfile.open("./ior.txt", ios::in); - - for (i=0; i < loop_count; i++){ - ACE_OS::memset (str, '\0', 500); - iorfile >> ((char *)str); - objref = orb_ptr->string_to_object(str, env); - if (env.exception() != 0){ - print_exception(env.exception(), "string2object", stdout); - return 1; - } - - cout << "objref " << i << " has key = " << objref->_get_name(env) << endl; - if (!CORBA_is_nil(objref)){ - // narrow to the desired interface type - demux[i] = tao_demux::_narrow (objref); - } - } - iorfile.close(); - CORBA_string_free(str); - - - // send operations - do_test(demux, ObjectLimit, MethodLimit, st, iter); - - for (i=0; i < loop_count; i++){ - CORBA_release(demux[i]); - } - delete [] demux; - return(0); -usage: - fprintf (stderr, Usage); - return 1; -} - -typedef void (*method_ptr)(tao_demux_ptr); -struct method_db { - method_ptr method; -}; - -#include "client.i" - -void do_test(tao_demux_ptr *demux, int olimit, int mlimit, SendType st, int iter) -{ - int i, j, k; - int loop = 0; - hrtime_t start, end, sum, diff; - fstream result; - CORBA_Environment env; - - result.open("result.dat",ios::out|ios::app); -#ifdef __TAO_ACTIVE__ - result << "# ACTIVE "; -#endif -#ifdef __TAO_GPERF__ - result << "# GPERF "; -#endif -#ifdef __TAO_LINEAR__ - result << "# LINEAR "; -#endif - - // result << "@type xy" << endl; - sum = 0; - - if (st == LINEAR){ - result << " LINEAR" << endl; -#ifdef __DEBUG__ - cout << "Linear strategy for sending" << endl; -#endif - for (k=0; k < iter; k++) { - // invoke the jth method on the ith object - for (i=0; i < olimit; i++){ - for (j=0; j < mlimit; j++){ - loop++; - start = ACE_OS::gethrtime (); - mtbl[j].method(demux[i]); - end = ACE_OS::gethrtime (); - diff = (end - start); -#ifdef __DEBUG__ - cout << "Latency for this request = " << diff/1.0e+06 << endl; -#endif - sum += diff; - // result << loop << "\t" << diff/1.e+06 << endl; - } - } - } - } else if (st == BEST){ - result << " BEST" << endl; -#ifdef __DEBUG__ - cout << "best strategy for sending" << endl; -#endif - for (k=0; k < iter; k++) { - // invoke the jth method on the ith object - for (i=0; i < olimit; i++){ - for (j=0; j < mlimit; j++){ - loop++; - start = ACE_OS::gethrtime (); - mtbl[0].method(demux[0]); - end = ACE_OS::gethrtime (); - diff = (end - start); -#ifdef __DEBUG__ - cout << "Latency for this request = " << diff/1.0e+06 << endl; -#endif - sum += diff; - // result << loop << "\t" << diff/1.e+06 << endl; - } - } - } - } else if (st == RANDOM) { - result << " RANDOM" << endl; -#ifdef __DEBUG__ - cout << "Random strategy for sending" << endl; -#endif - // choose the object and method name randomly - srand48(time(NULL)); - long p, q; - for (k=0; k < iter; k++) { - for (i=0; i < olimit; i++){ - for (j=0; j < mlimit; j++){ - loop++; - p = lrand48() % olimit; - q = lrand48() % mlimit; - start = ACE_OS::gethrtime (); -#ifdef DEBUG - ACE_DEBUG ((LM_DEBUG, "Invoking op %s on object with key %s\n", - mtbl[q], demux[p]->_get_name(env))); -#endif - mtbl[q].method(demux[p]); - end = ACE_OS::gethrtime (); - diff = (end - start); -#ifdef __DEBUG__ - cout << "Latency for this request = " << diff/1.0e+06 << endl; -#endif - sum += diff; - // result << loop << "\t" << diff/1.e+06 << endl; - } - } - } - } else if (st == WORST){ - result << " WORST" << endl; -#ifdef __DEBUG__ - cout << "worst strategy for sending" << endl; -#endif - // invoke the jth method on the ith object - for (k=0; k < iter; k++) { - for (i=0; i < olimit; i++){ - for (j=0; j < mlimit; j++){ - loop++; - start = ACE_OS::gethrtime (); - mtbl[mlimit-1].method(demux[olimit-1]); - end = ACE_OS::gethrtime (); - diff = (end - start); -#ifdef __DEBUG__ - cout << "Latency for this request = " << diff/1.0e+06 << endl; -#endif - sum += diff; - // result << loop << "\t" << diff/1.e+06 << endl; - } - } - } - } - result << olimit << "\t" << mlimit << "\t" << sum/(loop*1000000.0) << endl; - cout << olimit << "\t" << mlimit << "\t" << sum/(loop*1000000.0) << endl; - result.close(); -} - diff --git a/TAO/tests/Demux_Test/gen_bin b/TAO/tests/Demux_Test/gen_bin deleted file mode 100755 index b0650ff4249..00000000000 --- a/TAO/tests/Demux_Test/gen_bin +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -make clean -./CodeGen/tao -o $1 -m $2 -make -mv client client_${1}_${2} -mv server server_${1}_${2} diff --git a/TAO/tests/Demux_Test/make_all b/TAO/tests/Demux_Test/make_all deleted file mode 100755 index 4ac9b18cc3f..00000000000 --- a/TAO/tests/Demux_Test/make_all +++ /dev/null @@ -1,19 +0,0 @@ -rm -fr server_*_* client_*_* -gen_bin 1 1 -gen_bin 1 10 -gen_bin 1 100 -gen_bin 100 1 -gen_bin 100 10 -gen_bin 100 100 -gen_bin 200 1 -gen_bin 200 10 -gen_bin 200 100 -gen_bin 300 1 -gen_bin 300 10 -gen_bin 300 100 -gen_bin 400 1 -gen_bin 400 10 -gen_bin 400 100 -gen_bin 500 1 -gen_bin 500 10 -gen_bin 500 100 diff --git a/TAO/tests/Demux_Test/run_all_client b/TAO/tests/Demux_Test/run_all_client deleted file mode 100755 index a5a3b61c48f..00000000000 --- a/TAO/tests/Demux_Test/run_all_client +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# usage: run_client -run_client 500 100 1 -sleep 5 -run_client 500 10 1 -sleep 5 -run_client 500 1 1 -sleep 5 -run_client 400 100 1 -sleep 5 -run_client 400 10 1 -sleep 5 -run_client 400 1 1 -sleep 5 -run_client 300 100 1 -sleep 5 -run_client 300 10 1 -sleep 5 -run_client 300 1 1 -sleep 5 -run_client 200 100 1 -sleep 5 -run_client 200 10 1 -sleep 5 -run_client 200 1 1 -sleep 5 -run_client 100 100 1 -sleep 5 -run_client 100 10 1 -sleep 5 -run_client 100 1 1 -sleep 5 -run_client 1 100 1 -sleep 5 -run_client 1 10 10 -sleep 5 -run_client 1 1 100 diff --git a/TAO/tests/Demux_Test/run_all_server b/TAO/tests/Demux_Test/run_all_server deleted file mode 100755 index 15b4762efcb..00000000000 --- a/TAO/tests/Demux_Test/run_all_server +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -# usage: run_server -run_server 500 100 1 -run_server 500 10 1 -run_server 500 1 1 -run_server 400 100 1 -run_server 400 10 1 -run_server 400 1 1 -run_server 300 100 1 -run_server 300 10 1 -run_server 300 1 1 -run_server 200 100 1 -run_server 200 10 1 -run_server 200 1 1 -run_server 100 100 1 -run_server 100 10 1 -run_server 100 1 1 -run_server 1 100 1 -run_server 1 10 10 -run_server 1 1 100 diff --git a/TAO/tests/Demux_Test/run_client b/TAO/tests/Demux_Test/run_client deleted file mode 100755 index 19dab08670d..00000000000 --- a/TAO/tests/Demux_Test/run_client +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -client_${1}_${2} -o ${1} -m ${2} -t r -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t w -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t r -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t w -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t r -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t w -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t r -i $3 -sleep 5 -client_${1}_${2} -o ${1} -m ${2} -t w -i $3 -sleep 5 diff --git a/TAO/tests/Demux_Test/run_server b/TAO/tests/Demux_Test/run_server deleted file mode 100755 index 7f2ac61445a..00000000000 --- a/TAO/tests/Demux_Test/run_server +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -server_${1}_${2} -OAhost merengue -OAobjdemux linear -OAtablesize ${1} -o ${1} -m ${2} -t l -i $3 -server_${1}_${2} -OAhost merengue -OAobjdemux linear -OAtablesize ${1} -o ${1} -m ${2} -t l -i $3 -server_${1}_${2} -OAhost merengue -OAobjdemux active_demux -OAtablesize ${1} -o ${1} -m ${2} -t a -i $3 -server_${1}_${2} -OAhost merengue -OAobjdemux active_demux -OAtablesize ${1} -o ${1} -m ${2} -t a -i $3 -server_${1}_${2} -OAhost merengue -OAobjdemux user_def -o ${1} -m ${2} -t g -i $3 -server_${1}_${2} -OAhost merengue -OAobjdemux user_def -o ${1} -m ${2} -t g -i $3 -server_${1}_${2} -OAhost merengue -o ${1} -m ${2} -i $3 -server_${1}_${2} -OAhost merengue -o ${1} -m ${2} -i $3 - diff --git a/TAO/tests/Demux_Test/server.cpp b/TAO/tests/Demux_Test/server.cpp deleted file mode 100755 index f682ae5db32..00000000000 --- a/TAO/tests/Demux_Test/server.cpp +++ /dev/null @@ -1,315 +0,0 @@ -// $Id$ - -#include "tao_demux_i.h" - -#ifdef USE_QUANTIFY -#include -#endif - -#include -#include - -#include "ace/SString.h" - -void print_exception (const CORBA_Exception *x, - const char *info, - FILE *stream - ); - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -//****************** perf hash for obj lookup ************* -// for perfect hash -struct object_db -{ - char *name; // name of method - CORBA_Object_ptr obj; //fn pointer to obj impl -}; - -// include the perfect hash code for objects -#include "gperf_object.i" - -// Perfect hash table class -class TAO_Perfect_Hash_ObjTable: public TAO_Object_Table -{ -public: - TAO_Perfect_Hash_ObjTable (Object_Hash *oh); - - ~TAO_Perfect_Hash_ObjTable (void); - - virtual int bind (const CORBA_OctetSeq &key, - CORBA_Object_ptr obj); - // Registers a CORBA_Object into the object table and associates the - // key with it. Returns -1 on failure, 0 on success, 1 on - // duplicate. - - virtual int find (const CORBA_OctetSeq &key, - CORBA_Object_ptr &obj); - // Looks up an object in the object table using <{key}>. Returns - // non-negative integer on success, or -1 on failure. - -private: - Object_Hash *hash_; -}; - -TAO_Perfect_Hash_ObjTable::TAO_Perfect_Hash_ObjTable (Object_Hash *oh) - : hash_ (oh) -{ -} - -TAO_Perfect_Hash_ObjTable::~TAO_Perfect_Hash_ObjTable (void) -{ -} - -int -TAO_Perfect_Hash_ObjTable::bind (const CORBA_OctetSeq &key, CORBA_Object_ptr obj) -{ - struct object_db *entry; - - ACE_CString objkey ((char *)key.buffer, key.length); - entry = this->hash_->in_word_set (objkey.rep (), key.length); - if (entry != 0) - { - // now fill up the entry - entry->obj = obj; - } - else - { - return -1; // error - } -} - -int -TAO_Perfect_Hash_ObjTable::find (const CORBA_OctetSeq &key, CORBA_Object_ptr &obj) -{ - struct object_db *entry; - - ACE_CString objkey ((char *)key.buffer, key.length); - entry = this->hash_->in_word_set (objkey.rep (), key.length); - - if (entry != 0) - { - obj = entry->obj; - return 0; - } - else - { - return -1; - } -} - -//****************** perf hash for opname lookup ************* -struct method_db -{ - char *name; // name of method - TAO_Skeleton skel_ptr_; //fn pointer to obj impl -}; - -#include "gperf_method.i" - -// Perfect hash table class -class TAO_Perfect_Hash_Op_Table: public TAO_Operation_Table -{ -public: - TAO_Perfect_Hash_Op_Table (Method_Hash *mh); - - ~TAO_Perfect_Hash_Op_Table (void); - - virtual int find (const CORBA_String &opname, - TAO_Skeleton &skel_ptr); - // Uses <{opname}> to look up the skeleton function and pass it back - // in <{skelfunc}>. Returns non-negative integer on success, or -1 - // on failure. - - virtual int bind (const CORBA_String &opname, - const TAO_Skeleton skelptr); - // Associate the skeleton <{skel_ptr}> with an operation named - // <{opname}>. Returns -1 on failure, 0 on success, 1 on duplicate. -private: - Method_Hash *hash_; -}; - -TAO_Perfect_Hash_Op_Table::TAO_Perfect_Hash_Op_Table (Method_Hash *mh) - : hash_ (mh) -{ -} - -TAO_Perfect_Hash_Op_Table::~TAO_Perfect_Hash_Op_Table (void) -{ -} - -int -TAO_Perfect_Hash_Op_Table::bind (const CORBA_String &opname, - const TAO_Skeleton skelptr) -{ - return 0; // nothing to do -} - -int -TAO_Perfect_Hash_Op_Table::find (const CORBA_String &opname, - TAO_Skeleton &skelptr) -{ - method_db *entry; - - entry = (method_db*) this->hash_->in_word_set (opname, ACE_OS::strlen (opname)); - if (entry != 0) - { - skelptr = entry->skel_ptr_; - return 0; - } - else - { - return -1; - } -} - -//*********************************************************** -char Usage[] = "\ -Usage: server [options] \n\ -Common options:\n\ --t demux_strategy: l(linear), g(GPERF), a (delayered active demux), d (dynamic hash)\n\ --i iter: number of iterations to expect from client \n\ -"; - -extern CORBA_Double TAO_Avg; -extern CORBA_Long TAO_HowMany; -extern CORBA_Long TAO_Loop; -int -main (int argc, char *const *argv) -{ - unsigned long addr_tmp; - int c; - unsigned short done = 0; - CORBA_Environment env; - CORBA_ORB_ptr orb_ptr; - CORBA_POA_ptr oa_ptr; - int iter = 1; - TAO_OA_Parameters *params = TAO_OA_PARAMS::instance(); - char *orb_name = "ior"; - int idle = -1; - int use_ior = 0; - int terminationStatus = 0; - tao_demux_i **mymux; // array of objects implementing the "demux" interface - int numObjs = 5, numMethods = 4; - Object_Hash oh; - TAO_Object_Table *objt = new TAO_Perfect_Hash_ObjTable (&oh); - Method_Hash mh; - TAO_Operation_Table *optbl = new TAO_Perfect_Hash_Op_Table (&mh); - - TAO_Operation_Table_Parameters *op_params = - TAO_OP_TABLE_PARAMETERS::instance(); - - fstream iorfile; // stores the object references of all the objects - fstream outfile; - CORBA_String str; // scratch area - - params->userdef_lookup_strategy (objt); - - orb_ptr = CORBA_ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) { - print_exception (env.exception (), "ORB init", stdout); - return 1; - } - - oa_ptr = orb_ptr->BOA_init (argc, argv, "ROA"); - if (env.exception () != 0) { - print_exception (env.exception (), "OA init", stdout); - return 1; - } - - TAO_debug_level = 0; - // Now process the options other than Orbix specific options - while ((c = getopt (argc, argv, "ui:t:o:m:")) != -1) - { - switch (c) - { - case 't': - switch (*optarg) - { - case 'l': - op_params->lookup_strategy - (TAO_Operation_Table_Parameters::TAO_LINEAR); - break; - case 'a': - op_params->lookup_strategy - (TAO_Operation_Table_Parameters::TAO_ACTIVE_DEMUX); - break; - case 'g': - op_params->lookup_strategy - (TAO_Operation_Table_Parameters::TAO_PERFECT_HASH); - op_params->concrete_strategy (optbl); - break; - case 'd': - default: - op_params->lookup_strategy - (TAO_Operation_Table_Parameters::TAO_DYNAMIC_HASH); - break; - } - break; - case 'u': - use_ior = 1; - orb_name = ""; - break; - case 'i': - iter = atoi (optarg); - break; - case 'o': - numObjs = atoi(optarg); - break; - case 'm': - numMethods = atoi(optarg); - break; - default: - goto usage; - } - } - - TAO_Avg = 0; - TAO_Loop = 0; - TAO_HowMany = iter*numObjs*numMethods; - - // - // Receiver - // - - iorfile.open ("ior.txt", ios::out); - mymux = new tao_demux_i* [numObjs]; - - // instantiate objects -#include "obj_create.i" - iorfile.close(); - cout << "Server ready to handle events" << endl; - -#if defined (USE_QUANTIFY) - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - ACE_Service_Config::run_reactor_event_loop(); - - outfile.open ("muxcost.dat", ios::out|ios::app); - outfile << numObjs << "\t" << numMethods << "\t" << TAO_Avg << endl; - outfile.close (); - // - // Shut down the OA -- recycles all underlying resources (e.g. file - // descriptors, etc). - // - oa_ptr->clean_shutdown (env); - return terminationStatus; -usage: - fprintf (stderr, Usage); - return(1); -} - diff --git a/TAO/tests/Makefile b/TAO/tests/Makefile deleted file mode 100644 index df40aa66ae5..00000000000 --- a/TAO/tests/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Makefile for the TAO tests -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = CDR \ - Cubit \ - OctetSeq \ - Param_Test \ - NestedUpcall \ - POA \ - Quoter \ - Thruput - -# The following tests have not been updated yet -# Demux_Test - -#---------------------------------------------------------------------------- -# 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/TAO/tests/NestedUpcall/Makefile b/TAO/tests/NestedUpcall/Makefile deleted file mode 100644 index aed436a4fdd..00000000000 --- a/TAO/tests/NestedUpcall/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lorbsvcs -lTAO - -IDL_SRC = ReactorC.cpp ReactorS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp #tmplinst.cpp - -LSRC = $(PROG_SRCS) - -NESTEDUPCALLS_SVR_OBJS = ReactorS.o ReactorC.o server.o reactor_i.o -NESTEDUPCALLS_CLT_OBJS = ReactorS.o ReactorC.o client.o eh_i.o -TEST_OBJS = NestedUpCalls_Test.o - -BIN = server client NestedUpCalls_Test -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -L$(TAO_ROOT)/orbsvcs/Naming_Service -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs - -.PRECIOUS: ReactorC.h ReactorC.i ReactorC.cpp -.PRECIOUS: ReactorS.h ReactorS.i ReactorS.cpp - -server: $(addprefix $(VDIR),$(NESTEDUPCALLS_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(NESTEDUPCALLS_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) -NestedUpCalls_Test: $(addprefix $(VDIR),$(TEST_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf ReactorS.* ReactorC.* - -# 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/TAO/tests/NestedUpcall/NestedUpCalls_Test.cpp b/TAO/tests/NestedUpcall/NestedUpCalls_Test.cpp deleted file mode 100644 index 8d06ea90cba..00000000000 --- a/TAO/tests/NestedUpcall/NestedUpCalls_Test.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/NestedUpCalls -// -// = FILENAME -// NestedUpCalls_Test.cpp -// -// = DESCRIPTION -// This example tests the NestedUpCalls server and client -// components. The test forks and execs a process to run -// the client. The clerk and the server -// communicate for a short duration after which the main process -// kills both the processes. No command line arguments are needed -// to run the test. -// -// = AUTHOR -// Nagarajan Surendran -// -// ============================================================================ - -#include "tests/test_config.h" -#include "ace/Process.h" - -int -main (int, char *[]) -{ - ACE_START_TEST ("NestedUpCalls_Test:"); - - // Make sure that the backing store is not there. 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 - - ACE_OS::unlink (ACE_DEFAULT_BACKING_STORE); - - ACE_Process_Options server_options; - server_options.command_line ("./server -ORBport 0"); - ACE_Process server; - - if (server.spawn (server_options) == -1) - ACE_ERROR_RETURN ((LM_DEBUG, - "%n %p.\n", - "Server fork failed"), - 0); - else - ACE_DEBUG ((LM_DEBUG, - "Server forked with pid = %d.\n", - server.getpid ())); - - ACE_OS::sleep (5); - - ACE_Process_Options clerk_options; - clerk_options.command_line ("./client -ORBport 0"); - ACE_Process clerk; - - if (clerk.spawn (clerk_options) == -1) - ACE_ERROR_RETURN ((LM_DEBUG, - "%p.\n", - "Client spawn failed"), - 0); - else - ACE_DEBUG ((LM_DEBUG, - "Client forked with pid = %d.\n", - clerk.getpid ())); - - ACE_DEBUG ((LM_DEBUG, "Sleeping...\n")); - ACE_OS::sleep (10); - - if (clerk.terminate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Terminate failed for clerk.\n"), - -1); - - if (server.terminate () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "Terminate failed for server.\n"), - -1); - - // Since we kill the clerk process, on Win32 it may not do a - // graceful shutdown and the backing store file is left behind. - if (clerk.wait () != 0) - ACE_OS::unlink (ACE_DEFAULT_BACKING_STORE); - - ACE_END_TEST; - return 0; -} diff --git a/TAO/tests/NestedUpcall/NestedUpCalls_i.h b/TAO/tests/NestedUpcall/NestedUpCalls_i.h deleted file mode 100644 index 73c3195c4fe..00000000000 --- a/TAO/tests/NestedUpcall/NestedUpCalls_i.h +++ /dev/null @@ -1,99 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/IDL_Cubit -// -// = FILENAME -// NestedUpCalls_i.h -// -// = AUTHOR -// Andy Gokhale, Sumedh Mungee and Sergio Flores-Gaitan -// -// ============================================================================ - -#if !defined (_NESTEDUPCALLS_I_H) -#define _NESTEDUPCALLS_I_H - -//#include "cubitS.h" - -// Forward declarations. -class NestedUpCalls_i; - -// Typedefs. -typedef NestedUpCalls_i *NestedUpCalls_i_ptr; -typedef NestedUpCalls_i_ptr NestedUpCalls_i_ref; - -class NestedUpCalls_i : public POA -{ - // = TITLE - // Illustrates how to integrate a servant with the generated - // skeleton. - // - // = DESCRIPTION - // Implementation of the cubit example at the servant side. - // Cubes an octet, short, long, struct and union. -public: - NestedUpCalls_i (const char *obj_name = 0); - // Constructor - - ~NestedUpCalls_i (void); - // Destructor - -/* virtual CORBA::Octet cube_octet (CORBA::Octet o, - CORBA::Environment &env); - // Cube an octet - - virtual CORBA::Short cube_short (CORBA::Short s, - CORBA::Environment &env); - // Cube a short - - virtual CORBA::Long cube_long (CORBA::Long l, - CORBA::Environment &env); - // Cube a long - - virtual Cubit::Many cube_struct (const Cubit::Many &values, - CORBA::Environment &env); - // Cube a struct. - - virtual Cubit::oneof cube_union (const Cubit::oneof &values, - CORBA::Environment &env); - // Cube a union. - - virtual void cube_sequence (const Cubit::vector &input, - Cubit::vector_out output, - CORBA::Environment &env); - // Cube a sequence. -*/ - virtual void shutdown (CORBA::Environment &env); - // Shutdown routine. -}; - -class NestedUpCalls_Reactor_i; - -typedef NestedUpCalls_Reactor_i *NestedUpCalls_Reactor_i_ptr; - -class NestedUpCalls_Reactor_i: public POA_Cubit_Factory -{ - // = TITLE - // NestedUpCalls_Reactor_i - // - // = DESCRIPTION - // Factory object returning the cubit objrefs -public: - NestedUpCalls_Reactor_i (void); - // Constructor. - - ~NestedUpCalls_Reactor_i (void); - // Destructor. - - virtual Cubit_ptr make_cubit (const char *key, - CORBA::Environment &env); - // Make the cubit object whose key is "key". - -private: - NestedUpCalls_i my_cubit_; -}; - -#endif /* _NestedUpCalls_i_H */ diff --git a/TAO/tests/NestedUpcall/NestedUpcall.dsw b/TAO/tests/NestedUpcall/NestedUpcall.dsw deleted file mode 100644 index 512c7d017db..00000000000 --- a/TAO/tests/NestedUpcall/NestedUpcall.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/NestedUpcall/README b/TAO/tests/NestedUpcall/README deleted file mode 100644 index a1147be10e4..00000000000 --- a/TAO/tests/NestedUpcall/README +++ /dev/null @@ -1,86 +0,0 @@ --*- indented-text -*- - -$Id$ - - BACKGROUND - ========== - -This example tests the scenario of nested upcalls in TAO. For -example, a particular process may need to act in both the role of -client and server. This interaction is common in situations where the -process makes a twoway invocation on a remote servant, passing a local -object reference 'o' to that servant. In the process of servicing -that invocation, the servant makes a twoway invocation on 'o'. - -This example illustrates an interaction that should be familiar to -anyone who's used ACE: the process of registering a handler with a -Reactor. The EventHandler is the local object reference, and the -Reactor the remote servant. NOTE: This example in no way should be -construed as testimony that remote Reactors make sense or are in any -way useful. It is merely a motivating example! - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - -The client and server by default make use of the Naming Service. The -cubit server now has its own NamingServer implementation and hence you -don't have to start the NamingService before starting the client and -server. - - You just have to use the -s flags on both the server and -client if you don't want to use the naming service. - - EXECUTION - ========= - -server: -------- - -% server [-d] [-s] [-ORBhost ] [-ORBport ] - [-o ] - -Options: -------- --s Tells the server not to use the Naming Service. - --d Debug flag (It is additive more -d flags will give debugging). - --o Outputs the ior file to the file - -Using -d turns on debugging messages. It is additive, i.e., the more --d options provided, the more debugging you can get. At the moment, -only 2 levels of debugging are implemented, and more than 2 -d options -are ignored. - - -client: -------- - -% client [-d] [-s] [-x] <-f ior_file> <-k ior> -n - -Options: -------- - d Debug flag - s Don't Use the Naming Service - x Tells the server to shutdown. - f Reads the ior from the file - k Reads the ior from commandline - - There are 3 ways of giving the IOR to the client: - - 1. From a file using the -f option. (This file can be produced using - the -o option of the server.) - - 2. Directly on the commandline using the -k option. - - 3. Get it from the Naming Service (which is the default client - behavior). - -NestedUpCalls_Test: ------------------- - - This is a simple test program which tests the server and -client using the default options of the server and client. To test -using this just run - - % NestedUpCalls_Test diff --git a/TAO/tests/NestedUpcall/Reactor.idl b/TAO/tests/NestedUpcall/Reactor.idl deleted file mode 100644 index ae70a317d8b..00000000000 --- a/TAO/tests/NestedUpcall/Reactor.idl +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ -// -// ============================================================================ -// -// = LIBRARY -// TAO/tests/NestedUpcall -// -// = FILENAME -// Reactor.idl -// -// = DESCRIPTION -// A simple test of nested upcalls using a structure we likely all -// know and love. -// -// Existence of this interface should not be taken as testimony that -// such a structure would work in ACE! There is no such thing as an -// IDL interface to the Reactor (yet)! -// -// = AUTHORS -// Chris Cleeland -// -// ============================================================================ - -interface Reactor; - -interface EventHandler -{ - Long peer (); - // Returns an integer corresponding to the event handler's file - // descriptor. - - UShort decrement (in Reactor r, in UShort num); - // Decrements by invoking the operation on - // and returning that value, finally stopping when it gets to zero. -}; - -interface Reactor -{ - Long register_handler (in EventHandler eh); - // Turns around and queries for the peer. - - oneway void set_value (); - // do-nothing oneway to check for proper operation. - - UShort decrement (in EventHandler eh, in UShort num); - // Decrements by invoking the operation on - // and returning that value, finally stopping when it gets to zero. - - void stop (); - // Stops the reactor. -}; - diff --git a/TAO/tests/NestedUpcall/client.cpp b/TAO/tests/NestedUpcall/client.cpp deleted file mode 100644 index 9191230d647..00000000000 --- a/TAO/tests/NestedUpcall/client.cpp +++ /dev/null @@ -1,302 +0,0 @@ -// $Id$ - -#include "ace/Profile_Timer.h" -#include "ace/Env_Value_T.h" -#include "ace/Read_Buffer.h" -#include "client.h" -#include "eh_i.h" -#include "orbsvcs/CosNamingC.h" - -#define quote(x) #x - -// Constructor. -NestedUpCalls_Client::NestedUpCalls_Client (void) - : nested_up_calls_reactor_key_ (0), - shutdown_ (0), - call_count_ (0), - nested_up_calls_reactor_ior_file_ (0), - f_handle_ (ACE_INVALID_HANDLE), - use_naming_service_ (1) -{ -} - -// Simple function that returns the substraction of 117 from the -// parameter. - -int -NestedUpCalls_Client::func (u_int i) -{ - return i - 117; -} - -// Reads the NestedUpCalls reactor ior from a file - -int -NestedUpCalls_Client::read_ior (char *filename) -{ - // Open the file for reading. - this->f_handle_ = ACE_OS::open (filename,0); - - if (this->f_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - filename), - -1); - ACE_Read_Buffer ior_buffer (this->f_handle_); - this->nested_up_calls_reactor_key_ = ior_buffer.read (); - - if (this->nested_up_calls_reactor_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - return 0; -} - -// Parses the command line arguments and returns an error status. - -int -NestedUpCalls_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:f:k:xs"); - int c; - int result; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'f': // read the IOR from the file. - result = this->read_ior (get_opts.optarg); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'k': // read the nestedupcalls IOR from the command-line. - this->nested_up_calls_reactor_key_ = - ACE_OS::strdup (get_opts.optarg); - break; - case 'x': - this->shutdown_ = 1; - break; - case 's': // Don't use the TAO Naming Service. - this->use_naming_service_ = 0; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-f nested_up_calls_reactor-obj-ref-key-file]" - " [-k nestedupcalls-obj-ref-key]" - " [-x]" - " [-s]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -// Execute client example code. -int -NestedUpCalls_Client::run (void) -{ - - TAO_TRY - { - // Create an EventHandler servant to hand to the other side... - auto_ptr eh_impl (new EventHandler_i); - EventHandler_var eh = eh_impl->_this (TAO_TRY_ENV); - - // Get into the event loop briefly...just to make sure that the - // ORB gets a chance to set things up for us to be a server. - // What this really means is that there's a listening port. - // - // The bad thing is that we have to do something non-standard - // such as call orb->run() with a zero timeout. It would be - // nice if the spec gave us a standard way to do this. - if (orb_->run (ACE_Time_Value::zero) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: %p\n", - argv_[0], "unable to get the ORB Core to listen"), - -1); - - // Now, after all that, we can invoke an operation on the remote - // side. - CORBA::Long r = this->reactor_->register_handler (eh.in (), TAO_TRY_ENV); - - // We ought to have a result! - ACE_DEBUG ((LM_DEBUG, - "%s: received %d as return from register_handler ()\n", - argv_[0], r)); - - this->reactor_->set_value (TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->reactor_->decrement (eh.in (), 5, TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->reactor_->stop (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (this->shutdown_) - { - dexc (this->env_, "server, please ACE_OS::exit"); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Nestedupcalls::run ()"); - return -1; - } - TAO_ENDTRY; - return 0; -} - -NestedUpCalls_Client::~NestedUpCalls_Client (void) -{ - // Free resources - // Close the ior files - if (this->nested_up_calls_reactor_ior_file_) - ACE_OS::fclose (this->nested_up_calls_reactor_ior_file_); - if (this->f_handle_ != ACE_INVALID_HANDLE) - ACE_OS::close (this->f_handle_); - - if (this->nested_up_calls_reactor_key_ != 0) - ACE_OS::free (this->nested_up_calls_reactor_key_); -} - -int -NestedUpCalls_Client::init_naming_service (void) -{ - TAO_TRY - { - CORBA::Object_var naming_obj = - this->orb_->resolve_initial_references ("NameService"); - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - CosNaming::Name nested_up_calls_reactor_name (2); - nested_up_calls_reactor_name.length (2); - nested_up_calls_reactor_name[0].id = CORBA::string_dup ("NestedUpCalls"); - nested_up_calls_reactor_name[1].id = CORBA::string_dup ("nested_up_calls_reactor"); - CORBA::Object_var reactor_obj = - naming_context->resolve (nested_up_calls_reactor_name,TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->reactor_ = - Reactor::_narrow (reactor_obj.in (),TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->reactor_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve nested up calls reactor in Naming service <%s>\n"), - -1); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("NestedUpCalls::init_naming_service"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -int -NestedUpCalls_Client::init (int argc, char **argv) -{ - int naming_result; - this->argc_ = argc; - this->argv_ = argv; - - TAO_TRY - { - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - if (this->use_naming_service_) - { - naming_result = this->init_naming_service (); - if (naming_result < 0) - return naming_result; - } - else - { - if (this->nested_up_calls_reactor_key_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%s: no nested up calls reactor key specified\n", - this->argv_[0]), - -1); - - - CORBA::Object_var reactor_object = - this->orb_->string_to_object (this->nested_up_calls_reactor_key_, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->reactor_ = - Reactor::_narrow (reactor_object.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->reactor_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid reactor key <%s>\n", - this->nested_up_calls_reactor_key_), - -1); - } - - ACE_DEBUG ((LM_DEBUG, "Reactor received OK\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("NestedUpCalls::init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -// This function runs the test. -int -main (int argc, char **argv) -{ - NestedUpCalls_Client nestedupcalls_client; - - ACE_DEBUG ((LM_DEBUG, - "\n \t NestedUpCalls: client \n\n")); - - if (nestedupcalls_client.init (argc, argv) == -1) - return 1; - else - return nestedupcalls_client.run (); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class auto_ptr; -template class ACE_Auto_Basic_Ptr; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate auto_ptr -#pragma instantiate ACE_Auto_Basic_Ptr -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/NestedUpcall/client.dsp b/TAO/tests/NestedUpcall/client.dsp deleted file mode 100644 index ed2c4e1fc11..00000000000 --- a/TAO/tests/NestedUpcall/client.dsp +++ /dev/null @@ -1,138 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\.." /I "..\.." /I "..\..\orbsvcs" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ELSEIF "$(CFG)" == "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 "..\..\.." /I "..\.." /I "..\..\orbsvcs" /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 TAO.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\eh_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\Reactor.idl - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\Reactor.idl -InputName=Reactor - -BuildCmds= \ - tao_idl $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\ReactorC.cpp -# End Source File -# Begin Source File - -SOURCE=.\ReactorS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/NestedUpcall/client.h b/TAO/tests/NestedUpcall/client.h deleted file mode 100644 index 706a4d9105a..00000000000 --- a/TAO/tests/NestedUpcall/client.h +++ /dev/null @@ -1,94 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/NestedUpCalls -// -// = FILENAME -// client.h -// -// = DESCRIPTION -// -// -// = AUTHORS -// Aniruddha Gokhale, Sumedh Mungee, and Sergio Flores-Gaitan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "reactor_i.h" -#include "ace/Auto_Ptr.h" - -class NestedUpCalls_Client -{ - // = TITLE - // Defines a class that encapsulates behaviour of the NestedUpCalls client - // example. Provides a better understanding of the logic in an - // object oriented way. - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // NestedUpCalls CORBA server. All the complexity for initializing the - // server is hidden in the class. Just the run() interface is needed. -public: - // = Constructor and destructor. - NestedUpCalls_Client (void); - ~NestedUpCalls_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int init_naming_service (void); - // Function to initialize the naming service. - - int func (u_int i); - // Simple function that returns the substraction of 117 from the - // parameter. - - int read_ior (char *filename); - // Function to read the NestedUpCalls reactor ior from a file. - - int parse_args (void); - // Parses the arguments passed on the command line. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - char *nested_up_calls_reactor_key_; - // Key of reactor obj ref. - - int shutdown_; - // Flag to tell server to shutdown. - - Reactor_var reactor_; - // reactor pointer for NestedUpCalls. - - CORBA::Environment env_; - // Environment variable. - - CORBA::ORB_var orb_; - // Remember our orb. - - u_int call_count_; - // # of calls made to functions. - - FILE *nested_up_calls_reactor_ior_file_; - // File from which to obtain the IOR. - - ACE_HANDLE f_handle_; - // File handle to read the IOR. - - int use_naming_service_; - // Flag to tell client not to use Namingservice to find the NestedUpCalls - // reactor. -}; diff --git a/TAO/tests/NestedUpcall/eh_i.cpp b/TAO/tests/NestedUpcall/eh_i.cpp deleted file mode 100644 index a6961ea984e..00000000000 --- a/TAO/tests/NestedUpcall/eh_i.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $Id$ - -#include "tao/corba.h" -#include "eh_i.h" - -// CTOR -EventHandler_i::EventHandler_i (void) -{ -} - -// DTOR -EventHandler_i::~EventHandler_i (void) -{ -} - -// Return a long -CORBA::Long -EventHandler_i::peer (CORBA::Environment &env) -{ - // Doesn't matter what value we return! - CORBA::Long val = 6; - - ACE_DEBUG ((LM_DEBUG, - "EventHandler_i::peer() returning %d\n", - val)); - - return val; -} - -CORBA::UShort -EventHandler_i::decrement (Reactor_ptr eh, - CORBA::UShort num, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "%{%I(%P|%t) EventHandler::decrement (%d)%$", num)); - - CORBA::UShort ret; - if (--num <= 0) - ret = 0; - else - { - ACE_DEBUG ((LM_DEBUG, "(%P|%t) EventHandler::decrement() invoking Reactor::decrement(%d)%$", num)); - ret = eh->decrement (_this (env), num, env); - } - ACE_DEBUG ((LM_DEBUG, "%}(%P|%t) EventHandler::decrement() returning %d%$", ret)); - return ret; -} diff --git a/TAO/tests/NestedUpcall/eh_i.h b/TAO/tests/NestedUpcall/eh_i.h deleted file mode 100644 index c8443da0bcb..00000000000 --- a/TAO/tests/NestedUpcall/eh_i.h +++ /dev/null @@ -1,30 +0,0 @@ -// -*- c++ -*- -// $Id$ - -#if !defined (EVENTHANDLER_I_H) -# define EVENTHANDLER_I_H - -#include "ReactorS.h" - -class EventHandler_i : public POA_EventHandler -{ - // = TITLE - // Servant implementation for the IDL interface. -public: - EventHandler_i (void); - // Constructor. - - virtual ~EventHandler_i (void); - // Destructor. - - virtual CORBA::Long peer (CORBA::Environment &env); - // Return some value...doesn't matter what. - - virtual CORBA::UShort decrement (Reactor_ptr eh, - CORBA::UShort num, - CORBA::Environment &env); - // deccrement by calling decrement thru until zero is - // reached, then return. -}; - -#endif /* EVENTHANDLER_I_H */ diff --git a/TAO/tests/NestedUpcall/reactor_i.cpp b/TAO/tests/NestedUpcall/reactor_i.cpp deleted file mode 100644 index d5b5119c6f0..00000000000 --- a/TAO/tests/NestedUpcall/reactor_i.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - -#include "tao/corba.h" -#include "reactor_i.h" - -// CTOR -Reactor_i::Reactor_i (void) -{ -} - -// DTOR -Reactor_i::~Reactor_i (void) -{ -} - -// register...with nothing -CORBA::Long -Reactor_i::register_handler (EventHandler_ptr eh, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) BEGIN Reactor_i::register_handler ()\n")); - - CORBA::Long r = 0; - - TAO_TRY - { - r = eh->peer (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("getting peer"); - } - TAO_ENDTRY; - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) got this value from peer: %d\n", - r)); - - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) END Reactor_i::register_handler ()\n")); - return 0; -} - -void -Reactor_i::set_value (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "(%P|%t) doing Reactor_i::set_value()\n")); -} - -CORBA::UShort -Reactor_i::decrement (EventHandler_ptr eh, - CORBA::UShort num, - CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "%{%I(%P|%t) Reactor::decrement (%d)%$", num)); - - CORBA::UShort ret; - if (--num <= 0) - ret = 0; - else - { - ACE_DEBUG ((LM_DEBUG, "(%P|%t) Reactor::decrement() invoking EventHandler::decrement(%d)%$", num)); - Reactor_var me = _this (env); - ret = eh->decrement (me.in (), num, env); - } - ACE_DEBUG ((LM_DEBUG, "%}(%P|%t) Reactor::decrement() returning %d\n", ret)); - return ret; -} - -void -Reactor_i::stop (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, "(%P|%t) stopping.\n")); - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} diff --git a/TAO/tests/NestedUpcall/reactor_i.h b/TAO/tests/NestedUpcall/reactor_i.h deleted file mode 100644 index 3d4ede734c9..00000000000 --- a/TAO/tests/NestedUpcall/reactor_i.h +++ /dev/null @@ -1,36 +0,0 @@ -// -*- c++ -*- -// $Id$ - -#if !defined (REACTOR_I_H) -# define REACTOR_I_H - -#include "ReactorS.h" - -class Reactor_i : public POA_Reactor -{ - // = TITLE - // Implement the IDL interface. -public: - Reactor_i (void); - // Constructor. - - virtual ~Reactor_i (void); - // Destructor. - - virtual CORBA::Long register_handler(EventHandler_ptr eh, - CORBA::Environment &env); - // Register (with nothing...it's an example!) - - virtual void set_value (CORBA::Environment &env); - - virtual CORBA::UShort decrement (EventHandler_ptr eh, - CORBA::UShort num, - CORBA::Environment &env); - // deccrement by calling decrement thru until zero is - // reached, then return. - - virtual void stop (CORBA::Environment &env); - // Stops the reactor. -}; - -#endif /* REACTOR_I_H */ diff --git a/TAO/tests/NestedUpcall/server.cpp b/TAO/tests/NestedUpcall/server.cpp deleted file mode 100644 index ba2e2a181bb..00000000000 --- a/TAO/tests/NestedUpcall/server.cpp +++ /dev/null @@ -1,175 +0,0 @@ -// $Id$ - -#include "server.h" - -NestedUpCalls_Server::NestedUpCalls_Server (void) - : use_naming_service_ (1), - ior_output_file_ (0) -{ -} - -int -NestedUpCalls_Server::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:o:s"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag. - TAO_debug_level++; - break; - case 'o': // output the IOR to a file. - this->ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (this->ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 's': // Don't use the TAO Naming Service. - this->use_naming_service_=0; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-o] " - " [-s]" - "\n", - argv_ [0]), - 1); - } - - // Indicates successful parsing of command line. - return 0; -} - -int -NestedUpCalls_Server::init (int argc, - char** argv, - CORBA::Environment& env) -{ - // Call the init of TAO_ORB_Manager to create a child POA - // under the root POA. - this->orb_manager_.init_child_poa (argc, - argv, - "child_poa", - env); - - TAO_CHECK_ENV_RETURN (env,-1); - this->argc_ = argc; - this->argv_ = argv; - - this->parse_args (); - // ~~ check for the return value here - - CORBA::String_var str = - this->orb_manager_.activate_under_child_poa ("reactor", - &this->reactor_impl_, - env); - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - if (this->ior_output_file_) - { - ACE_OS::fprintf (this->ior_output_file_, - "%s", - str.in ()); - ACE_OS::fclose (this->ior_output_file_); - } - - if (this->use_naming_service_) - return this->init_naming_service (env); - - return 0; -} - -// Initialisation of Naming Service and register IDL_Cubit Context and -// cubit_factory object. - -int -NestedUpCalls_Server::init_naming_service (CORBA::Environment& env) -{ - int result; - CORBA::ORB_var orb; - PortableServer::POA_var child_poa; - - orb = this->orb_manager_.orb (); - child_poa = this->orb_manager_.child_poa (); - - result = this->my_name_server_.init (orb.in (), - child_poa.in ()); - if (result < 0) - return result; - reactor_ = this->reactor_impl_._this (env); - TAO_CHECK_ENV_RETURN (env,-1); - - //Register the nested_up_calls_reactor name with the NestedUpCalls Naming - //Context... - CosNaming::Name nested_up_calls_context_name (1); - nested_up_calls_context_name.length (1); - nested_up_calls_context_name[0].id = CORBA::string_dup ("NestedUpCalls"); - this->naming_context_ = - this->my_name_server_->bind_new_context (nested_up_calls_context_name, - env); - TAO_CHECK_ENV_RETURN (env,-1); - - CosNaming::Name reactor_name (1); - reactor_name.length (1); - reactor_name[0].id = CORBA::string_dup ("nested_up_calls_reactor"); - this->naming_context_->bind (reactor_name, - reactor_.in (), - env); - TAO_CHECK_ENV_RETURN (env,-1); - return 0; -} - -int -NestedUpCalls_Server::run (CORBA::Environment& env) -{ - if (this->orb_manager_.run (env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "NestedUpCalls_Server::run"), - -1); - return 0; -} - -NestedUpCalls_Server::~NestedUpCalls_Server (void) -{ -} - -int -main (int argc, char *argv[]) -{ - NestedUpCalls_Server nested_up_calls_server; - - ACE_DEBUG ((LM_DEBUG, - "\n \t NestedUpCalls:SERVER \n \n")); - TAO_TRY - { - if (nested_up_calls_server.init (argc,argv,TAO_TRY_ENV) == -1) - return 1; - else - { - nested_up_calls_server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/tests/NestedUpcall/server.dsp b/TAO/tests/NestedUpcall/server.dsp deleted file mode 100644 index ef8ef4717d4..00000000000 --- a/TAO/tests/NestedUpcall/server.dsp +++ /dev/null @@ -1,137 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\.." /I "..\.." /I "..\..\orbsvcs" /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 TAO.lib ace.lib orbsvcs.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!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 "..\..\.." /I "..\.." /I "..\..\orbsvcs" /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 TAO.lib aced.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Reactor.idl - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\Reactor.idl -InputName=Reactor - -BuildCmds= \ - tao_idl $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\reactor_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\ReactorC.cpp -# End Source File -# Begin Source File - -SOURCE=.\ReactorS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/NestedUpcall/server.h b/TAO/tests/NestedUpcall/server.h deleted file mode 100644 index cb02f84b701..00000000000 --- a/TAO/tests/NestedUpcall/server.h +++ /dev/null @@ -1,98 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/NestedUpCalls -// -// = FILENAME -// server.h -// -// = DESCRIPTION -// This class implements a simple NestedUpCalls CORBA server for the NestedUpCalls -// example using skeletons generated by the TAO ORB compiler. -// -// = AUTHORS -// Nagarajan Surendran (naga@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (_NUC_SERVER_H) -#define _NUC_SERVER_H - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "tao/TAO.h" -#include "orbsvcs/CosNamingC.h" -#include "reactor_i.h" -#include "orbsvcs/Naming/Naming_Utils.h" - -class NestedUpCalls_Server -{ - // = TITLE - // Defines a NestedUpCalls Server class that implements the functionality - // of a server process as an object. - // - // = DESCRIPTION - // The interface is quite simple. A server program has to call - // init to initialize the NestedUpCalls_Server's state and then call run - // to run the orb. -public: - - NestedUpCalls_Server (void); - // Default constructor - - ~NestedUpCalls_Server (void); - // Destructor - - int init (int argc, - char **argv, - CORBA::Environment& env); - // Initialize the NestedUpCalls_Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb - -private: - int parse_args (void); - // Parses the commandline arguments. - - int init_naming_service (CORBA::Environment &env); - // Initialises the name server and registers NestedUpCalls reactor with the - // name server. - - int use_naming_service_; - //Flag to tell server not to use the TAO Naming Service to register - //the NestedUpCalls reactor. - - FILE* ior_output_file_; - // File to output the NestedUpCalls reactor IOR. - - TAO_ORB_Manager orb_manager_; - // The ORB manager - - TAO_Naming_Server my_name_server_; - // An instance of the name server used for registering the reactor - // objects. - - Reactor_i reactor_impl_; - // Implementation object of the NestedUpCalls reactor. - - Reactor_var reactor_; - // Reactor_var to register with NamingService. - - CosNaming::NamingContext_var NestedUpCalls_context_; - // Naming context for the NestedUpCalls_reactor. - - CosNaming::NamingContext_var naming_context_; - // Naming context for the Naming Service. - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. -}; - -#endif /* _NUC_SERVER_H */ diff --git a/TAO/tests/NestedUpcall/svc.conf b/TAO/tests/NestedUpcall/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/NestedUpcall/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/OctetSeq/Makefile b/TAO/tests/OctetSeq/Makefile deleted file mode 100644 index 99463cf11b6..00000000000 --- a/TAO/tests/OctetSeq/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -IDL_HDR = testC.h testS.h -IDL_SRC = testC.cpp testS.cpp - -PROG_SRCS = \ - OctetSeq.cpp \ - -LSRC = $(PROG_SRCS) $(IDL_SRC) - -OCTETSEQ_OBJS = testC.o testS.o OctetSeq.o - -BIN = OctetSeq -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 - -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -OctetSeq: $(addprefix $(VDIR),$(OCTETSEQ_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -.PRECIOUS: $(IDL_HDR) $(IDL_SRC) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf testC.* testS.* - -# 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/TAO/tests/OctetSeq/OctetSeq.cpp b/TAO/tests/OctetSeq/OctetSeq.cpp deleted file mode 100644 index df40b582c9f..00000000000 --- a/TAO/tests/OctetSeq/OctetSeq.cpp +++ /dev/null @@ -1,248 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/CDR -// -// = FILENAME -// octetseq.cpp -// -// = DESCRIPTION -// TAO optimizes octet sequences, this test verifies that the -// optimizations do not break any code and that they effectively -// improve performance. -// -// = AUTHORS -// Carlos O'Ryan -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/High_Res_Timer.h" - -#include "tao/corba.h" -#include "tao/debug.h" -#include "testC.h" - -static int -test_write_octet (TAO_OutputCDR &cdr, - char* buf, size_t bufsize, - CORBA::Environment& env) -{ - Test::OctetSeq os (bufsize, bufsize, (CORBA::Octet*)buf); - - cdr.encode (Test::_tc_OctetSeq, &os, 0, env); - if (env.exception () != 0) - return -1; - return 0; -} - -static int -test_read_octet (TAO_InputCDR &cdr, - char* buf, size_t bufsize, - CORBA::Environment& env) -{ - Test::OctetSeq os; - - cdr.decode (Test::_tc_OctetSeq, &os, 0, env); - if (env.exception () != 0 || - os.length () != bufsize - /* || ACE_OS::memcmp( buf, os.get_buffer (), bufsize) != 0 */) - { - ACE_DEBUG ((LM_DEBUG, - "OCTET: problem demarshalling or unmatched buffer\n")); - return -1; - } - return 0; -} - -static int -test_write_char (TAO_OutputCDR &cdr, - char* buf, size_t bufsize, - CORBA::Environment& env) -{ - Test::CharSeq cs (bufsize, bufsize, buf); - - cdr.encode (Test::_tc_CharSeq, &cs, 0, env); - if (env.exception () != 0) - return -1; - return 0; -} - -static int -test_read_char (TAO_InputCDR &cdr, - char* buf, size_t bufsize, - CORBA::Environment& env) -{ - Test::CharSeq cs; - - cdr.decode (Test::_tc_CharSeq, &cs, 0, env); - if (env.exception () != 0 || - cs.length () != bufsize - /* || ACE_OS::memcmp( buf, cs.get_buffer (), bufsize) != 0 */) - { - ACE_DEBUG ((LM_DEBUG, - "CHAR: problem demarshalling or unmatched buffer\n")); - return -1; - } - return 0; -} - -typedef -int (*Writer)(TAO_OutputCDR& cdr, - char* buf, size_t bufsize, - CORBA::Environment& env); -typedef -int (*Reader)(TAO_InputCDR& cdr, - char* buf, size_t bufsize, - CORBA::Environment& env); - -int -run (char* buf, size_t bufsize, - size_t n, size_t lo, size_t s, - const char* name, - Writer writer, Reader reader, - CORBA::Environment& env) -{ - for (size_t x = lo; x <= bufsize; x += s) - { - ACE_High_Res_Timer writing; - ACE_High_Res_Timer reading; - - for (size_t i = 0; i < n; ++i) - { - writing.start_incr (); - TAO_OutputCDR output; - - if (writer (output, buf, x, env) != 0) - return -1; - writing.stop_incr (); - - reading.start_incr (); - TAO_InputCDR input (output); - if (reader (input, buf, x, env) != 0) - return -1; - reading.stop_incr (); - } - double m = n; - - ACE_Time_Value wtv; - writing.elapsed_time_incr (wtv); - ACE_hrtime_t wusecs = wtv.sec (); - wusecs *= ACE_static_cast (ACE_UINT32, ACE_ONE_SECOND_IN_USECS); - wusecs += wtv.usec (); - - ACE_Time_Value rtv; - reading.elapsed_time_incr (rtv); - ACE_hrtime_t rusecs = rtv.sec (); - rusecs *= ACE_static_cast (ACE_UINT32, ACE_ONE_SECOND_IN_USECS); - rusecs += rtv.usec (); - - double write_average = ACE_static_cast(ACE_INT32,wusecs) / m; - double read_average = ACE_static_cast(ACE_INT32,rusecs) / m; - ACE_DEBUG ((LM_DEBUG, - "%s: %d %.3f %.3f\n", - name, x, write_average, read_average)); - } - return 0; -} - -int -main (int argc, char *argv[]) -{ - TAO_TRY - { - CORBA::ORB_var orb = CORBA::ORB_init (argc, - argv, - 0, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - int n = 64; - int lo = 64; - int hi = 128000; - int s = 4; - - ACE_Get_Opt get_opt (argc, argv, "n:l:h:s:"); - int opt; - - while ((opt = get_opt ()) != EOF) - { - switch (opt) - { - case 'n': - n = ACE_OS::atoi (get_opt.optarg); - break; - case 'l': - lo = ACE_OS::atoi (get_opt.optarg); - break; - case 'h': - hi = ACE_OS::atoi (get_opt.optarg); - break; - case 's': - s = ACE_OS::atoi (get_opt.optarg); - break; - case '?': - default: - ACE_DEBUG ((LM_DEBUG, - "Usage: %s " - "-l low " - "-h high " - "-s step " - "-n n " - "\n" - "Writes and then reads octet sequences to a CDR stream " - "starting from up to incrementing " - "by , at each step run iterations to " - "average." - "\n", - argv[0])); - return -1; - } - } - - ACE_DEBUG ((LM_DEBUG, "Running:\n" - " low: %d\n" - " hi : %d\n" - " s : %d\n" - " n : %d\n", - lo, hi, s, n)); - - // Create a "big" buffer and fill it up. - char* buf = new char[hi]; - CORBA::Long l = 0xdeadbeef; - for (u_int i = 0; i < hi / sizeof (l); ++i) - { - ACE_OS::memcpy (buf + sizeof (l) * i, &l, sizeof (l)); - } - - if (run (buf, hi, - n, lo, s, - "OCTET", test_write_octet, test_read_octet, - TAO_TRY_ENV) != 0) - return 1; - TAO_CHECK_ENV; - - if (run (buf, hi, - n, lo, s, - "CHAR", test_write_char, test_read_char, - TAO_TRY_ENV) != 0) - return 1; - TAO_CHECK_ENV; - delete[] buf; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("OctetSeq"); - } - TAO_ENDTRY; - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/OctetSeq/OctetSeq.dsp b/TAO/tests/OctetSeq/OctetSeq.dsp deleted file mode 100644 index 1e382a5b680..00000000000 --- a/TAO/tests/OctetSeq/OctetSeq.dsp +++ /dev/null @@ -1,141 +0,0 @@ -# Microsoft Developer Studio Project File - Name="OctetSeq" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=OctetSeq - 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 "OctetSeq.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 "OctetSeq.mak" CFG="OctetSeq - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "OctetSeq - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "OctetSeq - 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)" == "OctetSeq - 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 /W3 /GX /O2 /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 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 - -!ELSEIF "$(CFG)" == "OctetSeq - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# 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 "..\.." /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 TAO.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "OctetSeq - Win32 Release" -# Name "OctetSeq - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\OctetSeq.cpp -# End Source File -# Begin Source File - -SOURCE=.\testC.cpp -# End Source File -# Begin Source File - -SOURCE=.\testS.cpp -# End Source File -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\test.idl - -!IF "$(CFG)" == "OctetSeq - Win32 Release" - -!ELSEIF "$(CFG)" == "OctetSeq - Win32 Debug" - -# Begin Custom Build - Invoking TAO IDL compiler -InputPath=.\test.idl -InputName=test - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(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) -# End Custom Build - -!ENDIF - -# End Source File -# End Group -# End Target -# End Project diff --git a/TAO/tests/OctetSeq/OctetSeq.dsw b/TAO/tests/OctetSeq/OctetSeq.dsw deleted file mode 100644 index e0a2dad0331..00000000000 --- a/TAO/tests/OctetSeq/OctetSeq.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: "OctetSeq"=.\OctetSeq.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/OctetSeq/svc.conf b/TAO/tests/OctetSeq/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/OctetSeq/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/OctetSeq/test.idl b/TAO/tests/OctetSeq/test.idl deleted file mode 100644 index cbd7b116caa..00000000000 --- a/TAO/tests/OctetSeq/test.idl +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/OctetSeq -// -// = FILENAME -// test.idl -// -// = DESCRIPTION -// Simple IDL file to generate the TypeCodes for sequence and -// sequence. -// -// = AUTHORS -// Carlos O'Ryan -// -// ============================================================================ - -module Test -{ - typedef sequence OctetSeq; - typedef sequence CharSeq; -}; diff --git a/TAO/tests/POA/DSI/DSI.DSW b/TAO/tests/POA/DSI/DSI.DSW deleted file mode 100644 index 81ea7e514fa..00000000000 --- a/TAO/tests/POA/DSI/DSI.DSW +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/DSI/Database.idl b/TAO/tests/POA/DSI/Database.idl deleted file mode 100644 index ed1a44b971a..00000000000 --- a/TAO/tests/POA/DSI/Database.idl +++ /dev/null @@ -1,73 +0,0 @@ -// $Id$ - -module Database -{ - typedef unsigned long Flags; - - typedef string Identifier; - - exception Unknown_Type - { - string type; - }; - - exception Unknown_Key - { - string key; - }; - - exception Duplicate_Key - { - string key; - }; - - exception Not_Found - { - string key; - }; - - interface Entry - { - readonly attribute string name; - }; - - interface Employee : Entry - { - attribute long id; - }; - - /* - interface Machine : Entry - { - attribute string make; - }; - */ - - struct NamedValue - { - Identifier name; - any value; - Flags flags; - }; - - typedef sequence NVPairSequence; - - interface Agent - { - Entry create_entry (in string key, - in Identifier entry_type, - in NVPairSequence initial_attributes) - raises (Unknown_Type, - Duplicate_Key); - - Entry find_entry (in string key, - in Identifier entry_type) - raises (Unknown_Type, - Not_Found); - - void destroy_entry (in string key, - in Identifier entry_type) - raises (Unknown_Type, - Unknown_Key); - }; -}; diff --git a/TAO/tests/POA/DSI/Database_i.cpp b/TAO/tests/POA/DSI/Database_i.cpp deleted file mode 100644 index c34d0a2116c..00000000000 --- a/TAO/tests/POA/DSI/Database_i.cpp +++ /dev/null @@ -1,323 +0,0 @@ -// $Id$ - -#include "Database_i.h" - -DatabaseImpl::Simpler_Malloc::Simpler_Malloc (void) - : MALLOC (ACE_DEFAULT_BACKING_STORE) -{ -} - -DatabaseImpl::Entry::Entry (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa) - : orb_ (CORBA::ORB::_duplicate (orb)), - poa_ (PortableServer::POA::_duplicate (poa)) -{ -} - -DatabaseImpl::Entry::~Entry (void) -{ -} - -void -DatabaseImpl::Entry::invoke (CORBA::ServerRequest_ptr request, - CORBA::Environment &env) -{ - // Get the POA Current object reference - CORBA::Object_var obj = this->orb_->resolve_initial_references ("POACurrent"); - - // Narrow the object reference to a POA Current reference - PortableServer::Current_var poa_current = PortableServer::Current::_narrow (obj.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::Current::_narrow"); - return; - } - - // The servant determines the key associated with thex database entry - // represented by self - PortableServer::ObjectId_var oid = poa_current->get_object_id (env); - if (env.exception () != 0) - return; - - // Now convert the id into a string - CORBA::String_var key = PortableServer::ObjectId_to_string (oid.in ()); - - // Get the operation name for this request - const char *operation = request->operation (); - - if (ACE_OS::strcmp (operation, "_is_a") == 0) - this->_is_a (request, env); - else - { - env.exception (new CORBA::NO_IMPLEMENT (CORBA::COMPLETED_NO)); - return; - } -} - -void -DatabaseImpl::Entry::_is_a (CORBA::ServerRequest_ptr request, - CORBA::Environment &env) -{ - CORBA::NVList_ptr list; - this->orb_->create_list (1, list); - - char *value = 0; - CORBA::Any any_1 (CORBA::_tc_string, &value); - - CORBA::NamedValue_ptr named_value_1 = list->add_value ("value", - any_1, - CORBA::ARG_IN, - env); - if (env.exception () != 0) - return; - - request->arguments (list, - env); - if (env.exception () != 0) - return; - - CORBA::Boolean result; - if (!ACE_OS::strcmp (value, "IDL:Database/Employee:1.0") || - !ACE_OS::strcmp (value, "IDL:Database/Entry:1.0") || - !ACE_OS::strcmp (value, CORBA::_tc_Object->id (env))) - result = CORBA::B_TRUE; - else - result = CORBA::B_FALSE; - - CORBA::Any result_any; - CORBA::Any::from_boolean from_boolean (result); - result_any <<= from_boolean; - - request->set_result (result_any, env); -} - -CORBA::RepositoryId -DatabaseImpl::Entry::_primary_interface (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - CORBA::Environment &env) -{ - return 0; -} - -PortableServer::POA_ptr -DatabaseImpl::Entry::_default_POA (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -DatabaseImpl::Agent::Agent (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa) - : orb_ (CORBA::ORB::_duplicate (orb)), - poa_ (PortableServer::POA::_duplicate (poa)), - common_servant_ (orb, poa) -{ - CORBA::Environment env; - - this->poa_->set_servant (&this->common_servant_, env); - if (env.exception () != 0) - { - ACE_ERROR ((LM_ERROR, "PortableServer::POA::set_servant\n")); - ACE_OS::exit (-1); - } -} - -DatabaseImpl::Agent::~Agent (void) -{ -} - -Database::Entry_ptr -DatabaseImpl::Agent::create_entry (const char *key, - const char *entry_type, - const Database::NVPairSequence &initial_attributes, - CORBA::Environment &env) -{ - // Create a new entry in the database: - if (ACE_OS::strcmp (entry_type, "Employee") != 0 || - initial_attributes.length () != 2) - { - CORBA::Exception *exception = new Database::Unknown_Type (entry_type); - env.exception (exception); - return Database::Entry::_nil (); - } - - char *name = 0; - CORBA::Long id = 0; - - const Database::NamedValue &first = initial_attributes[0]; - const Database::NamedValue &second = initial_attributes[1]; - if (ACE_OS::strcmp (first.name.in (), "name") != 0 || - ACE_OS::strcmp (second.name.in (), "id") != 0) - { - CORBA::Exception *exception = new Database::Unknown_Type (entry_type); - env.exception (exception); - return Database::Entry::_nil (); - } - - first.value >>= name; - second.value >>= id; - - Employee *new_employee = new Employee (name, id); - DATABASE::instance ()->bind (key, new_employee); - - // creates a reference to the CORBA object used to encapsulate - // access to the new entry in the database. There is an interface - // for each entry type: - PortableServer::ObjectId_var obj_id = PortableServer::string_to_ObjectId (key); - CORBA::String_var repository_id = DatabaseImpl::entry_type_to_repository_id ("Entry"); - CORBA::Object_var obj = this->poa_->create_reference_with_id (obj_id.in (), - repository_id.in (), - env); - Database::Entry_var entry = Database::Entry::_narrow (obj, env); - if (env.exception () != 0) - return Database::Entry::_nil (); - - return entry._retn (); -} - -Database::Entry_ptr -DatabaseImpl::Agent::find_entry (const char *key, - const char *entry_type, - CORBA::Environment &env) -{ - if (ACE_OS::strcmp (entry_type, "Employee") != 0) - { - CORBA::Exception *exception = new Database::Unknown_Type (entry_type); - env.exception (exception); - return Database::Entry::_nil (); - } - - void *temp; - if (DATABASE::instance ()->find (key, temp) == 0) - { - Employee *employee = (Employee *) temp; - - // creates a reference to the CORBA object used to encapsulate - // access to the new entry in the database. There is an interface - // for each entry type: - PortableServer::ObjectId_var obj_id = PortableServer::string_to_ObjectId (key); - CORBA::String_var repository_id = DatabaseImpl::entry_type_to_repository_id ("Entry"); - CORBA::Object_var obj = this->poa_->create_reference_with_id (obj_id.in (), - repository_id.in (), - env); - Database::Entry_var entry = Database::Entry::_narrow (obj, env); - if (env.exception () != 0) - return Database::Entry::_nil (); - - return entry._retn (); - } - - else - { - CORBA::Exception *exception = new Database::Unknown_Key (key); - env.exception (exception); - return Database::Entry::_nil (); - } -} - -void -DatabaseImpl::Agent::destroy_entry (const char *key, - const char *entry_type, - CORBA::Environment &env) -{ - if (ACE_OS::strcmp (entry_type, "Employee") != 0) - { - CORBA::Exception *exception = new Database::Unknown_Type (entry_type); - env.exception (exception); - return; - } - - void *temp; - if (DATABASE::instance ()->unbind (key, temp) == 0) - { - Employee *employee = (Employee *) temp; - delete employee; - } - else - { - CORBA::Exception *exception = new Database::Unknown_Key (key); - env.exception (exception); - return; - } -} - -PortableServer::POA_ptr -DatabaseImpl::Agent::_default_POA (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -char * -DatabaseImpl::entry_type_to_repository_id (const char *entry_type) -{ - static const char *prefix = "IDL:Database/"; - static int prefix_length = ACE_OS::strlen (prefix); - static const char *suffix = ":1.0"; - static int suffix_length = ACE_OS::strlen (prefix); - - int len = - prefix_length + - ACE_OS::strlen (entry_type) + - suffix_length + - 1; - - char *result = CORBA::string_alloc (len); - ACE_OS::sprintf (result, - "%s%s%s", - prefix, - entry_type, - suffix); - return result; -} - -DatabaseImpl::Employee::Employee (const char* name, - CORBA::Long id) - : id_ (id), - name_ (0) -{ - this->name (name); -} - -DatabaseImpl::Employee::~Employee (void) -{ - DATABASE::instance ()->free (this->name_); -} - -const char * -DatabaseImpl::Employee::name (void) const -{ - return this->name_; -} - -void -DatabaseImpl::Employee::name (const char* name) -{ - DATABASE::instance ()->free (this->name_); - this->name_ = (char *) DATABASE::instance ()->malloc (ACE_OS::strlen (name) + 1); - ACE_OS::strcpy (this->name_, name); -} - -CORBA::Long -DatabaseImpl::Employee::id (void) const -{ - return this->id_; -} - -void -DatabaseImpl::Employee::id (CORBA::Long id) -{ - this->id_ = id; -} - -void * -DatabaseImpl::Employee::operator new (size_t size) -{ - return DATABASE::instance ()->malloc (size); -} - -void -DatabaseImpl::Employee::operator delete (void *pointer) -{ - DATABASE::instance ()->free (pointer); -} diff --git a/TAO/tests/POA/DSI/Database_i.h b/TAO/tests/POA/DSI/Database_i.h deleted file mode 100644 index c87bf9980ea..00000000000 --- a/TAO/tests/POA/DSI/Database_i.h +++ /dev/null @@ -1,116 +0,0 @@ -// $Id$ - -#include "DatabaseS.h" -#include "ace/Malloc.h" - -class DatabaseImpl -{ -public: - - typedef ACE_Malloc MALLOC; - - class Simpler_Malloc : public MALLOC - { - public: - Simpler_Malloc (void); - }; - - typedef ACE_Singleton DATABASE; - typedef ACE_Malloc_Iterator DATABASE_ITERATOR; - - class Entry : public PortableServer::DynamicImplementation - { - public: - Entry (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa); - ~Entry (void); - - virtual void invoke (CORBA::ServerRequest_ptr request, - CORBA::Environment &env); - // The invoke() method receives requests issued to any CORBA - // object incarnated by the DSI servant and performs the - // processing necessary to execute the request. - - virtual CORBA::RepositoryId _primary_interface (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - CORBA::Environment &env); - // The _primary_interface() method receives an ObjectId value and - // a POA_ptr as input parameters and returns a valid RepositoryId - // representing the most-derived interface for that oid. - - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - // Returns the default POA for this servant. - - virtual void _is_a (CORBA::ServerRequest_ptr request, - CORBA::Environment &env); - // Handles the _is_a call - - protected: - CORBA::ORB_var orb_; - // ORB (auto) pointer - - PortableServer::POA_var poa_; - // Default POA - }; - - class Agent : public POA_Database::Agent - { - public: - Agent (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa); - ~Agent (void); - - virtual Database::Entry_ptr create_entry (const char *key, - const char *entry_type, - const Database::NVPairSequence &initial_attributes, - CORBA::Environment &env); - - virtual Database::Entry_ptr find_entry (const char *key, - const char *entry_type, - CORBA::Environment &env); - - virtual void destroy_entry (const char *key, - const char *entry_type, - CORBA::Environment &env); - - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - // Returns the default POA for this servant. - - protected: - Entry common_servant_; - - CORBA::ORB_var orb_; - // ORB (auto) pointer - - PortableServer::POA_var poa_; - // Default POA - }; - - static char *entry_type_to_repository_id (const char *entry_type); - - class Employee - { - public: - Employee (const char* name, - CORBA::Long id); - - ~Employee (void); - - const char *name (void) const; - void name (const char* name); - - CORBA::Long id (void) const; - void id (CORBA::Long id); - - void *operator new (size_t); - void operator delete (void *pointer); - - private: - char *name_; - // Employee name. - - CORBA::Long id_; - // Employee ID. - }; - -}; diff --git a/TAO/tests/POA/DSI/Makefile b/TAO/tests/POA/DSI/Makefile deleted file mode 100644 index 08bd749d7d8..00000000000 --- a/TAO/tests/POA/DSI/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO - -IDL_SRC = DatabaseC.cpp DatabaseS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp Database_i.cpp - -LSRC = $(PROG_SRCS) - -FILE_SVR_OBJS = DatabaseC.o DatabaseS.o server.o Database_i.o -FILE_CLT_OBJS = DatabaseC.o DatabaseS.o client.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - - -.PRECIOUS: DatabaseC.h DatabaseC.i DatabaseC.cpp DatabaseS.h DatabaseS.i DatabaseS.cpp - -server: $(addprefix $(VDIR),$(FILE_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(FILE_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf DatabaseC.* DatabaseS.* - -# 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/TAO/tests/POA/DSI/client.cpp b/TAO/tests/POA/DSI/client.cpp deleted file mode 100644 index 11c3a4f56fd..00000000000 --- a/TAO/tests/POA/DSI/client.cpp +++ /dev/null @@ -1,146 +0,0 @@ -// $Id$ -// -//=================================================================== -// = LIBRARY -// TAO/tests/POA/Default_Servant/client -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// A client program for the Database IDL module -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - -#include "ace/Get_Opt.h" -#include "DatabaseC.h" - -static char *ior = 0; - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "k:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - ior = get_opts.optarg; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-k IOR" - "\n", - argv [0]), - -1); - } - - if (ior == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Please specify the IOR for the servant"), -1); - - // Indicates successful parsing of command line. - return 0; -} - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Parse the command-line arguments to get the IOR - if (parse_args (argc, argv) == -1) - return -1; - - // Get the object reference with the IOR - CORBA::Object_var object = orb->string_to_object (ior, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::string_to_object"); - return -1; - } - - // Narrow the object reference to a Database::Agent - Database::Agent_var database_agent = Database::Agent::_narrow (object.in (), env); - if (env.exception () != 0) - { - env.print_exception ("Database::Agent::_narrow"); - return -1; - } - - Database::NVPairSequence employee_attributes (2); - employee_attributes.length (2); - - Database::NamedValue &first = employee_attributes[0]; - Database::NamedValue &second = employee_attributes[1]; - - char *name = "irfan"; - CORBA::Long id = 555; - - first.name = CORBA::string_dup ("name"); - first.value <<= name; - second.name = CORBA::string_dup ("id"); - second.value <<= id; - - // Create an employee - Database::Entry_var entry = database_agent->create_entry ("irfan", - "Employee", - employee_attributes, - env); - if (env.exception () != 0) - { - env.print_exception ("Database::Agent::create_entry"); - return -1; - } - - Database::Employee_var employee = Database::Employee::_narrow (entry.in (), env); - if (env.exception () != 0) - { - env.print_exception ("Database::Employee::_narrow"); - return -1; - } - - /* - * - * NOT IMPLEMENTED YET - * - * - */ - -#if 0 - // Reset the id - employee->id (666, env); - if (env.exception () != 0) - { - env.print_exception ("Database::Employee::id"); - return -1; - } -#endif /* 0 */ - - // Destroy the employee - database_agent->destroy_entry ("irfan", - "Employee", - env); - if (env.exception () != 0) - { - env.print_exception ("Database::Entry::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/DSI/client.dsp b/TAO/tests/POA/DSI/client.dsp deleted file mode 100644 index 9b9b528e1c5..00000000000 --- a/TAO/tests/POA/DSI/client.dsp +++ /dev/null @@ -1,136 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /out:"Release/client.exe" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "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 "..\..\.." /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 tao.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Database.idl - -!IF "$(CFG)" == "client - Win32 Release" - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build - Invoking the IDL compiler -InputPath=.\Database.idl -InputName=Database - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\DatabaseC.cpp -# End Source File -# Begin Source File - -SOURCE=.\DatabaseS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/DSI/server.cpp b/TAO/tests/POA/DSI/server.cpp deleted file mode 100644 index 3307a8e0b02..00000000000 --- a/TAO/tests/POA/DSI/server.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// $Id$ -// -//=================================================================== -// = LIBRARY -// TAO/tests/POA/Default_Servant/server -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// A server program for the File IDL module -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - - -#include "Database_i.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Get the Root POA object reference - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - - // Narrow the object reference to a POA reference - PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - PortableServer::POAManager_var poa_manager = root_poa->the_POAManager (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - CORBA::PolicyList policies (5); - policies.length (5); - - // ID Assignment Policy - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan Policy - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Request Processing Policy - policies[2] = - root_poa->create_request_processing_policy (PortableServer::USE_DEFAULT_SERVANT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_request_processing_policy"); - return -1; - } - - // Servant Retention Policy - policies[3] = - root_poa->create_servant_retention_policy (PortableServer::RETAIN, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_servant_retention_policy"); - return -1; - } - - // Id Uniqueness Policy - policies[4] = - root_poa->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_uniqueness_policy"); - return -1; - } - - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Create a Database Agent Implementation object in first_poa - DatabaseImpl::Agent database_agent_impl (orb.in (), - first_poa.in ()); - - PortableServer::ObjectId_var database_agent_oid = - PortableServer::string_to_ObjectId ("DatabaseAgent"); - - first_poa->activate_object_with_id (database_agent_oid.in (), - &database_agent_impl, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object_with_id"); - return -1; - } - - CORBA::Object_var database_agent = - first_poa->id_to_reference (database_agent_oid.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::id_to_reference"); - return -1; - } - // Get the IOR for the "DatabaseAgent" object - CORBA::String_var database_agent_ior = - orb->object_to_string (database_agent.in (), env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG,"%s\n", - database_agent_ior.in ())); - - // set the state of the poa_manager to active i.e ready to process requests - poa_manager->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - // Run the ORB - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - - // Destroy the rootPOA and its children - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} - - diff --git a/TAO/tests/POA/DSI/server.dsp b/TAO/tests/POA/DSI/server.dsp deleted file mode 100644 index 1311ea07a6a..00000000000 --- a/TAO/tests/POA/DSI/server.dsp +++ /dev/null @@ -1,140 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 "..\..\.." /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 tao.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Database.idl - -!IF "$(CFG)" == "server - Win32 Release" - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build - Invoking the IDL compiler -InputPath=.\Database.idl -InputName=Database - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\Database_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\DatabaseC.cpp -# End Source File -# Begin Source File - -SOURCE=.\DatabaseS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Default_Servant/Default_Servant.dsw b/TAO/tests/POA/Default_Servant/Default_Servant.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/POA/Default_Servant/Default_Servant.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/Default_Servant/File.idl b/TAO/tests/POA/Default_Servant/File.idl deleted file mode 100644 index 0caa3792c23..00000000000 --- a/TAO/tests/POA/Default_Servant/File.idl +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ - -//================================================================= -// -// = FILENAME -// File.idl -// -// = DESCRIPTION -// A simple File Descriptor and File System IDL interface. -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================== - -// IDL - -module File -{ - exception IOError - { - long error; - }; - - interface Descriptor - { - typedef sequence DataBuffer; - - // write buffer to File - long write (in DataBuffer buffer) - raises (IOError); - - // read num_bytes to DataBuffer - DataBuffer read (in long num_bytes) - raises (IOError); - - // seek to offset in File from whence - unsigned long lseek (in unsigned long offset, - in long whence) - raises (IOError); - - // destroy the descriptor - void destroy (); - }; - - interface System - { - // File open operation - Descriptor open (in string file_name, in long flags) - raises (IOError); - }; -}; diff --git a/TAO/tests/POA/Default_Servant/File_i.cpp b/TAO/tests/POA/Default_Servant/File_i.cpp deleted file mode 100644 index c1b2771d3c0..00000000000 --- a/TAO/tests/POA/Default_Servant/File_i.cpp +++ /dev/null @@ -1,221 +0,0 @@ -// $Id$ -// -//=================================================================== -// -// = FILENAME -// File_i.cpp -// -// = DESCRIPTION -// Implementation of the File IDL module and the interfaces -// Descriptor and System in it. -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - -#include "File_i.h" - -// IDL File::System constructor -FileImpl::System::System (PortableServer::POA_ptr poa) - : poa_ (PortableServer::POA::_duplicate (poa)), - // Create the Default Descriptor Servant - fd_servant_ (poa) -{ - CORBA::Environment env; - // set the default servant of the POA - poa->set_servant (&this->fd_servant_, env); - ACE_ASSERT (env.exception () == 0); -} - -FileImpl::System::~System (void) -{ -} - -PortableServer::POA_ptr -FileImpl::System::_default_POA (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -File::Descriptor_ptr -FileImpl::System::open (const char *file_name, - CORBA::Long flags, - CORBA::Environment &env) -{ - // Do an ACE_OS::open - ACE_HANDLE file_descriptor = ACE_OS::open (file_name, - flags); - - if (file_descriptor == ACE_INVALID_HANDLE) - { - CORBA::Exception *exception = new File::IOError (errno); - env.exception (exception); - return 0; - } - - char file_descriptor_buffer[BUFSIZ]; - - // convert ACE_HANDLE to a string - ACE_OS::sprintf (file_descriptor_buffer, - "%ld", - (CORBA::Long) file_descriptor); - - //Create an objectID from the ACE_HANDLE string - PortableServer::ObjectId_var oid = - PortableServer::string_to_ObjectId (file_descriptor_buffer); - - // create an object reference with the specified ObjectID got - // from ACE_HANDLE string - CORBA::Object_var obj = - this->poa_->create_reference_with_id (oid.in (), - "IDL:File/Descriptor:1.0", - env); - if (env.exception () != 0) - return File::Descriptor::_nil (); - - // Narrow the object reference to a File Descriptor - File::Descriptor_var fd = - File::Descriptor::_narrow (obj.in (), env); - - if (env.exception () != 0) - return File::Descriptor::_nil (); - - return fd._retn (); -} - -// IDL File::Descriptor constructor -FileImpl::Descriptor::Descriptor (PortableServer::POA_ptr poa) - : poa_ (PortableServer::POA::_duplicate (poa)) -{ -} - -FileImpl::Descriptor::~Descriptor (void) -{ -} - -PortableServer::POA_ptr -FileImpl::Descriptor::_default_POA (CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -//Extracts the ACE_HANDLE from the passed object reference -ACE_HANDLE -FileImpl::Descriptor::fd (CORBA::Environment &env) -{ - // Get a reference to myself - File::Descriptor_var me = this->_this (env); - - if (env.exception () != 0) - return ACE_INVALID_HANDLE; - - // Get the ObjectId from the reference - PortableServer::ObjectId_var oid = - this->poa_->reference_to_id (me.in (), env); - - if (env.exception () != 0) - return ACE_INVALID_HANDLE; - - // Convert the ObjectId to a string - CORBA::String_var s = - PortableServer::ObjectId_to_string (oid.in ()); - - // Get the ACE_HANDLE from the string - return (ACE_HANDLE) ::atol (s.in ()); -} - -CORBA::Long -FileImpl::Descriptor::write (const File::Descriptor::DataBuffer &buffer, - CORBA::Environment &env) -{ - ACE_HANDLE file_descriptor = this->fd (env); - - if (env.exception () != 0) - return 0; - - const CORBA::Octet *data = &buffer[0]; - - ssize_t len = ACE_OS::write (file_descriptor, - data, - buffer.length ()); - if (len > 0) - return len; - else - { - CORBA::Exception *exception = new File::IOError (errno); - env.exception (exception); - return 0; - } -} - -File::Descriptor::DataBuffer * -FileImpl::Descriptor::read (CORBA::Long num_bytes, - CORBA::Environment &env) -{ - ACE_HANDLE file_descriptor = this->fd (env); - - if (env.exception () != 0) - return 0; - - CORBA::Octet *buffer = File::Descriptor::DataBuffer::allocbuf (num_bytes); - int length = ACE_OS::read (file_descriptor, buffer, num_bytes); - - if (length > 0) - return new File::Descriptor::DataBuffer (length, - length, - buffer, - CORBA::B_TRUE); - else - { - File::Descriptor::DataBuffer::freebuf (buffer); - CORBA::Exception *exception = new File::IOError (errno); - env.exception (exception); - return 0; - } -} - -CORBA::ULong -FileImpl::Descriptor::lseek (CORBA::ULong offset, - CORBA::Long whence, - CORBA::Environment &env) -{ - ACE_HANDLE file_descriptor = this->fd (env); - - if (env.exception () != 0) - return 0; - - CORBA::Long result = (CORBA::Long) ACE_OS::lseek (file_descriptor, - offset, - whence); - if (result == -1) - { - CORBA::Exception *exception = new File::IOError (errno); - env.exception (exception); - return 0; - } - else - return (CORBA::ULong) result; -} - -void -FileImpl::Descriptor::destroy (CORBA::Environment &env) -{ - // Get the ACE_HANDLE for this object reference - ACE_HANDLE file_descriptor = this->fd (env); - - if (env.exception () != 0) - return; - - //close the file corresponding to this object reference - int result = ACE_OS::close (file_descriptor); - - if (result != 0) - { - CORBA::Exception *exception = new File::IOError (errno); - env.exception (exception); - return; - } -} diff --git a/TAO/tests/POA/Default_Servant/File_i.h b/TAO/tests/POA/Default_Servant/File_i.h deleted file mode 100644 index 4ebbccea87b..00000000000 --- a/TAO/tests/POA/Default_Servant/File_i.h +++ /dev/null @@ -1,89 +0,0 @@ -// $Id$ -//=================================================================== -// -// = FILENAME -// File_i.h -// -// = DESCRIPTION -// Defines the implementation classes for the File IDL -// module -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - - - -#include "FileS.h" - -class FileImpl -// FileImpl class provides the namespace for the File IDL module . -{ -public: - class Descriptor : public POA_File::Descriptor - // Descriptor implements the Descriptor interface in the File Module - // A single Descriptor servant can serve multiple object references - { - public: - //Constructor - Descriptor (PortableServer::POA_ptr poa); - - //Destructor - ~Descriptor (void); - - // Returns the default POA of this object - PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - // write buffer to File corresponding to this Descriptor - virtual CORBA::Long write (const File::Descriptor::DataBuffer &buffer, - CORBA::Environment &env); - - // Reads num_bytes from the file and returns it - virtual File::Descriptor::DataBuffer *read (CORBA::Long num_bytes, - CORBA::Environment &env); - // seek to the offset in file from whence - virtual CORBA::ULong lseek (CORBA::ULong offset, - CORBA::Long whence, - CORBA::Environment &env); - - // closes the file corresponding to the requested ObjectID - virtual void destroy (CORBA::Environment &env); - - private: - - // Extracts the ACE_HANDLE from the objectID - ACE_HANDLE fd (CORBA::Environment &env); - - PortableServer::POA_var poa_; - }; - - class System : public POA_File::System - // File System implementation class - { - public: - // Constructor, Creates a single File Descriptor Servant and - // registers it with the POA as the Default Servant - System (PortableServer::POA_ptr poa); - - //Destructor - ~System (void); - - //Returns the default POA of this object - PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - //Opens a file ,creates a Descriptor reference with the ACE_HANDLE - // and returns that reference - File::Descriptor_ptr open (const char *file_name, - CORBA::Long flags, - CORBA::Environment &env); - - private: - PortableServer::POA_var poa_; - - // The single File Descriptor servant which serves requests for any - // Descriptor object under poa_. - Descriptor fd_servant_; - }; -}; - diff --git a/TAO/tests/POA/Default_Servant/Makefile b/TAO/tests/POA/Default_Servant/Makefile deleted file mode 100644 index 39d81086181..00000000000 --- a/TAO/tests/POA/Default_Servant/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO - -IDL_SRC = FileC.cpp FileS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp File_i.cpp - -LSRC = $(PROG_SRCS) - -FILE_SVR_OBJS = FileC.o FileS.o server.o File_i.o -FILE_CLT_OBJS = FileC.o FileS.o client.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - - -.PRECIOUS: FileC.h FileC.i FileC.cpp FileS.h FileS.i FileS.cpp - -server: $(addprefix $(VDIR),$(FILE_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(FILE_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf FileC.* FileS.* - -# 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/TAO/tests/POA/Default_Servant/README b/TAO/tests/POA/Default_Servant/README deleted file mode 100644 index d64c59dbe80..00000000000 --- a/TAO/tests/POA/Default_Servant/README +++ /dev/null @@ -1,45 +0,0 @@ -// $Id$ - - -Default_Servants -================ - - By using the USE_DEFAULT_SERVANT policy, the developer can create - a POA that will use a single servant to implement all of its objects. - This approach is useful when there is very little data associated - with each object, so little that the data can be encoded in the - Object Id. - -Example: -======= - In the example implementation a Single Servant is enough to - serve requests for a File Descriptor interface. The Object Id of the - Descriptor objects are formed from the file handle returned by the - System call. The servant can get the file handle from the object - reference to process the request. Thus a single Descriptor servant - can serve multiple objects. - -SERVER: -====== - - 1. To run the server, type - - % server [-ORBport port] [-ORBobjrefstyle URL] [-ORBhost host] - -CLIENT: -====== - The client tries to create a file "test" and writes a message to - the file and reads it back and prints it. - - 1. To run the client, type - - % client -k IOR - - where the IOR is got from the server output. - - - - - - - diff --git a/TAO/tests/POA/Default_Servant/client.cpp b/TAO/tests/POA/Default_Servant/client.cpp deleted file mode 100644 index 78ad1ab6aee..00000000000 --- a/TAO/tests/POA/Default_Servant/client.cpp +++ /dev/null @@ -1,146 +0,0 @@ -// $Id$ -// -//=================================================================== -// = LIBRARY -// TAO/tests/POA/Default_Servant/client -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// A client program for the File IDL module -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - -#include "ace/streams.h" -#include "ace/Get_Opt.h" -#include "FileC.h" - -static char *ior = 0; -static char *filename = "test"; -static char *message = "POA rules!!"; - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "k:f:m:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - ior = get_opts.optarg; - break; - case 'f': - filename = get_opts.optarg; - break; - case 'm': - message = get_opts.optarg; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-k IOR" - "\n", - argv [0]), - -1); - } - - if (ior == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Please specify the IOR for the servant"), -1); - - // Indicates successful parsing of command line. - return 0; -} - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Parse the command-line arguments to get the IOR - parse_args (argc, argv); - - // Get the object reference with the IOR - CORBA::Object_var object = orb->string_to_object (ior, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::string_to_object"); - return -1; - } - - // Narrow the object reference to a File::System - File::System_var file_system = File::System::_narrow (object.in (), env); - if (env.exception () != 0) - { - env.print_exception ("File::System::_narrow"); - return -1; - } - - // Creat the file filename i.e "test" - File::Descriptor_var fd = file_system->open (filename, O_CREAT | O_RDWR, env); - if (env.exception () != 0) - { - env.print_exception ("File::System::open"); - return -1; - } - - int message_length = ACE_OS::strlen (message) + 1; - CORBA::Octet *buffer = File::Descriptor::DataBuffer::allocbuf (message_length); - ACE_OS::strcpy ((char *) buffer, message); - File::Descriptor::DataBuffer data_sent (message_length, message_length, buffer, CORBA::B_TRUE); - - // write the message to the file - fd->write (data_sent, env); - if (env.exception () != 0) - { - env.print_exception ("File::Descriptor::write"); - return -1; - } - - //seek to the beginning of the file - fd->lseek (0, SEEK_SET, env); - if (env.exception () != 0) - { - env.print_exception ("File::Descriptor::lseek"); - return -1; - } - - // Read back the written message - File::Descriptor::DataBuffer_var data_received = fd->read (message_length, env); - if (env.exception () != 0) - { - env.print_exception ("File::Descriptor::read"); - return -1; - } - - char *result = (char *) &data_received[0]; - - // print the read message - ACE_DEBUG((LM_DEBUG,"%s\n", - result)); - - // close the file - fd->destroy (env); - if (env.exception () != 0) - { - env.print_exception ("File::Descriptor::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/Default_Servant/client.dsp b/TAO/tests/POA/Default_Servant/client.dsp deleted file mode 100644 index d9b6b151a3b..00000000000 --- a/TAO/tests/POA/Default_Servant/client.dsp +++ /dev/null @@ -1,160 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 /GR /GX /O2 /I "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client__" -# PROP BASE Intermediate_Dir "client__" -# 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 /GR /GX /Zi /Od /I "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\File.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\File.idl - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl File.idl - -"FileS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\File.idl - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl File.idl - -"FileS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FileC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FileS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Default_Servant/server.cpp b/TAO/tests/POA/Default_Servant/server.cpp deleted file mode 100644 index 7dcc447df3b..00000000000 --- a/TAO/tests/POA/Default_Servant/server.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// $Id$ -// -//=================================================================== -// = LIBRARY -// TAO/tests/POA/Default_Servant/server -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// A server program for the File IDL module -// -// = AUTHOR -// Irfan Pyarali -// -//==================================================================== - - -#include "ace/streams.h" -#include "File_i.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Get the Root POA object reference - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - - // Narrow the object reference to a POA reference - PortableServer::POA_var root_poa = PortableServer::POA::_narrow (obj.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - PortableServer::POAManager_var poa_manager = root_poa->the_POAManager (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - CORBA::PolicyList policies (5); - policies.length (5); - - // ID Assignment Policy - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan Policy - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Request Processing Policy - policies[2] = - root_poa->create_request_processing_policy (PortableServer::USE_DEFAULT_SERVANT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_request_processing_policy"); - return -1; - } - - // Servant Retention Policy - policies[3] = - root_poa->create_servant_retention_policy (PortableServer::RETAIN, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_servant_retention_policy"); - return -1; - } - - // Id Uniqueness Policy - policies[4] = - root_poa->create_id_uniqueness_policy (PortableServer::MULTIPLE_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_uniqueness_policy"); - return -1; - } - - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Create a File System Implementation object in first_poa - FileImpl::System file_system_impl (first_poa.in ()); - - PortableServer::ObjectId_var file_system_oid = - PortableServer::string_to_ObjectId ("FileSystem"); - - first_poa->activate_object_with_id (file_system_oid.in (), - &file_system_impl, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object_with_id"); - return -1; - } - - CORBA::Object_var file_system = - first_poa->id_to_reference (file_system_oid.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::id_to_reference"); - return -1; - } - // Get the IOR for the "FileSystem" object - CORBA::String_var file_system_ior = - orb->object_to_string (file_system.in (), env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG,"%s\n", - file_system_ior.in ())); - - // set the state of the poa_manager to active i.e ready to process requests - poa_manager->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - // Run the ORB - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - - // Destroy the rootPOA and its children - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} - - diff --git a/TAO/tests/POA/Default_Servant/server.dsp b/TAO/tests/POA/Default_Servant/server.dsp deleted file mode 100644 index e18b2ce8743..00000000000 --- a/TAO/tests/POA/Default_Servant/server.dsp +++ /dev/null @@ -1,164 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 /GR /GX /O2 /I "..\..\.." /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 tao.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 /GR /GX /Zi /Od /I "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\File.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\File.idl - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl File.idl - -"FileS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\File.idl - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl File.idl - -"FileS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"FileC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\File_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\FileC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FileS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Default_Servant/svc.conf b/TAO/tests/POA/Default_Servant/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/POA/Default_Servant/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/POA/Explicit_Activation/Explicit_Activation.dsw b/TAO/tests/POA/Explicit_Activation/Explicit_Activation.dsw deleted file mode 100644 index 293f7320fc8..00000000000 --- a/TAO/tests/POA/Explicit_Activation/Explicit_Activation.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: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/Explicit_Activation/Makefile b/TAO/tests/POA/Explicit_Activation/Makefile deleted file mode 100644 index e525d97f48b..00000000000 --- a/TAO/tests/POA/Explicit_Activation/Makefile +++ /dev/null @@ -1,44 +0,0 @@ -# -# $Id$ -# - -BIN = server - -LSRC = $(addsuffix .cpp,$(BIN)) - -CPPFLAGS += -I$(TAO_ROOT) -I../Generic_Servant - -LDLIBS = -lserver -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao -L../Generic_Servant - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#---------------------------------------------------------------------------- -# 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/TAO/tests/POA/Explicit_Activation/README b/TAO/tests/POA/Explicit_Activation/README deleted file mode 100644 index c167476cc8b..00000000000 --- a/TAO/tests/POA/Explicit_Activation/README +++ /dev/null @@ -1,34 +0,0 @@ -// $Id$ - ------ - -!!!!!!!!!!!! Bug !!!!!!!!!!! -Currently, this application has some bugs. The _narrow function at the -server fails. -It will be fixed soon. -!!!!!!!!!!!! BUG !!!!!!!!!!! - -This application demostrates various operations that can be used for -explicit activation of Servant objects. - -The server program is available here. Use the Generic_Servant/client -program to test this. - -Run the server as follows: - -% ./server -ORBobjrefstyle URL & - - -Run the client as follows: - -% cd $TAO_ROOT/tests/POA/Generic_Servant -% ./client -k - - -Comments : -========= - - - As soon as, the server prints out the IOR, cut it and use it for -running the client. ---------- - diff --git a/TAO/tests/POA/Explicit_Activation/server.cpp b/TAO/tests/POA/Explicit_Activation/server.cpp deleted file mode 100644 index 7ad5462a00f..00000000000 --- a/TAO/tests/POA/Explicit_Activation/server.cpp +++ /dev/null @@ -1,273 +0,0 @@ -// $Id$ - -// ================================================================ -// -// = LIBRARY -// TAO/tests/POA/Explicit_Activation -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// In this example, -// - A new POA ( firstPOA) is created, and the different functions -// for the explicit activation of objects are demonstrated. -// - The Foo application class objects (defined in -// ./../Generic_Servant/MyFooServant) are used as sample objects. -// -// = AUTHOR -// Irfan Pyarali -// -// ================================================================ - -#include "ace/streams.h" -#include "ace/Timeprobe.h" -#include "MyFooServant.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB first. - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Obtain the RootPOA. - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - - // Get the POA_var object from Object_var. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the POAManager of the RootPOA. - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - // Policies for the firstPOA to be created. - CORBA::PolicyList policies (2); - policies.length (2); - - // Id Assignment Policy - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan policy - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Create the firstPOA under the RootPOA. - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Create the secondPOA under the firstPOA. - name = "secondPOA"; - PortableServer::POA_var second_poa = - first_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of POAs is over. Destroy the Policy objects. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Create two Objects of Class MyFooServant (defined in - // ./../GenericServant/MyFooServant.h) Create one object at RootPOA - // and the other at firstPOA. - MyFooServant first_foo_impl (orb.in (), root_poa.in (), 27); - MyFooServant second_foo_impl (orb.in (), first_poa.in (), 28); - - // Do "activate_object" to activate the first_foo_impl object. It - // returns ObjectId for that object. Operation Used : - // ObjectId activate_object( in Servant p_servant) - // raises (ServantAlreadyActive, WrongPolicy); - PortableServer::ObjectId_var first_oid = - root_poa->activate_object (&first_foo_impl, env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object"); - return -1; - } - - // Get Object Reference for the first_foo_impl object. - Foo_var first_foo = first_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get ObjectId for object secondFoo and use that ObjectId to - // activate the second_foo_impl object. - // Operation Used : - // void activate_object_with_id( in ObjectId oid, in Servant p_servant) - // raises (ObjectAlreadyActive, ServantAlreadyActive, WrongPolicy); - PortableServer::ObjectId_var second_oid = - PortableServer::string_to_ObjectId ("secondFoo"); - - first_poa->activate_object_with_id (second_oid.in (), - &second_foo_impl, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object_with_id"); - return -1; - } - - // Get Object reference for second_foo_impl object. - Foo_var second_foo = second_foo_impl._this (env); - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get ObjectId for the string thirdPOA Create the object reference - // for thirdPOA using that ObjectId. Operation Used : - // Object create_reference_with_id (in ObjectId oid, in CORBA::RepositoryId intf ); - // This operation creates an object reference that encapsulates the - // specified Object Id and interface repository Id values. - /* - PortableServer::ObjectId_var third_oid = - PortableServer::string_to_ObjectId ("thirdFoo"); - */ - - // This will test how the POA handles a user given ID - PortableServer::ObjectId_var third_oid = - PortableServer::string_to_ObjectId ("third Foo"); - - third_oid[5] = (CORBA::Octet) '\0'; - - CORBA::Object_var third_foo = - second_poa->create_reference_with_id (third_oid.in (), - "IDL:Foo:1.0", env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_reference_with_id"); - return -1; - } - - // Stringyfy all the object references and print them out. - CORBA::String_var first_ior = - orb->object_to_string (first_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - CORBA::String_var second_ior = - orb->object_to_string (second_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - CORBA::String_var third_ior = - orb->object_to_string (third_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n%s\n", - first_ior.in (), - second_ior.in (), - third_ior.in ())); - - // Activate thirdPOA using its ObjectID. - MyFooServant third_foo_impl (orb.in (), second_poa.in (), 29); - second_poa->activate_object_with_id (third_oid.in (), - &third_foo_impl, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object_with_id"); - return -1; - } - - poa_manager->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - - // Destroy RootPOA. ( Also destroys firstPOA) - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - ACE_TIMEPROBE_PRINT; - - return 0; -} diff --git a/TAO/tests/POA/Explicit_Activation/server.dsp b/TAO/tests/POA/Explicit_Activation/server.dsp deleted file mode 100644 index 0421abf651e..00000000000 --- a/TAO/tests/POA/Explicit_Activation/server.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\.." /I "..\..\..\.." /I "..\Generic_Servant\\" /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 tao.lib ace.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 "..\..\.." /I "..\..\..\.." /I "..\Generic_Servant\\" /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 tao.lib aced.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Explicit_Activation/svc.conf b/TAO/tests/POA/Explicit_Activation/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/POA/Explicit_Activation/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/POA/FindPOA/FindPOA.cpp b/TAO/tests/POA/FindPOA/FindPOA.cpp deleted file mode 100644 index 583b5c83981..00000000000 --- a/TAO/tests/POA/FindPOA/FindPOA.cpp +++ /dev/null @@ -1,177 +0,0 @@ -// $Id$ - -//=============================================================================== -// -// = LIBRARY -// TAO/tests/POA/FindPOA -// -// = FILENAME -// FindPOA.cpp -// -// = DESCRIPTION -// This Program tests the find_POA method of a POA. -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "ace/streams.h" -#include "tao/corba.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Get Object reference to RootPOA. - CORBA::Object_var obj = - orb->resolve_initial_references ("RootPOA"); - - // Narrow Object reference to RootPOA to a POA reference. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in(), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get a TAO_Adapter_Activator reference - TAO_Adapter_Activator activator_impl; - - PortableServer::AdapterActivator_var activator = - activator_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("TAO_Adapter_Activator::_this"); - return -1; - } - - // Register the TAO_Adapter_Activator reference to be the RootPOA's - // Adapter Activator. - - root_poa->the_activator (activator.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_activator"); - return -1; - } - - // Try to find a childPOA of RootPOA named firstPOA - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->find_POA (name.c_str (), - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::find_POA"); - return -1; - } - - // Use the TAO_POA name_separator (which is '/') to find a childPOA - // of firstPOA named secondPOA. - - name += TAO_POA::name_separator (); - name += "secondPOA"; - PortableServer::POA_var second_poa = - root_poa->find_POA (name.c_str (), - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::find_POA"); - return -1; - } - - // Create a hierarchical string of POA names - // eg. thirdPOA/forthPOA/fifthPOA thirdPOA being the root of the - // hierarchy with forthPOA as its child and fifthPOA as its - // grandchild. - - name = "thirdPOA"; - name += TAO_POA::name_separator (); - name += "forthPOA"; - name += TAO_POA::name_separator (); - name += "fifthPOA"; - - // Try to find the fifth_poa by passing the hierarchy of POA names - // resulting in the creation of third and forth POAs as well as the - // fifth POA. - - PortableServer::POA_var fifth_poa = - root_poa->find_POA (name.c_str (), - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::find_POA"); - return -1; - } - - // Get the names of all the POAs - - CORBA::String_var root_poa_name = - root_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var first_poa_name = - first_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var second_poa_name = - second_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var fifth_poa_name = - fifth_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - - ACE_DEBUG((LM_DEBUG,"%s\n%s\n%s\n%s\n", - root_poa_name.in (), - first_poa_name.in (), - second_poa_name.in (), - fifth_poa_name.in ())); - - // This should destroy all its children - - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/FindPOA/FindPOA.dsp b/TAO/tests/POA/FindPOA/FindPOA.dsp deleted file mode 100644 index 77859c2e61d..00000000000 --- a/TAO/tests/POA/FindPOA/FindPOA.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="FindPOA" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=FindPOA - 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 "FindPOA.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 "FindPOA.mak" CFG="FindPOA - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "FindPOA - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "FindPOA - 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)" == "FindPOA - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "FindPOA - 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 "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "FindPOA - Win32 Release" -# Name "FindPOA - Win32 Debug" -# Begin Source File - -SOURCE=.\FindPOA.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/FindPOA/FindPOA.dsw b/TAO/tests/POA/FindPOA/FindPOA.dsw deleted file mode 100644 index f63bde91efd..00000000000 --- a/TAO/tests/POA/FindPOA/FindPOA.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: "FindPOA"=.\FindPOA.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/FindPOA/Makefile b/TAO/tests/POA/FindPOA/Makefile deleted file mode 100644 index d347b56aa4e..00000000000 --- a/TAO/tests/POA/FindPOA/Makefile +++ /dev/null @@ -1,229 +0,0 @@ -# -# $Id$ -# - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -BIN = FindPOA - -LSRC = $(addsuffix .cpp,$(BIN)) - -CPPFLAGS += -I$(TAO_ROOT) - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 -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/FindPOA.o .obj/FindPOA.so .shobj/FindPOA.o .shobj/FindPOA.so: FindPOA.cpp \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/FindPOA/README b/TAO/tests/POA/FindPOA/README deleted file mode 100644 index 8895bb62512..00000000000 --- a/TAO/tests/POA/FindPOA/README +++ /dev/null @@ -1,39 +0,0 @@ - -FindPOA test: -============ - -Executable: FindPOA - - -Description: -=========== - This is a program to test the findPOA method of the POA. It makes use of TAO_Adapter_Activator. - Adapter activators are associated with POAs. An adapter activator supplies a POA with the ability to create child POAs on demand - , as a side-effect of receiving a request that names the child POA (or one of its children), - or when find_POA is called with an activate parameter value of TRUE. An application server that creates - all its needed POAs at the beginning of execution does not need to use or provide an adapter activator; - it is necessary only for the case in which POAs need to be created during request processing. - TAO_Adapter_Activator takes a '/' (backslash) separated string of POA names and creates them - in a hierarchy with the left most substring as the root of that hierarchy. - - The test program tests the "findPOA" method in RootPOA with a single POA named "firstPOA" and - then with a POA namestring "firstPOA/secondPOA". In the second case the secondPOA is - non-existent and is created. - Finally the findPOA method in RootPOA is called with a string "thirdPOA/forthPOA/fifthPOA", - resulting in the creation of thirdPOA,forthPOA and a fifthPOA and returns the fifthPOA. - - To check the findPOA method the names of the POA are queried and printed on the screen. POAs hold only the - name relative to its parent. For eg. the name of fifthPOA is just "fifthPOA" and NOT "RootPOA/thirdPOA/forthPOA/fifthPOA". - -To Test: -======== - 1. Just run the FindPOA program. - - 2. You should see the following as the output: - - RootPOA - firstPOA - secondPOA - fifthPOA - - 3. There might be other diagnostic messages. diff --git a/TAO/tests/POA/Forwarding/Foo.idl b/TAO/tests/POA/Forwarding/Foo.idl deleted file mode 100644 index 533c3e164ee..00000000000 --- a/TAO/tests/POA/Forwarding/Foo.idl +++ /dev/null @@ -1,19 +0,0 @@ -// $Id$ - -interface Foo -{ - // = TITLE - // Dummy object, doit just reports number, - // do not expect any sense. They are constantly increasing - - long doit (); - - // Raised if it cannot be forwarded - exception Cannot_Forward {}; - - void forward () - raises (Cannot_Forward); - - void shutdown (); -}; - diff --git a/TAO/tests/POA/Forwarding/Forwarding.dsw b/TAO/tests/POA/Forwarding/Forwarding.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/POA/Forwarding/Forwarding.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/Forwarding/Makefile b/TAO/tests/POA/Forwarding/Makefile deleted file mode 100644 index e146c2c32de..00000000000 --- a/TAO/tests/POA/Forwarding/Makefile +++ /dev/null @@ -1,1383 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO - -TAO_IDLFLAGS=-I$(TAO_ROOT)/tao -IDL_SRC = FooC.cpp FooS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp \ - MyFooServant.cpp Servant_Locator.cpp - -LSRC = $(PROG_SRCS) - -SVR_OBJS = FooC.o FooS.o server.o MyFooServant.o Servant_Locator.o -CLT_OBJS = FooC.o FooS.o client.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - -DCFLAGS = -g - -.PRECIOUS: FooC.h FooC.i FooC.cpp FooS.h FooS.i FooS.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf FooC.* FooS.* - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/FooC.o .obj/FooC.so .shobj/FooC.o .shobj/FooC.so: FooC.cpp FooC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - FooC.i FooS.h FooS_T.h FooS_T.i FooS_T.cpp FooS.i -.obj/FooS.o .obj/FooS.so .shobj/FooS.o .shobj/FooS.so: FooS.cpp FooS.h FooC.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - FooC.i FooS_T.h FooS_T.i FooS_T.cpp FooS.i -.obj/server.o .obj/server.so .shobj/server.o .shobj/server.so: server.cpp \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(ACE_ROOT)/ace/Read_Buffer.h \ - $(ACE_ROOT)/ace/Read_Buffer.i \ - MyFooServant.h FooS.h FooC.h FooC.i FooS_T.h FooS_T.i FooS_T.cpp \ - FooS.i Servant_Locator.h -.obj/client.o .obj/client.so .shobj/client.o .shobj/client.so: client.cpp \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - $(ACE_ROOT)/ace/Read_Buffer.h \ - $(ACE_ROOT)/ace/Read_Buffer.i \ - FooC.h FooC.i -.obj/MyFooServant.o .obj/MyFooServant.so .shobj/MyFooServant.o .shobj/MyFooServant.so: MyFooServant.cpp \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - MyFooServant.h FooS.h FooC.h FooC.i FooS_T.h FooS_T.i FooS_T.cpp \ - FooS.i Servant_Locator.h -.obj/Servant_Locator.o .obj/Servant_Locator.so .shobj/Servant_Locator.o .shobj/Servant_Locator.so: Servant_Locator.cpp Servant_Locator.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - MyFooServant.h FooS.h FooC.h FooC.i FooS_T.h FooS_T.i FooS_T.cpp \ - FooS.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/Forwarding/MyFooServant.cpp b/TAO/tests/POA/Forwarding/MyFooServant.cpp deleted file mode 100644 index e4fd06a38f0..00000000000 --- a/TAO/tests/POA/Forwarding/MyFooServant.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// $Id$ - -//=============================================================================== -// -// -// = FILENAME -// MyFooServant.cpp -// -// = DESCRIPTION -// This is a simple foo servant implementation -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "tao/corba.h" -#include "MyFooServant.h" - -// Constructor -MyFirstFooServant::MyFirstFooServant (CORBA::ORB_ptr orb_ptr, - PortableServer::POA_ptr poa_ptr, - CORBA::Long value, - CORBA::Object_ptr forward_to_ptr) - : orb_var_ (CORBA::ORB::_duplicate (orb_ptr)), - poa_var_ (PortableServer::POA::_duplicate (poa_ptr)), - value_ (value), - forward_to_var_ (CORBA::Object::_duplicate (forward_to_ptr)) -{ - if (CORBA::is_nil (this->forward_to_var_)) - ACE_DEBUG ((LM_DEBUG, - "POA approach: Forward_to is nil!\n")); -} - -// Destructor -MyFirstFooServant::~MyFirstFooServant (void) -{ -} - -// Return the Default POA of this Servant -PortableServer::POA_ptr -MyFirstFooServant::_default_POA (CORBA::Environment &/*env*/) -{ - return PortableServer::POA::_duplicate (this->poa_var_.in ()); -} - -// Return this->value -CORBA::Long -MyFirstFooServant::doit (CORBA::Environment &/*env*/) -{ - return this->value_++; -} - -void -MyFirstFooServant::shutdown (CORBA::Environment &/*env*/) -{ - this->orb_var_->shutdown(); -} - - -void -MyFirstFooServant::forward (CORBA::Environment &env) -{ - ACE_DEBUG ((LM_DEBUG, - "MyFirstFooServant::forward: being called\n")); - if (!CORBA::is_nil (this->forward_to_var_.in ())) - { - PortableServer::ObjectId_var oid = - this->poa_var_->servant_to_id (this, env); - - if (env.exception () != 0) - return; - - PortableServer::Servant servant = this->poa_var_->_servant (); - if (servant == 0) - { - CORBA::Exception *exception = new Foo::Cannot_Forward; - env.exception (exception); - return; - } - - void *ptr = servant->_downcast ("IDL:PortableServer/POA:1.0"); - POA_PortableServer::POA *poa = (POA_PortableServer::POA *) ptr; - TAO_POA *tao_poa = ACE_dynamic_cast (TAO_POA *, poa); - - tao_poa->forward_object (oid.in (), - this->forward_to_var_.in (), - env); - } - else - { - ACE_DEBUG ((LM_DEBUG, - "POA approach: Forward_to refenence is nil.\n")); - CORBA::Exception *exception = new Foo::Cannot_Forward; - env.exception (exception); - return; - } -} - -// Second Foo - -// Constructor -MySecondFooServant::MySecondFooServant (CORBA::ORB_ptr orb_ptr, - MyFooServantLocator *locator_ptr, - CORBA::Long value) - : orb_var_ (CORBA::ORB::_duplicate (orb_ptr)), - locator_ptr_ (locator_ptr), - value_ (value) -{ -} - -// Destructor -MySecondFooServant::~MySecondFooServant (void) -{ -} - - -// Return this->value -CORBA::Long -MySecondFooServant::doit (CORBA::Environment &/*env*/) -{ - return this->value_++; -} - -void -MySecondFooServant::forward (CORBA::Environment &env) -{ - // forward the forwarding request to the Servant Locator :-) This is - // kind of a loop back, but it is correct only the IDL interface can - // be assumed !! - this->locator_ptr_->forward (env); -} - - -void -MySecondFooServant::shutdown (CORBA::Environment &/*env*/) -{ - this->orb_var_->shutdown(); -} - diff --git a/TAO/tests/POA/Forwarding/MyFooServant.h b/TAO/tests/POA/Forwarding/MyFooServant.h deleted file mode 100644 index 49bde57fe28..00000000000 --- a/TAO/tests/POA/Forwarding/MyFooServant.h +++ /dev/null @@ -1,84 +0,0 @@ -// $Id$ -//============================================================================= -// -// -// = FILENAME -// MyFooServant.h -// -// = DESCRIPTION -// Defines MyFooServant class for the Foo interface -// -// = AUTHOR -// Irfan Pyarali and Michael Kircher -// -//============================================================================= - -#if !defined (MYFOOSERVANT_H) -#define MYFOOSERVANT_H - -#include "FooS.h" -#include "Servant_Locator.h" - -class MyFirstFooServant : public POA_Foo -{ - // = TITLE - // @@ Michael, please comment me. -public: - // constructor - takes a POA and a value parameter - MyFirstFooServant (CORBA::ORB_ptr orb_ptr, - PortableServer::POA_ptr poa_ptr, - CORBA::Long value, - CORBA::Object_ptr forward_to_ptr); - - // Destructor - virtual ~MyFirstFooServant (void); - - //Returns the Default POA of this Servant object - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Setup forwarding - virtual void forward (CORBA::Environment &env); - - virtual void shutdown (CORBA::Environment &env); - -protected: - // Default poa associated with this servant - CORBA::ORB_var orb_var_; - PortableServer::POA_var poa_var_; - CORBA::Long value_; - CORBA::Object_var forward_to_var_; -}; - -class MySecondFooServant : public POA_Foo -{ - // = TITLE - // @@ Michael, please comment me. -public: - // constructor - takes a POA and a value parameter - MySecondFooServant (CORBA::ORB_ptr orb_ptr, - MyFooServantLocator *locator, - CORBA::Long value); - - // Destructor - virtual ~MySecondFooServant (void); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Setup forwarding - virtual void forward (CORBA::Environment &env); - - virtual void shutdown (CORBA::Environment &env); - -protected: - // Default poa associated with this servant - CORBA::ORB_var orb_var_; - MyFooServantLocator *locator_ptr_; - CORBA::Long value_; -}; - -#endif /* MYFOOSERVANT_H */ - diff --git a/TAO/tests/POA/Forwarding/README b/TAO/tests/POA/Forwarding/README deleted file mode 100644 index aea0bfe129f..00000000000 --- a/TAO/tests/POA/Forwarding/README +++ /dev/null @@ -1,55 +0,0 @@ -$Id$ - -This document describes the location forwarding example. For detailed -explanation on TAO's location forwarding feature, see - -$TAO_ROOT/docs/forwarding.html - -The test sets up two servers, the first writes its servant's object -reference (OR) to a file. The second server reads the OR, recognizes -it as forwarding location, and writes its own to a file too. This OR -is then read by the client, which then issues a number of requests. -Where every third request is a forwarding request to the object. - -Here's an example for 5 requests: - -first call (request no 1) -second call (request no 2) -forwarding call (request no 3) -thrid call (request no 4) -fourth call (request no 5) -(no six would be a forwarding call again) - -Two types of location forwardings are implemented: (1) the POA -approach and (2) the servant locator approach. Both are mentioned in -the above documentation about location forwarding. - -To run the test for the POA approach do the following: - -% server -o server2 -ORBport 10040 -ORBobjrefstyle url -% server -f server2 -o server1 -ORBport 10041 -ORBobjrefstyle url -% client -f server1 -i 5 - -A similar invocation for the servant locator approach can be done as -follows (basically just the switches are different): - -% server -p server2 -ORBport 10040 -ORBobjrefstyle url -% server -g server2 -p server1 -ORBport 10041 -ORBobjrefstyle url -% client -g server1 -i 5 - -For additional features try using the first server with the POA -apporach and the second with the servant locator approach: - -% server -o server3 -ORBport 10040 -ORBobjrefstyle url -% server -g server3 -p server2 -ORBport 10041 -ORBobjrefstyle url -% server -f server2 -o server1 -ORBport 10043 -ORBobjrefstyle url -% client -f server1 -i 8 - -The first two calls will be called on server1, then the location -forwarding is called on this one and the next two calls are going to -be called on the second one. Location forwarding is then called on -the second one and the last two calls are then done on the thrid -server. - - - diff --git a/TAO/tests/POA/Forwarding/Servant_Locator.cpp b/TAO/tests/POA/Forwarding/Servant_Locator.cpp deleted file mode 100644 index 04ce0df78de..00000000000 --- a/TAO/tests/POA/Forwarding/Servant_Locator.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/POA/Forwarding/Servant_Locator -// -// = FILENAME -// Servant_Locator.cpp -// -// = DESCRIPTION -// Implementation of MyFooServantLocator class , used with a POA -// having a NON_RETAIN policy. -// -// = AUTHOR -// Irfan Pyarali -// Michael Kircher -// -// ============================================================================ - -#include "Servant_Locator.h" -#include "MyFooServant.h" - -MyFooServantLocator::MyFooServantLocator (CORBA::ORB_ptr orb_ptr, - CORBA::Object_ptr forward_to_ptr) - : orb_var_ (CORBA::ORB::_duplicate (orb_ptr)), - counter_ (0), - forward_to_var_ (CORBA::Object::_duplicate (forward_to_ptr)), - forwarding_ (0), // by default do not forward - servant_ptr_ (0) -{ -} - -MyFooServantLocator::~MyFooServantLocator () -{ - delete servant_ptr_; -} - - -PortableServer::Servant -MyFooServantLocator::preinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa_ptr, - const char *operation, - PortableServer::ServantLocator::Cookie &cookie, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (operation); - - if (this->forwarding_ == 0) // do not forward - { - - // Convert ObjectID to String. - - CORBA::String_var s = PortableServer::ObjectId_to_string (oid); - - // If ObjectID string has a Foo Substring create and return a - // MyFooServant. - - this->counter_++; - - if (ACE_OS::strstr (s.in (), "Foo") != 0) - { - if (this->servant_ptr_ == 0) - { - this->servant_ptr_ = new MySecondFooServant (orb_var_.in(), - this, - 127); - - // Return the servant as the cookie , used as a check when - // postinvoke is called on this MyFooServantLocator. - // cookie = servant; - } - // reuse the old servant - - return this->servant_ptr_; - } - else - { - CORBA::Exception *exception = new CORBA::OBJECT_NOT_EXIST (CORBA::COMPLETED_NO); - env.exception (exception); - return 0; - } - } - else // now forward, in throwing the ForwardRequest Exception - { - // Throw forward exception - env.exception (new PortableServer::ForwardRequest (this->forward_to_var_)); - - ACE_DEBUG ((LM_DEBUG,"MyFooServantLocator::preinvoke: Threw the ForwardRequest exception.\n")); - return 0; - } -} - -void -MyFooServantLocator::postinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - const char *operation, - PortableServer::ServantLocator::Cookie cookie, - PortableServer::Servant p_servant, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (oid); - ACE_UNUSED_ARG (poa); - ACE_UNUSED_ARG (operation); - ACE_UNUSED_ARG (cookie); - ACE_UNUSED_ARG (p_servant); - ACE_UNUSED_ARG (env); -} - -void -MyFooServantLocator::forward (CORBA::Environment &env) -{ - this->forwarding_ = 1; -} - diff --git a/TAO/tests/POA/Forwarding/Servant_Locator.h b/TAO/tests/POA/Forwarding/Servant_Locator.h deleted file mode 100644 index 256e4176b84..00000000000 --- a/TAO/tests/POA/Forwarding/Servant_Locator.h +++ /dev/null @@ -1,74 +0,0 @@ -// $Id$ - -//================================================================================ -// -// = LIBRARY -// TAO/tests/POA/Forwarding/Servant_Locator -// -// = FILENAME -// Servant_Locator.h -// -// = DESCRIPTION -// Defines a MyFooServantLocator class , used with a POA having -// a NON_RETAIN policy -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#if !defined (MYFOOSERVANTLOCATOR_H) -#define MYFOOSERVANTLOCATOR_H - -#include "tao/corba.h" - -class MyFooServantLocator : public POA_PortableServer::ServantLocator -{ - // = TITLE - // This class is used by a POA with USE_SERVANT_MANAGER and - // NON_RETAIN policy. -public: - MyFooServantLocator (CORBA::ORB_ptr orb_ptr, - CORBA::Object_ptr forward_to_ptr); - // constructor - - ~MyFooServantLocator (); - - virtual PortableServer::Servant preinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr adapter, - const char *operation, - PortableServer::ServantLocator::Cookie &the_cookie, - CORBA::Environment &env); - // This method is invoked by a POA whenever it receives a request - // for MyFoo object that is not currently active. - - virtual void postinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr adapter, - const char *operation, - PortableServer::ServantLocator::Cookie the_cookie, - PortableServer::Servant the_servant, - CORBA::Environment &env); - // This method is invoked whenever a MyFooServant completes a - // request. - - void forward (CORBA::Environment &env); - -private: - CORBA::ORB_var orb_var_; - - int counter_; - // Counter for number of invocations of this. - - PortableServer::Servant servant_ptr_; - // There really exists only one servant, which is returned all the - // time. - - CORBA::Object_var forward_to_var_; - // location to forward to - - u_int forwarding_; - // flag to tell if to forward or not. -}; - -#endif /* MYFOOSERVANTLOCATOR_H */ - diff --git a/TAO/tests/POA/Forwarding/client.cpp b/TAO/tests/POA/Forwarding/client.cpp deleted file mode 100644 index 0ccea1090b4..00000000000 --- a/TAO/tests/POA/Forwarding/client.cpp +++ /dev/null @@ -1,198 +0,0 @@ -// $Id$ - -//=============================================================================== -// -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// -// This is a simple foo client implementation. Also looks out for -// forwarding exceptions -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "tao/corba.h" -#include "ace/streams.h" -#include "ace/Get_Opt.h" -#include "ace/Read_Buffer.h" -#include "FooC.h" - -static char *server_IOR_ = 0; - -static int iterations = 6; - -static int -read_ior (char *filename) -{ - // Open the file for reading. - ACE_HANDLE f_handle_ = ACE_OS::open (filename,0); - - if (f_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for reading: %p\n", - filename), - -1); - ACE_Read_Buffer ior_buffer (f_handle_); - server_IOR_ = ior_buffer.read (); - - if (server_IOR_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - return 0; -} - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "f:i:k:O:"); - int c; - int result; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'f': // read the IOR from the file. - result = read_ior (get_opts.optarg); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'k': - server_IOR_ = get_opts.optarg; - break; - case 'i': - iterations = ::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-f server_IOR_file" - "\n", - argv [0]), - -1); - } - - if (server_IOR_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Please specify the IOR for the servant\n"), -1); - - // Indicates successful parsing of command line. - return 0; -} - -int do_calls (Foo_ptr foo_ptr) -{ - CORBA::Environment env; - - CORBA::Long result = 0; - - for (int i = 1; i <= iterations; i++) - { - // About half way through - if (i % 3 == 0) - { - foo_ptr->forward (env); - - // If exception - if (env.exception () != 0) - { - env.print_exception ("Foo::forward"); - return -1; - } - } - else - { - // Invoke the doit() method of the foo reference. - result = foo_ptr->doit (env); - - // If exception - if (env.exception () != 0) - { - env.print_exception ("calling doit"); - } - else - // Print the result of doit () method of the foo - // reference. - ACE_DEBUG ((LM_DEBUG, - "doit() returned %d \n", - result)); - } - } - - // In case you want to shutdown your server - // foo_ptr->shutdown (env); - // If exception - // if (env.exception () != 0) - // { - // env.print_exception ("calling shutdown"); - // } - return 0; -} - - -int -main (int argc, char **argv) -{ - // @@ Michael, this function is too long. Can you please break it - // up into multiple smaller functions. - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Initialize options based on command-line arguments. - int parse_args_result = parse_args (argc, argv); - if (parse_args_result != 0) - return parse_args_result; - - // Get an object reference from the argument string. - CORBA::Object_var object = orb->string_to_object (server_IOR_, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::string_to_object"); - return -1; - } - - // Try to narrow the object reference to a Foo reference. - Foo_var foo_var = Foo::_narrow (object.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("Foo::_narrow"); - return -1; - } - - CORBA::String_var original_location = - orb->object_to_string (foo_var.in (), env); - - if (env.exception () == 0) - ACE_DEBUG ((LM_DEBUG, - "original location = %s \n", - original_location.in ())); - else - { - env.print_exception ("ORB::object_to_string"); - return -1; - } - - if (do_calls (foo_var.in()) == -1) - return -1; - - return 0; -} - diff --git a/TAO/tests/POA/Forwarding/client.dsp b/TAO/tests/POA/Forwarding/client.dsp deleted file mode 100644 index 1c4f74d1041..00000000000 --- a/TAO/tests/POA/Forwarding/client.dsp +++ /dev/null @@ -1,163 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client__" -# PROP BASE Intermediate_Dir "client__" -# 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 "..\..\.." /I "..\..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -I..\..\..\tao $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Forwarding/server.cpp b/TAO/tests/POA/Forwarding/server.cpp deleted file mode 100644 index ebc9b7824a2..00000000000 --- a/TAO/tests/POA/Forwarding/server.cpp +++ /dev/null @@ -1,558 +0,0 @@ -// $Id$ - -// =========================================================================================== -// = LIBRARY -// TAO/tests/POA/Forwarding -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// -// = AUTHOR -// Irfan Pyarali and Michael Kircher -// =========================================================================================== - -#include "tao/corba.h" -#include "ace/Read_Buffer.h" -#include "MyFooServant.h" - -static char *first_foo_forward_to_IOR_ = 0; - -static char *second_foo_forward_to_IOR_ = 0; - -static FILE *first_foo_ior_output_file_; - -static FILE *second_foo_ior_output_file_; - -static MyFirstFooServant *myFirstFooServant_ptr; -static MyFooServantLocator *myFooServantLocator_ptr; - - -static int -read_ior (char *filename, - const u_int foo_number) -{ - // Open the file for reading. - ACE_HANDLE f_handle_ = ACE_OS::open (filename,0); - - if (f_handle_ == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - filename), - -1); - - ACE_Read_Buffer ior_buffer (f_handle_); - - if (foo_number == 1) - { - first_foo_forward_to_IOR_ = ior_buffer.read (); - - if (first_foo_forward_to_IOR_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - } - else if (foo_number == 2) - { - second_foo_forward_to_IOR_ = ior_buffer.read (); - - if (second_foo_forward_to_IOR_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to allocate memory to read ior: %p\n"), - -1); - } - - if (foo_number == 1) - ACE_DEBUG ((LM_DEBUG, - "POA approach: Read ior: %s\n", - first_foo_forward_to_IOR_)); - else if (foo_number == 2) - ACE_DEBUG ((LM_DEBUG, - "Locator approach: Read ior: %s\n", - second_foo_forward_to_IOR_)); - return 0; -} - - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "f:g:k:l:o:O:p:"); - int c; - int result; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'f': // read the IOR from the file. - result = read_ior (get_opts.optarg,1); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'g': // read the IOR from the file. - result = read_ior (get_opts.optarg,2); - if (result < 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read ior from %s : %p\n", - get_opts.optarg), - -1); - break; - case 'k': - first_foo_forward_to_IOR_ = get_opts.optarg; - break; - case 'l': - second_foo_forward_to_IOR_ = get_opts.optarg; - break; - case 'o': // output the IOR to a file. - first_foo_ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (first_foo_ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 'p': // output the IOR to a file. - second_foo_ior_output_file_ = ACE_OS::fopen (get_opts.optarg, "w"); - if (second_foo_ior_output_file_ == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case 'O': - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "\nusage: %s \n" - "-f forward_to_IOR_file (first foo)\n" - "-g forward_to_IOR_file (second foo)\n" - "-k forward_to_IOR (first foo)\n" - "-l forward_to_IOR (second foo)\n" - "-o file_for_IOR (first foo)\n" - "-p file_for_IOR (second foo)\n" - "\n", - argv [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -static void -get_forward_reference (char *IOR, - CORBA::Object_var &forward_location_var, - CORBA::ORB_ptr orb_ptr, - CORBA::Environment &env) -{ - if (IOR != 0) - { - forward_location_var = orb_ptr->string_to_object (IOR, env); - - if (env.exception () != 0) - { - env.print_exception ("ORB::string_to_object"); - return; - } - - if (CORBA::is_nil (forward_location_var.in ())) - ACE_DEBUG ((LM_DEBUG, - "Error: Forward_to location is wrong\n")); - } -} - - -// Documentation !!!! first_POA will contain an object which will -// use the POA directly to do forwarding - -int setup_first_poa (PortableServer::POA_ptr root_poa_ptr, - PortableServer::POAManager_ptr poa_manager_ptr, - PortableServer::POA_var &first_poa_var) -{ - CORBA::Environment env; - - // Policies for the childPOA to be created. - CORBA::PolicyList policies (2); - policies.length (2); - - // The next two policies are common to both - - // Id Assignment Policy - policies[0] = root_poa_ptr->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan policy - policies[1] = root_poa_ptr->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - - ACE_CString name = "firstPOA"; - - // Create firstPOA as the child of RootPOA with the above policies - // firstPOA will use SERVANT_ACTIVATOR because of RETAIN policy. - first_poa_var = root_poa_ptr->create_POA (name.c_str (), - poa_manager_ptr, - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - return 0; -} - - -// second_POA will contain an object which will use the -// Servant_Locator to do forwarding - -int setup_second_poa (PortableServer::POA_ptr root_poa, - PortableServer::POAManager_ptr poa_manager_ptr, - PortableServer::POA_var &second_poa_var) -{ - CORBA::Environment env; - - // Policies for the childPOA to be created. - CORBA::PolicyList policies (4); - policies.length (4); - - // The next two policies are common to both - - // Id Assignment Policy - policies[0] = root_poa->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan policy - policies[1] = root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Tell the POA to use a servant manager - policies[2] = - root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_request_processing_policy"); - return -1; - } - - // Servant Retention Policy -> Use a locator - policies[3] = - root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_servant_retention_policy"); - return -1; - } - - ACE_CString name = "secondPOA"; - - // Create secondPOA as child of RootPOA with the above policies - // secondPOA will use a SERVANT_LOCATOR because of NON_RETAIN - // policy. - second_poa_var = root_poa->create_POA (name.c_str (), - poa_manager_ptr, - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of childPOAs is over. Destroy the Policy objects. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - return 0; -} - -int create_first_servant (PortableServer::POA_ptr first_poa_ptr, - CORBA::ORB_ptr orb_ptr) -{ - CORBA::Environment env; - - // Get the forward_to reference to feed it into object - // implementations - CORBA::Object_var first_foo_forward_to_var; - - get_forward_reference (first_foo_forward_to_IOR_, - first_foo_forward_to_var, - orb_ptr, - env); - - if (env.exception () != 0) - { - env.print_exception ("get_forward_reference"); - return -1; - } - - ACE_NEW_RETURN (myFirstFooServant_ptr, - MyFirstFooServant (orb_ptr, - first_poa_ptr, - 27, - first_foo_forward_to_var.in ()), - -1); - - // Create ObjectId and use that ObjectId to activate the - // first_foo_impl object. - PortableServer::ObjectId_var first_foo_oid_var = - PortableServer::string_to_ObjectId ("firstFoo"); - - first_poa_ptr->activate_object_with_id (first_foo_oid_var.in (), - myFirstFooServant_ptr, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::activate_object_with_id"); - return -1; - } - - // Get Object reference for first_foo_impl object. - Foo_var first_foo_var = myFirstFooServant_ptr->_this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Stringyfy the object reference and print it out. - CORBA::String_var first_foo_ior_var = - orb_ptr->object_to_string (first_foo_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "POA approach: Own IOR: %s\n", - first_foo_ior_var.in ())); - - if (first_foo_ior_output_file_) - { - ACE_OS::fprintf (first_foo_ior_output_file_, - "%s", - first_foo_ior_var.in ()); - ACE_OS::fclose (first_foo_ior_output_file_); - - ACE_DEBUG ((LM_DEBUG, "POA approach: Wrote IOR to a file.\n")); - } - return 0; -} - - -int -create_second_servant (PortableServer::POA_ptr second_poa_ptr, - CORBA::ORB_ptr orb_ptr) -{ - CORBA::Environment env; - - CORBA::Object_var second_foo_forward_to_var; - get_forward_reference (second_foo_forward_to_IOR_, - second_foo_forward_to_var, - orb_ptr, - env); - if (env.exception () != 0) - { - env.print_exception ("get_forward_reference"); - return -1; - } - - // instantiate the servant locator and set it for the second child - // POA The locator gets to know where to forward to - - ACE_NEW_RETURN (myFooServantLocator_ptr, - MyFooServantLocator (orb_ptr, - second_foo_forward_to_var.in ()), - -1); - PortableServer::ServantLocator_var servant_locator_var = - myFooServantLocator_ptr->_this (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::_this"); - return -1; - } - - // Set MyFooServantLocator object as the servant Manager of - // secondPOA. - - second_poa_ptr->set_servant_manager (servant_locator_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::set_servant_manager"); - return -1; - } - - // Create the second MyFooServant - // ====== - - // Try to create a reference with user created ID in second_poa - // which uses MyFooServantLocator. - - PortableServer::ObjectId_var second_foo_oid_var = - PortableServer::string_to_ObjectId ("secondFoo"); - - CORBA::Object_var second_foo_var = - second_poa_ptr->create_reference_with_id (second_foo_oid_var.in (), - "IDL:Foo:1.0", env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_reference_with_id"); - return -1; - } - - // Invoke object_to_string on the references created in firstPOA and - // secondPOA. - - CORBA::String_var second_foo_ior_var = - orb_ptr->object_to_string (second_foo_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "Locator approach: Own IOR: %s\n", - second_foo_ior_var.in ())); - - - if (second_foo_ior_output_file_) - { - ACE_OS::fprintf (second_foo_ior_output_file_, - "%s", - second_foo_ior_var.in ()); - ACE_OS::fclose (second_foo_ior_output_file_); - - ACE_DEBUG ((LM_DEBUG, "Locator approach: Wrote IOR to a file.\n")); - } - - return 0; -} - -int -main (int argc, char **argv) -{ - // @@ Michael, this function is WAY too long! Can you please break - // it up into a number of subfunctions and put them into a class or - // something?! It's impossible to tell what's going on here! - int result = parse_args (argc, argv); - - if (result == -1) - return -1; - - CORBA::Environment env; - - // Initialize the ORB first. - CORBA::ORB_var orb_var = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Obtain the RootPOA. - CORBA::Object_var obj_var = orb_var->resolve_initial_references ("RootPOA"); - - // Get the POA_var object from Object_var. - PortableServer::POA_var root_poa_var = - PortableServer::POA::_narrow (obj_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the POAManager of the RootPOA. - PortableServer::POAManager_var poa_manager_var = - root_poa_var->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - PortableServer::POA_var first_poa_var; - PortableServer::POA_var second_poa_var; - - if (setup_first_poa (root_poa_var.in(), poa_manager_var.in(), first_poa_var) == -1) - return -1; - if (setup_second_poa (root_poa_var.in(), poa_manager_var.in(), second_poa_var) == -1) - return -1; - - // Create the first MyFooServant - // ===== - if (create_first_servant (first_poa_var.in(), orb_var.in()) == -1) - return -1; - - if (create_second_servant (second_poa_var.in(), orb_var.in()) == -1) - return -1; - - poa_manager_var->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - if (orb_var->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "CORBA::ORB::run"), - -1); - - - // Destroy RootPOA. (Also destroys childPOA) - root_poa_var->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - delete myFirstFooServant_ptr; - delete myFooServantLocator_ptr; - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - - return 0; -} diff --git a/TAO/tests/POA/Forwarding/server.dsp b/TAO/tests/POA/Forwarding/server.dsp deleted file mode 100644 index ec290b56dbb..00000000000 --- a/TAO/tests/POA/Forwarding/server.dsp +++ /dev/null @@ -1,171 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\.." /I "..\..\..\.." /I "..\Generic_Servant\\" /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 tao.lib ace.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 "..\..\.." /I "..\..\..\.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D TAO_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 tao.lib aced.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -I..\..\..\tao $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# Begin Source File - -SOURCE=.\MyFooServant.cpp -# End Source File -# Begin Source File - -SOURCE=.\Servant_Locator.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Forwarding/svc.conf b/TAO/tests/POA/Forwarding/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/POA/Forwarding/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/POA/Generic_Servant/Foo.idl b/TAO/tests/POA/Generic_Servant/Foo.idl deleted file mode 100644 index 7010d9c2133..00000000000 --- a/TAO/tests/POA/Generic_Servant/Foo.idl +++ /dev/null @@ -1,23 +0,0 @@ -// $Id$ -// ================================================================ -// -// = FILENAME -// Foo.idl -// -// ================================================================ - -// IDL - -interface Foo -{ - long doit (); - // A simple twoway operation, the idea is to verify that the server - // can be located. - - oneway void simply_doit (); - // A simple oneway operation, the idea is to measure any differences - // to the previous one. - - void shutdown (); - // Shutdown the server. -}; diff --git a/TAO/tests/POA/Generic_Servant/Generic_Servant.dsw b/TAO/tests/POA/Generic_Servant/Generic_Servant.dsw deleted file mode 100644 index 512c7d017db..00000000000 --- a/TAO/tests/POA/Generic_Servant/Generic_Servant.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/Generic_Servant/Makefile b/TAO/tests/POA/Generic_Servant/Makefile deleted file mode 100644 index ca9c4c8ffa5..00000000000 --- a/TAO/tests/POA/Generic_Servant/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -# On non-Windows environment, we should at least define -# the export_include IDL flag. -TAO_IDLFLAGS = -Wb,export_macro=GENERIC_SERVANT_Export -Wb,export_include=generic_servant_export.h - -LDLIBS = -lTAO - -LIB = libserver.a - -IDL_SRC = FooC FooS - -BINFILES = $(IDL_SRC) client - -LIB_SRC = $(IDL_SRC) MyFooServant - -LSRC = $(addsuffix .cpp,$(LIB_SRC)) -LOBJ = $(addsuffix .o,$(LIB_SRC)) - -POA_CLT_SRCS = $(addsuffix .cpp,$(BINFILES)) -POA_CLT_OBJS = $(addprefix $(VDIR),$(addsuffix .o,$(BINFILES))) - -BIN = client - -BUILD = $(VOBJS) $(VLIB) $(BIN) - -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - - -.PRECIOUS: FooC.h FooC.i FooC.cpp FooS.h FooS.i FooS.cpp - -#$(IDL_SRC): cubit.idl -# $(TAO_ROOT)/TAO_IDL/tao_idl cubit.idl - -client: $(POA_CLT_OBJS) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -#clean: -# -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf FooC.* FooS.* - -# 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/TAO/tests/POA/Generic_Servant/MyFooServant.cpp b/TAO/tests/POA/Generic_Servant/MyFooServant.cpp deleted file mode 100644 index 587fe162e6c..00000000000 --- a/TAO/tests/POA/Generic_Servant/MyFooServant.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// $Id$ - -// ================================================================ -// -// -// = FILENAME -// MyFooServant.cpp -// -// = DESCRIPTION -// This is a simple foo servant implementation -// -// = AUTHOR -// Irfan Pyarali -// -// ================================================================ - -#include "MyFooServant.h" - -// Constructor -MyFooServant::MyFooServant (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - CORBA::Long value) - : orb_ (CORBA::ORB::_duplicate (orb)), - poa_ (PortableServer::POA::_duplicate (poa)), - value_ (value) -{ -} - -// Destructor -MyFooServant::~MyFooServant (void) -{ -} - -// Return the Default POA of this Servant -PortableServer::POA_ptr -MyFooServant::_default_POA (CORBA::Environment &/*env*/) -{ - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -CORBA::Long -MyFooServant::doit (CORBA::Environment &/*env*/) -{ - return this->value_; -} - -void -MyFooServant::simply_doit (CORBA::Environment &/*env*/) -{ -} - -void -MyFooServant::shutdown (CORBA::Environment &env) -{ - this->orb_->shutdown (); -} diff --git a/TAO/tests/POA/Generic_Servant/MyFooServant.h b/TAO/tests/POA/Generic_Servant/MyFooServant.h deleted file mode 100644 index 6ab5e0b5ddf..00000000000 --- a/TAO/tests/POA/Generic_Servant/MyFooServant.h +++ /dev/null @@ -1,55 +0,0 @@ -// $Id$ -//============================================================================= -// -// -// = FILENAME -// MyFooServant.h -// -// = DESCRIPTION -// Defines MyFooServant class for the Foo interface -// -// = AUTHOR -// Irfan Pyarali -// -//============================================================================= - -#if !defined (MYFOOSERVANT_H) -#define MYFOOSERVANT_H - -#include "FooS.h" - -class GENERIC_SERVANT_Export MyFooServant : public POA_Foo -{ -public: - // constructor - takes a POA and a value parameter - MyFooServant (CORBA::ORB_ptr orb, - PortableServer::POA_ptr poa, - CORBA::Long value); - - // Destructor - virtual ~MyFooServant (void); - - // Returns the Default POA of this Servant object - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Even simpler doit method - virtual void simply_doit (CORBA::Environment &env); - - // Shutdown the ORB - virtual void shutdown (CORBA::Environment &env); - -protected: - CORBA::ORB_var orb_; - // Keep a pointer to the ORB so we can shut it down. - - PortableServer::POA_var poa_; - // Implement a different _default_POA() - - CORBA::Long value_; - // The current value. -}; - -#endif /* MYFOOSERVANT_H */ diff --git a/TAO/tests/POA/Generic_Servant/README b/TAO/tests/POA/Generic_Servant/README deleted file mode 100644 index 05ee0f2a18e..00000000000 --- a/TAO/tests/POA/Generic_Servant/README +++ /dev/null @@ -1,24 +0,0 @@ -// $Id$ - -Generic Servant: -=============== - -File Name ---------- - -Foo.idl Simple Foo idl interface -MyFooServant.h Servant definition for the Foo interface -MyFooServant.cpp Servant implementation for the FOO interface -client.cpp A simple Foo client - -Typing - -% Make - - creates an executable client and server library libserver.a. - -To run the client, type - -% client [-ORBport port] -k IOR - -where IOR can be got from the server output. diff --git a/TAO/tests/POA/Generic_Servant/client.cpp b/TAO/tests/POA/Generic_Servant/client.cpp deleted file mode 100644 index 90e40350b54..00000000000 --- a/TAO/tests/POA/Generic_Servant/client.cpp +++ /dev/null @@ -1,195 +0,0 @@ -// $Id$ - -// ================================================================ -// -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// This is a simple foo client implementation. -// -// = AUTHOR -// Irfan Pyarali -// -// ================================================================ - -#include "ace/streams.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include "tao/Timeprobe.h" -#include "FooC.h" - -static char *IOR = 0; -static int iterations = 1; -static int oneway = 0; -static int shutdown_server = 0; - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "k:i:ox"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'k': - IOR = get_opts.optarg; - break; - - case 'o': - oneway = 1; - break; - - case 'i': - iterations = ::atoi (get_opts.optarg); - break; - - case 'x': - shutdown_server = 1; - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-k IOR" - "-o oneway" - "\n", - argv [0]), - -1); - } - - if (IOR == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Please specify the IOR for the servant\n"), -1); - - // Indicates successful parsing of command line. - return 0; -} - -void -print_stats (ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time, - int iterations) -{ - if (iterations > 0) - { - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= iterations; - elapsed_time.user_time /= iterations; - elapsed_time.system_time /= iterations; - - double tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t = %0.06f ms, \n" - "\tuser_time\t = %0.06f ms, \n" - "\tsystem_time\t = %0.06f ms, \n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0 ? 0.0 : elapsed_time.real_time, - elapsed_time.user_time < 0.0 ? 0.0 : elapsed_time.user_time, - elapsed_time.system_time < 0.0 ? 0.0 : elapsed_time.system_time, - tmp < 0.0 ? 0.0 : tmp)); - } - else - ACE_ERROR ((LM_ERROR, - "\tNo time stats printed. Zero iterations or error ocurred.\n")); -} - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Initialize options based on command-line arguments. - int parse_args_result = parse_args (argc, argv); - if (parse_args_result != 0) - return parse_args_result; - - // Get an object reference from the argument string. - CORBA::Object_var object = orb->string_to_object (IOR, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::string_to_object"); - return -1; - } - - // Try to narrow the object reference to a Foo reference. - Foo_var foo = Foo::_narrow (object.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("Foo::_narrow"); - return -1; - } - - CORBA::String_var ior = - orb->object_to_string (foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "\nConnecting to: %s\n\n", - ior.in ())); - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // We start an ACE_Profile_Timer here... - timer.start (); - - CORBA::Long result = 0; - int i = 0; - - if (oneway) - for (i = 0; i < iterations; i++ && env.exception () == 0) - { - // Invoke the doit() method of the foo reference. - foo->simply_doit (env); - } - else - for (i = 0; i < iterations; i++ && env.exception () == 0) - { - // Invoke the doit() method of the foo reference. - result = foo->doit (env); - } - // stop the timer. - timer.stop (); - timer.elapsed_time (elapsed_time); - - // compute average time. - print_stats (elapsed_time, i); - - if (shutdown_server && env.exception () == 0) - foo->shutdown (env); - - if (env.exception () != 0) - { - env.print_exception ("Foo::doit"); - return 1; - } - - // Print the result of doit () method of the foo reference. - ACE_DEBUG ((LM_DEBUG, "The result of doit is %d\n", result)); - - ACE_TIMEPROBE_PRINT; - - return 0; -} diff --git a/TAO/tests/POA/Generic_Servant/client.dsp b/TAO/tests/POA/Generic_Servant/client.dsp deleted file mode 100644 index 226cde58559..00000000000 --- a/TAO/tests/POA/Generic_Servant/client.dsp +++ /dev/null @@ -1,165 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client__" -# PROP BASE Intermediate_Dir "client__" -# 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 "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -USERDEP__FOO_I="..\..\..\tao_idl\tao_idl.exe" -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Generic_Servant/generic_servant_export.h b/TAO/tests/POA/Generic_Servant/generic_servant_export.h deleted file mode 100644 index ed91c284fe1..00000000000 --- a/TAO/tests/POA/Generic_Servant/generic_servant_export.h +++ /dev/null @@ -1,35 +0,0 @@ -// $Id$ - -// Definition for Win32 Export directives. -// This file is generated automatically by -// ${TAO_ROOT}/TAO_IDL/GenExportH.BAT -// ------------------------------ -#if !defined (GENERIC_SERVANT_EXPORT_H) -#define GENERIC_SERVANT_EXPORT_H - -#include "ace/OS.h" - -#if defined (GENERIC_SERVANT_HAS_DLL) -# if (GENERIC_SERVANT_HAS_DLL == 1) -# if defined (GENERIC_SERVANT_BUILD_DLL) -# define GENERIC_SERVANT_Export ACE_Proper_Export_Flag -# define GENERIC_SERVANT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T) -# define GENERIC_SERVANT_SINGLETON_INSTANTIATION(T) ACE_PROPER_SINGLETON_INSTANTIATION (T) -# else -# define GENERIC_SERVANT_Export ACE_Proper_Import_Flag -# define GENERIC_SERVANT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T) -# define GENERIC_SERVANT_SINGLETON_INSTANTIATION(T) -# endif /* GENERIC_SERVANT_BUILD_DLL */ -# else -# define GENERIC_SERVANT_Export -# define GENERIC_SERVANT_SINGLETON_DECLARATION(T) -# define GENERIC_SERVANT_SINGLETON_INSTANTIATION(T) -# endif /* ! GENERIC_SERVANT_HAS_DLL == 1 */ -#else -# define GENERIC_SERVANT_Export -# define GENERIC_SERVANT_SINGLETON_DECLARATION(T) -# define GENERIC_SERVANT_SINGLETON_INSTANTIATION(T) -#endif /* GENERIC_SERVANT_HAS_DLL */ - -#endif /* GENERIC_SERVANT_EXPORT_H */ - // End of auto generated file. diff --git a/TAO/tests/POA/Generic_Servant/server.dsp b/TAO/tests/POA/Generic_Servant/server.dsp deleted file mode 100644 index 75bf578e9f8..00000000000 --- a/TAO/tests/POA/Generic_Servant/server.dsp +++ /dev/null @@ -1,184 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -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) Dynamic-Link Library") -!MESSAGE "server - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "server - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "server__" -# PROP BASE Intermediate_Dir "server__" -# 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 GENERIC_SERVANT_HAS_DLL=1 /D "GENERIC_SERVANT_BUILD_DLL" /YX /FD /c -# 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 tao.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE=$(InputPath) -PostBuild_Desc=Copying DLL to ..\Explicit_Activation and\ - ..\On_Demand_Activation -PostBuild_Cmds=copy server.dll ..\Explicit_Activation copy server.dll\ - ..\On_Demand_Activation -# End Special Build Tool - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "server_0" -# PROP BASE Intermediate_Dir "server_0" -# 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 GENERIC_SERVANT_HAS_DLL=1 /D "GENERIC_SERVANT_BUILD_DLL" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 tao.lib aced.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none -# Begin Special Build Tool -SOURCE=$(InputPath) -PostBuild_Desc=Copying DLL to ..\Explicit_Activation and\ - ..\On_Demand_Activation -PostBuild_Cmds=copy server.dll ..\Explicit_Activation copy server.dll\ - ..\On_Demand_Activation -# End Special Build Tool - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -USERDEP__FOO_I="..\..\..\tao_idl\tao_idl.exe" -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# Begin Source File - -SOURCE=.\MyFooServant.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/Makefile b/TAO/tests/POA/Makefile deleted file mode 100644 index eebf7e25487..00000000000 --- a/TAO/tests/POA/Makefile +++ /dev/null @@ -1,35 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -# Makefile for the POA tests -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = Generic_Servant \ - Default_Servant \ - Explicit_Activation \ - FindPOA \ - NewPOA \ - On_Demand_Activation \ - RootPOA - -# The following test hasn't been updated yet -# Demux_Test - -#### Does not compile on UNIX: Forwarding \ - -#---------------------------------------------------------------------------- -# 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/TAO/tests/POA/NewPOA/Makefile b/TAO/tests/POA/NewPOA/Makefile deleted file mode 100644 index 3ce3e51a611..00000000000 --- a/TAO/tests/POA/NewPOA/Makefile +++ /dev/null @@ -1,229 +0,0 @@ -# -# $Id$ -# - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -BIN = NewPOA - -LSRC = $(addsuffix .cpp,$(BIN)) - -CPPFLAGS += -I$(TAO_ROOT) - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 -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/NewPOA.o .obj/NewPOA.so .shobj/NewPOA.o .shobj/NewPOA.so: NewPOA.cpp \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/NewPOA/NewPOA.cpp b/TAO/tests/POA/NewPOA/NewPOA.cpp deleted file mode 100644 index a243ca3cfc9..00000000000 --- a/TAO/tests/POA/NewPOA/NewPOA.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// $Id$ - -// =========================================================================================== -// = LIBRARY -// TAO/tests/POA/NewPOA -// -// = FILENAME -// NewPOA.cpp -// -// = DESCRIPTION -// This program demonstrates creation of new POAs, as children of the root POA or the -// existing POA. -// There are five new POA created in this example. -// The hierarchy of POAs looks like this. -// -// /-->first_poa-->first_poa/second_poa -// RootPOA-- -// \-->third_poa-->third_poa/fourth_poa-->third_poa/fourth_poa/fifth_poa -// -// = AUTHOR -// Irfan Pyarali -// =========================================================================================== - -#include "ace/streams.h" -#include "tao/corba.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // The first step Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Obtain the object reference to the RootPOA. - CORBA::Object_var obj = - orb->resolve_initial_references ("RootPOA"); - - // _narrow() the Object to get the POA object, i.e., the root_poa. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Policies for the new POAs - CORBA::PolicyList policies (2); - policies.length (2); - - // Threading policy - policies[0] = - root_poa->create_thread_policy (PortableServer::ORB_CTRL_MODEL, env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_thread_policy"); - return -1; - } - - // Lifespan policy - policies[1] = - root_poa->create_lifespan_policy (PortableServer::TRANSIENT, env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Creation of the firstPOA - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of the new POA, i.e. firstPOA/secondPOA - name += TAO_POA::name_separator (); - name += "secondPOA"; - PortableServer::POA_var second_poa = - root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creating thirdPOA/fourthPOA/fifthPOA. The non-existing thirdPOA - // and thirdPOA/fourthPOA are created automatically. - name = "thirdPOA"; - name += TAO_POA::name_separator (); - name += "forthPOA"; - name += TAO_POA::name_separator (); - name += "fifthPOA"; - - PortableServer::POA_var fifth_poa = - root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of the new POAs over, so destroy the Policy_ptr's. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Get the names of all the POAs and print them out. - - CORBA::String_var root_poa_name = - root_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var first_poa_name = - first_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var second_poa_name = - second_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var fifth_poa_name = - fifth_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n%s\n%s\n", - root_poa_name.in (), - first_poa_name.in (), - second_poa_name.in (), - fifth_poa_name.in ())); - - // This should destroy all its children - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/NewPOA/NewPOA.dsp b/TAO/tests/POA/NewPOA/NewPOA.dsp deleted file mode 100644 index 8ebd8d2b115..00000000000 --- a/TAO/tests/POA/NewPOA/NewPOA.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="NewPOA" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=NewPOA - 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 "NewPOA.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 "NewPOA.mak" CFG="NewPOA - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "NewPOA - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "NewPOA - 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)" == "NewPOA - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "NewPOA - 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 "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "NewPOA - Win32 Release" -# Name "NewPOA - Win32 Debug" -# Begin Source File - -SOURCE=.\NewPOA.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/NewPOA/NewPOA.dsw b/TAO/tests/POA/NewPOA/NewPOA.dsw deleted file mode 100644 index e7ce2ae3196..00000000000 --- a/TAO/tests/POA/NewPOA/NewPOA.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: "NewPOA"=.\NewPOA.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/NewPOA/README b/TAO/tests/POA/NewPOA/README deleted file mode 100644 index 8a47ed95cfc..00000000000 --- a/TAO/tests/POA/NewPOA/README +++ /dev/null @@ -1,22 +0,0 @@ -This application explains the usage scenario, where new POAs will have -to be created. - -Run this example as follows. - -% NewPOA. - -Comments : -========= - - - Creates the POA hierarchy as given in the header of the NewPOA.cpp - file. - - - Prints out names of all the POAs. - - - It prints out two warning messages, since there is no Resource Factory - and Strategy Factory found in the Service Repository. - - It takes the default instances of the Resource and Strategy Factories. - - These Default factories are ok for this simple application. - diff --git a/TAO/tests/POA/On_Demand_Activation/Makefile b/TAO/tests/POA/On_Demand_Activation/Makefile deleted file mode 100644 index 2c8da5e0e8c..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/Makefile +++ /dev/null @@ -1,493 +0,0 @@ -# -# $Id$ -# - -BIN = server - -MYFILES = Servant_Activator Servant_Locator - -SRC = $(addsuffix .cpp,$(MYFILES)) -OBJ = $(addsuffix .o,$(MYFILES)) - -CPPFLAGS += -I$(TAO_ROOT) -I../Generic_Servant - -LDLIBS = -lserver -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao -L../Generic_Servant - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/Servant_Activator.o .obj/Servant_Activator.so .shobj/Servant_Activator.o .shobj/Servant_Activator.so: Servant_Activator.cpp Servant_Activator.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - ../Generic_Servant/MyFooServant.h ../Generic_Servant/FooS.h \ - ../Generic_Servant/FooC.h ../Generic_Servant/generic_servant_export.h \ - ../Generic_Servant/FooC.i ../Generic_Servant/FooS_T.h \ - ../Generic_Servant/FooS_T.i ../Generic_Servant/FooS_T.cpp \ - ../Generic_Servant/FooS.i -.obj/Servant_Locator.o .obj/Servant_Locator.so .shobj/Servant_Locator.o .shobj/Servant_Locator.so: Servant_Locator.cpp Servant_Locator.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/config-sunos5.5.h \ - $(ACE_ROOT)/ace/config-g++-common.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Synch_T.cpp \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/Hash_Map_Manager.cpp \ - $(ACE_ROOT)/ace/Service_Config.h \ - $(ACE_ROOT)/ace/Service_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.h \ - $(ACE_ROOT)/ace/Shared_Object.i \ - $(ACE_ROOT)/ace/Service_Object.i \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Containers.cpp \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc_Base.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Free_List.cpp \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Malloc_T.cpp \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Managed_Object.cpp \ - $(ACE_ROOT)/ace/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/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/SOCK_Acceptor.h \ - $(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/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/Thread_Manager.h \ - $(ACE_ROOT)/ace/Thread_Manager.i \ - $(ACE_ROOT)/ace/WFMO_Reactor.h \ - $(ACE_ROOT)/ace/Message_Queue.h \ - $(ACE_ROOT)/ace/Message_Block.h \ - $(ACE_ROOT)/ace/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Message_Queue.cpp \ - $(ACE_ROOT)/ace/WFMO_Reactor.i \ - $(ACE_ROOT)/ace/Strategies.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/Task.h \ - $(ACE_ROOT)/ace/Task.i \ - $(ACE_ROOT)/ace/Task_T.h \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Task_T.cpp \ - $(ACE_ROOT)/ace/Module.h \ - $(ACE_ROOT)/ace/Module.i \ - $(ACE_ROOT)/ace/Module.cpp \ - $(ACE_ROOT)/ace/Stream_Modules.h \ - $(ACE_ROOT)/ace/Stream_Modules.i \ - $(ACE_ROOT)/ace/Stream_Modules.cpp \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Singleton.cpp \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Svc_Handler.cpp \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Connector.cpp \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(ACE_ROOT)/ace/Acceptor.cpp \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(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/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/ORB_Strategies_T.cpp \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(ACE_ROOT)/ace/Dynamic_Service.cpp \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h \ - ../Generic_Servant/MyFooServant.h ../Generic_Servant/FooS.h \ - ../Generic_Servant/FooC.h ../Generic_Servant/generic_servant_export.h \ - ../Generic_Servant/FooC.i ../Generic_Servant/FooS_T.h \ - ../Generic_Servant/FooS_T.i ../Generic_Servant/FooS_T.cpp \ - ../Generic_Servant/FooS.i - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/On_Demand_Activation/On_Demand_Activation.dsw b/TAO/tests/POA/On_Demand_Activation/On_Demand_Activation.dsw deleted file mode 100644 index 293f7320fc8..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/On_Demand_Activation.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: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/On_Demand_Activation/README b/TAO/tests/POA/On_Demand_Activation/README deleted file mode 100644 index 97e57170061..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/README +++ /dev/null @@ -1,97 +0,0 @@ -// $Id$ - -On_Demand_Activation Tests: -========================== - -Description: -=========== - -ServantManagers: -=============== - -Servant managers are associated with POAs. A servant manager supplies -a POA with the ability to objects on demand when the POA receives a -request targeted at an inactive object. A servant manager is -registered with a POA as a callback object, to be invoked by the POA -when necessary.An application server that activates all its needed -objects at the beginning of execution does not need to use a servant -manager; it is used only for the case in which an object must be -activated during request processing. - -When the POA has the RETAIN policy it uses servant managers that are -ServantActivators. When the POA has the NON_RETAIN policy it uses -servant managers that are ServantLocators. - -server: -====== - - The test program server creates 2 POAs firstPOA and secondPOA. -firstPOA is created with a RETAIN,USER_ID,USE_SERVANT_MANAGER policy -and MyFooServantActivator is registered as its servant Manager. -secondPOA is created with a NON_RETAIN,USER_ID,USE_SERVANT_MANAGER -policy and MyFooServantLocator is registered as it servant Manager. - - It then creates an object reference from the string "firstFoo" -in firstPOA and prints its IOR.Similarly it creates an object -reference from the string "secondFoo" in secondPOA and prints its -IOR. Finally it changes the state of the POA_Manager to 'active' and -runs the ORB. - -USAGE: -====== - -%server [-ORBhost host ] [-ORBport port] [-ORBobjrefstyle URL ] - -client: -====== - The Foo client program is in the path - - TAO/tests/POA/Generic_Servant/client - i.e ../Generic_Servant/client - -% client -k IOR - -where IOR is got from the server output. - -To Test: -======= - -1. Run the server - -Servant Activator: -=================== - -2. Get the IOR for "firstFOO" from the server output . - -3. Run client -k IOR - -4. You should get an output - - 27 - -along with some diagnostic messages. - -Servant Locator: -================= - -2. Get the IOR for "secondFoo" from the server output - -3. Run client -k IOR - -4. The first time a client is run you should get an output - - 2 - -along with some diagnostic messages. - -5. Subsequent runs of the client program results in the output - incremented by 2. - -6. Thus, the second run of client should give you an output 4. - - - - - - - diff --git a/TAO/tests/POA/On_Demand_Activation/Servant_Activator.cpp b/TAO/tests/POA/On_Demand_Activation/Servant_Activator.cpp deleted file mode 100644 index 0347612e8c5..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/Servant_Activator.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/POA/On_Demand_Activation/Servant_Activator -// -// = FILENAME -// Servant_Activator.cpp -// -// = DESCRIPTION -// Implementation of MyFooServantActivator , which is used by a -// POA with a RETAIN policy. -// -// = AUTHOR -// Irfan Pyarali -// -// ============================================================================ - -#include "Servant_Activator.h" -#include "MyFooServant.h" - -MyFooServantActivator::MyFooServantActivator (CORBA::ORB_ptr orb) - : orb_ (CORBA::ORB::_duplicate (orb)) -{ -} - -PortableServer::Servant -MyFooServantActivator::incarnate (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - CORBA::Environment &env) -{ - // Convert ObjectId to String. - - CORBA::String_var s = PortableServer::ObjectId_to_string (oid); - - // If ObjectId string has a Foo Substring, create and return a - // MyFooServant. - - if (ACE_OS::strstr (s.in (), "Foo") != 0) - return new MyFooServant (this->orb_.in (), poa, 27); - else - { - CORBA::Exception *exception = new CORBA::OBJECT_NOT_EXIST (CORBA::COMPLETED_NO); - env.exception (exception); - return 0; - } -} - - -void -MyFooServantActivator::etherealize (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - PortableServer::Servant servant, - CORBA::Boolean cleanup_in_progress, - CORBA::Boolean remaining_activations, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (oid); - ACE_UNUSED_ARG (poa); - ACE_UNUSED_ARG (cleanup_in_progress); - ACE_UNUSED_ARG (env); - - // If there are no remaining activations i.e ObjectIds associated - // with MyFooServant delete it. - - if (remaining_activations == CORBA::B_FALSE) - delete servant; -} diff --git a/TAO/tests/POA/On_Demand_Activation/Servant_Activator.h b/TAO/tests/POA/On_Demand_Activation/Servant_Activator.h deleted file mode 100644 index bdf0fdda78a..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/Servant_Activator.h +++ /dev/null @@ -1,45 +0,0 @@ -// $Id$ - -//================================================================================= -// -// = LIBRARY -// TAO/tests/POA/On_Demand_Activation/Servant_Activator -// -// = FILENAME -// Servant_Activator.h -// -// = DESCRIPTION -// Defines a MyFooServantActivator class. -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "tao/corba.h" - -class MyFooServantActivator : public POA_PortableServer::ServantActivator -{ -public: - MyFooServantActivator (CORBA::ORB_ptr orb); - - virtual PortableServer::Servant incarnate (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - CORBA::Environment &env); - // This method is invoked by a POA with USE_SERVANT_MANAGER and - // RETAIN policies , whenever it receives a request for a MyFoo - // object that is not currently active. - - virtual void etherealize (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr adapter, - PortableServer::Servant servant, - CORBA::Boolean cleanup_in_progress, - CORBA::Boolean remaining_activations, - CORBA::Environment &env); - // This method is invoked whenever a MyFooServant for a MyFoo object - // is deactivated. - -private: - CORBA::ORB_var orb_; - // A reference to the ORB. -}; diff --git a/TAO/tests/POA/On_Demand_Activation/Servant_Locator.cpp b/TAO/tests/POA/On_Demand_Activation/Servant_Locator.cpp deleted file mode 100644 index 64779362b33..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/Servant_Locator.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/POA/On_Demand_Activation/Servant_Locator -// -// = FILENAME -// Servant_Locator.cpp -// -// = DESCRIPTION -// Implementation of MyFooServantLocator class , used with a POA -// having a NON_RETAIN policy. -// -// = AUTHOR -// Irfan Pyarali -// -// ============================================================================ - -#include "Servant_Locator.h" -#include "MyFooServant.h" - -MyFooServantLocator::MyFooServantLocator (CORBA::ORB_ptr orb) - : counter_ (0), - orb_ (CORBA::ORB::_duplicate (orb)) -{ -} - - -PortableServer::Servant -MyFooServantLocator::preinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr poa, - const char * /* operation */, - PortableServer::ServantLocator::Cookie &cookie, - CORBA::Environment &env) -{ - // Convert ObjectID to String. - - CORBA::String_var s = PortableServer::ObjectId_to_string (oid); - // If ObjectID string has a Foo Substring create and return a - // MyFooServant. - - if (ACE_OS::strstr (s.in (), "Foo") != 0) - { - PortableServer::Servant servant = - new MyFooServant (this->orb_.in (), poa, ++this->counter_); - - // Return the servant as the cookie , used as a check when - // postinvoke is called on this MyFooServantLocator. - - cookie = servant; - return servant; - } - else - { - CORBA::Exception *exception = - new CORBA::OBJECT_NOT_EXIST (CORBA::COMPLETED_NO); - env.exception (exception); - return 0; - } -} - -void -MyFooServantLocator::postinvoke (const PortableServer::ObjectId & /* oid */, - PortableServer::POA_ptr /* poa */, - const char * /* operation */, - PortableServer::ServantLocator::Cookie cookie, - PortableServer::Servant servant, - CORBA::Environment &/* env */) -{ - // Check the passed servant with the cookie. - - PortableServer::Servant my_servant = (PortableServer::Servant) cookie; - ACE_ASSERT (servant == my_servant); - delete servant; -} diff --git a/TAO/tests/POA/On_Demand_Activation/Servant_Locator.h b/TAO/tests/POA/On_Demand_Activation/Servant_Locator.h deleted file mode 100644 index b65c72e5886..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/Servant_Locator.h +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ - -//================================================================================ -// -// = LIBRARY -// TAO/tests/POA/On_Demand_Activation/Servant_Locator -// -// = FILENAME -// Servant_Locator.h -// -// = DESCRIPTION -// Defines a MyFooServantLocator class , used with a POA having -// a NON_RETAIN policy -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "tao/corba.h" - -class MyFooServantLocator : public POA_PortableServer::ServantLocator -{ - // = TITLE - // This class is used by a POA with USE_SERVANT_MANAGER and - // NON_RETAIN policy. -public: - MyFooServantLocator (CORBA::ORB_ptr orb); - // constructor - - virtual PortableServer::Servant preinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr adapter, - const char *operation, - PortableServer::ServantLocator::Cookie &the_cookie, - CORBA::Environment &env); - // This method is invoked by a POA whenever it receives a request - // for MyFoo object that is not currently active. - - virtual void postinvoke (const PortableServer::ObjectId &oid, - PortableServer::POA_ptr adapter, - const char *operation, - PortableServer::ServantLocator::Cookie the_cookie, - PortableServer::Servant the_servant, - CORBA::Environment &env); - // This method is invoked whenever a MyFooServant completes a - // request. - -private: - int counter_; - // Counter for number of invocations of this. - - CORBA::ORB_var orb_; -}; diff --git a/TAO/tests/POA/On_Demand_Activation/server.cpp b/TAO/tests/POA/On_Demand_Activation/server.cpp deleted file mode 100644 index 83907229d9d..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/server.cpp +++ /dev/null @@ -1,282 +0,0 @@ -// $Id$ - -//============================================================================ -// -// =FILENAME -// server.cpp -// -// =DESCRIPTION -// Server to test the Servant Activator and Servant Locator for a POA. -// -// =AUTHOR -// Irfan Pyarali -// -//============================================================================= - -#include "ace/streams.h" -#include "Servant_Activator.h" -#include "Servant_Locator.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB. - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Get an Object reference to RootPOA. - CORBA::Object_var obj = - orb->resolve_initial_references ("RootPOA"); - - // Narrow the Object reference to a POA reference - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the POAManager of RootPOA - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - CORBA::PolicyList policies (4); - policies.length (4); - - // ID Assignment Policy - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_id_assignment_policy"); - return -1; - } - - // Lifespan Policy - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Request Processing Policy - policies[2] = - root_poa->create_request_processing_policy (PortableServer::USE_SERVANT_MANAGER, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_request_processing_policy"); - return -1; - } - - PortableServer::POA_var first_poa; - { - // Servant Retention Policy - policies[3] = - root_poa->create_servant_retention_policy (PortableServer::RETAIN, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_servant_retention_policy"); - return -1; - } - - ACE_CString name = "firstPOA"; - - // Create firstPOA as the child of RootPOA with the above policies - // firstPOA will use SERVANT_ACTIVATOR because of RETAIN policy. - first_poa = root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - } - - PortableServer::POA_var second_poa; - { - // Servant Retention Policy - policies[3] = - root_poa->create_servant_retention_policy (PortableServer::NON_RETAIN, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_servant_retention_policy"); - return -1; - } - - ACE_CString name = "secondPOA"; - - // Create secondPOA as child of RootPOA with the above policies - // secondPOA will use a SERVANT_LOCATOR because of NON_RETAIN - // policy. - second_poa = root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - } - - // Destroy the policy objects as they have been passed to - // create_POA and no longer needed. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - MyFooServantActivator servant_activator_impl (orb.in ()); - PortableServer::ServantActivator_var servant_activator = - servant_activator_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::_this"); - return -1; - } - - // Set MyFooServantActivator object as the servant_manager of - // firstPOA. - - first_poa->set_servant_manager (servant_activator.in (), env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::set_servant_manager"); - return -1; - } - - // Create a reference with user created ID in firstPOA which uses - // the MyFooServantActivator. - - PortableServer::ObjectId_var first_foo_oid = - PortableServer::string_to_ObjectId ("firstFoo"); - - CORBA::Object_var first_foo = - first_poa->create_reference_with_id (first_foo_oid.in (), "IDL:Foo:1.0", env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_reference_with_id"); - return -1; - } - - MyFooServantLocator servant_locator_impl (orb.in ()); - PortableServer::ServantLocator_var servant_locator = - servant_locator_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::_this"); - return -1; - } - - // Set MyFooServantLocator object as the servant Manager of - // secondPOA. - - second_poa->set_servant_manager (servant_locator.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::set_servant_manager"); - return -1; - } - - // Try to create a reference with user created ID in second_poa - // which uses MyFooServantLocator. - - PortableServer::ObjectId_var second_foo_oid = - PortableServer::string_to_ObjectId ("secondFoo"); - - CORBA::Object_var second_foo = - second_poa->create_reference_with_id (second_foo_oid.in (), - "IDL:Foo:1.0", env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_reference_with_id"); - return -1; - } - - // Invoke object_to_string on the references created in firstPOA and - // secondPOA. - - CORBA::String_var first_foo_ior = - orb->object_to_string (first_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - CORBA::String_var second_foo_ior = - orb->object_to_string (second_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - // Print the ior's of first_foo and second_foo. - - ACE_DEBUG((LM_DEBUG,"%s\n%s\n", - first_foo_ior.in (), - second_foo_ior.in ())); - - // Set the poa_manager state to active, ready to process requests. - poa_manager->activate (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - // Run the ORB. - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - - // Destroy the root_poa and also first_poa and second_poa - - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} - diff --git a/TAO/tests/POA/On_Demand_Activation/server.dsp b/TAO/tests/POA/On_Demand_Activation/server.dsp deleted file mode 100644 index 2d22f5a98a9..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/server.dsp +++ /dev/null @@ -1,99 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\.." /I "..\..\..\.." /I "..\Generic_Servant\\" /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 tao.lib ace.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 "..\..\.." /I "..\..\..\.." /I "..\Generic_Servant\\" /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 tao.lib aced.lib ..\Generic_Servant\server.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Servant_Activator.cpp -# End Source File -# Begin Source File - -SOURCE=.\Servant_Locator.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/On_Demand_Activation/svc.conf b/TAO/tests/POA/On_Demand_Activation/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/POA/On_Demand_Activation/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/POA/README b/TAO/tests/POA/README deleted file mode 100644 index f7bbc2d70bc..00000000000 --- a/TAO/tests/POA/README +++ /dev/null @@ -1,58 +0,0 @@ -// $Id$ - -The following TAO applications illustate various Portable Object -Adapter (POA) interfaces and their usage scenarios. - - Individual README files in the respective directories explain -these applications further. - - . RootPOA - - This example explains how to obtain the name of the - RootPOA. - - . NewPOA - - This example explains the operations involved in - creation of new POAs. - - . FindPOA - - This example explains registering an adapter activator - for a POA and also the find_POA operation. - - . Generic_Servant - - A simple interface (Foo) is defined here and its - implementations, server and client programs are - available, which can be used for testing POA - applications. Several servers for that interface are - implemented using different POA policies; a common - client for all the servers is also provided. - - . On_Demand_Activation - - Contains programs that test the POA's 2 types of - activation of objects on demand, namely , Servant - Activator approach and Servant Locator , which depend - on the RETAIN/NON-RETAIN policy of a POA. - - . Default_Servant - - Contains a File IDL module and its implementation and - a server,client to test the File Module interfaces. - The System interface uses the USE_DEFAULT_MANAGER policy - to create a POA and registers a single File Descriptor - object as the default servant. The default servant serves - requests for many Descriptor objects. - - . Explicit_Activation - - This application explains various operations involved - in the explicit activation of objects; including the - creation of objects without servants (the servant is - created on demand). NOTE: Currently the example does - not work. < It compiles; but at runtime, _narrow() - raises an exception on the client. > - - diff --git a/TAO/tests/POA/RootPOA/Makefile b/TAO/tests/POA/RootPOA/Makefile deleted file mode 100644 index 7e3be81cad0..00000000000 --- a/TAO/tests/POA/RootPOA/Makefile +++ /dev/null @@ -1,228 +0,0 @@ -# -# $Id$ -# - -BIN = RootPOA - -LSRC = $(addsuffix .cpp,$(BIN)) - -CPPFLAGS += -I$(TAO_ROOT) - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 - -ifndef TAO_ROOT -TAO_ROOT = $(ACE_ROOT)/TAO -endif - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- - -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -.obj/RootPOA.o .obj/RootPOA.so .shobj/RootPOA.o .shobj/RootPOA.so: RootPOA.cpp \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/RootPOA/README b/TAO/tests/POA/RootPOA/README deleted file mode 100644 index bf5f5f0aab5..00000000000 --- a/TAO/tests/POA/RootPOA/README +++ /dev/null @@ -1,17 +0,0 @@ -This program obtains the name of the Root POA. - -Run the application as follows. - -% RootPOA - -Comments: -======== - -- It prints out the name of the Root POA. - -- It prints out two warning messages, since there is no Resource Factory and Strategy Factory - found in the Service Repository. - - So, it takes the default instances of the Resource and Strategy Factories. - - This is ok for this simple application. diff --git a/TAO/tests/POA/RootPOA/RootPOA.cpp b/TAO/tests/POA/RootPOA/RootPOA.cpp deleted file mode 100644 index 7c1d7c83e46..00000000000 --- a/TAO/tests/POA/RootPOA/RootPOA.cpp +++ /dev/null @@ -1,80 +0,0 @@ - -// $Id$ - - -//================================================================================== -// -// = LIBRARY -// TAO/tests/POA/RootPOA -// -// -// = FILENAME -// RootPOA.cpp -// -// = DESCRIPTION -// This program gets the name of the Root POA and prints it out on -// the standard output. -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "ace/streams.h" -#include "tao/corba.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initilize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Resolve the initial references for the name RootPOA thus getting - // an object of type CORBA::Object. - CORBA::Object_var obj = - orb->resolve_initial_references ("RootPOA"); - - // apply _narrow on the object of type CORBA::Object, to make it a - // POA class Object. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the name of the root POA. - CORBA::String_var poa_name = - root_poa->the_name (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "The RootPOA is : %s\n", - poa_name.in ())); - - // Destroy the POA object,also destroys the child POAs if any. - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/RootPOA/RootPOA.dsp b/TAO/tests/POA/RootPOA/RootPOA.dsp deleted file mode 100644 index cd00fd9b073..00000000000 --- a/TAO/tests/POA/RootPOA/RootPOA.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="RootPOA" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=RootPOA - 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 "RootPOA.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 "RootPOA.mak" CFG="RootPOA - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "RootPOA - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "RootPOA - 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)" == "RootPOA - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "RootPOA - 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 "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "RootPOA - Win32 Release" -# Name "RootPOA - Win32 Debug" -# Begin Source File - -SOURCE=.\RootPOA.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/RootPOA/RootPOA.dsw b/TAO/tests/POA/RootPOA/RootPOA.dsw deleted file mode 100644 index a14deafc332..00000000000 --- a/TAO/tests/POA/RootPOA/RootPOA.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: "RootPOA"=.\RootPOA.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/TIE/Foo.idl b/TAO/tests/POA/TIE/Foo.idl deleted file mode 100644 index 052ba5f96e2..00000000000 --- a/TAO/tests/POA/TIE/Foo.idl +++ /dev/null @@ -1,30 +0,0 @@ -// $Id$ -//=============================================================================== -// -// = FILENAME -// Foo.idl -// -//================================================================================== - -// IDL - -interface Foo -{ - long doit(); -}; - -module Outer -{ - interface Foo - { - long doit(); - }; - - module Inner - { - interface Foo - { - long doit(); - }; - }; -}; diff --git a/TAO/tests/POA/TIE/Foo_i.cpp b/TAO/tests/POA/TIE/Foo_i.cpp deleted file mode 100644 index fc9c04bb488..00000000000 --- a/TAO/tests/POA/TIE/Foo_i.cpp +++ /dev/null @@ -1,97 +0,0 @@ -// $Id$ - -//=============================================================================== -// -// -// = FILENAME -// Foo_i.cpp -// -// = DESCRIPTION -// This is a simple foo servant implementation -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "Foo_i.h" - -// Constructor -Simple_Foo_i::Simple_Foo_i (CORBA::Long value) - : value_ (value) -{ -} - -// Return this->value -CORBA::Long -Simple_Foo_i::doit (CORBA::Environment &/*env*/) -{ - return this->value_; -} - -// Constructor -Foo_i::Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa) - : value_ (value), - poa_ (PortableServer::POA::_duplicate (poa)) -{ -} - -// Return this->value -CORBA::Long -Foo_i::doit (CORBA::Environment &/*env*/) -{ - return this->value_; -} - -// Return the Default POA of this Servant -PortableServer::POA_ptr -Foo_i::_default_POA (CORBA::Environment &/*env*/) -{ - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -// Constructor -Outer_i::Foo_i::Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa) - : value_ (value), - poa_ (PortableServer::POA::_duplicate (poa)) -{ -} - -// Return this->value -CORBA::Long -Outer_i::Foo_i::doit (CORBA::Environment &/*env*/) -{ - return this->value_; -} - -// Return the Default POA of this Servant -PortableServer::POA_ptr -Outer_i::Foo_i::_default_POA (CORBA::Environment &/*env*/) -{ - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - -// Constructor -Outer_i::Inner_i::Foo_i::Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa) - : value_ (value), - poa_ (PortableServer::POA::_duplicate (poa)) -{ -} - -// Return this->value -CORBA::Long -Outer_i::Inner_i::Foo_i::doit (CORBA::Environment &/*env*/) -{ - return this->value_; -} - -// Return the Default POA of this Servant -PortableServer::POA_ptr -Outer_i::Inner_i::Foo_i::_default_POA (CORBA::Environment &/*env*/) -{ - return PortableServer::POA::_duplicate (this->poa_.in ()); -} - diff --git a/TAO/tests/POA/TIE/Foo_i.h b/TAO/tests/POA/TIE/Foo_i.h deleted file mode 100644 index 92a7d0f77cf..00000000000 --- a/TAO/tests/POA/TIE/Foo_i.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ -//============================================================================= -// -// -// = FILENAME -// Foo_i.h -// -// = DESCRIPTION -// Defines Foo_i class for the Foo interface -// -// = AUTHOR -// Irfan Pyarali -// -//============================================================================= - -#if !defined (FOO_I_H) -#define FOO_I_H - -#include "FooS.h" - -class Simple_Foo_i -{ -public: - // constructor - takes a POA and a value parameter - Simple_Foo_i (CORBA::Long value); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - -protected: - - CORBA::Long value_; -}; - -class Foo_i : public POA_Foo -{ -public: - // constructor - takes a POA and a value parameter - Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Returns the Default POA of this Servant object - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - -protected: - - CORBA::Long value_; - - PortableServer::POA_var poa_; - // Default poa associated with this servant -}; - -class Outer_i -{ -public: - - class Foo_i : public POA_Outer::Foo - { - public: - // constructor - takes a POA and a value parameter - Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Returns the Default POA of this Servant object - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - protected: - - CORBA::Long value_; - - PortableServer::POA_var poa_; - // Default poa associated with this servant - }; - - class Inner_i - { - public: - - class Foo_i : public POA_Outer::Inner::Foo - { - public: - // constructor - takes a POA and a value parameter - Foo_i (CORBA::Long value, - PortableServer::POA_ptr poa); - - // Simple doit method - virtual CORBA::Long doit (CORBA::Environment &env); - - // Returns the Default POA of this Servant object - virtual PortableServer::POA_ptr _default_POA (CORBA::Environment &env); - - protected: - - CORBA::Long value_; - - PortableServer::POA_var poa_; - // Default poa associated with this servant - }; - }; -}; - -#endif /* FOO_I_H */ diff --git a/TAO/tests/POA/TIE/Makefile b/TAO/tests/POA/TIE/Makefile deleted file mode 100644 index b4e1886c247..00000000000 --- a/TAO/tests/POA/TIE/Makefile +++ /dev/null @@ -1,60 +0,0 @@ -#---------------------------------------------------------------------------- -# -# $Id$ -# -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO - -IDL_SRC = FooC.cpp FooS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp Foo_i.cpp - -LSRC = $(PROG_SRCS) - -FILE_SVR_OBJS = FooC.o FooS.o server.o Foo_i.o -FILE_CLT_OBJS = FooC.o FooS.o client.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - - -.PRECIOUS: FooC.h FooC.i FooC.cpp FooS.h FooS.i FooS.cpp - -server: $(addprefix $(VDIR),$(FILE_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(FILE_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf FooC.* FooS.* - -# 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/TAO/tests/POA/TIE/TIE.dsw b/TAO/tests/POA/TIE/TIE.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/POA/TIE/TIE.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/POA/TIE/client.cpp b/TAO/tests/POA/TIE/client.cpp deleted file mode 100644 index 2702cadfb7c..00000000000 --- a/TAO/tests/POA/TIE/client.cpp +++ /dev/null @@ -1,214 +0,0 @@ -// $Id$ - -//=============================================================================== -// -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// This is a simple foo client implementation. -// -// = AUTHOR -// Irfan Pyarali -// -//================================================================================== - -#include "ace/streams.h" -#include "ace/Get_Opt.h" -#include "ace/Profile_Timer.h" -#include "FooC.h" - -static char *IOR[7] = { 0, 0, 0, 0, 0, 0, 0 }; -static int iterations = 1; - -static int -parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "a:b:c:d:e:f:i:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'a': - IOR[1] = get_opts.optarg; - break; - case 'b': - IOR[2] = get_opts.optarg; - break; - case 'c': - IOR[3] = get_opts.optarg; - break; - case 'd': - IOR[4] = get_opts.optarg; - break; - case 'e': - IOR[5] = get_opts.optarg; - break; - case 'f': - IOR[6] = get_opts.optarg; - break; - case 'i': - iterations = ::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - "-a IOR 1" - "-b IOR 2" - "-c IOR 3" - "-d IOR 4" - "-e IOR 5" - "-f IOR 6" - "\n", - argv [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -void -print_stats (ACE_Profile_Timer::ACE_Elapsed_Time &elapsed_time, - int iterations) -{ - if (iterations > 0) - { - elapsed_time.real_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.user_time *= ACE_ONE_SECOND_IN_MSECS; - elapsed_time.system_time *= ACE_ONE_SECOND_IN_MSECS; - - elapsed_time.real_time /= iterations; - elapsed_time.user_time /= iterations; - elapsed_time.system_time /= iterations; - - double tmp = 1000 / elapsed_time.real_time; - - ACE_DEBUG ((LM_DEBUG, - "\treal_time\t = %0.06f ms, \n" - "\tuser_time\t = %0.06f ms, \n" - "\tsystem_time\t = %0.06f ms, \n" - "\t%0.00f calls/second\n", - elapsed_time.real_time < 0.0 ? 0.0 : elapsed_time.real_time, - elapsed_time.user_time < 0.0 ? 0.0 : elapsed_time.user_time, - elapsed_time.system_time < 0.0 ? 0.0 : elapsed_time.system_time, - tmp < 0.0 ? 0.0 : tmp)); - } - else - ACE_ERROR ((LM_ERROR, - "\tNo time stats printed. Zero iterations or error ocurred.\n")); -} - -template -void -run_test (CORBA::ORB_var &orb, - char *IOR, - CORBA::Environment &env, - T_var &dummy) -{ - ACE_UNUSED_ARG (dummy); - - if (IOR != 0) - { - // Get an object reference from the argument string. - CORBA::Object_var object = orb->string_to_object (IOR, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::string_to_object"); - return; - } - - // Try to narrow the object reference to a Foo reference. - T_var foo = T::_narrow (object.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("_narrow"); - return; - } - - ACE_Profile_Timer timer; - ACE_Profile_Timer::ACE_Elapsed_Time elapsed_time; - - // We start an ACE_Profile_Timer here... - timer.start (); - - CORBA::Long result = 0; - int i = 0; - for (i = 0; i < iterations; i++ && env.exception () == 0) - { - // Invoke the doit() method of the foo reference. - result = foo->doit (env); - } - - // stop the timer. - timer.stop (); - timer.elapsed_time (elapsed_time); - - // compute average time. - print_stats (elapsed_time, i); - - if (env.exception () != 0) - { - env.print_exception ("Foo::doit"); - return; - } - - // Print the result of doit () method of the foo reference. - ACE_DEBUG ((LM_DEBUG, - "%d\n", - result)); - } -} - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Initialize options based on command-line arguments. - int parse_args_result = parse_args (argc, argv); - if (parse_args_result != 0) - return parse_args_result; - - int i = 1; - run_test (orb, - IOR[i++], - env, - Foo_var ()); - run_test (orb, - IOR[i++], - env, - Outer::Foo_var ()); - run_test (orb, - IOR[i++], - env, - Outer::Inner::Foo_var ()); - run_test (orb, - IOR[i++], - env, - Foo_var ()); - run_test (orb, - IOR[i++], - env, - Outer::Foo_var ()); - run_test (orb, - IOR[i++], - env, - Outer::Inner::Foo_var ()); - return 0; -} - - diff --git a/TAO/tests/POA/TIE/client.dsp b/TAO/tests/POA/TIE/client.dsp deleted file mode 100644 index 273fba642e1..00000000000 --- a/TAO/tests/POA/TIE/client.dsp +++ /dev/null @@ -1,163 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "client__" -# PROP BASE Intermediate_Dir "client__" -# 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 "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/TIE/server.cpp b/TAO/tests/POA/TIE/server.cpp deleted file mode 100644 index 13bcccad380..00000000000 --- a/TAO/tests/POA/TIE/server.cpp +++ /dev/null @@ -1,290 +0,0 @@ -// $Id$ - -// =========================================================================================== -// = LIBRARY -// TAO/tests/POA/TIE -// -// = FILENAME -// server.cpp -// -// = DESCRIPTION -// In this example, -// -// = AUTHOR -// Irfan Pyarali -// =========================================================================================== - -#include "ace/streams.h" -#include "Foo_i.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // Initialize the ORB first. - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Obtain the RootPOA. - CORBA::Object_var obj = orb->resolve_initial_references ("RootPOA"); - - // Get the POA_var object from Object_var. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the POAManager of the RootPOA. - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - // Policies for the firstPOA to be created. - CORBA::PolicyList policies (2); - policies.length (2); - - // Lifespan policy - policies[0] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_lifespan_policy"); - return -1; - } - - // Implicit activation policy - policies[1] = - root_poa->create_implicit_activation_policy (PortableServer::IMPLICIT_ACTIVATION, env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_implicit_activation_policy"); - return -1; - } - - // Create the firstPOA under the RootPOA. - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->create_POA (name.c_str (), - poa_manager.in (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of POAs is over. Destroy the Policy objects. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Create first Foo_i - Foo_i first_foo_impl (27, first_poa.in ()); - - // Create second Foo_i - Outer_i::Foo_i second_foo_impl (28, first_poa.in ()); - - // Create third Foo_i - Outer_i::Inner_i::Foo_i third_foo_impl (29, first_poa.in ()); - - // Create forth Foo_i - Simple_Foo_i forth_foo_tie (30); - POA_Foo_tie forth_foo_impl (forth_foo_tie, first_poa.in ()); - -#if defined (ACE_HAS_USING_KEYWORD) - - // Create fifth Foo_i - Simple_Foo_i fifth_foo_tie (31); - POA_Outer::Foo_tie fifth_foo_impl (fifth_foo_tie, first_poa.in ()); - - // Create sixth Foo_i - Simple_Foo_i sixth_foo_tie (32); - POA_Outer::Inner::Foo_tie sixth_foo_impl (sixth_foo_tie, first_poa.in ()); - -#endif /* ACE_HAS_USING_KEYWORD */ - - // Get Object Reference for the first_foo_impl object. - Foo_var first_foo = first_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get Object Reference for the second_foo_impl object. - Outer::Foo_var second_foo = second_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get Object Reference for the third_foo_impl object. - Outer::Inner::Foo_var third_foo = third_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get Object Reference for the forth_foo_impl object. - Foo_var forth_foo = forth_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - -#if defined (ACE_HAS_USING_KEYWORD) - - // Get Object Reference for the fifth_foo_impl object. - Outer::Foo_var fifth_foo = fifth_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - - // Get Object Reference for the sixth_foo_impl object. - Outer::Inner::Foo_var sixth_foo = sixth_foo_impl._this (env); - - if (env.exception () != 0) - { - env.print_exception ("POA_Foo::_this"); - return -1; - } - -#endif /* ACE_HAS_USING_KEYWORD */ - - // Stringyfy all the object references and print them out. - CORBA::String_var first_ior = - orb->object_to_string (first_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - // Stringyfy all the object references and print them out. - CORBA::String_var second_ior = - orb->object_to_string (second_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - // Stringyfy all the object references and print them out. - CORBA::String_var third_ior = - orb->object_to_string (third_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - // Stringyfy all the object references and print them out. - CORBA::String_var forth_ior = - orb->object_to_string (forth_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - -#if defined (ACE_HAS_USING_KEYWORD) - - // Stringyfy all the object references and print them out. - CORBA::String_var fifth_ior = - orb->object_to_string (fifth_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - // Stringyfy all the object references and print them out. - CORBA::String_var sixth_ior = - orb->object_to_string (sixth_foo.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - -#endif /* ACE_HAS_USING_KEYWORD */ - - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n%s\n%s\n", - first_ior.in (), - second_ior.in (), - third_ior.in (), - forth_ior.in ())); - -#if defined (ACE_HAS_USING_KEYWORD) - - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n", - fifth_ior.in (), - sixth_ior.in ())); - -#endif /* ACE_HAS_USING_KEYWORD */ - - poa_manager->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - if (orb->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "CORBA::ORB::run"), -1); - - // Destroy RootPOA. - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/TIE/server.dsp b/TAO/tests/POA/TIE/server.dsp deleted file mode 100644 index 192600fdf87..00000000000 --- a/TAO/tests/POA/TIE/server.dsp +++ /dev/null @@ -1,167 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 /GR /GX /O2 /I "..\..\.." /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 tao.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /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 /GR /GX /Zi /Od /I "..\..\.." /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 tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\Foo.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl -Wb,export_macro=GENERIC_SERVANT_Export\ - -Wb,export_include=generic_servant_export.h $(InputName).idl - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.h" : $(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) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\Foo.idl -InputName=Foo - -BuildCmds= \ - ..\..\..\tao_idl\tao_idl $(InputName).idl - -"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"$(InputName)C.i" : $(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) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\Foo_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooC.cpp -# End Source File -# Begin Source File - -SOURCE=.\FooS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/locking/Makefile b/TAO/tests/POA/locking/Makefile deleted file mode 100644 index 572beb3946e..00000000000 --- a/TAO/tests/POA/locking/Makefile +++ /dev/null @@ -1,229 +0,0 @@ -# -# $Id$ -# - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -BIN = locking - -LSRC = $(addsuffix .cpp,$(BIN)) - -CPPFLAGS += -I$(TAO_ROOT) - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -VLDLIBS = $(LDLIBS:%=%$(VAR)) - -BUILD = $(VBIN) - -INSTALL = - -#---------------------------------------------------------------------------- -# 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 -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/locking.o .obj/locking.so .shobj/locking.o .shobj/locking.so: locking.cpp \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/POA/locking/locking.cpp b/TAO/tests/POA/locking/locking.cpp deleted file mode 100644 index 71ef8785301..00000000000 --- a/TAO/tests/POA/locking/locking.cpp +++ /dev/null @@ -1,158 +0,0 @@ -// $Id$ - -// ================================================== -// = LIBRARY -// TAO/tests/POA/NewPOA -// -// = FILENAME -// NewPOA.cpp -// -// = DESCRIPTION -// -// This program demonstrates creation of new POAs using TAO -// specific locking policies -// -// = AUTHOR -// Irfan Pyarali -// ================================================== - -#include "ace/streams.h" -#include "tao/corba.h" - -int -main (int argc, char **argv) -{ - CORBA::Environment env; - - // The first step Initialize the ORB - CORBA::ORB_var orb = CORBA::ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB_init"); - return -1; - } - - // Obtain the object reference to the RootPOA. - CORBA::Object_var obj = - orb->resolve_initial_references ("RootPOA"); - - // _narrow () the Object to get the POA object, i.e., the root_poa. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Policies for the new POAs - CORBA::PolicyList policies (1); - policies.length (1); - - // TAO specific threading policy - policies[0] = - root_poa->create_TAO_POA_locking_policy (PortableServer::USE_THREAD_LOCK, env); - - if (env.exception () != 0) - { - env.print_exception ("create_TAO_POA_locking"); - return -1; - } - - // Creation of the firstPOA - ACE_CString name = "firstPOA"; - PortableServer::POA_var first_poa = - root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // TAO specific threading policy - policies[0] = - root_poa->create_TAO_POA_locking_policy (PortableServer::USE_NULL_LOCK, env); - - if (env.exception () != 0) - { - env.print_exception ("create_TAO_POA_locking"); - return -1; - } - - // Creation of the new POA, i.e. firstPOA/secondPOA - name += TAO_POA::name_separator (); - name += "secondPOA"; - PortableServer::POA_var second_poa = - root_poa->create_POA (name.c_str (), - PortableServer::POAManager::_nil (), - policies, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Creation of the new POAs over, so destroy the Policy_ptr's. - for (CORBA::ULong i = 0; - i < policies.length () && env.exception () == 0; - ++i) - { - CORBA::Policy_ptr policy = policies[i]; - policy->destroy (env); - } - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::create_POA"); - return -1; - } - - // Get the names of all the POAs and print them out. - - CORBA::String_var root_poa_name = - root_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var first_poa_name = - first_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - CORBA::String_var second_poa_name = - second_poa->the_name (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, - "%s\n%s\n%s\n", - root_poa_name.in (), - first_poa_name.in (), - second_poa_name.in ())); - - // This should destroy all its children - root_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::destroy"); - return -1; - } - - return 0; -} diff --git a/TAO/tests/POA/locking/locking.dsp b/TAO/tests/POA/locking/locking.dsp deleted file mode 100644 index 9bb14e7b461..00000000000 --- a/TAO/tests/POA/locking/locking.dsp +++ /dev/null @@ -1,91 +0,0 @@ -# Microsoft Developer Studio Project File - Name="locking" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=locking - 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 "locking.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 "locking.mak" CFG="locking - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "locking - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "locking - 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)" == "locking - 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" /D "_MBCS" /YX /FD /c -# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\.." /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 tao.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "locking - 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 "..\..\.." /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 tao.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace" -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "locking - Win32 Release" -# Name "locking - Win32 Debug" -# Begin Source File - -SOURCE=.\locking.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/POA/locking/locking.dsw b/TAO/tests/POA/locking/locking.dsw deleted file mode 100644 index 5902fe2a1f2..00000000000 --- a/TAO/tests/POA/locking/locking.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: "locking"=.\locking.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Param_Test/Makefile b/TAO/tests/Param_Test/Makefile deleted file mode 100644 index e725f605df9..00000000000 --- a/TAO/tests/Param_Test/Makefile +++ /dev/null @@ -1,443 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the Param_Test test example -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO -LDFLAGS += -L$(TAO_ROOT)/tao - -IDL_HDR = param_testC.h param_testS.h -IDL_SRC = param_testC.cpp param_testS.cpp -PROG_SRCS = $(IDL_SRC) server.cpp client.cpp param_test_i.cpp helper.cpp \ - driver.cpp options.cpp results.cpp tests.cpp tmplinst.cpp - -LSRC = $(PROG_SRCS) - -PARAM_TEST_SVR_OBJS = param_testC.o param_testS.o server.o param_test_i.o tmplinst.o -PARAM_TEST_CLT_OBJS = param_testC.o param_testS.o driver.o client.o options.o results.o \ - tmplinst.o tests.o helper.o - -BIN = server client -BUILD = $(BIN) -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 $(TAO_ROOT)/rules.tao.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 - -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -.PRECIOUS: $(IDL_HDR) $(IDL_SRC) -#$(IDL_HDR) $(IDL_SRC): param_test.idl -# $(TAO_IDL/tao_idl param_test.idl - -server: $(addprefix $(VDIR),$(PARAM_TEST_SVR_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(PARAM_TEST_CLT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf param_testC.* param_testS.* - -# 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/Singleton.h \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Singleton.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(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/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h -.obj/results.o .obj/results.so .shobj/results.o .shobj/results.so: results.cpp results.h \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/ACE.i \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i \ - $(TAO_ROOT)/tao/corba.h \ - $(TAO_ROOT)/tao/orbconf.h \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i \ - $(ACE_ROOT)/ace/SOCK_Stream.h \ - $(ACE_ROOT)/ace/SOCK_IO.h \ - $(ACE_ROOT)/ace/SOCK.h \ - $(ACE_ROOT)/ace/Addr.h \ - $(ACE_ROOT)/ace/Addr.i \ - $(ACE_ROOT)/ace/IPC_SAP.h \ - $(ACE_ROOT)/ace/IPC_SAP.i \ - $(ACE_ROOT)/ace/SOCK.i \ - $(ACE_ROOT)/ace/SOCK_IO.i \ - $(ACE_ROOT)/ace/INET_Addr.h \ - $(ACE_ROOT)/ace/INET_Addr.i \ - $(ACE_ROOT)/ace/SOCK_Stream.i \ - $(ACE_ROOT)/ace/Synch_T.h \ - $(ACE_ROOT)/ace/Event_Handler.h \ - $(ACE_ROOT)/ace/Event_Handler.i \ - $(ACE_ROOT)/ace/Synch.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.h \ - $(ACE_ROOT)/ace/SV_Semaphore_Simple.i \ - $(ACE_ROOT)/ace/SV_Semaphore_Complex.i \ - $(ACE_ROOT)/ace/Synch.i \ - $(ACE_ROOT)/ace/Synch_T.i \ - $(ACE_ROOT)/ace/Thread.h \ - $(ACE_ROOT)/ace/Thread.i \ - $(ACE_ROOT)/ace/Atomic_Op.i \ - $(ACE_ROOT)/ace/Hash_Map_Manager.h \ - $(ACE_ROOT)/ace/SString.h \ - $(ACE_ROOT)/ace/SString.i \ - $(ACE_ROOT)/ace/Malloc.h \ - $(ACE_ROOT)/ace/Malloc.i \ - $(ACE_ROOT)/ace/Malloc_T.h \ - $(ACE_ROOT)/ace/Free_List.h \ - $(ACE_ROOT)/ace/Free_List.i \ - $(ACE_ROOT)/ace/Malloc_T.i \ - $(ACE_ROOT)/ace/Memory_Pool.h \ - $(ACE_ROOT)/ace/Signal.h \ - $(ACE_ROOT)/ace/Containers.h \ - $(ACE_ROOT)/ace/Containers.i \ - $(ACE_ROOT)/ace/Signal.i \ - $(ACE_ROOT)/ace/Object_Manager.h \ - $(ACE_ROOT)/ace/Object_Manager.i \ - $(ACE_ROOT)/ace/Managed_Object.h \ - $(ACE_ROOT)/ace/Managed_Object.i \ - $(ACE_ROOT)/ace/Mem_Map.h \ - $(ACE_ROOT)/ace/Mem_Map.i \ - $(ACE_ROOT)/ace/Memory_Pool.i \ - $(ACE_ROOT)/ace/SOCK_Acceptor.h \ - $(ACE_ROOT)/ace/SOCK_Acceptor.i \ - $(ACE_ROOT)/ace/SOCK_Connector.h \ - $(ACE_ROOT)/ace/SOCK_Connector.i \ - $(ACE_ROOT)/ace/Strategies.h \ - $(ACE_ROOT)/ace/Strategies_T.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/Service_Config.i \ - $(ACE_ROOT)/ace/Reactor.h \ - $(ACE_ROOT)/ace/Handle_Set.h \ - $(ACE_ROOT)/ace/Handle_Set.i \ - $(ACE_ROOT)/ace/Timer_Queue.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.h \ - $(ACE_ROOT)/ace/Timer_Queue_T.i \ - $(ACE_ROOT)/ace/Reactor.i \ - $(ACE_ROOT)/ace/Reactor_Impl.h \ - $(ACE_ROOT)/ace/Svc_Conf_Tokens.h \ - $(ACE_ROOT)/ace/Synch_Options.h \ - $(ACE_ROOT)/ace/Synch_Options.i \ - $(ACE_ROOT)/ace/Strategies_T.i \ - $(ACE_ROOT)/ace/Strategies.i \ - $(ACE_ROOT)/ace/Connector.h \ - $(ACE_ROOT)/ace/Map_Manager.h \ - $(ACE_ROOT)/ace/Map_Manager.i \ - $(ACE_ROOT)/ace/Svc_Handler.h \ - $(ACE_ROOT)/ace/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/Message_Block.i \ - $(ACE_ROOT)/ace/IO_Cntl_Msg.h \ - $(ACE_ROOT)/ace/Message_Queue.i \ - $(ACE_ROOT)/ace/Task_T.i \ - $(ACE_ROOT)/ace/Dynamic.h \ - $(ACE_ROOT)/ace/Dynamic.i \ - $(ACE_ROOT)/ace/Singleton.h \ - $(ACE_ROOT)/ace/Singleton.i \ - $(ACE_ROOT)/ace/Svc_Handler.i \ - $(ACE_ROOT)/ace/Connector.i \ - $(ACE_ROOT)/ace/Acceptor.h \ - $(ACE_ROOT)/ace/Acceptor.i \ - $(TAO_ROOT)/tao/compat/objbase.h \ - $(TAO_ROOT)/tao/compat/initguid.h \ - $(TAO_ROOT)/tao/Align.h \ - $(TAO_ROOT)/tao/ORB.h \ - $(TAO_ROOT)/tao/Sequence.h \ - $(TAO_ROOT)/tao/Sequence.i \ - $(TAO_ROOT)/tao/Sequence_T.h \ - $(TAO_ROOT)/tao/Sequence_T.i \ - $(TAO_ROOT)/tao/Object_KeyC.h \ - $(TAO_ROOT)/tao/Object_KeyC.i \ - $(TAO_ROOT)/tao/ORB.i \ - $(TAO_ROOT)/tao/Exception.h \ - $(TAO_ROOT)/tao/Exception.i \ - $(TAO_ROOT)/tao/Any.h \ - $(TAO_ROOT)/tao/Any.i \ - $(TAO_ROOT)/tao/params.h \ - $(TAO_ROOT)/tao/params.i \ - $(TAO_ROOT)/tao/Client_Strategy_Factory.h \ - $(TAO_ROOT)/tao/Server_Strategy_Factory.h \ - $(TAO_ROOT)/tao/default_client.h \ - $(TAO_ROOT)/tao/default_client.i \ - $(TAO_ROOT)/tao/default_server.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.h \ - $(TAO_ROOT)/tao/ORB_Strategies_T.i \ - $(TAO_ROOT)/tao/default_server.i \ - $(TAO_ROOT)/tao/NVList.h \ - $(TAO_ROOT)/tao/NVList.i \ - $(TAO_ROOT)/tao/Principal.h \ - $(TAO_ROOT)/tao/Request.h \ - $(TAO_ROOT)/tao/Request.i \ - $(TAO_ROOT)/tao/Stub.h \ - $(TAO_ROOT)/tao/Stub.i \ - $(TAO_ROOT)/tao/Object.h \ - $(TAO_ROOT)/tao/Object.i \ - $(TAO_ROOT)/tao/Typecode.h \ - $(TAO_ROOT)/tao/Typecode.i \ - $(TAO_ROOT)/tao/Marshal.h \ - $(TAO_ROOT)/tao/Marshal.i \ - $(TAO_ROOT)/tao/CDR.h \ - $(TAO_ROOT)/tao/CDR.i \ - $(TAO_ROOT)/tao/PolicyC.h \ - $(TAO_ROOT)/tao/PolicyC.i \ - $(TAO_ROOT)/tao/CurrentC.h \ - $(TAO_ROOT)/tao/CurrentC.i \ - $(TAO_ROOT)/tao/POA.h \ - $(TAO_ROOT)/tao/POAC.h \ - $(TAO_ROOT)/tao/POAC.i \ - $(TAO_ROOT)/tao/Servant_Base.h \ - $(TAO_ROOT)/tao/POAS.h \ - $(TAO_ROOT)/tao/POA_CORBA.h \ - $(TAO_ROOT)/tao/POAS.i \ - $(TAO_ROOT)/tao/Object_Table.h \ - $(TAO_ROOT)/tao/POA.i \ - $(TAO_ROOT)/tao/poa_macros.h \ - $(TAO_ROOT)/tao/Connect.h \ - $(TAO_ROOT)/tao/Connect.i \ - $(TAO_ROOT)/tao/ORB_Core.h \ - $(TAO_ROOT)/tao/ORB_Core.i \ - $(ACE_ROOT)/ace/Dynamic_Service.h \ - $(TAO_ROOT)/tao/Operation_Table.h \ - $(TAO_ROOT)/tao/debug.h \ - $(TAO_ROOT)/tao/IIOP_Object.h \ - $(TAO_ROOT)/tao/IIOP_Object.i \ - $(TAO_ROOT)/tao/IIOP_ORB.h \ - $(TAO_ROOT)/tao/IIOP_ORB.i \ - $(TAO_ROOT)/tao/IIOP_Interpreter.h \ - $(TAO_ROOT)/tao/GIOP.h \ - $(TAO_ROOT)/tao/GIOP.i \ - $(TAO_ROOT)/tao/Server_Request.h \ - $(TAO_ROOT)/tao/Server_Request.i \ - $(TAO_ROOT)/tao/singletons.h - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Param_Test/Param_Test.dsw b/TAO/tests/Param_Test/Param_Test.dsw deleted file mode 100644 index f6006d20cb7..00000000000 --- a/TAO/tests/Param_Test/Param_Test.dsw +++ /dev/null @@ -1,41 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Param_Test/README b/TAO/tests/Param_Test/README deleted file mode 100644 index 8ceaa11b0cf..00000000000 --- a/TAO/tests/Param_Test/README +++ /dev/null @@ -1,87 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// README -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -This directory contains an application that tests all the parameter -passing conventions in CORBA for a number of OMG IDL data types. - -Type "make" to make the application. The server executable is called -"server" and the client executable is called "client". - -You should have the TAO IDL compiler and the TAO library installed -before using this application. - -To run the server, type - - server [arguments to ORB_init] [-d] [-o ] - - arguments to ORB_init start with the letters -ORB. Please - see TAO documentattion on all the supported arguments - - -d for debugging. - -o for outputting the servant IOR to a file. - -To run the client, type - - client [arguments to ORB_init] [options for this application] - - Supported options are: - - [-d] debugging - [-n loopcount] number of times to run the test - [-f servant-IOR-file] reads the servant-IOR from the specified file. - [-k Param_Test-obj-ref-key] object key of Param_Test object - [-h hostname] host to bind to - [-p port] port number of server - [-i invocation (sii/dii)] default is static invocation - interface. To use DII, type - -i dii - [-t data type] - Data types supported in this version are: - - short for shorts - ubstring for unbounded string - fixed_struct for fixed sized structs - strseq for sequences of strings - bounded_strseq for bounded sequences of strings - var_struct for variable structs - nested_struct for nested structs - struct_seq for sequences of structs - bounded_struct_seq for bounded sequences of structs - any for Any - objref for object references - objref_sequence for sequences object references - any_sequence for sequences of Any - short_sequence for sequences of shorts - long_sequence for sequences of shorts - bounded_short_sequence for bounded sequences of shorts - bounded_long_sequence for bounded sequences of shorts - - - There are 2 options of giving the Param_obj-ref-key i.e IOR to the client: - - 1. Using the -f option to read the IOR from a file. - - 2. Using the -k option to read the IOR from the - command line. - -run_test: --------- - There is a shell script in this directory named run_test to test all - the types for sii invocation. It starts the server first and then runs - the client with the different data type parameters. - - - - diff --git a/TAO/tests/Param_Test/client.cpp b/TAO/tests/Param_Test/client.cpp deleted file mode 100644 index 115e692439b..00000000000 --- a/TAO/tests/Param_Test/client.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// client.cpp -// -// = DESCRIPTION -// This file contains the implementation of the client-side of the -// Param_Test application. -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (CLIENT_CPP) -#define CLIENT_CPP - -#include "options.h" -#include "results.h" -#include "client.h" - -// Constructor.p -template -Param_Test_Client::Param_Test_Client (CORBA::ORB_ptr orb, - Param_Test_ptr objref, - T *t) - : orb_ (orb), - param_test_ (objref), - test_object_ (t) -{ -} - -// destructor -template -Param_Test_Client::~Param_Test_Client (void) -{ - delete this->test_object_; -} - -// All the individual tests. -template int -Param_Test_Client::run_sii_test (void) -{ - CORBA::ULong i; // loop index - CORBA::Environment env; // to track errors - Options *opt = OPTIONS::instance (); // get the options - const char *opname = this->test_object_->opname (); // operation - - // Initialize call count and error count. - this->results_.call_count (0); - this->results_.error_count (0); - this->results_.iterations (opt->loop_count ()); - - // Initialize parameters for the test. - if (this->test_object_->init_parameters (this->param_test_, env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) client.cpp - run_sii_test:" - "init_parameters failed for opname - %s", - opname), -1); - - // Make the calls in a loop. - for (i = 0; i < opt->loop_count (); i++) - { - this->results_.call_count (this->results_.call_count () + 1); - if (opt->debug ()) - ACE_DEBUG ((LM_DEBUG, "\n****** Before call values *****\n")); - - // start the timing - this->results_.start_timer (); - - // make the call - if (this->test_object_->run_sii_test (this->param_test_, env) == -1) - { - this->results_.error_count (this->results_.error_count () + 1); - env.print_exception (opname); - ACE_ERROR ((LM_ERROR, - "(%N:%l) client.cpp - run_sii_test:" - "run_sii_test exception in iteration %d", - i)); - continue; - } - // stop the timer. - this->results_.stop_timer (); - - // now check if the values returned are as expected - if (opt->debug ()) - { - ACE_DEBUG ((LM_DEBUG, "\n****** After call values *****\n")); - this->test_object_->print_values (); - } - - if (!this->test_object_->check_validity ()) - { - this->results_.error_count (this->results_.error_count () + 1); - ACE_ERROR ((LM_ERROR, - "(%N:%l) client.cpp - run_sii_test: " - "Invalid results in iteration %d - ", - i)); - continue; - } - // reset parameters for the test - if (this->test_object_->reset_parameters () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) client.cpp - run_dii_test:" - "init_parameters failed for opname - %s", - opname), -1); - } - - // print statistics - this->results_.print_stats (this->test_object_->opname ()); - return this->results_.error_count ()? -1:0; -} - -// use DII -template int -Param_Test_Client::run_dii_test (void) -{ - CORBA::ULong i; // loop index - CORBA::Request_ptr req; // DII request - const char *opname = this->test_object_->opname (); - Options *opt = OPTIONS::instance (); - CORBA::Environment env; // environment - CORBA::NVList_ptr nvlist; // argument list for DII parameters - CORBA::NVList_ptr retval; // to access the NamedValue that stores the result - - // initialize call count and error count - this->results_.call_count (0); - this->results_.error_count (0); - this->results_.iterations (opt->loop_count ()); - - // initialize parameters for the test - if (this->test_object_->init_parameters (this->param_test_, env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) client.cpp - run_dii_test:" - "init_parameters failed for opname - %s", - opname), -1); - - // Make the calls in a loop. - for (i = 0; i < opt->loop_count (); i++) - { - this->results_.call_count (this->results_.call_count () + 1); - - // start the timing. We measure the entire overhead of DII, including the - // time required to create and populate the NVList - this->results_.start_timer (); - - // first create the argument list and populate it - this->orb_->create_list (3, nvlist); - this->orb_->create_list (1, retval); - - // add arguments and typecode for return valueto the NVList - if (this->test_object_->add_args (nvlist, retval, env) == -1) - { - this->results_.error_count (this->results_.error_count () + 1); - env.print_exception (opname); - ACE_ERROR ((LM_ERROR, - "(%N:%l) client.cpp - " - "Failed to add args in iteration %d", - i)); - continue; - } - - // create the request - this->param_test_->_create_request (opname, - nvlist, - retval->item (0, env), - req, - 0, //CORBA::OUT_LIST_MEMORY, - env); - // The OUT_LIST_MEMORY is to be used when the ORB assumes that - // we will provide the top-level storage. With 0, the returned - // values for ret, inout, and out parameters are all owned by - // the ORB and hence we must not free them explicitly. - - if (opt->debug ()) - ACE_DEBUG ((LM_DEBUG, "\n****** Before call values *****\n")); - - // Make the invocation, verify the result. - req->invoke (); - if (req->env ()->exception () != 0) - { - this->results_.error_count (this->results_.error_count () + 1); - req->env ()->print_exception (opname); - CORBA::release (req); - continue; - } - - if (opt->debug ()) - { - ACE_DEBUG ((LM_DEBUG, "\n****** After call values *****\n")); - this->test_object_->print_values (); - } - // now check if the values returned are as expected - if (!this->test_object_->check_validity (req)) - { - this->results_.error_count (this->results_.error_count () + 1); - ACE_ERROR ((LM_ERROR, - "(%N:%l) client.cpp - " - "Invalid results in run_dii_test in iteration %d", - i)); - CORBA::release (req); - continue; - } - // release the request - CORBA::release (req); - - // stop the this->results_. - this->results_.stop_timer (); - - // reset parameters for the test - this->test_object_->reset_parameters (); - - } // for loop - - // print statistics - this->results_.print_stats (opname); - return this->results_.error_count ()? -1:0; -} - - -#endif /* CLIENT_CPP */ diff --git a/TAO/tests/Param_Test/client.dsp b/TAO/tests/Param_Test/client.dsp deleted file mode 100644 index 3b521ea6b6b..00000000000 --- a/TAO/tests/Param_Test/client.dsp +++ /dev/null @@ -1,178 +0,0 @@ -# Microsoft Developer Studio Project File - Name="client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=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 "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 "client.mak" CFG="client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "client - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE "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)" == "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 "" -# 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 "..\..\\" /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 TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ELSEIF "$(CFG)" == "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 "..\..\\" /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 TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "client - Win32 Release" -# Name "client - Win32 Debug" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\driver.cpp -# End Source File -# Begin Source File - -SOURCE=.\helper.cpp -# End Source File -# Begin Source File - -SOURCE=.\options.cpp -# End Source File -# Begin Source File - -SOURCE=.\param_test.idl - -!IF "$(CFG)" == "client - Win32 Release" - -# Begin Custom Build -InputPath=.\param_test.idl - -BuildCmds= \ - ..\..\tao_idl\tao_idl Param_Test.idl - -"param_testS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "client - Win32 Debug" - -# Begin Custom Build -InputPath=.\param_test.idl - -BuildCmds= \ - ..\..\tao_idl\tao_idl Param_Test.idl - -"param_testS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\param_testC.cpp -# End Source File -# Begin Source File - -SOURCE=.\param_testS.cpp -# End Source File -# Begin Source File - -SOURCE=.\results.cpp -# End Source File -# Begin Source File - -SOURCE=.\tests.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Param_Test/client.h b/TAO/tests/Param_Test/client.h deleted file mode 100644 index a21b4d16cce..00000000000 --- a/TAO/tests/Param_Test/client.h +++ /dev/null @@ -1,76 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// client.h -// -// = DESCRIPTION -// Header file for the Param_Test client application. -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (PARAM_TEST_CLIENT_H) -#define PARAM_TEST_CLIENT_H - -#include "param_testC.h" -#include "results.h" - -template -class Param_Test_Client -{ - // = TITLE - // Param_Test_Client - // - // = DESCRIPTION - // This class declares an interface to run the example client for - // Param_Test CORBA server. All the complexity for initializing - // the client is hidden in the class. Just the run () interface - // is needed. The template class does the specific work of making - // the request of the desired data type -public: - typedef T TEST_OBJECT; - - // = Constructor and destructor. - Param_Test_Client (CORBA::ORB_ptr orb, - Param_Test_ptr objref, - T *); - - ~Param_Test_Client (void); - - int run_sii_test (void); - // run the SII test - - int run_dii_test (void); - // run the DII test - -private: - CORBA::ORB_ptr orb_; - // underlying ORB - - Param_Test_ptr param_test_; - // param test object reference - - TEST_OBJECT *test_object_; - // object doing the actual work - - Results results_; - // results -}; - -#if defined (ACE_TEMPLATES_REQUIRE_SOURCE) -#include "client.cpp" -#endif /* ACE_TEMPLATES_REQUIRE_SOURCE */ - -#if defined (ACE_TEMPLATES_REQUIRE_PRAGMA) -#pragma implementation ("client.cpp") -#endif /* ACE_TEMPLATES_REQUIRE_PRAGMA */ - -#endif /* CLIENTS_H */ diff --git a/TAO/tests/Param_Test/driver.cpp b/TAO/tests/Param_Test/driver.cpp deleted file mode 100644 index 775cb62b68e..00000000000 --- a/TAO/tests/Param_Test/driver.cpp +++ /dev/null @@ -1,417 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// driver.cpp -// -// = DESCRIPTION -// Driver program -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#include "options.h" -#include "results.h" -#include "client.h" -#include "tests.h" -#include "driver.h" - -// This function runs the test (main program) -int -main (int argc, char **argv) -{ - // get an instance of the driver object - Driver *drv = DRIVER::instance (); - - // initialize the driver - if (drv->init (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) driver.cpp - " - "Driver initialization failed\n"), - -1); - - // run various tests - if (drv->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) driver.cpp - " - "tests failed\n"), - -1); - return 0; -} - -// constructor -Driver::Driver (void) -{ -} - -Driver::~Driver (void) -{ -} - -// initialize the driver -int -Driver::init (int argc, char **argv) -{ - // environment to track exceptions - CORBA::Environment env; - - // retrieve the instance of Options - Options *opt = OPTIONS::instance (); - - // Retrieve the underlying ORB - this->orb_ = CORBA::ORB_init (argc, - argv, - "internet", - env); - - if (env.exception () != 0) - { - env.print_exception ("ORB initialization"); - return -1; - } - - // Parse command line and verify parameters. - if (opt->parse_args (argc, argv) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) driver.cpp - " - "parse_args failed\n"), - -1); - - // Retrieve a Param_Test object reference - CORBA::Object_var temp = - this->orb_->string_to_object (opt->param_test_ior (), env); - if (env.exception () != 0) - { - env.print_exception ("ORB::string_to_object() failed."); - return -1; - } - - if (CORBA::is_nil (temp.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "ORB::string_to_object() returned null object for IOR <%s>\n", - opt->param_test_ior ()), - -1); - - this->objref_ = Param_Test::_narrow (temp.in(), env); - if (env.exception () != 0) - { - env.print_exception ("Param_Test::_narrow failed"); - return -1; - } - - return 0; -} - -int -Driver::run (void) -{ - // serves as a factory of Param_Client objects. It is also responsible to - // start the test - - Options *opt = OPTIONS::instance (); // get the options object - int retstatus = -1; - - switch (opt->test_type ()) - { - case Options::TEST_SHORT: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Short); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_UNBOUNDED_STRING: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Unbounded_String); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_FIXED_STRUCT: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Fixed_Struct); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_STRING_SEQUENCE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_String_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_BOUNDED_STRING_SEQUENCE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Bounded_String_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_VAR_STRUCT: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Var_Struct); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_NESTED_STRUCT: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Nested_Struct); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_STRUCT_SEQUENCE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Struct_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_BOUNDED_STRUCT_SEQUENCE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Bounded_Struct_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_OBJREF: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_ObjRef); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_TYPECODE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_TypeCode); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_ANY: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Any); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_OBJREF_SEQUENCE: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_ObjRef_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_ANYSEQ: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_AnySeq); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_SHORTSEQ: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Short_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_BOUNDED_SHORTSEQ: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Bounded_Short_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_LONGSEQ: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Long_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - case Options::TEST_BOUNDED_LONGSEQ: - { - Param_Test_Client *client = new - Param_Test_Client (this->orb_.in (), - this->objref_.in(), - new Test_Bounded_Long_Sequence); - if (opt->invoke_type () == Options::SII) - retstatus = client->run_sii_test (); - else - retstatus = client->run_dii_test (); - delete client; - } - break; - default: - break; - } - - TAO_TRY - { - if (opt->shutdown ()) - { - this->objref_->shutdown (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("during shutdown"); - } - TAO_ENDTRY; - - return retstatus; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Singleton; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -template class Param_Test_Client; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Singleton -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#pragma instantiate Param_Test_Client -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Param_Test/driver.h b/TAO/tests/Param_Test/driver.h deleted file mode 100644 index 11456c125ab..00000000000 --- a/TAO/tests/Param_Test/driver.h +++ /dev/null @@ -1,52 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// driver.h -// -// = DESCRIPTION -// Header file for the driver program. The driver is a singleton. -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (DRIVER_H) -#define DRIVER_H - -#include "ace/Get_Opt.h" - -class Driver -{ - // = TITLE - // Driver - // - // = DESCRIPTION - // Driver program for the client -public: - // = Constructor and destructor. - Driver (void); - ~Driver (void); - - int init (int argc, char **argv); - // Initialize the driver object - - int run (void); - // Execute client example code. - -private: - CORBA::ORB_var orb_; - // underlying ORB (we do not own it) - - Param_Test_var objref_; - // object reference (we do not own it) -}; - -typedef ACE_Singleton DRIVER; -#endif /* !defined */ diff --git a/TAO/tests/Param_Test/helper.cpp b/TAO/tests/Param_Test/helper.cpp deleted file mode 100644 index 5e22ba3a49f..00000000000 --- a/TAO/tests/Param_Test/helper.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// helper.cpp -// -// = DESCRIPTION -// Defines a helper class that can generate values for the parameters used -// for the Param_Test example -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#include "helper.h" - -Generator::Generator (void) -{ -} - -Generator::~Generator (void) -{ -} - -CORBA::Short -Generator::gen_short (void) -{ - return (CORBA::Short) (ACE_OS::rand () % TEST_BUFSIZE); -} - -CORBA::Long -Generator::gen_long (void) -{ - return ::ACE_OS::rand () % TEST_BUFSIZE; -} - -char * -Generator::gen_string (void) -{ - CORBA::ULong len = (CORBA::ULong) (::ACE_OS::rand () % TEST_BUFSIZE); - char *buf = CORBA::string_alloc (len); - CORBA::ULong i = 0; - - while (i < len) - { - int c = ACE_OS::rand () % 128; - if (isprint (c) && !isspace (c)) - { - buf [i] = c; - i++; - } - } - buf[i] = 0; - return buf; -} - -const Param_Test::Fixed_Struct -Generator::gen_fixed_struct (void) -{ - this->fixed_struct_.l = ACE_OS::rand (); - this->fixed_struct_.c = ACE_OS::rand () % 128; - this->fixed_struct_.s = (CORBA::Short) ACE_OS::rand (); - this->fixed_struct_.o = ACE_OS::rand () % 128; - this->fixed_struct_.f = (CORBA::Float) (ACE_OS::rand () * 1.0); - this->fixed_struct_.b = (CORBA::Boolean) ACE_OS::rand () % 2; - this->fixed_struct_.d = (ACE_OS::rand () * 1.0); - return this->fixed_struct_; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Singleton; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Singleton -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Param_Test/helper.h b/TAO/tests/Param_Test/helper.h deleted file mode 100644 index d80e8ae40df..00000000000 --- a/TAO/tests/Param_Test/helper.h +++ /dev/null @@ -1,51 +0,0 @@ -// $Id - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// helper.h -// -// = DESCRIPTION -// Defines a helper class that can generate values for the parameters used -// for the Param_Test example -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (HELPER_H) -#define HELPER_H - -#include "param_testC.h" - -#define TEST_BUFSIZE 128 - -class Generator -{ -public: - Generator (void); - // constructor - - ~Generator (void); - // destructor - - CORBA::Short gen_short (void); - CORBA::Long gen_long (void); -#if 0 - CORBA::Char gen_char (void); - CORBA::Octet gen_octet (void); - CORBA::Float gen_float (void); - CORBA::Double gen_double (void); -#endif - CORBA::String gen_string (void); - const Param_Test::Fixed_Struct gen_fixed_struct (void); -private: - Param_Test::Fixed_Struct fixed_struct_; -}; - -typedef ACE_Singleton GENERATOR; -#endif /* HELPER_H */ diff --git a/TAO/tests/Param_Test/options.cpp b/TAO/tests/Param_Test/options.cpp deleted file mode 100644 index 141f7f42fbb..00000000000 --- a/TAO/tests/Param_Test/options.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// options.cpp -// -// = DESCRIPTION -// Options for the Param_Test application -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#include "options.h" - -// @@ Naga, can you please generalize this so we don't use a fixed -// sized constant?! -#define MAX_IOR_SIZE 512 - -// Constructor.p -Options::Options (void) - : ior_ (0), - test_type_ (Options::NO_TEST), - invoke_type_ (Options::SII), - loop_count_ (1), - debug_ (CORBA::B_FALSE), - shutdown_ (CORBA::B_FALSE) -{ -} - -Options::~Options (void) -{ - // Free resources - CORBA::string_free (this->ior_); - this->ior_ = 0; -} - -// Parses the command line arguments and returns an error status. - -int -Options::parse_args (int argc, char **argv) -{ - ACE_Get_Opt get_opts (argc, argv, "xdn:f:i:t:k:"); - int c; - char temp_buf[MAX_IOR_SIZE]; - char *result; - FILE *ior_file; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - this->debug_ = 1; - break; - - case 'x': - this->shutdown_ = CORBA::B_TRUE; - break; - - case 'n': // loop count - this->loop_count_ = (CORBA::ULong) ACE_OS::atoi (get_opts.optarg); - break; - - case 'f': - ior_file = ACE_OS::fopen (get_opts.optarg,"r"); - if (ior_file == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - result = ACE_OS::fgets (temp_buf, MAX_IOR_SIZE, ior_file); - if (result == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to read cubit_factory_ior from file %s: %p\n", - get_opts.optarg), -1); - this->ior_ = CORBA::string_copy (temp_buf); - ACE_OS::fclose (ior_file); - break; - - case 'k': - CORBA::string_free (this->ior_); - this->ior_ = CORBA::string_copy (get_opts.optarg); - break; - - case 'i': // invocation - if (!ACE_OS::strcmp (get_opts.optarg, "dii")) - this->invoke_type_ = Options::DII; - break; - - case 't': // data type - if (!ACE_OS::strcmp (get_opts.optarg, "short")) - this->test_type_ = Options::TEST_SHORT; - else if (!ACE_OS::strcmp (get_opts.optarg, "ubstring")) - this->test_type_ = Options::TEST_UNBOUNDED_STRING; - else if (!ACE_OS::strcmp (get_opts.optarg, "fixed_struct")) - this->test_type_ = Options::TEST_FIXED_STRUCT; - else if (!ACE_OS::strcmp (get_opts.optarg, "strseq")) - this->test_type_ = Options::TEST_STRING_SEQUENCE; - else if (!ACE_OS::strcmp (get_opts.optarg, "bounded_strseq")) - this->test_type_ = Options::TEST_BOUNDED_STRING_SEQUENCE; - else if (!ACE_OS::strcmp (get_opts.optarg, "var_struct")) - this->test_type_ = Options::TEST_VAR_STRUCT; - else if (!ACE_OS::strcmp (get_opts.optarg, "nested_struct")) - this->test_type_ = Options::TEST_NESTED_STRUCT; - else if (!ACE_OS::strcmp (get_opts.optarg, "struct_seq")) - this->test_type_ = Options::TEST_STRUCT_SEQUENCE; - else if (!ACE_OS::strcmp (get_opts.optarg, "bounded_struct_seq")) - this->test_type_ = Options::TEST_BOUNDED_STRUCT_SEQUENCE; - else if (!ACE_OS::strcmp (get_opts.optarg, "objref")) - this->test_type_ = Options::TEST_OBJREF; - else if (!ACE_OS::strcmp (get_opts.optarg, "typecode")) - this->test_type_ = Options::TEST_TYPECODE; - else if (!ACE_OS::strcmp (get_opts.optarg, "any")) - this->test_type_ = Options::TEST_ANY; - else if (!ACE_OS::strcmp (get_opts.optarg, "objref_sequence")) - this->test_type_ = Options::TEST_OBJREF_SEQUENCE; - else if (!ACE_OS::strcmp (get_opts.optarg, "any_sequence")) - this->test_type_ = Options::TEST_ANYSEQ; - else if (!ACE_OS::strcmp (get_opts.optarg, "short_sequence")) - this->test_type_ = Options::TEST_SHORTSEQ; - else if (!ACE_OS::strcmp (get_opts.optarg, "bounded_short_sequence")) - this->test_type_ = Options::TEST_BOUNDED_SHORTSEQ; - else if (!ACE_OS::strcmp (get_opts.optarg, "long_sequence")) - this->test_type_ = Options::TEST_LONGSEQ; - else if (!ACE_OS::strcmp (get_opts.optarg, "bounded_long_sequence")) - this->test_type_ = Options::TEST_BOUNDED_LONGSEQ; - break; - - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n loopcount]" - " [-f servant-IOR-file]" - " [-i invocation (sii/dii)]" - " [-t data type]" - "\n", - argv [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -char * -Options::param_test_ior (void) -{ - return this->ior_; -} - -Options::TEST_TYPE -Options::test_type (void) -{ - return this->test_type_; -} - -Options::INVOKE_TYPE -Options::invoke_type (void) -{ - return this->invoke_type_; -} - -CORBA::ULong -Options::loop_count (void) -{ - return this->loop_count_; -} - -CORBA::Boolean -Options::debug (void) const -{ - return this->debug_; -} - -CORBA::Boolean -Options::shutdown (void) const -{ - return this->shutdown_; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Singleton; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Singleton -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Param_Test/options.h b/TAO/tests/Param_Test/options.h deleted file mode 100644 index 7dbd6d755cc..00000000000 --- a/TAO/tests/Param_Test/options.h +++ /dev/null @@ -1,107 +0,0 @@ -// -*- c++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// options.h -// -// = DESCRIPTION -// Options for the Param_Test application -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (OPTIONS_H) -#define OPTIONS_H - -#include "ace/Singleton.h" -#include "tao/corba.h" - -class Options -{ -public: - enum TEST_TYPE - { - NO_TEST, - TEST_SHORT, - TEST_UNBOUNDED_STRING, - TEST_FIXED_STRUCT, - TEST_STRING_SEQUENCE, - TEST_BOUNDED_STRING_SEQUENCE, - TEST_VAR_STRUCT, - TEST_NESTED_STRUCT, - TEST_STRUCT_SEQUENCE, - TEST_BOUNDED_STRUCT_SEQUENCE, - TEST_OBJREF, - TEST_TYPECODE, - TEST_ANY, - TEST_OBJREF_SEQUENCE, - TEST_ANYSEQ, - TEST_SHORTSEQ, - TEST_BOUNDED_SHORTSEQ, - TEST_LONGSEQ, - TEST_BOUNDED_LONGSEQ - }; - - enum INVOKE_TYPE - { - SII, - DII - }; - - Options (void); - // constructor - - ~Options (void); - // destructor - - int parse_args (int argc, char **argv); - // Parses the arguments passed on the command line. - - char *param_test_ior (void); - // return the IOR for the servant - - TEST_TYPE test_type (void); - // what test to run - - INVOKE_TYPE invoke_type (void); - // whether to use SII or DII - - CORBA::ULong loop_count (void); - // number of times to run the test - - CORBA::Boolean debug (void) const; - // whether debug option is on or not - - CORBA::Boolean shutdown (void) const; - // If we should request the server to shutdown. - -private: - char *ior_; - // IOR for the servant - - TEST_TYPE test_type_; - // what test to run - - INVOKE_TYPE invoke_type_; - // whether SII or DII - - CORBA::ULong loop_count_; - // Number of times to do the "test_*" operations. - - CORBA::Boolean debug_; - // debugging output values - - CORBA::Boolean shutdown_; - // server shutdown flag. -}; - -typedef ACE_Singleton OPTIONS; - -#endif /* OPTIONS_H */ diff --git a/TAO/tests/Param_Test/param_test.idl b/TAO/tests/Param_Test/param_test.idl deleted file mode 100644 index f753bda4e1a..00000000000 --- a/TAO/tests/Param_Test/param_test.idl +++ /dev/null @@ -1,236 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// params.idl -// -// = DESCRIPTION -// This IDL description is used to test all the parameter passing modes (in, -// inout, out, and return) for a number of IDL data types. The goal is to -// verify the correctness of the generated stubs and skeletons, and the -// the marshaling engine of TAO. -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -interface Coffee -{ - struct Desc - { - string name; - }; - - attribute Desc description; // provides us the coffee object type -}; - -//typedef sequence ObjSeq; - -interface Param_Test -{ - // Add exceptions to each - - // primitive types - short test_short (in short s1, - inout short s2, - out short s3); - - // strings unbounded - string test_unbounded_string (in string s1, - inout string s2, - out string s3); - - // structures (fixed size) - struct Fixed_Struct - { - long l; - char c; - short s; - octet o; - float f; - boolean b; - double d; - }; - - Fixed_Struct test_fixed_struct (in Fixed_Struct s1, - inout Fixed_Struct s2, - out Fixed_Struct s3); - - // = Sequences of long, strings, Var_Struct and Object - // references... - typedef sequence Short_Seq; - Short_Seq test_short_sequence (in Short_Seq s1, - inout Short_Seq s2, - out Short_Seq s3); - - typedef sequence Bounded_Short_Seq; - Bounded_Short_Seq test_bounded_short_sequence (in Bounded_Short_Seq s1, - inout Bounded_Short_Seq s2, - out Bounded_Short_Seq s3); - - typedef sequence Long_Seq; - Long_Seq test_long_sequence (in Long_Seq s1, - inout Long_Seq s2, - out Long_Seq s3); - - typedef sequence Bounded_Long_Seq; - Bounded_Long_Seq test_bounded_long_sequence (in Bounded_Long_Seq s1, - inout Bounded_Long_Seq s2, - out Bounded_Long_Seq s3); - - typedef sequence StrSeq; - StrSeq test_strseq (in StrSeq s1, - inout StrSeq s2, - out StrSeq s3); - - typedef sequence Bounded_StrSeq; - Bounded_StrSeq test_bounded_strseq (in Bounded_StrSeq s1, - inout Bounded_StrSeq s2, - out Bounded_StrSeq s3); - - typedef sequence StructSeq; - StructSeq test_struct_sequence (in StructSeq s1, - inout StructSeq s2, - out StructSeq s3); - - typedef sequence Bounded_StructSeq; - Bounded_StructSeq test_bounded_struct_sequence (in Bounded_StructSeq s1, - inout Bounded_StructSeq s2, - out Bounded_StructSeq s3); - - typedef sequence Coffee_Mix; - Coffee_Mix test_coffe_mix (in Coffee_Mix s1, - inout Coffee_Mix s2, - out Coffee_Mix s3); - - typedef sequence Bounded_Coffee_Mix; - Bounded_Coffee_Mix test_bounded_coffe_mix (in Bounded_Coffee_Mix s1, - inout Bounded_Coffee_Mix s2, - out Bounded_Coffee_Mix s3); - - typedef sequence AnySeq; - AnySeq test_anyseq (in AnySeq s1, - inout AnySeq s2, - out AnySeq s3); - -/* typedef sequence Bounded_AnySeq; - Bounded_AnySeq test_bounded_anyseq (in Bounded_AnySeq s1, - inout Bounded_AnySeq s2, - out Bounded_AnySeq s3); -*/ - - typedef string DUMMY; - // variable structures - struct Var_Struct - { - DUMMY dummy1; - DUMMY dummy2; - StrSeq seq; - }; - - Var_Struct test_var_struct (in Var_Struct s1, - inout Var_Struct s2, - out Var_Struct s3); - - // nested structs (We reuse the var_struct defn above to make a very - // complicated nested structure) - struct Nested_Struct - { - Var_Struct vs; - }; - - Nested_Struct test_nested_struct (in Nested_Struct s1, - inout Nested_Struct s2, - out Nested_Struct s3); - - // object references - Coffee make_coffee (); // make a Coffee object - - // test the parameter passing conventions for ObjRefs - Coffee test_objref (in Coffee o1, inout Coffee o2, out Coffee o3); - - // test typecodes - TypeCode test_typecode (in TypeCode t1, inout TypeCode t2, out TypeCode t3); - - // Anys. We try to pump in all kinds of data types thru these Anys - any test_any (in any a1, inout any a2, out any a3); - - // arrays (fixed) - // typedef long LongArray [10]; - - // LongArray test_fixed_array (in LongArray l1, - // inout LongArray l2, - // out LongArray l3); - - // arrays (variable) - // typedef string StringArray [5]; - - // StringArray test_var_array (in StringArray s1, - // inout StringArray s2, - // out StringArray s3); - - // multidimensional arrays (fixed). The following will give rise to a 3 - // dimensional array - // typedef LongArray LongLongArray [4][5]; - - // LongLongArray test_muldim_array (in LongLongArray l1, - // inout LongLongArray l2, - // out LongLongArray l3); - - // sequence of typecodes - // typedef sequence TypeCodeSeq; - // TypeCodeSeq test_tcseq (in TypeCodeSeq t1, inout TypeCodeSeq t2, out TypeCodeSeq t3); - - void shutdown (); - // Shutdown the server: this is useful to check for memory leaks, - // performance results and in general to verify that orderly - // shutdown is possible. - - // test simple objects - // Object test_object (in Object o1, inout Object o2, out Object o3); - - /* - long test_long (in long l1, - inout long l2, - out long l3); - char test_char (in char c1, - inout char c2, - out char c3); - octet test_octet (in octet o1, - inout octet o2, - out octet o3); - - double test_double (in double d1, - inout double d2, - out double d3); - - // strings bounded - const unsigned long STRLEN = 10; - string test_bstring (in string s1, - inout string s2, - out string s3); - - // typedefed string - typedef string MYSTRING; - MYSTRING test_tstring (in MYSTRING s1, - inout MYSTRING s2, - out MYSTRING s3); - - - // more combinations to follow - union U switch (long) - { - case 0: sequence cseq; - case 1: sequence oseq; - case 2: StrSeq sseq; - }; - - // complex (but meaningless) to test the naming scheme - typedef sequence , 5>, 10> complex; - */ -}; diff --git a/TAO/tests/Param_Test/param_test_i.cpp b/TAO/tests/Param_Test/param_test_i.cpp deleted file mode 100644 index f89f3209d3d..00000000000 --- a/TAO/tests/Param_Test/param_test_i.cpp +++ /dev/null @@ -1,492 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// param_test_i.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "tao/corba.h" -#include "param_test_i.h" - -// ********* class Coffee_i **************** -// Constructor - -Coffee_i::Coffee_i (const char *name) - : name_ (name) -{ -} - -// Destructor - -Coffee_i::~Coffee_i (void) -{ -} - -// get attribute -Coffee::Desc * -Coffee_i::description (CORBA::Environment & /*env*/) -{ - Coffee::Desc *desc = new Coffee::Desc; - desc->name = CORBA::string_dup (this->name_); - return desc; -} - -// set attribute -void -Coffee_i::description (const Coffee::Desc &description, - CORBA::Environment & /*env*/) -{ - this->name_ = CORBA::string_dup (description.name); -} - - -// ********* class Param_Test_i **************** - -// Constructor - -Param_Test_i::Param_Test_i (const char *coffee_name, - const char *) - : obj_ (coffee_name) -{ -} - -// Destructor - -Param_Test_i::~Param_Test_i (void) -{ -} - -// test shorts -CORBA::Short -Param_Test_i::test_short (CORBA::Short s1, - CORBA::Short &s2, - CORBA::Short_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - s2 = s1 * 2; - s3 = s1 * 3; - return s1 * 4; -} - -// test unbounded strings. For return and out types, we return duplicates of -// the in string. For the inout, we append the same string to itself and send -// it back -char * -Param_Test_i::test_unbounded_string (const char *s1, - char *&s2, - CORBA::String_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - char *retstr = CORBA::string_dup (s1); - s3 = CORBA::string_dup (s1); - char *tmp = CORBA::string_alloc (2*ACE_OS::strlen (s2)); - ACE_OS::sprintf (tmp, "%s%s", s2, s2); - CORBA::string_free (s2); - s2 = tmp; - return retstr; -} - -// test for fixed structures. Just copy the in parameter into all the others -Param_Test::Fixed_Struct -Param_Test_i::test_fixed_struct (const Param_Test::Fixed_Struct &s1, - Param_Test::Fixed_Struct &s2, - Param_Test::Fixed_Struct_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - s2 = s1; - s3 = s1; - return s1; -} - -// = Sequences - -Param_Test::Long_Seq * Param_Test_i::test_long_sequence ( - const Param_Test::Long_Seq & s1, - Param_Test::Long_Seq & s2, - Param_Test::Long_Seq_out s3, - CORBA::Environment & - ) -{ - Param_Test::Long_Seq - *ret = new Param_Test::Long_Seq, - *out = new Param_Test::Long_Seq; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Short_Seq * Param_Test_i::test_short_sequence ( - const Param_Test::Short_Seq & s1, - Param_Test::Short_Seq & s2, - Param_Test::Short_Seq_out s3, - CORBA::Environment & - ) -{ - Param_Test::Short_Seq - *ret = new Param_Test::Short_Seq, - *out = new Param_Test::Short_Seq; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Bounded_Short_Seq * Param_Test_i::test_bounded_short_sequence ( - const Param_Test::Bounded_Short_Seq & s1, - Param_Test::Bounded_Short_Seq & s2, - Param_Test::Bounded_Short_Seq_out s3, - CORBA::Environment & - ) -{ - Param_Test::Bounded_Short_Seq - *ret = new Param_Test::Bounded_Short_Seq, - *out = new Param_Test::Bounded_Short_Seq; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Bounded_Long_Seq * Param_Test_i::test_bounded_long_sequence ( - const Param_Test::Bounded_Long_Seq & s1, - Param_Test::Bounded_Long_Seq & s2, - Param_Test::Bounded_Long_Seq_out s3, - CORBA::Environment & - ) -{ - Param_Test::Bounded_Long_Seq - *ret = new Param_Test::Bounded_Long_Seq, - *out = new Param_Test::Bounded_Long_Seq; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::StrSeq * -Param_Test_i::test_strseq (const Param_Test::StrSeq &s1, - Param_Test::StrSeq &s2, - Param_Test::StrSeq_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::StrSeq - *ret = new Param_Test::StrSeq, - *out = new Param_Test::StrSeq; - - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*SERVER SIDE=*=*=*=*=*=*=\n")); - for (CORBA::ULong i=0; (i < s2.length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (s2[i]? (const char *)s2[i]:""))); - } - if (s2.length () == 0) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - // now copy all elements of s1 into the others using the assignment operator - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Bounded_StrSeq * Param_Test_i::test_bounded_strseq ( - const Param_Test::Bounded_StrSeq & s1, - Param_Test::Bounded_StrSeq & s2, - Param_Test::Bounded_StrSeq_out s3, - CORBA::Environment & - ) -{ - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::Bounded_StrSeq - *ret = new Param_Test::Bounded_StrSeq, - *out = new Param_Test::Bounded_StrSeq; - - // now copy all elements of s1 into the others using the assignment operator - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -// test for struct sequences -Param_Test::StructSeq * -Param_Test_i::test_struct_sequence (const Param_Test::StructSeq &s1, - Param_Test::StructSeq &s2, - Param_Test::StructSeq_out s3, - CORBA::Environment &) -{ - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::StructSeq - *ret = new Param_Test::StructSeq, - - *out = new Param_Test::StructSeq; - - // now copy all elements of s1 into the others using the assignment operator - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Bounded_StructSeq * Param_Test_i::test_bounded_struct_sequence ( - const Param_Test::Bounded_StructSeq & s1, - Param_Test::Bounded_StructSeq & s2, - Param_Test::Bounded_StructSeq_out s3, - CORBA::Environment & - ) -{ - Param_Test::Bounded_StructSeq - *ret = new Param_Test::Bounded_StructSeq, - *out = new Param_Test::Bounded_StructSeq; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Coffee_Mix * Param_Test_i::test_coffe_mix ( - const Param_Test::Coffee_Mix & s1, - Param_Test::Coffee_Mix & s2, - Param_Test::Coffee_Mix_out s3, - CORBA::Environment & - ) -{ - Param_Test::Coffee_Mix - *ret = new Param_Test::Coffee_Mix, - *out = new Param_Test::Coffee_Mix; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::Bounded_Coffee_Mix * Param_Test_i::test_bounded_coffe_mix ( - const Param_Test::Bounded_Coffee_Mix & s1, - Param_Test::Bounded_Coffee_Mix & s2, - Param_Test::Bounded_Coffee_Mix_out s3, - CORBA::Environment & - ) -{ - Param_Test::Bounded_Coffee_Mix - *ret = new Param_Test::Bounded_Coffee_Mix, - *out = new Param_Test::Bounded_Coffee_Mix; - - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -Param_Test::AnySeq * -Param_Test_i::test_anyseq (const Param_Test::AnySeq &s1, - Param_Test::AnySeq &s2, - Param_Test::AnySeq_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::AnySeq - *ret = new Param_Test::AnySeq, - *out = new Param_Test::AnySeq; - - // now copy all elements of s1 into the others using the assignment operator - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -// = end of sequences... - -// test for variable structs -Param_Test::Var_Struct * -Param_Test_i::test_var_struct (const Param_Test::Var_Struct &s1, - Param_Test::Var_Struct &s2, - Param_Test::Var_Struct_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::Var_Struct - *ret = new Param_Test::Var_Struct, - *out = new Param_Test::Var_Struct; - - // now copy all elements of s1 into the others - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -// test for nested structs -Param_Test::Nested_Struct * -Param_Test_i::test_nested_struct (const Param_Test::Nested_Struct &s1, - Param_Test::Nested_Struct &s2, - Param_Test::Nested_Struct_out s3, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (env); - // we copy the "in" sequences into all the inout, out and return sequences. - - Param_Test::Nested_Struct - *ret = new Param_Test::Nested_Struct, - *out = new Param_Test::Nested_Struct; - - // now copy all elements of s1 into the others - s2 = s1; - *out = s1; - *ret = s1; - s3 = out; - return ret; -} - -// make a Coffee object -Coffee_ptr -Param_Test_i::make_coffee (CORBA::Environment &env) -{ - return this->obj_._this (env); -} - -// test for object references -Coffee_ptr -Param_Test_i::test_objref (Coffee_ptr o1, - Coffee_ptr &o2, - Coffee_out o3, - CORBA::Environment &env) -{ - Coffee_ptr ret = Coffee::_nil (); - - TAO_TRY - { - Coffee_var myobj = obj_._this (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (myobj->_is_equivalent (o1, env)) - { - o2 = Coffee::_duplicate (myobj.in ()); - o3 = Coffee::_duplicate (myobj.in ()); - ret = Coffee::_duplicate (myobj.in ()); - } - else - { - o2 = Coffee::_nil (); - o3 = Coffee::_nil (); - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - TAO_TRY_ENV.print_exception ("System Exception"); - env.exception (TAO_TRY_ENV.exception ()); - } - TAO_CATCH (CORBA::UserException, userex) - { - TAO_TRY_ENV.print_exception ("User Exception"); - env.exception (TAO_TRY_ENV.exception ()); - } - TAO_ENDTRY; - - return ret; -} - -// test for typecodes -CORBA::TypeCode_ptr -Param_Test_i::test_typecode (CORBA::TypeCode_ptr t1, - CORBA::TypeCode_ptr &t2, - CORBA::TypeCode_out t3, - CORBA::Environment &env) -{ - // we simply assign t1 to the others - CORBA::TypeCode_ptr retval = CORBA::TypeCode::_duplicate (t1); - t2 = CORBA::TypeCode::_duplicate (t1); - t3 = CORBA::TypeCode::_duplicate (t1); - return retval; -} - -// test for Anys -CORBA::Any * -Param_Test_i::test_any (const CORBA::Any &a1, - CORBA::Any &a2, - CORBA::Any_out a3, - CORBA::Environment &env) -{ - CORBA::Any *ret; - CORBA::Short short_in; - char *str_in; - Coffee_ptr coffee; - - a2 = a1; - a3 = new CORBA::Any (a1); - ret = new CORBA::Any (a1); - - // debug the incoming Any - if (a1 >>= short_in) - { - ACE_DEBUG ((LM_DEBUG, "Received short = %d\n", short_in)); - a2 >>= short_in; - ACE_DEBUG ((LM_DEBUG, "inout short = %d\n", short_in)); - *a3.ptr () >>= short_in; - ACE_DEBUG ((LM_DEBUG, "out short = %d\n", short_in)); - *ret >>= short_in; - ACE_DEBUG ((LM_DEBUG, "ret short = %d\n", short_in)); - } - else if (a1 >>= str_in) - { - ACE_DEBUG ((LM_DEBUG, "Received unbounded string = %s\n", str_in)); - } - else if (a1 >>= coffee) - { - ACE_DEBUG ((LM_DEBUG, "Received Coffee object\n")); - } - else - { - ACE_DEBUG ((LM_DEBUG, "Received UNKNOWN type\n")); - } - - return ret; -} - -void -Param_Test_i::shutdown (CORBA::Environment &) -{ - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} - diff --git a/TAO/tests/Param_Test/param_test_i.h b/TAO/tests/Param_Test/param_test_i.h deleted file mode 100644 index cd051379291..00000000000 --- a/TAO/tests/Param_Test/param_test_i.h +++ /dev/null @@ -1,195 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// param_test_i.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (PARAM_TEST_I_H) -#define PARAM_TEST_I_H - -#include "param_testS.h" - -// Implementation of the Coffee interface -class Coffee_i : public POA_Coffee - -{ -public: - Coffee_i (const char *name); - // constructor - - ~Coffee_i (void); - // destructor - - // =methods for the attribute - - virtual Coffee::Desc * description (CORBA::Environment &env); - // get attribute - - virtual void description (const Coffee::Desc &description, - CORBA::Environment &env); - // set attribute - -private: - CORBA::String_var name_; - // my description -}; - -// the implementation of the Param_test interface -class Param_Test_i : public POA_Param_Test -{ - // = TITLE - // Param_Test_i - // = DESCRIPTION - // Implementation of the Param_Test test suite. -public: - Param_Test_i (const char *coffee_name, - const char *obj_name = 0); - // Constructor - - ~Param_Test_i (void); - // Destructor - - virtual CORBA::Short test_short (CORBA::Short s1, - CORBA::Short &s2, - CORBA::Short_out s3, - CORBA::Environment &env); - // test for shorts - - virtual char *test_unbounded_string (const char *s1, - char *&s2, - CORBA::String_out s3, - CORBA::Environment &env); - // test for unbounded strings - - virtual Param_Test::Fixed_Struct - test_fixed_struct (const Param_Test::Fixed_Struct &s1, - Param_Test::Fixed_Struct &s2, - Param_Test::Fixed_Struct_out s3, - CORBA::Environment &env); - // test for fixed structures - - // = Start of sequences tests... - virtual Param_Test::Long_Seq * test_long_sequence ( - const Param_Test::Long_Seq & s1, - Param_Test::Long_Seq & s2, - Param_Test::Long_Seq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Bounded_Long_Seq * test_bounded_long_sequence ( - const Param_Test::Bounded_Long_Seq & s1, - Param_Test::Bounded_Long_Seq & s2, - Param_Test::Bounded_Long_Seq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Short_Seq * test_short_sequence ( - const Param_Test::Short_Seq & s1, - Param_Test::Short_Seq & s2, - Param_Test::Short_Seq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Bounded_Short_Seq * test_bounded_short_sequence ( - const Param_Test::Bounded_Short_Seq & s1, - Param_Test::Bounded_Short_Seq & s2, - Param_Test::Bounded_Short_Seq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::StrSeq * test_strseq ( - const Param_Test::StrSeq & s1, - Param_Test::StrSeq & s2, - Param_Test::StrSeq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Bounded_StrSeq * test_bounded_strseq ( - const Param_Test::Bounded_StrSeq & s1, - Param_Test::Bounded_StrSeq & s2, - Param_Test::Bounded_StrSeq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::StructSeq * test_struct_sequence ( - const Param_Test::StructSeq & s1, - Param_Test::StructSeq & s2, - Param_Test::StructSeq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Bounded_StructSeq * test_bounded_struct_sequence ( - const Param_Test::Bounded_StructSeq & s1, - Param_Test::Bounded_StructSeq & s2, - Param_Test::Bounded_StructSeq_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Coffee_Mix * test_coffe_mix ( - const Param_Test::Coffee_Mix & s1, - Param_Test::Coffee_Mix & s2, - Param_Test::Coffee_Mix_out s3, - CORBA::Environment &env - ); - virtual Param_Test::Bounded_Coffee_Mix * test_bounded_coffe_mix ( - const Param_Test::Bounded_Coffee_Mix & s1, - Param_Test::Bounded_Coffee_Mix & s2, - Param_Test::Bounded_Coffee_Mix_out s3, - CORBA::Environment &env - ); - virtual Param_Test::AnySeq * test_anyseq ( - const Param_Test::AnySeq & s1, - Param_Test::AnySeq & s2, - Param_Test::AnySeq_out s3, - CORBA::Environment &env - ); - // = End of sequences tests.... - - virtual Param_Test::Var_Struct * - test_var_struct (const Param_Test::Var_Struct &s1, - Param_Test::Var_Struct &s2, - Param_Test::Var_Struct_out s3, - CORBA::Environment &env); - // test for variable structs - - virtual Param_Test::Nested_Struct * - test_nested_struct (const Param_Test::Nested_Struct &s1, - Param_Test::Nested_Struct &s2, - Param_Test::Nested_Struct_out s3, - CORBA::Environment &env); - // test for nested structs - - virtual Coffee_ptr - make_coffee (CORBA::Environment &env); - // make a coffee object - - virtual Coffee_ptr - test_objref (Coffee_ptr o1, - Coffee_ptr &o2, - Coffee_out o3, - CORBA::Environment &env); - // test for object references - - virtual CORBA::TypeCode_ptr - test_typecode (CORBA::TypeCode_ptr t1, - CORBA::TypeCode_ptr &o2, - CORBA::TypeCode_out o3, - CORBA::Environment &env); - // test for typecodes - - virtual CORBA::Any * - test_any (const CORBA::Any &a1, - CORBA::Any &a2, - CORBA::Any_out a3, - CORBA::Environment &env); - // test for Anys - - void shutdown (CORBA::Environment &env); - -private: - Coffee_i obj_; - // the coffee object reference we maintain -}; - -#endif /* PARAM_TEST_I_H */ diff --git a/TAO/tests/Param_Test/results.cpp b/TAO/tests/Param_Test/results.cpp deleted file mode 100644 index d9ef89ed88f..00000000000 --- a/TAO/tests/Param_Test/results.cpp +++ /dev/null @@ -1,151 +0,0 @@ -// $Id: - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// results.cpp -// -// = DESCRIPTION -// Printing the results -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#include "results.h" - -Results::Results (void) -{ -} - -Results::~Results (void) -{ - delete [] this->elapsed_time_; -} - -void -Results::print_stats (const char *call_name) -{ - double - avg_real_time = 0, - avg_user_time = 0, - avg_system_time = 0, - cps; // calls per sec - - CORBA::ULong i; - - ACE_DEBUG ((LM_DEBUG, - "********** %s *********\n", - call_name)); - - if (this->error_count_ == 0) - { - ACE_DEBUG ((LM_DEBUG, - "Iteration\tReal time (msec)\tUser time (msec)" - "\tSystem time (msec)\n\n")); - for (i = 0; i < this->call_count_; i++) - { - this->elapsed_time_[i].real_time *= ACE_ONE_SECOND_IN_MSECS; - this->elapsed_time_[i].user_time *= ACE_ONE_SECOND_IN_MSECS; - this->elapsed_time_[i].system_time *= ACE_ONE_SECOND_IN_MSECS; - avg_real_time += this->elapsed_time_[i].real_time; - avg_user_time += this->elapsed_time_[i].user_time; - avg_system_time += this->elapsed_time_[i].system_time; - - ACE_DEBUG ((LM_DEBUG, - "%u\t\t%0.06f\t\t%0.06f\t\t%0.06f\n", - i, - (this->elapsed_time_[i].real_time < 0.0? - 0.0:this->elapsed_time_[i].real_time), - (this->elapsed_time_[i].user_time < 0.0? - 0.0:this->elapsed_time_[i].user_time), - (this->elapsed_time_[i].system_time < 0.0? - 0.0:this->elapsed_time_[i].system_time))); - } // end of for loop - - // compute average - avg_real_time /= this->call_count_; - avg_user_time /= this->call_count_; - avg_system_time /= this->call_count_; - cps = 1000 / avg_real_time; - - ACE_DEBUG ((LM_DEBUG, - "\n*=*=*=*=*= Average *=*=*=*=*=*=\n" - "\treal_time\t= %0.06f ms, \n" - "\tuser_time\t= %0.06f ms, \n" - "\tsystem_time\t= %0.06f ms\n" - "\t%0.00f calls/second\n" - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", - (avg_real_time < 0.0? 0.0:avg_real_time), - (avg_user_time < 0.0? 0.0:avg_user_time), - (avg_system_time < 0.0? 0.0:avg_system_time), - (cps < 0.0? 0.0 : cps))); - - } - else - { - ACE_ERROR ((LM_ERROR, - "\tNo time stats printed. Call count zero or error ocurred.\n")); - - } - - ACE_DEBUG ((LM_DEBUG, - "\t%d calls, %d errors\n" - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=\n", - this->call_count_, - this->error_count_)); -} - -void -Results::print_exception (const char *call_name, - CORBA::Environment &env) -{ - env.print_exception (call_name); -} - -void -Results::start_timer (void) -{ - this->timer_.start (); -} - -void -Results::stop_timer (void) -{ - this->timer_.stop (); - this->timer_.elapsed_time (this->elapsed_time_[this->call_count_-1]); -} - -CORBA::ULong -Results::call_count (void) -{ - return this->call_count_; -} - -void -Results::call_count (CORBA::ULong c) -{ - this->call_count_ = c; -} - -CORBA::ULong -Results::error_count (void) -{ - return this->error_count_; -} - -void -Results::error_count (CORBA::ULong c) -{ - this->error_count_ = c; -} - -void -Results::iterations (CORBA::ULong iters) -{ - this->elapsed_time_ = new ACE_Profile_Timer::ACE_Elapsed_Time [iters]; -} diff --git a/TAO/tests/Param_Test/results.h b/TAO/tests/Param_Test/results.h deleted file mode 100644 index 2b13af0495e..00000000000 --- a/TAO/tests/Param_Test/results.h +++ /dev/null @@ -1,77 +0,0 @@ -// $Id: - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// results.h -// -// = DESCRIPTION -// Printing the results -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (RESULTS_H) -#define RESULTS_H - -#include "ace/Profile_Timer.h" -#include "ace/Log_Msg.h" -#include "tao/corba.h" - -class Results -{ -public: - Results (void); - // ctor - - ~Results (void); - // destructor - - void print_stats (const char *call_name); - // prints the time stats - - void print_exception (const char *call_name, - CORBA::Environment &); - // print the exception - - void start_timer (void); - // start timing - - void stop_timer (void); - // stop timing - - CORBA::ULong call_count (void); - // return call count - - void call_count (CORBA::ULong); - // set the call count - - CORBA::ULong error_count (void); - // return the error count - - void error_count (CORBA::ULong); - // set error count - - void iterations (CORBA::ULong iters); - // set the number of times the test will be run - -private: - CORBA::ULong call_count_; - // # of calls made to functions - - CORBA::ULong error_count_; - // # of errors incurred in the lifetime of the application. - - ACE_Profile_Timer timer_; - // for timing the test - - ACE_Profile_Timer::ACE_Elapsed_Time *elapsed_time_; - // holds the elapsed time for each iteration -}; - -#endif /* RESULTS_H */ diff --git a/TAO/tests/Param_Test/run_test.pl b/TAO/tests/Param_Test/run_test.pl deleted file mode 100755 index bb4b865e604..00000000000 --- a/TAO/tests/Param_Test/run_test.pl +++ /dev/null @@ -1,41 +0,0 @@ -#!/pkg/gnu/bin/perl -I../../../bin -# -# If your perl installation isn't in /pkg/gnu/bin/perl, -# please make the change accordingly -# - -use Process; - -#uid=`id | cut -c5-20 | cut -f1 -d"("` -$port = 30001 + $uid; -$iorfile = "theior"; -$invocation = "sii"; - -$SV = Process::Create (".".$DIR_SEPARATOR."server".$Process::EXE_EXT, - "-ORBobjrefstyle url -ORBport ".$port." -o ".$iorfile." 2"); -sleep (2); # Give the server a chance to start up - -# "any" should be added at some time. - -@types = ("short", "ubstring", "fixed_struct", "strseq", "bounded_strseq", "var_struct", "nested_struct", - "struct_seq", "bounded_struct_seq", "objref", "objref_sequence", "any_sequence", - "short_sequence", "long_sequence", "bounded_short_sequence", "bounded_long_sequence"); - - -foreach $type (@types) -{ - print ("BEGIN Testing type ".$type."\n"); - system (".".$DIR_SEPARATOR."client -f ".$iorfile." -i ".$invocation." -t ".$type." 2"); - print ("END Testing type ".$type."\n"); -} - -$SV->Kill (); - -if ($^O eq "MSWin32") -{ - system ("del ".$iorfile); -} -else -{ - system ("rm ".$iorfile); -} \ No newline at end of file diff --git a/TAO/tests/Param_Test/run_test.sh b/TAO/tests/Param_Test/run_test.sh deleted file mode 100755 index 8b0a7ef384c..00000000000 --- a/TAO/tests/Param_Test/run_test.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/sh -# $Id$ - -uid=`id | cut -c5-20 | cut -f1 -d"("` -port=`expr 30001 + $uid` -iorfile=theior -invocation=sii - -if [ `uname -s` = 'SunOS' ]; then - #### SunOS sh's trap doesn't understand symbolic names for signals. - sigchld=18 -else - sigchld='SIGCHLD' - # Don't do this on SunOS. It goes into an endless loop. - trap "start_server" $sigchld -fi - -start_server() -{ - ./server -ORBobjrefstyle url -ORBport $port -o $iorfile 2>&1 | \ - sed -e 's/^/SERVER: /' & - server_pid=`ps | grep server | grep -v grep | awk '{print $1;}'` - sleep 2 # Give the server a chance to start up -} - -# Restart the server if we get SIGCHLD, i.e., the server died. -start_server -trap "kill $server_pid; rm -f $iorfile" 0 1 2 3 15 - -types="short ubstring fixed_struct strseq var_struct nested_struct struct_seq objref" -for type in $types -do - echo "BEGIN Testing type $type" - ./client -f $iorfile -i $invocation -t $type 2>&1 | \ - sed -e "s/^/CLIENT($type): /" - echo "END Testing type $type" -done diff --git a/TAO/tests/Param_Test/server.cpp b/TAO/tests/Param_Test/server.cpp deleted file mode 100644 index 7984102acf4..00000000000 --- a/TAO/tests/Param_Test/server.cpp +++ /dev/null @@ -1,176 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" - -#include "param_test_i.h" - -// Parses the command line arguments and returns an error status. -static FILE *ior_output_file = 0; - -static int -parse_args (int argc, char *argv[]) -{ - ACE_Get_Opt get_opts (argc, argv, "do:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag - TAO_debug_level++; - break; - case 'o': - ior_output_file = ACE_OS::fopen (get_opts.optarg, "w"); - if (ior_output_file == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to open %s for writing: %p\n", - get_opts.optarg), -1); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - "\n", argv [0]), 1); - } - - return 0; // Indicates successful parsing of command line -} - -// Standard command line parsing utilities used. - -int -main (int argc, char *argv[]) -{ - PortableServer::POA_var oa_ptr; - Param_Test_i *param_test = 0; - - TAO_TRY - { - char *orb_name = "internet"; // unused by TAO - CORBA::Object_var temp; // holder for the myriad of times we get - // an object which we then have to narrow. - - // get the underlying ORB - CORBA::ORB_var orb_ptr = CORBA::ORB_init (argc, argv, orb_name, TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Get the Root POA - - temp = orb_ptr->resolve_initial_references ("RootPOA"); - if (CORBA::is_nil (temp.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "(%P|%t) Unable to get root poa reference.\n"), - 1); - - oa_ptr = PortableServer::POA::_narrow (temp.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::POAManager_var poa_manager = - oa_ptr->the_POAManager (TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::PolicyList policies (2); - policies.length (2); - policies[0] = - oa_ptr->create_id_assignment_policy (PortableServer::USER_ID, - TAO_TRY_ENV); - policies[1] = - oa_ptr->create_lifespan_policy (PortableServer::PERSISTENT, - TAO_TRY_ENV); - - // We use a different POA, otherwise the user would have to - // change the object key each time it invokes the server. - PortableServer::POA_var good_poa = - oa_ptr->create_POA ("RootPOA_is_BAD", - poa_manager.in (), - policies, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse remaining command line and verify parameters. - parse_args (argc, argv); - - // initialize a param_test target object and register it with the object - // adapter - - // Create the implementation object - ACE_NEW_RETURN (param_test, Param_Test_i ("unknown"), 1); - - // Register with GoodPOA with a specific name - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId ("param_test"); - good_poa->activate_object_with_id (id.in (), - param_test, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Stringify the objref we'll be implementing, and print it to - // stdout. Someone will take that string and give it to a - // client. Then release the object. - - temp = good_poa->id_to_reference (id.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - CORBA::String_var str = - orb_ptr->object_to_string (temp.in (), - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, "(%P|%t) The IOR is <%s>\n", str.in ())); - if (ior_output_file) - { - ACE_OS::fprintf (ior_output_file, "%s", str.in()); - ACE_OS::fclose (ior_output_file); - } - - - // Make the POAs controlled by this manager active - poa_manager->activate (TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (orb_ptr->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), -1); - - good_poa->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - oa_ptr->destroy (CORBA::B_TRUE, - CORBA::B_TRUE, - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - - // Free resources - delete param_test; - - return 0; -} diff --git a/TAO/tests/Param_Test/server.dsp b/TAO/tests/Param_Test/server.dsp deleted file mode 100644 index ac7d8a5d830..00000000000 --- a/TAO/tests/Param_Test/server.dsp +++ /dev/null @@ -1,162 +0,0 @@ -# Microsoft Developer Studio Project File - Name="server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.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 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 "" -# 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 "..\..\\" /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 TAO.lib ace.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!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 "..\..\\" /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 TAO.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\tao" /libpath:"..\..\..\ace" - -!ENDIF - -# Begin Target - -# Name "server - Win32 Release" -# Name "server - Win32 Debug" -# Begin Source File - -SOURCE=.\param_test.idl - -!IF "$(CFG)" == "server - Win32 Release" - -# Begin Custom Build -InputPath=.\param_test.idl - -BuildCmds= \ - ..\..\tao_idl\tao_idl Param_Test.idl - -"param_testS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ELSEIF "$(CFG)" == "server - Win32 Debug" - -# Begin Custom Build -InputPath=.\param_test.idl - -BuildCmds= \ - ..\..\tao_idl\tao_idl Param_Test.idl - -"param_testS.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testS.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) - -"param_testC.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - $(BuildCmds) -# End Custom Build - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\param_test_i.cpp -# End Source File -# Begin Source File - -SOURCE=.\param_testC.cpp -# End Source File -# Begin Source File - -SOURCE=.\param_testS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Param_Test/svc.conf b/TAO/tests/Param_Test/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/Param_Test/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Param_Test/tests.cpp b/TAO/tests/Param_Test/tests.cpp deleted file mode 100644 index 3df1b6f12a4..00000000000 --- a/TAO/tests/Param_Test/tests.cpp +++ /dev/null @@ -1,3397 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// tests.cpp -// -// = DESCRIPTION -// All the test objects defined here -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#include "helper.h" -#include "tests.h" - - -// ************************************************************************ -// Test_Short -// ************************************************************************ - -Test_Short::Test_Short (void) - : opname_ (CORBA::string_dup ("test_short")) -{ -} - -Test_Short::~Test_Short (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_Short::opname (void) const -{ - return this->opname_; -} - -int -Test_Short::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - this->in_ = gen->gen_short (); - this->inout_ = 0; - return 0; -} - -int -Test_Short::reset_parameters (void) -{ - this->inout_ = 0; - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Short::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - this->ret_ = objref->test_short (this->in_, this->inout_, this->out_, env); - return (env.exception () ? -1:0); -} - -int -Test_Short::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - // we provide top level memory to the ORB to retrieve the data - CORBA::Any in_arg (CORBA::_tc_short, &this->in_, 0); - CORBA::Any inout_arg (CORBA::_tc_short, &this->inout_, 0); - CORBA::Any out_arg (CORBA::_tc_short, &this->out_, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value. Let the ORB allocate storage. We simply tell the ORB - // what type we are expecting. - (void)retval->item (0, env)->value ()->replace (CORBA::_tc_short, - 0, // no value - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Short::check_validity (void) -{ - if (this->inout_ == this->in_*2 && - this->out_ == this->in_*3 && - this->ret_ == this->in_*4) - return 1; // success - else - return 0; -} - -CORBA::Boolean -Test_Short::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; -#if 0 - // commented out since we really don't need to this as we have provided the - // ORB with the memory - *req->arguments ()->item (1, env)->value () >>= this->inout_; - *req->arguments ()->item (2, env)->value () >>= this->out_; -#endif - // we must retrieve the return value since we aske dthe ORB to allocate the - // memory. - *req->result ()->value () >>= this->ret_; - return this->check_validity (); -} - -void -Test_Short::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "\n=*=*=*=*=*=*\n" - "in = %d, " - "inout = %d, " - "out = %d, " - "ret = %d\n" - "\n=*=*=*=*=*=*\n", - this->in_, - this->inout_, - this->out_, - this->ret_)); -} - - -// ************************************************************************ -// Test_Unbounded_String -// ************************************************************************ - -Test_Unbounded_String::Test_Unbounded_String (void) - : opname_ (CORBA::string_dup ("test_unbounded_string")), - in_ (0), - inout_ (0), - out_ (0), - ret_ (0) -{ -} - -Test_Unbounded_String::~Test_Unbounded_String (void) -{ - CORBA::string_free (this->opname_); - CORBA::string_free (this->in_); - CORBA::string_free (this->inout_); - CORBA::string_free (this->out_); - CORBA::string_free (this->ret_); - this->opname_ = 0; - this->in_ = 0; - this->inout_ = 0; - this->out_ = 0; - this->ret_ = 0; -} - -const char * -Test_Unbounded_String::opname (void) const -{ - return this->opname_; -} - -int -Test_Unbounded_String::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // release any previously occupied values - CORBA::string_free (this->in_); - CORBA::string_free (this->inout_); - CORBA::string_free (this->out_); - CORBA::string_free (this->ret_); - this->in_ = 0; - this->inout_ = 0; - this->out_ = 0; - this->ret_ = 0; - - this->in_ = gen->gen_string (); - this->inout_ = CORBA::string_dup (this->in_); - return 0; -} - -int -Test_Unbounded_String::reset_parameters (void) -{ - // release any previously occupied values - this->inout_ = 0; - this->out_ = 0; - this->ret_ = 0; - - this->inout_ = CORBA::string_dup (this->in_); - return 0; -} - -int -Test_Unbounded_String::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - CORBA::String_out str_out (this->out_); - this->ret_ = objref->test_unbounded_string (this->in_, this->inout_, str_out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Unbounded_String::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (CORBA::_tc_string, &this->in_, 0); - CORBA::Any inout_arg (CORBA::_tc_string, &this->inout_, 0); - CORBA::Any out_arg (CORBA::_tc_string, &this->out_, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (CORBA::_tc_string, - 0, // ORB will allocate - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Unbounded_String::check_validity (void) -{ - CORBA::ULong len = ACE_OS::strlen (this->in_); - - if (!ACE_OS::strcmp (this->in_, this->out_) && - !ACE_OS::strcmp (this->in_, this->ret_) && - ACE_OS::strlen (this->inout_) == 2*len && - !ACE_OS::strncmp (this->in_, this->inout_, len) && - !ACE_OS::strncmp (this->in_, &this->inout_[len], len)) - return 1; - - return 0; // otherwise -} - -CORBA::Boolean -Test_Unbounded_String::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; - // only retrieve the return value. No need to retrieve the out and inout - // because we had provided the memory and we own it. - *req->result ()->value () >>= this->ret_; - return this->check_validity (); -} - -void -Test_Unbounded_String::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "\n=*=*=*=*=*=*\n" - "in with len (%d) = %s\n" - "inout with len (%d) = %s\n" - "out with len (%d) = %s\n" - "ret with len (%d) = %s\n" - "\n=*=*=*=*=*=*\n", - (this->in_ ? ACE_OS::strlen (this->in_):0), - (this->in_ ? this->in_:""), - (this->inout_ ? ACE_OS::strlen (this->inout_):0), - (this->inout_ ? this->inout_:""), - (this->out_ ? ACE_OS::strlen (this->out_):0), - (this->out_ ? this->out_:""), - (this->ret_ ? ACE_OS::strlen (this->ret_):0), - (this->ret_ ? this->ret_:""))); -} - -// ************************************************************************ -// Test_Fixed_Struct -// ************************************************************************ - -Test_Fixed_Struct::Test_Fixed_Struct (void) - : opname_ (CORBA::string_dup ("test_fixed_struct")) -{ -} - -Test_Fixed_Struct::~Test_Fixed_Struct (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_Fixed_Struct::opname (void) const -{ - return this->opname_; -} - -int -Test_Fixed_Struct::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - this->in_ = gen->gen_fixed_struct (); - ACE_OS::memset (&this->inout_, 0, sizeof (Param_Test::Fixed_Struct)); - return 0; -} - -int -Test_Fixed_Struct::reset_parameters (void) -{ - ACE_OS::memset (&this->inout_, 0, sizeof (Param_Test::Fixed_Struct)); - ACE_OS::memset (&this->out_, 0, sizeof (Param_Test::Fixed_Struct)); - ACE_OS::memset (&this->ret_, 0, sizeof (Param_Test::Fixed_Struct)); - return 0; -} - -int -Test_Fixed_Struct::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - this->ret_ = objref->test_fixed_struct (this->in_, this->inout_, this->out_, - env); - return (env.exception () ? -1:0); -} - -int -Test_Fixed_Struct::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - // We provide the top level memory - // the Any does not own any of these - CORBA::Any in_arg (Param_Test::_tc_Fixed_Struct, &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_Fixed_Struct, &this->inout_, 0); - CORBA::Any out_arg (Param_Test::_tc_Fixed_Struct, &this->out_, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Fixed_Struct, - 0, // let the ORB allocate - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Fixed_Struct::check_validity (void) -{ - if (this->in_.l == this->inout_.l && - this->in_.c == this->inout_.c && - this->in_.s == this->inout_.s && - this->in_.o == this->inout_.o && - this->in_.f == this->inout_.f && - this->in_.b == this->inout_.b && - this->in_.d == this->inout_.d && - this->in_.l == this->out_.l && - this->in_.c == this->out_.c && - this->in_.s == this->out_.s && - this->in_.o == this->out_.o && - this->in_.f == this->out_.f && - this->in_.b == this->out_.b && - this->in_.d == this->out_.d && - this->in_.l == this->ret_.l && - this->in_.c == this->ret_.c && - this->in_.s == this->ret_.s && - this->in_.o == this->ret_.o && - this->in_.f == this->ret_.f && - this->in_.b == this->ret_.b && - this->in_.d == this->ret_.d) - return 1; - else - return 0; -} - -CORBA::Boolean -Test_Fixed_Struct::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; - - // we have forced the ORB to allocate memory for the return value so that we - // can test the >>= operator - Param_Test::Fixed_Struct *ret; - *req->result ()->value () >>= ret; - this->ret_ = *ret; - return this->check_validity (); -} - -void -Test_Fixed_Struct::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "\n=*=*=*=*=*=*\n" - "in = {\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n" - "}\n" - "inout = {\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n" - "}\n" - "out = {\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n" - "}\n" - "ret = {\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n" - "}\n" - "=*=*=*=*=*=*\n", - this->in_.l, - this->in_.c, - this->in_.s, - this->in_.o, - this->in_.f, - this->in_.b, - this->in_.d, - this->inout_.l, - this->inout_.c, - this->inout_.s, - this->inout_.o, - this->inout_.f, - this->inout_.b, - this->inout_.d, - this->out_.l, - this->out_.c, - this->out_.s, - this->out_.o, - this->out_.f, - this->out_.b, - this->out_.d, - this->ret_.l, - this->ret_.c, - this->ret_.s, - this->ret_.o, - this->ret_.f, - this->ret_.b, - this->ret_.d)); -} - -// ************************************************************************ -// Test_String_Sequence -// ************************************************************************ - -Test_String_Sequence::Test_String_Sequence (void) - : opname_ (CORBA::string_dup ("test_strseq")), - in_ (new Param_Test::StrSeq), - inout_ (new Param_Test::StrSeq), - out_ (0), - ret_ (0) -{ -} - -Test_String_Sequence::~Test_String_Sequence (void) -{ -} - -const char * -Test_String_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_String_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - // Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - const char *choiceList[] = - { - "one", - "two", - "three" - }; - - CORBA::ULong len = sizeof(choiceList)/sizeof(char *); - - // get some sequence length (not more than 10) - // CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_->length (len); - this->inout_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - // char *str = gen->gen_string (); - //this->in_[i] = str; - this->in_[i] = choiceList[i]; - this->inout_[i] = choiceList[i]; - } - return 0; -} - -int -Test_String_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::StrSeq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_String_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::StrSeq_out out (this->out_.out ()); - this->ret_ = objref->test_strseq (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_String_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_StrSeq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_StrSeq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_StrSeq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_StrSeq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_String_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if (ACE_OS::strcmp (this->in_[i], this->inout_[i]) || - ACE_OS::strcmp (this->in_[i], this->out_[i]) || - ACE_OS::strcmp (this->in_[i], this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_String_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::StrSeq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; - -#endif - return this->check_validity (); -} - -void -Test_String_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Bounded_String_Sequence -// ************************************************************************ - -Test_Bounded_String_Sequence::Test_Bounded_String_Sequence (void) - : opname_ (CORBA::string_dup ("test_bounded_strseq")), - in_ (new Param_Test::Bounded_StrSeq), - inout_ (new Param_Test::Bounded_StrSeq), - out_ (0), - ret_ (0) -{ -} - -Test_Bounded_String_Sequence::~Test_Bounded_String_Sequence (void) -{ -} - -const char * -Test_Bounded_String_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Bounded_String_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - // Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - const char *choiceList[] = - { - "one", - "two", - "three" - }; - - CORBA::ULong len = this->in_->maximum (); - - // set the length of the sequence - this->in_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - // char *str = gen->gen_string (); - //this->in_[i] = str; - this->in_[i] = choiceList[i%3]; - - } - return 0; -} - -int -Test_Bounded_String_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Bounded_StrSeq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Bounded_String_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Bounded_StrSeq_out out (this->out_.out ()); - this->ret_ = objref->test_bounded_strseq (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Bounded_String_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Bounded_StrSeq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_Bounded_StrSeq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_Bounded_StrSeq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Bounded_StrSeq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Bounded_String_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if (ACE_OS::strcmp (this->in_[i], this->inout_[i]) || - ACE_OS::strcmp (this->in_[i], this->out_[i]) || - ACE_OS::strcmp (this->in_[i], this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Bounded_String_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::Bounded_StrSeq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; -#endif - - return this->check_validity (); -} - -void -Test_Bounded_String_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Var_Struct -// ************************************************************************ - -Test_Var_Struct::Test_Var_Struct (void) - : opname_ (CORBA::string_dup ("test_var_struct")), - inout_ (new Param_Test::Var_Struct), - out_ (0), - ret_ (0) -{ -} - -Test_Var_Struct::~Test_Var_Struct (void) -{ - CORBA::string_free (this->opname_); - // the other data members will be freed as they are "_var"s and objects - // (rather than pointers to objects) -} - -const char * -Test_Var_Struct::opname (void) const -{ - return this->opname_; -} - -int -Test_Var_Struct::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) gen->gen_long (); - - // set the length of the sequence - this->in_.dummy1 = gen->gen_string (); - this->in_.dummy2 = gen->gen_string (); - this->in_.seq.length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_.seq.length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - char *str = gen->gen_string (); - this->in_.seq[i] = str; - } - return 0; -} - -int -Test_Var_Struct::reset_parameters (void) -{ - this->inout_ = new Param_Test::Var_Struct; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Var_Struct::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Var_Struct_out out (this->out_.out ()); - this->ret_ = objref->test_var_struct (this->in_, - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Var_Struct::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Var_Struct, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_Var_Struct, &this->inout_.inout (), 0); - CORBA::Any out_arg (Param_Test::_tc_Var_Struct, this->out_.out (), 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Var_Struct, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Var_Struct::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((!ACE_OS::strcmp (this->in_.dummy1, this->inout_->dummy1)) && - (!ACE_OS::strcmp (this->in_.dummy1, this->out_->dummy1)) && - (!ACE_OS::strcmp (this->in_.dummy1, this->ret_->dummy1)) && - (!ACE_OS::strcmp (this->in_.dummy2, this->inout_->dummy2)) && - (!ACE_OS::strcmp (this->in_.dummy2, this->out_->dummy2)) && - (!ACE_OS::strcmp (this->in_.dummy2, this->ret_->dummy2)) && - (this->in_.seq.length () == this->inout_->seq.length ()) && - (this->in_.seq.length () == this->out_->seq.length ()) && - (this->in_.seq.length () == this->ret_->seq.length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_.seq.length () && flag; i++) - { - if (ACE_OS::strcmp (this->in_.seq[i], this->inout_->seq[i]) || - ACE_OS::strcmp (this->in_.seq[i], this->out_->seq[i]) || - ACE_OS::strcmp (this->in_.seq[i], this->ret_->seq[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Var_Struct::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; - this->inout_ = new Param_Test::Var_Struct (*(Param_Test::Var_Struct *) req->arguments - ()->item (1, env)->value ()->value ()); - this->out_ = new Param_Test::Var_Struct (*(Param_Test::Var_Struct *) req->arguments - ()->item (2, env)->value ()->value ()); - this->ret_ = new Param_Test::Var_Struct (*(Param_Test::Var_Struct *)req->result - ()->value ()->value ()); - return this->check_validity (); -} - -void -Test_Var_Struct::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "\n*=*=*=*=*=*=*=*=*=*=\n" - "in_.dummy1 = %s\n" - "inout_.dummy1 = %s\n" - "out_.dummy1 = %s\n" - "ret_.dummy1 = %s\n", - this->in_.dummy1.in (), - this->inout_->dummy1.in (), - this->out_->dummy1.in (), - this->ret_->dummy1.in ())); - - ACE_DEBUG ((LM_DEBUG, - "\n*=*=*=*=*=*=*=*=*=*=\n" - "in_.dummy2 = %s\n" - "inout_.dummy2 = %s\n" - "out_.dummy2 = %s\n" - "ret_.dummy2 = %s\n", - this->in_.dummy2.in (), - this->inout_->dummy2.in (), - this->out_->dummy2.in (), - this->ret_->dummy2.in ())); - - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; i < this->in_.seq.length (); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in.seq : %s\n", - i, - (this->in_.seq[i]? (const char *)this->in_.seq[i]:""))); - } - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->seq.length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "inout : %s\n", - i, - (this->inout_->seq[i]? (const char *)this->inout_->seq[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout struct does not exist\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->seq.length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_->seq[i]? (const char *)this->out_->seq[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout struct is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->seq.length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_->seq[i]? (const char *)this->ret_->seq[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nret struct is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Nested_Struct -// ************************************************************************ - -Test_Nested_Struct::Test_Nested_Struct (void) - : opname_ (CORBA::string_dup ("test_nested_struct")), - inout_ (new Param_Test::Nested_Struct), - out_ (0), - ret_ (0) -{ -} - -Test_Nested_Struct::~Test_Nested_Struct (void) -{ - CORBA::string_free (this->opname_); - // the other data members will be freed as they are "_var"s and objects - // (rather than pointers to objects) -} - -const char * -Test_Nested_Struct::opname (void) const -{ - return this->opname_; -} - -int -Test_Nested_Struct::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_.vs.seq.length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_.vs.seq.length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - char *str = gen->gen_string (); - this->in_.vs.seq[i] = str; - } - return 0; -} - -int -Test_Nested_Struct::reset_parameters (void) -{ - this->inout_ = new Param_Test::Nested_Struct; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Nested_Struct::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Nested_Struct_out out (this->out_.out ()); - this->ret_ = objref->test_nested_struct (this->in_, - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Nested_Struct::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Nested_Struct, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_Nested_Struct, &this->inout_.inout (), 0); - CORBA::Any out_arg (Param_Test::_tc_Nested_Struct, this->out_.out (), 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Nested_Struct, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Nested_Struct::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_.vs.seq.length () == this->inout_->vs.seq.length ()) && - (this->in_.vs.seq.length () == this->out_->vs.seq.length ()) && - (this->in_.vs.seq.length () == this->ret_->vs.seq.length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_.vs.seq.length () && flag; i++) - { - if (ACE_OS::strcmp (this->in_.vs.seq[i], this->inout_->vs.seq[i]) || - ACE_OS::strcmp (this->in_.vs.seq[i], this->out_->vs.seq[i]) || - ACE_OS::strcmp (this->in_.vs.seq[i], this->ret_->vs.seq[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Nested_Struct::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; - this->inout_ = new Param_Test::Nested_Struct (*(Param_Test::Nested_Struct *) - req->arguments ()->item - (1, env)->value ()->value ()); - this->out_ = new Param_Test::Nested_Struct (*(Param_Test::Nested_Struct *) req->arguments - ()->item (2, env)->value ()->value ()); - this->ret_ = new Param_Test::Nested_Struct (*(Param_Test::Nested_Struct *)req->result - ()->value ()->value ()); - return this->check_validity (); -} - -void -Test_Nested_Struct::print_values (void) -{ - for (CORBA::ULong i=0; i < this->in_.vs.seq.length (); i++) - { - ACE_DEBUG ((LM_DEBUG, - "\n*=*=*=*=*=*=*=*=*=*=\n" - "Element # %d\n" - "in (len = %d): %s\n" - "inout (len = %d): %s\n" - "out (len = %d): %s\n" - "ret (len = %d): %s\n", - this->in_.vs.seq.length (), - (this->in_.vs.seq.length ()? (const char *)this->in_.vs.seq[i]:""), - this->inout_->vs.seq.length (), - (this->inout_->vs.seq.length ()? (const char *)this->inout_->vs.seq[i]:""), - this->out_->vs.seq.length (), - (this->out_->vs.seq.length ()? (const char *)this->out_->vs.seq[i]:""), - this->ret_->vs.seq.length (), - (this->ret_->vs.seq.length ()? (const char *)this->ret_->vs.seq[i]:""))); - } -} - -// ************************************************************************ -// Test_Struct_Sequence -// ************************************************************************ - -Test_Struct_Sequence::Test_Struct_Sequence (void) - : opname_ (CORBA::string_dup ("test_struct_sequence")), - inout_ (new Param_Test::StructSeq), - out_ (0), - ret_ (0) -{ -} - -Test_Struct_Sequence::~Test_Struct_Sequence (void) -{ - CORBA::string_free (this->opname_); - // the other data members will be freed as they are "_var"s and objects - // (rather than pointers to objects) -} - -const char * -Test_Struct_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Struct_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_.length (len); - // now set each individual element - for (CORBA::ULong i = 0; i < this->in_.length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - this->in_[i] = gen->gen_fixed_struct (); - } - return 0; -} - -int -Test_Struct_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::StructSeq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Struct_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::StructSeq_out out (this->out_.out ()); - this->ret_ = objref->test_struct_sequence (this->in_, - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Struct_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_StructSeq, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_StructSeq, &this->inout_.inout (), 0); - CORBA::Any out_arg (Param_Test::_tc_StructSeq, this->out_.out (), 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_StructSeq, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Struct_Sequence::check_validity (void) -{ - if (this->compare (this->in_, this->inout_.in ()) && - this->compare (this->in_, this->out_.in ()) && - this->compare (this->in_, this->ret_.in ())) - return 1; - else - return 0; -} - -CORBA::Boolean -Test_Struct_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - this->inout_ = new Param_Test::StructSeq (*(Param_Test::StructSeq *) - req->arguments ()->item - (1, env)->value ()->value ()); - this->out_ = new Param_Test::StructSeq (*(Param_Test::StructSeq *) req->arguments - ()->item (2, env)->value ()->value ()); - this->ret_ = new Param_Test::StructSeq (*(Param_Test::StructSeq *)req->result - ()->value ()->value ()); - -#endif - return this->check_validity (); -} - -void -Test_Struct_Sequence::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "IN sequence\n")); - this->print_sequence (this->in_); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "INOUT sequence\n")); - this->print_sequence (this->inout_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "OUT sequence\n")); - this->print_sequence (this->out_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "RET sequence\n")); - this->print_sequence (this->ret_.in ()); -} - -CORBA::Boolean -Test_Struct_Sequence::compare (const Param_Test::StructSeq &s1, - const Param_Test::StructSeq &s2) -{ - if (s1.maximum () != s2.maximum ()) - return 0; - if (s1.length () != s2.length ()) - return 0; - - for (CORBA::ULong i=0; i < s1.length (); i++) - { - const Param_Test::Fixed_Struct& vs1 = s1[i]; - const Param_Test::Fixed_Struct& vs2 = s2[i]; - - if (vs1.l != vs2.l - || vs1.c != vs2.c - || vs1.s != vs2.s - || vs1.o != vs2.o - || vs1.f != vs2.f - || vs1.b != vs2.b - || vs1.d != vs2.d ) - return 0; - } - - return 1; // success -} - -void -Test_Struct_Sequence::print_sequence (const Param_Test::StructSeq &s) -{ - ACE_DEBUG ((LM_DEBUG, - "maximum = %d\n" - "length = %d\n", - s.maximum (), - s.length ())); - ACE_DEBUG ((LM_DEBUG, "Elements -\n")); - for (CORBA::ULong i=0; i < s.length (); i++) - { - const Param_Test::Fixed_Struct& vs = s[i]; - - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n", - i, - vs.l, vs.c, vs.s, vs.o, vs.f, vs.b, vs.d)); - } -} - -// ************************************************************************ -// Test_Bounded_Struct_Sequence -// ************************************************************************ - -Test_Bounded_Struct_Sequence::Test_Bounded_Struct_Sequence (void) - : opname_ (CORBA::string_dup ("test_bounded_struct_sequence")), - inout_ (new Param_Test::Bounded_StructSeq), - out_ (0), - ret_ (0) -{ -} - -Test_Bounded_Struct_Sequence::~Test_Bounded_Struct_Sequence (void) -{ - CORBA::string_free (this->opname_); - // the other data members will be freed as they are "_var"s and objects - // (rather than pointers to objects) -} - -const char * -Test_Bounded_Struct_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Bounded_Struct_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = this->in_.maximum (); - - // set the length of the sequence - this->in_.length (len); - // now set each individual element - for (CORBA::ULong i = 0; i < this->in_.length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - this->in_[i] = gen->gen_fixed_struct (); - } - return 0; -} - -int -Test_Bounded_Struct_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Bounded_StructSeq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Bounded_Struct_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Bounded_StructSeq_out out (this->out_.out ()); - this->ret_ = objref->test_bounded_struct_sequence (this->in_, - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Bounded_Struct_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Bounded_StructSeq, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_Bounded_StructSeq, &this->inout_.inout (), 0); - CORBA::Any out_arg (Param_Test::_tc_Bounded_StructSeq, this->out_.out (), 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Bounded_StructSeq, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Bounded_Struct_Sequence::check_validity (void) -{ - if (this->compare (this->in_, this->inout_.in ()) && - this->compare (this->in_, this->out_.in ()) && - this->compare (this->in_, this->ret_.in ())) - return 1; - else - return 0; -} - -CORBA::Boolean -Test_Bounded_Struct_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - this->inout_ = new Param_Test::Bounded_StructSeq (*(Param_Test::Bounded_StructSeq *) - req->arguments ()->item - (1, env)->value ()->value ()); - this->out_ = new Param_Test::Bounded_StructSeq (*(Param_Test::Bounded_StructSeq *) req->arguments - ()->item (2, env)->value ()->value ()); - this->ret_ = new Param_Test::Bounded_StructSeq (*(Param_Test::Bounded_StructSeq *)req->result - ()->value ()->value ()); -#endif - return this->check_validity (); -} - -void -Test_Bounded_Struct_Sequence::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "IN sequence\n")); - this->print_sequence (this->in_); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "INOUT sequence\n")); - this->print_sequence (this->inout_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "OUT sequence\n")); - this->print_sequence (this->out_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "RET sequence\n")); - this->print_sequence (this->ret_.in ()); -} - -CORBA::Boolean -Test_Bounded_Struct_Sequence::compare (const Param_Test::Bounded_StructSeq &s1, - const Param_Test::Bounded_StructSeq &s2) -{ - if (s1.maximum () != s2.maximum ()) - return 0; - if (s1.length () != s2.length ()) - return 0; - - for (CORBA::ULong i=0; i < s1.length (); i++) - { - const Param_Test::Fixed_Struct& vs1 = s1[i]; - const Param_Test::Fixed_Struct& vs2 = s2[i]; - - if (vs1.l != vs2.l - || vs1.c != vs2.c - || vs1.s != vs2.s - || vs1.o != vs2.o - || vs1.f != vs2.f - || vs1.b != vs2.b - || vs1.d != vs2.d ) - return 0; - } - - return 1; // success -} - -void -Test_Bounded_Struct_Sequence::print_sequence (const Param_Test::Bounded_StructSeq &s) -{ - ACE_DEBUG ((LM_DEBUG, - "maximum = %d\n" - "length = %d\n", - s.maximum (), - s.length ())); - ACE_DEBUG ((LM_DEBUG, "Elements -\n")); - for (CORBA::ULong i=0; i < s.length (); i++) - { - const Param_Test::Fixed_Struct& vs = s[i]; - - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n", - i, - vs.l, vs.c, vs.s, vs.o, vs.f, vs.b, vs.d)); - } -} - -// ************************************************************************ -// Test_ObjRef -// ************************************************************************ - -Test_ObjRef::Test_ObjRef (void) - : opname_ (CORBA::string_dup ("test_objref")) -{ -} - -Test_ObjRef::~Test_ObjRef (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_ObjRef::opname (void) const -{ - return this->opname_; -} - -static const char *Coffee_Flavor [] = { - "Italian Roast", - "Irish Creme", - "Costa Rican", - "Colombian Supremo", - "Macademia Nut", - "Swiss Chocolate Mocha" -}; - -int -Test_ObjRef::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Coffee::Desc desc; - Generator *gen = GENERATOR::instance (); // value generator - - // first get a Coffee object - this->in_ = objref->make_coffee (env); - if (env.exception ()) - { - env.print_exception ("make_coffee"); - return -1; - } - - // get some sequence length (not more than 10) - CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6); - desc.name = Coffee_Flavor [index]; - // set the attribute of the object - this->in_->description (desc, env); // set the attribute for the in object - if (env.exception ()) - { - env.print_exception ("set coffee attribute"); - return -1; - } - return 0; -} - -int -Test_ObjRef::reset_parameters (void) -{ - CORBA::Environment env; - Coffee::Desc desc; - Generator *gen = GENERATOR::instance (); // value generator - - // get some sequence length (not more than 10) - CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6); - desc.name = Coffee_Flavor [index]; - // set the attribute of the object - this->in_->description (desc, env); // set the attribute for the in object - if (env.exception ()) - { - env.print_exception ("set coffee attribute"); - return -1; - } - - this->inout_ = Coffee::_nil (); - this->out_ = Coffee::_nil (); - this->ret_ = Coffee::_nil (); - return 0; -} - -int -Test_ObjRef::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Coffee_out out (this->out_.out ()); - this->ret_ = objref->test_objref (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_ObjRef::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (_tc_Coffee, &this->in_, 0); - CORBA::Any inout_arg (_tc_Coffee, &this->inout_, 0); - CORBA::Any out_arg (_tc_Coffee, &this->out_, 0); - - // add parameters - (void)param_list->add_value ("o1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("o2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("o3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (_tc_Coffee, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_ObjRef::check_validity (void) -{ - CORBA::Environment env; - char // attribute names - *in, - *inout, - *out, - *ret; - - in = this->in_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return 0; - } - - inout = this->inout_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return 0; - } - - out = this->out_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return 0; - } - - ret = this->ret_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return 0; - } - - // now compare them - if (!ACE_OS::strcmp (in, inout) && - !ACE_OS::strcmp (in, out) && - !ACE_OS::strcmp (in, ret)) - return 1; // success - else - return 0; -} - -CORBA::Boolean -Test_ObjRef::check_validity (CORBA::Request_ptr req) -{ - CORBA::Environment env; - this->inout_ = Coffee::_narrow ((CORBA::Object_ptr) req->arguments ()->item - (1, env)->value ()->value (), env); - if (env.exception ()) - { - env.print_exception ("_narrow from DII result"); - return 0; - } - - this->out_ = Coffee::_narrow ((CORBA::Object_ptr) req->arguments ()->item - (2, env)->value ()->value (), env); - if (env.exception ()) - { - env.print_exception ("_narrow from DII result"); - return 0; - } - - this->ret_ = Coffee::_narrow ((CORBA::Object_ptr)req->result ()->value - ()->value (), env); - if (env.exception ()) - { - env.print_exception ("_narrow from DII result"); - return 0; - } - - return this->check_validity (); -} - -void -Test_ObjRef::print_values (void) -{ - CORBA::Environment env; - char // attribute names - *in, - *inout, - *out, - *ret; - - in = this->in_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return; - } - - inout = this->inout_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return; - } - - out = this->out_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return; - } - - ret = this->ret_->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description"); - return; - } - - ACE_DEBUG ((LM_DEBUG, - "\n=*=*=*=*=*=*" - "in = %s, " - "inout = %s, " - "out = %s, " - "ret = %s*=*=*=*=*=\n", - in, - inout, - out, - ret)); -} - -// ************************************************************************ -// Test_TypeCode -// ************************************************************************ - -Test_TypeCode::Test_TypeCode (void) - : opname_ (CORBA::string_dup ("test_typecode")) -{ -} - -Test_TypeCode::~Test_TypeCode (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_TypeCode::opname (void) const -{ - return this->opname_; -} - -static const CORBA::TypeCode_ptr tc_table [] = { - // primitive parameterless typecodes - CORBA::_tc_short, - // typecode with a simple parameter - CORBA::_tc_string, - // complex typecodes - CORBA::_tc_Object, - _tc_Param_Test, - Param_Test::_tc_StructSeq, - Param_Test::_tc_Nested_Struct -}; - -int -Test_TypeCode::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6); - - this->in_ = CORBA::TypeCode::_duplicate (tc_table [index]); - this->inout_ = CORBA::TypeCode::_duplicate (CORBA::_tc_null); - - return 0; -} - -int -Test_TypeCode::reset_parameters (void) -{ - Generator *gen = GENERATOR::instance (); // value generator - CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6); - this->in_ = CORBA::TypeCode::_duplicate (tc_table [index]); - this->inout_ = CORBA::TypeCode::_duplicate (CORBA::_tc_null); - return 0; -} - -int -Test_TypeCode::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - CORBA::TypeCode_out out (this->out_.out ()); - this->ret_ = objref->test_typecode (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_TypeCode::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - return 0; -} - -CORBA::Boolean -Test_TypeCode::check_validity (void) -{ - CORBA::Environment env; - if (this->in_->equal (this->inout_.in (), env) && - this->in_->equal (this->out_.in (), env) && - this->in_->equal (this->ret_.in (), env)) - return 1; - else - return 0; -} - -CORBA::Boolean -Test_TypeCode::check_validity (CORBA::Request_ptr req) -{ - return this->check_validity (); -} - -void -Test_TypeCode::print_values (void) -{ -} - -// ************************************************************************ -// Test_Any -// ************************************************************************ - -Test_Any::Test_Any (void) - : opname_ (CORBA::string_dup ("test_any")) -{ -} - -Test_Any::~Test_Any (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_Any::opname (void) const -{ - return this->opname_; -} - -int -Test_Any::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - // CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 3); - CORBA::ULong index = 2; - - switch (index) - { - case 0: - { - CORBA::Short s; - s = gen->gen_short (); - ACE_DEBUG ((LM_DEBUG, "setting short = %d\n", s)); - this->in_ <<= s; - this->inout_ <<= s; - } - break; - case 1: - { - char *str = gen->gen_string (); - ACE_DEBUG ((LM_DEBUG, "setting string = %s\n", str)); - this->in_ <<= str; - this->inout_ <<= str; - } - break; - case 2: - { - TAO_TRY - { - // get access to a Coffee Object - Coffee_var cobj = objref->make_coffee (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // insert the coffee object into the Any - this->in_ <<= cobj.in (); - this->inout_ <<= cobj.in (); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception doing make_coffee"); - return -1; - } - TAO_ENDTRY; - } - break; - case 3: - break; - case 4: - break; - case 5: - break; - } - return 0; -} - -int -Test_Any::reset_parameters (void) -{ - Generator *gen = GENERATOR::instance (); // value generator - // CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 2); - CORBA::ULong index = 2; - - switch (index) - { - case 0: - { - CORBA::Short s; - s = gen->gen_short (); - this->in_ <<= s; - this->inout_ <<= s; - } - break; - case 1: - { - char *str = gen->gen_string (); - this->in_ <<= str; - this->inout_ <<= str; - } - break; - case 2: - { - this->inout_ = this->in_; - } - break; - case 3: - break; - case 4: - break; - case 5: - break; - } - return 0; -} - -int -Test_Any::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - CORBA::Any_out out (this->out_.out ()); - this->ret_ = objref->test_any (this->in_, - this->inout_, - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Any::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - return 0; -} - -CORBA::Boolean -Test_Any::check_validity (void) -{ - CORBA::Environment env; - CORBA::Short short_in, short_inout, short_out, short_ret; - char *str_in, *str_inout, *str_out, *str_ret; - Coffee_ptr obj_in, obj_inout, obj_out, obj_ret; - - if ((this->in_ >>= short_in) && - (this->inout_ >>= short_inout) && - (this->out_.in () >>= short_out) && - (this->ret_.in () >>= short_ret)) - { - ACE_DEBUG ((LM_DEBUG, "Received shorts: in = %d, " - "inout = %d, out = %d, ret = %d\n", - short_in, short_inout, short_out, short_ret)); - - if ((short_in == short_inout) && - (short_in == short_out) && - (short_in == short_ret)) - return 1; - else - { - ACE_DEBUG ((LM_DEBUG, "mismatch of short values\n")); - return 0; - } - } - else if ((this->in_ >>= str_in) && - (this->inout_ >>= str_inout) && - (this->out_.in () >>= str_out) && - (this->ret_.in () >>= str_ret)) - { - if (!ACE_OS::strcmp (str_in, str_inout) && - !ACE_OS::strcmp (str_in, str_out) && - !ACE_OS::strcmp (str_in, str_ret)) - return 1; - else - { - ACE_DEBUG ((LM_DEBUG, "mismatch of string values\n")); - return 0; - } - } - else if ((this->in_ >>= obj_in) && - (this->inout_ >>= obj_inout) && - (this->out_.in () >>= obj_out) && - (this->ret_.in () >>= obj_ret)) - { - // all the >>= operators returned true so we are OK. - return 1; - } - else - return 0; -} - -CORBA::Boolean -Test_Any::check_validity (CORBA::Request_ptr req) -{ - return this->check_validity (); -} - -void -Test_Any::print_values (void) -{ -} - -// ************************************************************************ -// Test_Short_Sequence -// ************************************************************************ - -Test_Short_Sequence::Test_Short_Sequence (void) - : opname_ (CORBA::string_dup ("test_shortseq")), - in_ (new Param_Test::Short_Seq), - inout_ (new Param_Test::Short_Seq), - out_ (0), - ret_ (0) -{ -} - -Test_Short_Sequence::~Test_Short_Sequence (void) -{ -} - -const char * -Test_Short_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Short_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - this->in_[i] = i; - - } - return 0; -} - -int -Test_Short_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Short_Seq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Short_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Short_Seq_out out (this->out_.out ()); - this->ret_ = objref->test_short_sequence (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Short_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Short_Seq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_Short_Seq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_Short_Seq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Short_Seq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Short_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if ((this->in_[i] != this->inout_[i]) || - (this->in_[i] != this->out_[i]) || - (this->in_[i] != this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Short_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::Short_Seq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; - -#endif - return this->check_validity (); -} - -void -Test_Short_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Bounded_Short_Sequence -// ************************************************************************ - -Test_Bounded_Short_Sequence::Test_Bounded_Short_Sequence (void) - : opname_ (CORBA::string_dup ("test_bounded_shortseq")), - in_ (new Param_Test::Bounded_Short_Seq), - inout_ (new Param_Test::Bounded_Short_Seq), - out_ (0), - ret_ (0) -{ -} - -Test_Bounded_Short_Sequence::~Test_Bounded_Short_Sequence (void) -{ -} - -const char * -Test_Bounded_Short_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Bounded_Short_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = this->in_->maximum (); - - // set the length of the sequence - this->in_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->maximum (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - this->in_[i] = i; - - } - return 0; -} - -int -Test_Bounded_Short_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Bounded_Short_Seq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Bounded_Short_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Bounded_Short_Seq_out out (this->out_.out ()); - this->ret_ = objref->test_bounded_short_sequence (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Bounded_Short_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Bounded_Short_Seq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_Bounded_Short_Seq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_Bounded_Short_Seq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Bounded_Short_Seq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Bounded_Short_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if ((this->in_[i] != this->inout_[i]) || - (this->in_[i] != this->out_[i]) || - (this->in_[i] != this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Bounded_Short_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::Bounded_Short_Seq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; -#endif - return this->check_validity (); -} - -void -Test_Bounded_Short_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Long_Sequence -// ************************************************************************ - -Test_Long_Sequence::Test_Long_Sequence (void) - : opname_ (CORBA::string_dup ("test_longseq")), - in_ (new Param_Test::Long_Seq), - inout_ (new Param_Test::Long_Seq), - out_ (0), - ret_ (0) -{ -} - -Test_Long_Sequence::~Test_Long_Sequence (void) -{ -} - -const char * -Test_Long_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Long_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - this->in_[i] = i; - } - return 0; -} - -int -Test_Long_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Long_Seq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Long_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Long_Seq_out out (this->out_.out ()); - this->ret_ = objref->test_long_sequence (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Long_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Long_Seq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_Long_Seq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_Long_Seq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Long_Seq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Long_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if ((this->in_[i] != this->inout_[i]) || - (this->in_[i] != this->out_[i]) || - (this->in_[i] != this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Long_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::Long_Seq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; -#endif - return this->check_validity (); -} - -void -Test_Long_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_Bounded_Long_Sequence -// ************************************************************************ - -Test_Bounded_Long_Sequence::Test_Bounded_Long_Sequence (void) - : opname_ (CORBA::string_dup ("test_bounded_longseq")), - in_ (new Param_Test::Bounded_Long_Seq), - inout_ (new Param_Test::Bounded_Long_Seq), - out_ (0), - ret_ (0) -{ -} - -Test_Bounded_Long_Sequence::~Test_Bounded_Long_Sequence (void) -{ -} - -const char * -Test_Bounded_Long_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_Bounded_Long_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (objref); - ACE_UNUSED_ARG (env); - - // get some sequence length (not more than 10) - CORBA::ULong len = this->in_->maximum (); - - // set the length of the sequence - this->in_->length (len); - // now set each individual element - for (CORBA::ULong i=0; i < this->in_->maximum (); i++) - { - this->in_[i] = i; - } - return 0; -} - -int -Test_Bounded_Long_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Bounded_Long_Seq; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_Bounded_Long_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Bounded_Long_Seq_out out (this->out_.out ()); - this->ret_ = objref->test_bounded_long_sequence (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_Bounded_Long_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Bounded_Long_Seq, (void *) &this->in_.in (), 0); - CORBA::Any inout_arg (Param_Test::_tc_Bounded_Long_Seq, &this->inout_.inout (), 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_Bounded_Long_Seq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Bounded_Long_Seq, - 0, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_Bounded_Long_Sequence::check_validity (void) -{ - CORBA::Boolean flag = 0; - if ((this->in_->length () == this->inout_->length ()) && - (this->in_->length () == this->out_->length ()) && - (this->in_->length () == this->ret_->length ())) - { - flag = 1; // assume all are equal - // lengths are same. Now compare the contents - for (CORBA::ULong i=0; i < this->in_->length () && flag; i++) - { - if ((this->in_[i] != this->inout_[i]) || - (this->in_[i] != this->out_[i]) || - (this->in_[i] != this->ret_[i])) - // not equal - flag = 0; - } - } - return flag; -} - -CORBA::Boolean -Test_Bounded_Long_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::Bounded_Long_Seq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; -#endif - return this->check_validity (); -} - -void -Test_Bounded_Long_Sequence::print_values (void) -{ - CORBA::ULong i; - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->in_.ptr () && (i < this->in_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - this->in_[i]? (const char *)this->in_[i]:"")); - } - if (!this->in_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->inout_.ptr () && (i < this->inout_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->inout_[i]? (const char *)this->inout_[i]:""))); - } - if (!this->inout_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\ninout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->out_.ptr () && (i < this->out_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->out_[i]? (const char *)this->out_[i]:""))); - } - if (!this->out_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nout sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); - for (i=0; this->ret_.ptr () && (i < this->ret_->length ()); i++) - { - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "in : %s\n", - i, - (this->ret_[i]? (const char *)this->ret_[i]:""))); - } - if (!this->ret_.ptr ()) - ACE_DEBUG ((LM_DEBUG, "\nin sequence is NUL\n")); - ACE_DEBUG ((LM_DEBUG, "\n*=*=*=*=*=*=*=*=*=*=\n")); -} - -// ************************************************************************ -// Test_ObjRef_Sequence -// ************************************************************************ - -Test_ObjRef_Sequence::Test_ObjRef_Sequence (void) - : opname_ (CORBA::string_dup ("test_objref_sequence")), - inout_ (new Param_Test::Coffee_Mix), - out_ (0), - ret_ (0) -{ -} - -Test_ObjRef_Sequence::~Test_ObjRef_Sequence (void) -{ - CORBA::string_free (this->opname_); - // the other data members will be freed as they are "_var"s and objects - // (rather than pointers to objects) -} - -const char * -Test_ObjRef_Sequence::opname (void) const -{ - return this->opname_; -} - -int -Test_ObjRef_Sequence::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Coffee::Desc desc; - Generator *gen = GENERATOR::instance (); // value generator - - // get some sequence length (not more than 10) - CORBA::ULong len = (CORBA::ULong) (gen->gen_long () % 10) + 1; - - // set the length of the sequence - this->in_.length (len); - // now set each individual element - for (CORBA::ULong i = 0; i < this->in_.length (); i++) - { - // generate some arbitrary string to be filled into the ith location in - // the sequence - this->in_[i] = objref->make_coffee (env); - if (env.exception ()) - { - env.print_exception ("make_coffee"); - return -1; - } - // get some sequence length (not more than 10) - CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 6); - desc.name = Coffee_Flavor [index]; - // set the attribute of the object -// this->in_[i]->description (desc, env); // set the attribute for the in object - Coffee_ptr tmp = this->in_[i]; - tmp->description (desc, env); - - if (env.exception ()) - { - env.print_exception ("set coffee attribute"); - return -1; - } - } - return 0; -} - -int -Test_ObjRef_Sequence::reset_parameters (void) -{ - this->inout_ = new Param_Test::Coffee_Mix; // delete the previous one - this->out_ = 0; - this->ret_ = 0; - return 0; -} - -int -Test_ObjRef_Sequence::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::Coffee_Mix_out out (this->out_.out ()); - this->ret_ = objref->test_coffe_mix (this->in_, - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_ObjRef_Sequence::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_Coffee_Mix, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_Coffee_Mix, &this->inout_.inout (), 0); - CORBA::Any out_arg (Param_Test::_tc_Coffee_Mix, this->out_.out (), 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_Coffee_Mix, - &this->ret_, - 0, // does not own - env); - return 0; -} - -CORBA::Boolean -Test_ObjRef_Sequence::check_validity (void) -{ - TAO_TRY - { - if (this->compare (this->in_, this->inout_.in (), TAO_TRY_ENV)) - { - TAO_CHECK_ENV; - if (this->compare (this->in_, this->out_.in (), TAO_TRY_ENV)) - { - TAO_CHECK_ENV; - if (this->compare (this->in_, this->ret_.in (), TAO_TRY_ENV)) - { - TAO_CHECK_ENV; - return 1; - } - } - } - return 0; - } - TAO_CATCHANY; - { - return 0; - } - TAO_ENDTRY; -} - -CORBA::Boolean -Test_ObjRef_Sequence::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - this->inout_ = new Param_Test::Coffee_Mix (*(Param_Test::Coffee_Mix *) - req->arguments ()->item - (1, env)->value ()->value ()); - this->out_ = new Param_Test::Coffee_Mix (*(Param_Test::Coffee_Mix *) req->arguments - ()->item (2, env)->value ()->value ()); - this->ret_ = new Param_Test::Coffee_Mix (*(Param_Test::Coffee_Mix *)req->result - ()->value ()->value ()); -#endif - return this->check_validity (); -} - -void -Test_ObjRef_Sequence::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "IN sequence\n")); - this->print_sequence (this->in_); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "INOUT sequence\n")); - this->print_sequence (this->inout_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "OUT sequence\n")); - this->print_sequence (this->out_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "RET sequence\n")); - this->print_sequence (this->ret_.in ()); -} - -CORBA::Boolean -Test_ObjRef_Sequence::compare (const Param_Test::Coffee_Mix &s1, - const Param_Test::Coffee_Mix &s2, - CORBA::Environment& env) -{ - if (s1.maximum () != s2.maximum ()) - return 0; - if (s1.length () != s2.length ()) - return 0; - - for (CORBA::ULong i=0; i < s1.length (); i++) - { - const Coffee_ptr vs1 = s1[i]; - const Coffee_ptr vs2 = s2[i]; - - char* n1 = vs1->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description for vs1"); - return 0; - } - char* n2 = vs2->description (env)->name; - if (env.exception ()) - { - env.print_exception ("retrieving description for vs2"); - return 0; - } - if (!ACE_OS::strcmp(n1, n2)) - return 0; - } - - return 1; // success -} - -void -Test_ObjRef_Sequence::print_sequence (const Param_Test::Coffee_Mix &s) -{ - ACE_DEBUG ((LM_DEBUG, - "maximum = %d\n" - "length = %d\n", - s.maximum (), - s.length ())); - ACE_DEBUG ((LM_DEBUG, "Elements -\n")); - for (CORBA::ULong i=0; i < s.length (); i++) - { - /* const Coffee_ptr vs = s[i]; - - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "\tdesc = %d\n" - i, - vs.description(env).name)); */ - } -} - -// ************************************************************************ -// Test_AnySeq -// ************************************************************************ - -Test_AnySeq::Test_AnySeq (void) - : opname_ (CORBA::string_dup ("test_any_sequence")), - in_ (new Param_Test::AnySeq), - inout_ (new Param_Test::AnySeq), - out_ (0), - ret_ (0) -{ -} - -Test_AnySeq::~Test_AnySeq (void) -{ - CORBA::string_free (this->opname_); - this->opname_ = 0; -} - -const char * -Test_AnySeq::opname (void) const -{ - return this->opname_; -} - -int -Test_AnySeq::init_parameters (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Generator *gen = GENERATOR::instance (); // value generator - - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - // CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 3); - CORBA::ULong index = 2; - - switch (index) - { - case 0: - { - CORBA::Short s; - s = gen->gen_short (); - ACE_DEBUG ((LM_DEBUG, "setting short = %d\n", s)); - this->in_[i] <<= s; - this->inout_[i] <<= s; - } - break; - case 1: - { - char *str = gen->gen_string (); - ACE_DEBUG ((LM_DEBUG, "setting string = %s\n", str)); - this->in_[i] <<= str; - this->inout_[i] <<= str; - } - break; - case 2: - { - TAO_TRY - { - // get access to a Coffee Object - Coffee_var cobj = objref->make_coffee (TAO_TRY_ENV); - TAO_CHECK_ENV; - - // insert the coffee object into the Any - this->in_[i] <<= cobj.in (); - this->inout_[i] <<= cobj.in (); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception doing make_coffee"); - return -1; - } - TAO_ENDTRY; - } - break; - case 3: - break; - case 4: - break; - case 5: - break; - } - } - - return 0; -} - -int -Test_AnySeq::reset_parameters (void) -{ - Generator *gen = GENERATOR::instance (); // value generator - - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - // CORBA::ULong index = (CORBA::ULong) (gen->gen_long () % 2); - CORBA::ULong index = 2; - - switch (index) - { - case 0: - { - CORBA::Short s; - s = gen->gen_short (); - this->in_[i] <<= s; - this->inout_[i] <<= s; - } - break; - case 1: - { - char *str = gen->gen_string (); - this->in_[i] <<= str; - this->inout_[i] <<= str; - } - break; - case 2: - { - this->inout_[i] = this->in_[i]; - } - break; - case 3: - break; - case 4: - break; - case 5: - break; - } - } - - return 0; -} - -int -Test_AnySeq::run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env) -{ - Param_Test::AnySeq_out out (this->out_.out ()); - this->ret_ = objref->test_anyseq (this->in_.in (), - this->inout_.inout (), - out, - env); - return (env.exception () ? -1:0); -} - -int -Test_AnySeq::add_args (CORBA::NVList_ptr ¶m_list, - CORBA::NVList_ptr &retval, - CORBA::Environment &env) -{ - CORBA::Any in_arg (Param_Test::_tc_AnySeq, (void *) &this->in_, 0); - CORBA::Any inout_arg (Param_Test::_tc_AnySeq, &this->inout_, 0); - // ORB will allocate - CORBA::Any out_arg (Param_Test::_tc_AnySeq, 0, 0); - - // add parameters - (void)param_list->add_value ("s1", in_arg, CORBA::ARG_IN, env); - (void)param_list->add_value ("s2", inout_arg, CORBA::ARG_INOUT, env); - (void)param_list->add_value ("s3", out_arg, CORBA::ARG_OUT, env); - - // add return value type - (void)retval->item (0, env)->value ()->replace (Param_Test::_tc_AnySeq, - 0, - 0, // does not own - env); - - return 0; -} - -CORBA::Boolean -Test_AnySeq::check_validity (void) -{ - CORBA::Environment env; - CORBA::Short short_in, short_inout, short_out, short_ret; - char *str_in, *str_inout, *str_out, *str_ret; - Coffee_ptr obj_in, obj_inout, obj_out, obj_ret; - - for (CORBA::ULong i=0; i < this->in_->length (); i++) - { - if ((this->in_[i] >>= short_in) && - (this->inout_[i] >>= short_inout) && - (this->out_[i] >>= short_out) && - (this->ret_[i] >>= short_ret)) - { - ACE_DEBUG ((LM_DEBUG, "Received shorts: in = %d, " - "inout = %d, out = %d, ret = %d\n", - short_in, short_inout, short_out, short_ret)); - - if ((short_in == short_inout) && - (short_in == short_out) && - (short_in == short_ret)) - return 1; - else - { - ACE_DEBUG ((LM_DEBUG, "mismatch of short values\n")); - return 0; - } - } - else if ((this->in_[i] >>= str_in) && - (this->inout_[i] >>= str_inout) && - (this->out_[i] >>= str_out) && - (this->ret_[i] >>= str_ret)) - { - if (!ACE_OS::strcmp (str_in, str_inout) && - !ACE_OS::strcmp (str_in, str_out) && - !ACE_OS::strcmp (str_in, str_ret)) - return 1; - else - { - ACE_DEBUG ((LM_DEBUG, "mismatch of string values\n")); - return 0; - } - } - else if ((this->in_[i] >>= obj_in) && - (this->inout_[i] >>= obj_inout) && - (this->out_[i] >>= obj_out) && - (this->ret_[i] >>= obj_ret)) - { - // all the >>= operators returned true so we are OK. - return 1; - } - else - return 0; - } - - // Should never reach this. - return 0; -} - -CORBA::Boolean -Test_AnySeq::check_validity (CORBA::Request_ptr req) -{ -#if 0 - CORBA::Environment env; - - Param_Test::AnySeq *out, *ret; - - *req->arguments ()->item (2, env)->value () >>= out; - *req->result ()->value () >>= ret; - - this->out_ = out; - this->ret_ = ret; -#endif - - return this->check_validity (); -} - -void -Test_AnySeq::print_values (void) -{ - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "IN sequence\n")); - this->print_sequence (this->in_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "INOUT sequence\n")); - this->print_sequence (this->inout_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "OUT sequence\n")); - this->print_sequence (this->out_.in ()); - ACE_DEBUG ((LM_DEBUG, - "*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*\n" - "RET sequence\n")); - this->print_sequence (this->ret_.in ()); -} - -void -Test_AnySeq::print_sequence (const Param_Test::AnySeq &s) -{ - ACE_DEBUG ((LM_DEBUG, - "maximum = %d\n" - "length = %d\n", - s.maximum (), - s.length ())); - ACE_DEBUG ((LM_DEBUG, "Elements -\n")); - for (CORBA::ULong i=0; i < s.length (); i++) - { - /* const CORBA::Any& vs = s[i]; - - ACE_DEBUG ((LM_DEBUG, - "Element #%d\n" - "\tl = %d\n" - "\tc = %c\n" - "\ts = %d\n" - "\to = %x\n" - "\tf = %f\n" - "\tb = %d\n" - "\td = %f\n", - i, - vs.l, vs.c, vs.s, vs.o, vs.f, vs.b, vs.d)); -*/ } -} diff --git a/TAO/tests/Param_Test/tests.h b/TAO/tests/Param_Test/tests.h deleted file mode 100644 index 440ed10ffd3..00000000000 --- a/TAO/tests/Param_Test/tests.h +++ /dev/null @@ -1,1097 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Param_Test -// -// = FILENAME -// tests.h -// -// = DESCRIPTION -// All the test objects defined here -// -// = AUTHORS -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TESTS_H) -#define TESTS_H - -#include "param_testC.h" - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test shorts -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_Short -{ -public: - Test_Short (void); - // ctor - - ~Test_Short (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - CORBA::Short in_; - // in parameter - - CORBA::Short inout_; - // inout parameter - - CORBA::Short out_; - // out parameter - - CORBA::Short ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test unbounded strings -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_Unbounded_String -{ -public: - Test_Unbounded_String (void); - // ctor - - ~Test_Unbounded_String (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - char *in_; - // in parameter - - char *inout_; - // inout parameter - - char *out_; - // out parameter - - char *ret_; - // return value -}; - - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test fixed structs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_Fixed_Struct -{ -public: - Test_Fixed_Struct (void); - // ctor - - ~Test_Fixed_Struct (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Fixed_Struct in_; - // in parameter - - Param_Test::Fixed_Struct inout_; - // inout parameter - - Param_Test::Fixed_Struct out_; - // out parameter - - Param_Test::Fixed_Struct ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test typedefed sequences (in our case, sequences of strings) -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_String_Sequence -{ -public: - Test_String_Sequence (void); - // ctor - - ~Test_String_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::StrSeq_var in_; - // in parameter - - Param_Test::StrSeq_var inout_; - // inout parameter - - Param_Test::StrSeq_var out_; - // out parameter - - Param_Test::StrSeq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test typedefed sequences (in our case, sequences of strings) -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Bounded_String_Sequence -{ -public: - Test_Bounded_String_Sequence (void); - // ctor - - ~Test_Bounded_String_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Bounded_StrSeq_var in_; - // in parameter - - Param_Test::Bounded_StrSeq_var inout_; - // inout parameter - - Param_Test::Bounded_StrSeq_var out_; - // out parameter - - Param_Test::Bounded_StrSeq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test variable sized structs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Var_Struct -{ -public: - Test_Var_Struct (void); - // ctor - - ~Test_Var_Struct (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Var_Struct in_; - // in parameter - - // these need memory management - Param_Test::Var_Struct_var inout_; - // inout parameter - - Param_Test::Var_Struct_var out_; - // out parameter - - Param_Test::Var_Struct_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test nested structs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Nested_Struct -{ -public: - Test_Nested_Struct (void); - // ctor - - ~Test_Nested_Struct (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Nested_Struct in_; - // in parameter - - // these need memory management - Param_Test::Nested_Struct_var inout_; - // inout parameter - - Param_Test::Nested_Struct_var out_; - // out parameter - - Param_Test::Nested_Struct_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test sequences of shorts -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Short_Sequence -{ -public: - Test_Short_Sequence (void); - // ctor - - ~Test_Short_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Short_Seq_var in_; - // in parameter - - Param_Test::Short_Seq_var inout_; - // inout parameter - - Param_Test::Short_Seq_var out_; - // out parameter - - Param_Test::Short_Seq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test bounded sequences of shorts -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Bounded_Short_Sequence -{ -public: - Test_Bounded_Short_Sequence (void); - // ctor - - ~Test_Bounded_Short_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Bounded_Short_Seq_var in_; - // in parameter - - Param_Test::Bounded_Short_Seq_var inout_; - // inout parameter - - Param_Test::Bounded_Short_Seq_var out_; - // out parameter - - Param_Test::Bounded_Short_Seq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test sequences of longs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Long_Sequence -{ -public: - Test_Long_Sequence (void); - // ctor - - ~Test_Long_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Long_Seq_var in_; - // in parameter - - Param_Test::Long_Seq_var inout_; - // inout parameter - - Param_Test::Long_Seq_var out_; - // out parameter - - Param_Test::Long_Seq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test bounded sequences of longs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Bounded_Long_Sequence -{ -public: - Test_Bounded_Long_Sequence (void); - // ctor - - ~Test_Bounded_Long_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Param_Test::Bounded_Long_Seq_var in_; - // in parameter - - Param_Test::Bounded_Long_Seq_var inout_; - // inout parameter - - Param_Test::Bounded_Long_Seq_var out_; - // out parameter - - Param_Test::Bounded_Long_Seq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test sequence of structs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Struct_Sequence -{ -public: - Test_Struct_Sequence (void); - // ctor - - ~Test_Struct_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -protected: - CORBA::Boolean compare (const Param_Test::StructSeq &s1, - const Param_Test::StructSeq &s2); - // compare - - void print_sequence (const Param_Test::StructSeq &s); - // print individual sequence -private: - char *opname_; - // operation name - - Param_Test::StructSeq in_; - // in parameter - - // these need memory management - Param_Test::StructSeq_var inout_; - // inout parameter - - Param_Test::StructSeq_var out_; - // out parameter - - Param_Test::StructSeq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test bounded sequence of structs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_Bounded_Struct_Sequence -{ -public: - Test_Bounded_Struct_Sequence (void); - // ctor - - ~Test_Bounded_Struct_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -protected: - CORBA::Boolean compare (const Param_Test::Bounded_StructSeq &s1, - const Param_Test::Bounded_StructSeq &s2); - // compare - - void print_sequence (const Param_Test::Bounded_StructSeq &s); - // print individual sequence -private: - char *opname_; - // operation name - - Param_Test::Bounded_StructSeq in_; - // in parameter - - // these need memory management - Param_Test::Bounded_StructSeq_var inout_; - // inout parameter - - Param_Test::Bounded_StructSeq_var out_; - // out parameter - - Param_Test::Bounded_StructSeq_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test objrefs -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_ObjRef -{ -public: - Test_ObjRef (void); - // ctor - - ~Test_ObjRef (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - Coffee_var in_; - // in parameter - - Coffee_var inout_; - // inout parameter - - Coffee_var out_; - // out parameter - - Coffee_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test TypeCodes -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_TypeCode -{ -public: - Test_TypeCode (void); - // ctor - - ~Test_TypeCode (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - CORBA::TypeCode_var in_; - // in parameter - - CORBA::TypeCode_var inout_; - // inout parameter - - CORBA::TypeCode_var out_; - // out parameter - - CORBA::TypeCode_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test Anys -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_Any -{ -public: - Test_Any (void); - // ctor - - ~Test_Any (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -private: - char *opname_; - // operation name - - CORBA::Any in_; - // in parameter - - CORBA::Any inout_; - // inout parameter - - CORBA::Any_var out_; - // out parameter - - CORBA::Any_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test sequence of object references -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* - -class Test_ObjRef_Sequence -{ -public: - Test_ObjRef_Sequence (void); - // ctor - - ~Test_ObjRef_Sequence (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -protected: - CORBA::Boolean compare (const Param_Test::Coffee_Mix &s1, - const Param_Test::Coffee_Mix &s2, - CORBA::Environment& env); - // compare - - void print_sequence (const Param_Test::Coffee_Mix &s); - // print individual sequence -private: - char *opname_; - // operation name - - Param_Test::Coffee_Mix in_; - // in parameter - - // these need memory management - Param_Test::Coffee_Mix_var inout_; - // inout parameter - - Param_Test::Coffee_Mix_var out_; - // out parameter - - Param_Test::Coffee_Mix_var ret_; - // return value -}; - -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -// test sequences of Anys -// =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* -class Test_AnySeq -{ -public: - Test_AnySeq (void); - // ctor - - ~Test_AnySeq (void); - // dtor - - int run_sii_test (Param_Test_ptr objref, - CORBA::Environment &env); - // run the SII test - - int add_args (CORBA::NVList_ptr &nvlist, - CORBA::NVList_ptr &retval, - CORBA::Environment &env); - // add args to NVList for DII - - const char *opname (void) const; - // return operation name - - int init_parameters (Param_Test_ptr objref, - CORBA::Environment &env); - // set values for parameters - - int reset_parameters (void); - // reset values for CORBA - - CORBA::Boolean check_validity (void); - // check if results are valid - - CORBA::Boolean check_validity (CORBA::Request_ptr req); - // check if results are valid. This is used for DII results - - void print_values (void); - // print all the values - -protected: - CORBA::Boolean compare (const Param_Test::AnySeq &s1, - const Param_Test::StructSeq &s2); - // compare - - void print_sequence (const Param_Test::AnySeq &s); - // print individual sequence - -private: - char *opname_; - // operation name - - Param_Test::AnySeq_var in_; - // in parameter - - Param_Test::AnySeq_var inout_; - // inout parameter - - Param_Test::AnySeq_var out_; - // out parameter - - Param_Test::AnySeq_var ret_; - // return value -}; - -#endif /* if !defined */ diff --git a/TAO/tests/Param_Test/tmplinst.cpp b/TAO/tests/Param_Test/tmplinst.cpp deleted file mode 100644 index 03214f7c2c4..00000000000 --- a/TAO/tests/Param_Test/tmplinst.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "param_testC.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence; -template class TAO_Bounded_Sequence; -template class TAO_Unbounded_Sequence; -template class TAO_Bounded_Sequence; -template class TAO_Bounded_String_Sequence<32>; -template class TAO_Unbounded_Sequence; -template class TAO_Bounded_Sequence; -template class TAO_Unbounded_Object_Sequence; -template class TAO_Bounded_Object_Sequence; -template class TAO_Object_Manager; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Bounded_Sequence -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Bounded_Sequence -#pragma instantiate TAO_Bounded_String_Sequence<32> -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Bounded_Sequence -#pragma instantiate TAO_Unbounded_Object_Sequence -#pragma instantiate TAO_Bounded_Object_Sequence -#pragma instantiate TAO_Object_Manager -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Quoter/Documentation b/TAO/tests/Quoter/Documentation deleted file mode 100644 index 8e067074f7f..00000000000 --- a/TAO/tests/Quoter/Documentation +++ /dev/null @@ -1,69 +0,0 @@ - -Quoter example -------------- - - -Context: The Quoter example serves several tests, the first is the test - of several multithreading policies and the second is showing the - use of the Life Cycle Service as it is defined in the - CORBA Common Object Services specification. - -Life Cycle Service use-case: - -several processes exist: server, - Factory_Finder, - Generic_Factory, - Life_Cycle_Service - client - -several object exist: Quoter, - Quoter_Factory, - Quoter_Factory_Finder, - Quoter_Generic_Factory, - Quoter_Life_Cycle_Service - -server: The server process contains two kind of objects: Quoter and - Quoter_Factory's. A Quoter is a very simple Object supporting - only one method. The focus is not on a sophisticated object - but on showing how policies work. - The object Quoter_Factory serves as a factory for Quoters. - -Factory_Finder: The COS spec. introduces the concept of a Factory Finder - which is capable to find proper factories. The Naming - Service is used as lookup-mechanism. A reference to - the Factory_Finder is passed as parameter of any copy - or move request. - -Generic_Factory: This process supports the object Quoter_Generic_Factory (QGF). - The QGF supports the GenericFactory interface introduced by - the COS specification. It forwards create_object requests to - more concrete factories, e.g. the Quoter_Factory. The - concrete factories are found via the Naming Service. - -Life_Cycle_Service: This process is very similar to the Generic_Factory - proocess. It also supports an Object, which conforms to - the GenericFactory interface. The Quoter_Life_Cycle_Service - conforms to the idea of a life cycle service as it is - introduced by the COS specification. The Quoter_Life_Cycle_Service - is neutral against the Quoter example. It is not dependent - on it. Only interfaces defined by the CosLifeCycle.idl file - are used. The implemenation uses the COS Trading Service - manage registered Generic Factories, as the Quoter_Generic_Factory - for example. A lookup on the Trading Service is performed - when a create_object request is invoked on it. - -client: Creates one Quoter through using the Quoter_Factory_Finder. After that - the copy method of Quoter is invoked to copy the Quoter to an other - location, which is in this example the same location, but that does - not matter so much. The concept is important in this example. - - The objects are invoked in the following order: - client->Quoter->Quoter_Factory_Finder->Quoter_Life_Cycle_Service - ->Quoter_Generic_Factory->Quoter_Factory - - - -!!!!Note: -To make use of the move operation you need to use the -sm switch on -the perl script. This activates in the server multiple objects, which is needed for -moving. \ No newline at end of file diff --git a/TAO/tests/Quoter/FactoryFinder.exe b/TAO/tests/Quoter/FactoryFinder.exe deleted file mode 100755 index 2d5a2b39e7a..00000000000 Binary files a/TAO/tests/Quoter/FactoryFinder.exe and /dev/null differ diff --git a/TAO/tests/Quoter/Factory_Finder.cpp b/TAO/tests/Quoter/Factory_Finder.cpp deleted file mode 100644 index e1667047b3a..00000000000 --- a/TAO/tests/Quoter/Factory_Finder.cpp +++ /dev/null @@ -1,226 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// FactoryFinder.cpp -// -// = DESCRIPTION -// A Factory Finder for the Quoter example. This example conforms -// to the CosLifeCycle Factory Finder notion. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "tao/corba.h" -#include "Factory_Finder.h" - -static const char usage [] = "[-? |\n[-O[RBport] ORB port number]]"; - -Quoter_Factory_Finder_Server::Quoter_Factory_Finder_Server (void) -{ -} - -Quoter_Factory_Finder_Server::~Quoter_Factory_Finder_Server (void) -{ - TAO_TRY - { - // Unbind the Quoter Factory Finder. - CosNaming::Name factory_Finder_Name (2); - factory_Finder_Name.length (2); - factory_Finder_Name[0].id = CORBA::string_dup ("IDL_Quoter"); - factory_Finder_Name[1].id = CORBA::string_dup ("Quoter_Factory_Finder"); - this->quoterNamingContext_var_->unbind (factory_Finder_Name,TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - } - TAO_ENDTRY; -} - -int -Quoter_Factory_Finder_Server::init (int argc, char *argv[], CORBA::Environment& env) -{ - if (this->orb_manager_.init (argc, - argv, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - -1); - - // Copy them, because parse_args expects them there. - this->argc_ = argc; - this->argv_ = argv; - - this->parse_args (); - - - ACE_NEW_RETURN (this->quoter_Factory_Finder_Impl_ptr_, - Quoter_Factory_Finder_Impl(), - -1); - - // Activate the object. - CORBA::String_var str = - this->orb_manager_.activate (this->quoter_Factory_Finder_Impl_ptr_, - env); - - // Failure while activating the Quoter Factory Finder object - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init: Failure while activating the Quoter Factory Finder Impl.\n"), - -1); - - - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - // Register the Quoter Factory Finder with the Naming Service - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG,"Trying to get a reference to the Naming Service.\n")); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_manager_.orb()->resolve_initial_references ("NameService"); - TAO_CHECK_ENV; - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - CosNaming::NamingContext_var namingContext_var = - CosNaming::NamingContext::_narrow (namingObj_var.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG,"Have a proper reference to the Naming Service.\n")); - - // Get the IDL_Quoter naming context. - CosNaming::Name quoterContextName (1); // max = 1 - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - - CORBA::Object_var quoterNamingObj_var = - namingContext_var->resolve (quoterContextName, TAO_TRY_ENV); - TAO_CHECK_ENV; - - quoterNamingContext_var_ = - CosNaming::NamingContext::_narrow (quoterNamingObj_var.in (), - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, - "Have a proper reference to the Quoter Naming Context.\n")); - - // Bind the QuoterFactory Finder to the IDL_Quoter naming - // context. - CosNaming::Name quoter_Factory_Finder_Name_ (1); - quoter_Factory_Finder_Name_.length (1); - quoter_Factory_Finder_Name_[0].id = CORBA::string_dup ("Quoter_Factory_Finder"); - - quoterNamingContext_var_->bind (quoter_Factory_Finder_Name_, - this->quoter_Factory_Finder_Impl_ptr_->_this(TAO_TRY_ENV), - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "Bound the Quoter Factory Finder to the Quoter Naming Context.\n")); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - } - TAO_ENDTRY; - - - return 0; -} - -int -Quoter_Factory_Finder_Server::run (CORBA::Environment& env) -{ - if (orb_manager_.orb()->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - return 0; -} - - -// Function get_options. - -u_int -Quoter_Factory_Finder_Server::parse_args (void) -{ - // We need the 'O' in get_opt () because we also want to have ORB - // parameters, they all start with 'O'. - ACE_Get_Opt get_opt (this->argc_, this->argv_, "O?"); - int opt; - - while ((opt = get_opt ()) != EOF) - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - this->argv_[0], usage)); - ACE_OS::exit (0); - break; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - this->argv_[0], char (opt), - this->argv_[0], - usage), - 1); - } - return 0; -} - -// function main - -int -main (int argc, char *argv []) -{ - Quoter_Factory_Finder_Server quoter_Factory_Finder_Server; - - ACE_DEBUG ((LM_DEBUG, - "\n\tIDL_Quoter:Quoter_Factory_Finder \n \n")); - TAO_TRY - { - if (quoter_Factory_Finder_Server.init (argc,argv,TAO_TRY_ENV) == -1) - return 1; - else - { - quoter_Factory_Finder_Server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/tests/Quoter/Factory_Finder.dsp b/TAO/tests/Quoter/Factory_Finder.dsp deleted file mode 100644 index c6b78db3494..00000000000 --- a/TAO/tests/Quoter/Factory_Finder.dsp +++ /dev/null @@ -1,230 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Quoter Factory Finder" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Quoter Factory Finder - 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 "Factory_Finder.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 "Factory_Finder.mak"\ - CFG="Quoter Factory Finder - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Quoter Factory Finder - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Quoter Factory Finder - 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)" == "Quoter Factory Finder - 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 /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 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 - -!ELSEIF "$(CFG)" == "Quoter Factory Finder - 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 "..\..\..\\" /I "..\..\\" /I "..\..\orbsvcs" /I "..\..\orbsvcs\orbsvcs" /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 tao.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "Quoter Factory Finder - Win32 Release" -# Name "Quoter Factory Finder - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp" -# Begin Source File - -SOURCE=.\Factory_Finder.cpp -# End Source File -# Begin Source File - -SOURCE=.\Factory_Finder_Impl.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h" -# Begin Source File - -SOURCE=.\Factory_Finder.h -# End Source File -# Begin Source File - -SOURCE=.\Factory_Finder_Impl.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.h -# End Source File -# End Group -# Begin Group "Inline Files" - -# PROP Default_Filter "i" -# Begin Source File - -SOURCE=.\QuoterC.i -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.i -# End Source File -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Quoter.idl -USERDEP__QUOTE="..\..\tao_idl\tao_idl.exe" - -!IF "$(CFG)" == "Quoter Factory Finder - Win32 Release" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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)" == "Quoter Factory Finder - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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 Source File - -SOURCE=.\svc.conf -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Quoter/Factory_Finder.h b/TAO/tests/Quoter/Factory_Finder.h deleted file mode 100644 index 48774a0cc2f..00000000000 --- a/TAO/tests/Quoter/Factory_Finder.h +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// FactoryFinder.h -// -// = DESCRIPTION -// Server for the Quoter Factory Finder -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/TAO.h" -#include "Factory_Finder_Impl.h" - -#if !defined (QUOTER_FACTORY_FINDER_H) -#define QUOTER_FACTORY_FINDER_H - -class Quoter_Factory_Finder_Server -{ - // = TILE - // Server object for the Quoter Factory Finder - -public: - Quoter_Factory_Finder_Server (void); - // Default constructor - - ~Quoter_Factory_Finder_Server (void); - // Destructor - - int init (int argc, char *argv[], CORBA::Environment& env); - // Initialize the Quoter_Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb - - u_int parse_args (void); - // parse the passed parameters - -private: - TAO_ORB_Manager orb_manager_; - // instance of the ORB Manager - - Quoter_Factory_Finder_Impl *quoter_Factory_Finder_Impl_ptr_; - // instance of the Quoter Factory Finder - - CosNaming::NamingContext_var quoterNamingContext_var_; - // reference to the Quoter naming context - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. -}; - -#endif /* QUOTER_FACTORY_FINDER_H */ diff --git a/TAO/tests/Quoter/Factory_Finder_Impl.cpp b/TAO/tests/Quoter/Factory_Finder_Impl.cpp deleted file mode 100644 index 3830b7525e1..00000000000 --- a/TAO/tests/Quoter/Factory_Finder_Impl.cpp +++ /dev/null @@ -1,118 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// FactoryFinder_Impl.cpp -// -// = DESCRIPTION -// A Factory Finder for the Quoter example. This example conforms -// to the CosLifeCycle Factory Finder notion. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "Factory_Finder_Impl.h" -#include "QuoterC.h" - -// Constructor -Quoter_Factory_Finder_Impl::Quoter_Factory_Finder_Impl (void) -{ -} - -// Destructor. -Quoter_Factory_Finder_Impl::~Quoter_Factory_Finder_Impl (void) -{ -} - - -CosLifeCycle::Factories * -Quoter_Factory_Finder_Impl::find_factories (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there) -{ - CORBA::Environment env_here; - - // Get a reference to the ORB. - CORBA::ORB_ptr orb_ptr = TAO_ORB_Core_instance ()->orb (); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_ptr->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - CosNaming::NamingContext_var namingContext_var = - CosNaming::NamingContext::_narrow (namingObj_var.in (), - env_here); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - - // Take the key supplied to search for a Quoter Factory - CosNaming::Name factoryName = (CosNaming::Name) factory_key; - - // Try to get a reference to a Quoter Factory - CORBA::Object_var quoterFactoryObject_var = - namingContext_var->resolve (factoryName, env_here); - - // see if there is an exception, if yes then throw the NoFactory exception - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // were able to get a reference to Quoter Factory - - // Check if it is a valid Quoter Factory reference - if (CORBA::is_nil (quoterFactoryObject_var.in())) - { // throw a NoFactory exception - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - else - { - - // create a sequence of factories object - CosLifeCycle::Factories *factories_ptr = new CosLifeCycle::Factories (1); - - // See if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) - { - // Throw a NoFactory exception. - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // using the Naming Service only one reference is available - factories_ptr->length (1); - - // Check if it is a valid Quoter Factory reference. - if (CORBA::is_nil (quoterFactoryObject_var.in ())) // throw a NoFactory exception. - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // insert the object reference - (*factories_ptr)[0] = CORBA::Object::_duplicate (quoterFactoryObject_var.ptr()); - - ACE_DEBUG ((LM_DEBUG, - "Have reference to a Quoter Factory.\n")); - return factories_ptr; - } -} diff --git a/TAO/tests/Quoter/Factory_Finder_Impl.h b/TAO/tests/Quoter/Factory_Finder_Impl.h deleted file mode 100644 index 4f8561ee8ef..00000000000 --- a/TAO/tests/Quoter/Factory_Finder_Impl.h +++ /dev/null @@ -1,38 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// FactoryFinder_Impl.h -// -// = DESCRIPTION -// Factory Finder Implementation for the Quoter example -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "QuoterS.h" - -#if !defined (QUOTER_FACTORY_FINDER_IMPL_H) -#define QUOTER_FACTORY_FINDER_IMPL_H - -class Quoter_Factory_Finder_Impl : public POA_Stock::Quoter_Factory_Finder -{ - // = TILE - // A CosLifeCycle conforming Factory Finder for the Quoter - // example. It uses the Naming Service to find a fitting factory. - -public: - Quoter_Factory_Finder_Impl (void); - ~Quoter_Factory_Finder_Impl (void); - - virtual CosLifeCycle::Factories * find_factories (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_tao_environment); - // Returns a squence of Factories if factories matching the - // factory_key were found. If no factory was found, then the - // NoFactory exception, defined in CosLifeCycle, is raised. -}; - -#endif /* QUOTER_FACTORY_FINDER_IMPL_H */ diff --git a/TAO/tests/Quoter/Generic_Factory.cpp b/TAO/tests/Quoter/Generic_Factory.cpp deleted file mode 100644 index c1c09625974..00000000000 --- a/TAO/tests/Quoter/Generic_Factory.cpp +++ /dev/null @@ -1,279 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Generic_Factory.cpp -// -// = DESCRIPTION -// The server for the GenericFactory for the quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "tao/corba.h" -#include "orbsvcs/LifeCycleServiceC.h" -#include "Generic_Factory.h" - -static const char usage [] = "[-? |\n[-O[RBport] ORB port number]]"; - -Quoter_Generic_Factory_Server::Quoter_Generic_Factory_Server (void) -: use_LifeCycle_Service_ (0) -{ -} - -Quoter_Generic_Factory_Server::~Quoter_Generic_Factory_Server (void) -{ - TAO_TRY - { - // Unbind the Quoter Factory Finder. - CosNaming::Name generic_Factory_Name (2); - generic_Factory_Name.length (2); - generic_Factory_Name[0].id = CORBA::string_dup ("IDL_Quoter"); - generic_Factory_Name[1].id = CORBA::string_dup ("Quoter_Generic_Factory"); - this->quoterNamingContext_var_->unbind (generic_Factory_Name,TAO_TRY_ENV); - TAO_CHECK_ENV; - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - } - TAO_ENDTRY; -} - -int -Quoter_Generic_Factory_Server::init (int argc, - char *argv[], - CORBA::Environment& env) -{ - if (this->orb_manager_.init (argc, - argv, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - -1); - - // Copy them, because parse_args expects them there. - this->argc_ = argc; - this->argv_ = argv; - - this->parse_args (); - - - ACE_NEW_RETURN (this->quoter_Generic_Factory_Impl_ptr_, - Quoter_Generic_Factory_Impl(), - -1); - - // Activate the object. - CORBA::String_var str = - this->orb_manager_.activate (this->quoter_Generic_Factory_Impl_ptr_, - env); - - // Failure while activating the Quoter Factory Finder object - if (env.exception () != 0) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init: Failure while activating the Quoter Generic Factory Impl.\n"), - -1); - - - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - str.in ())); - - // Register the Quoter GenericFactory with the Naming Service. - TAO_TRY - { - ACE_DEBUG ((LM_DEBUG, - "Trying to get a reference to the Naming Service.\n")); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_manager_.orb()->resolve_initial_references ("NameService"); - TAO_CHECK_ENV; - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - CosNaming::NamingContext_var namingContext_var = - CosNaming::NamingContext::_narrow (namingObj_var.in (), - TAO_TRY_ENV); - - if (CORBA::is_nil (namingContext_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "Have a proper reference to the Naming Service.\n")); - - // Get the IDL_Quoter naming context. - CosNaming::Name quoterContextName (1); // max = 1 - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - - CORBA::Object_var quoterNamingObj_var = - namingContext_var->resolve (quoterContextName, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - quoterNamingContext_var_ = - CosNaming::NamingContext::_narrow (quoterNamingObj_var.in (), - TAO_TRY_ENV); - - ACE_DEBUG ((LM_DEBUG, - "Have a proper reference to the Quoter Naming Context.\n")); - - // Bind the Quoter GenericFactory to the IDL_Quoter naming - // context. - CosNaming::Name quoter_Generic_Factory_Name (1); - quoter_Generic_Factory_Name.length (1); - quoter_Generic_Factory_Name[0].id = CORBA::string_dup ("Quoter_Generic_Factory"); - - quoterNamingContext_var_->bind (quoter_Generic_Factory_Name, - this->quoter_Generic_Factory_Impl_ptr_->_this(TAO_TRY_ENV), - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "Bound the Quoter GenericFactory to the Quoter Naming Context.\n")); - - // now the Quoter GenericFactory is bound to the Naming Context - // the Generic Factory should try to register itself to the closest - // Life Cycle Service is order to be called. - - /* for now as long as the trading service is not ported to NT we skip this */ - - if (this->use_LifeCycle_Service_) - { - // get the Quoter_Life_Cycle_Service - CosNaming::Name life_Cycle_Service_Name (1); - life_Cycle_Service_Name.length (1); - life_Cycle_Service_Name[0].id = CORBA::string_dup ("Life_Cycle_Service"); - - CORBA::Object_var life_Cycle_Service_Obj_var = - namingContext_var->resolve (life_Cycle_Service_Name, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - LifeCycleService::Life_Cycle_Service_var life_Cycle_Service_var = - LifeCycleService::Life_Cycle_Service::_narrow (life_Cycle_Service_Obj_var.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - ACE_DEBUG ((LM_DEBUG, "Have a proper reference to Life Cycle Service.\n")); - - CORBA::Object_var object_var = this->quoter_Generic_Factory_Impl_ptr_->_this(TAO_TRY_ENV); - - life_Cycle_Service_var->register_factory ("Quoter_Generic_Factory", // name - "Bryan 503", // location - "Generic Factory", // description - object_var.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - ACE_DEBUG ((LM_DEBUG, - "Registered the Quoter GenericFactory to the Life Cycle Service.\n")); - } - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Quoter_Generic_Factory_Server::init: Exception"); - } - TAO_ENDTRY; - - - return 0; -} - -int -Quoter_Generic_Factory_Server::run (CORBA::Environment& env) -{ - if (orb_manager_.orb()->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - return 0; -} - -// Function get_options. - -u_int -Quoter_Generic_Factory_Server::parse_args (void) -{ - // We need the 'O' in get_opt () because we also want to have ORB - // parameters, they all start with 'O'. - ACE_Get_Opt get_opt (this->argc_, this->argv_, "O?"); - int opt; - - while ((opt = get_opt ()) != EOF) - switch (opt) - { - case '?': - ACE_DEBUG ((LM_DEBUG, - "Usage: %s %s\n", - this->argv_[0], usage)); - ACE_OS::exit (0); - break; - case 'l': - this->use_LifeCycle_Service_ = 1; - default: - ACE_ERROR_RETURN ((LM_ERROR, - "%s: unknown arg, -%c\n" - "Usage: %s %s\n", - this->argv_[0], char (opt), - this->argv_[0], - usage), - 1); - } - return 0; -} - -// function main - -int -main (int argc, char *argv []) -{ - Quoter_Generic_Factory_Server quoter_Generic_Factory_Server; - - ACE_DEBUG ((LM_DEBUG, - "\n\tIDL_Quoter: Quoter_Generic_Factory_Server \n\n")); - TAO_TRY - { - if (quoter_Generic_Factory_Server.init (argc, - argv, - TAO_TRY_ENV) == -1) - return 1; - else - { - quoter_Generic_Factory_Server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/tests/Quoter/Generic_Factory.dsp b/TAO/tests/Quoter/Generic_Factory.dsp deleted file mode 100644 index 8c1df9e9578..00000000000 --- a/TAO/tests/Quoter/Generic_Factory.dsp +++ /dev/null @@ -1,229 +0,0 @@ -# Microsoft Developer Studio Project File - Name="QuoterGenericFactory" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=QuoterGenericFactory - 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 "Generic_Factory.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 "Generic_Factory.mak"\ - CFG="QuoterGenericFactory - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "QuoterGenericFactory - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "QuoterGenericFactory - 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)" == "QuoterGenericFactory - 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 /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 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 - -!ELSEIF "$(CFG)" == "QuoterGenericFactory - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "QuoterGe" -# PROP BASE Intermediate_Dir "QuoterGe" -# 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 "..\..\..\\" /I "..\..\\" /I "..\..\orbsvcs" /I "..\..\orbsvcs\orbsvcs" /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 tao.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "QuoterGenericFactory - Win32 Release" -# Name "QuoterGenericFactory - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Generic_Factory.cpp -# End Source File -# Begin Source File - -SOURCE=.\Generic_Factory_Impl.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Generic_Factory.h -# End Source File -# Begin Source File - -SOURCE=.\Generic_Factory_Impl.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.h -# End Source File -# End Group -# Begin Group "Inline Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\QuoterC.i -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.i -# End Source File -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Quoter.idl -USERDEP__QUOTE="..\..\tao_idl\tao_idl.exe" - -!IF "$(CFG)" == "QuoterGenericFactory - Win32 Release" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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)" == "QuoterGenericFactory - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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 Source File - -SOURCE=.\svc.conf -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Quoter/Generic_Factory.h b/TAO/tests/Quoter/Generic_Factory.h deleted file mode 100644 index ed124c2b7d5..00000000000 --- a/TAO/tests/Quoter/Generic_Factory.h +++ /dev/null @@ -1,65 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Generic_Factory.h -// -// = DESCRIPTION -// A generic factory, customized for the use with the Quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/TAO.h" -#include "Generic_Factory_Impl.h" - -#if !defined (GENERIC_FACTORY_H) -#define GENERIC_FACTORY_H - -class Quoter_Generic_Factory_Server -{ - // = TILE - // Server object for the Quoter Generic Factory - -public: - Quoter_Generic_Factory_Server (void); - // Default constructor - - ~Quoter_Generic_Factory_Server (void); - // Destructor - - int init (int argc, - char *argv[], - CORBA::Environment& env); - // Initialize the Quoter_Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb. - - u_int parse_args (void); - // Parse the passed parameters. - -private: - TAO_ORB_Manager orb_manager_; - // instance of the ORB Manager - - Quoter_Generic_Factory_Impl *quoter_Generic_Factory_Impl_ptr_; - // Instance of the Quoter Generic Factory. - - CosNaming::NamingContext_var quoterNamingContext_var_; - // Reference to the Quoter naming context. - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. - - unsigned char use_LifeCycle_Service_; -}; - -#endif /* GENERIC_FACTORY_H */ diff --git a/TAO/tests/Quoter/Generic_Factory_Impl.cpp b/TAO/tests/Quoter/Generic_Factory_Impl.cpp deleted file mode 100644 index ab7fdfb74b6..00000000000 --- a/TAO/tests/Quoter/Generic_Factory_Impl.cpp +++ /dev/null @@ -1,181 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Generic_Factory_Impl.cpp -// -// = DESCRIPTION -// The implementation of a LifeCycle Service GenericFactory for the -// Quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "ace/Get_Opt.h" -#include "tao/corba.h" -#include "Generic_Factory_Impl.h" -#include "QuoterC.h" - -// Constructor -Quoter_Generic_Factory_Impl::Quoter_Generic_Factory_Impl (void) -{ -} - -// Destructor. -Quoter_Generic_Factory_Impl::~Quoter_Generic_Factory_Impl (void) -{ -} - - -CORBA::Boolean -Quoter_Generic_Factory_Impl::supports (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there) -{ - ACE_UNUSED_ARG (factory_key); - ACE_UNUSED_ARG (_env_there); - return 0; -} - - -CORBA::Object_ptr -Quoter_Generic_Factory_Impl::create_object (const CosLifeCycle::Key &factory_key, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there) -{ - ACE_UNUSED_ARG (the_criteria); - - CORBA::Environment env_here; - - // Get a reference to the ORB. - CORBA::ORB_ptr orb_ptr = TAO_ORB_Core_instance ()->orb (); - - // Get the Naming Service object reference. - CORBA::Object_var namingObj_var = - orb_ptr->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (namingObj_var.in ())) - ACE_ERROR ((LM_ERROR, - " (%P|%t) Unable get the Naming Service.\n")); - - // Narrow the object reference to a Naming Context. - CosNaming::NamingContext_var namingContext_var = - CosNaming::NamingContext::_narrow (namingObj_var.in (), - env_here); - - // see if there is an exception, if yes then throw the NoFactory exception - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // Get the IDL_Quoter naming context. - CosNaming::Name quoterContextName (1); // max = 1 - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - - CORBA::Object_var quoterNamingObj_var = - namingContext_var->resolve (quoterContextName, env_here); - - // see if there is an exception, if yes then throw the NoFactory exception - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - CosNaming::NamingContext_var quoterNamingContext_var = - CosNaming::NamingContext::_narrow (quoterNamingObj_var.in (), - env_here); - - // see if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // ** now a proper reference to the quoter naming context is available - - // Fill in the name of the Quoter Factory. - //CosNaming::Name factory_Name (1); // max = 1 - //factory_Name.length (1); - //factory_Name[0].id = CORBA::string_dup ("Quoter_Factory"); - // Take the key supplied to search for a Quoter Factory - CosNaming::Name factory_Name = (CosNaming::Name) factory_key; - - // Try to get a reference to a Quoter Factory - CORBA::Object_var quoterFactoryObject_var = - quoterNamingContext_var->resolve (factory_Name, env_here); - - // see if there is an exception, if yes then throw the NoFactory - // exception. - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - // Were able to get a reference to Quoter Factory. - - // Check if it is a valid Quoter Factory reference - if (CORBA::is_nil (quoterFactoryObject_var.in())) - { // throw a NoFactory exception - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - else - { - // Check if it is a valid Quoter Factory reference. - if (CORBA::is_nil (quoterFactoryObject_var.in ())) // throw a NoFactory exception. - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - Stock::Quoter_Factory_var factory_var = - Stock::Quoter_Factory::_narrow (quoterFactoryObject_var.in (), - env_here); - - // see if there is an exception, if yes then throw the NoFactory exception - if (env_here.exception () != 0) // throw a NoFactory exception - { - _env_there.exception (new CosLifeCycle::NoFactory (factory_key)); - return 0; - } - - if (CORBA::is_nil (factory_var.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "invalid factory.\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, "Factory reference OK.\n")); - - // Now retrieve the Quoter obj ref corresponding to the key. - Stock::Quoter_var quoter_var = factory_var->create_quoter ("test", - _env_there); - - ACE_DEBUG ((LM_DEBUG, - "Quoter Created\n")); - - if (CORBA::is_nil (quoter_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "null quoter objref returned by factory\n"), - 0); - - ACE_DEBUG ((LM_DEBUG, - "Return a object reference to a new object.\n")); - - CORBA::Object_ptr object_ptr = CORBA::Object::_duplicate ((CORBA::Object_ptr) quoter_var.ptr()); - - return object_ptr; - } -} - - - - diff --git a/TAO/tests/Quoter/Generic_Factory_Impl.h b/TAO/tests/Quoter/Generic_Factory_Impl.h deleted file mode 100644 index d8dca241702..00000000000 --- a/TAO/tests/Quoter/Generic_Factory_Impl.h +++ /dev/null @@ -1,46 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// Generic_Factory_Impl.h -// -// = DESCRIPTION -// A LifeCycle Service Generic Factory for the Quoter example. -// -// = AUTHOR -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "QuoterS.h" - - -#if !defined (QUOTER_GENERIC_FACTORY_IMPL_H) -#define QUOTER_GENERIC_FACTORY_IMPL_H - -class Quoter_Generic_Factory_Impl : public POA_Stock::Quoter_Generic_Factory -{ - // = TILE - // A CosLifeCycle conforming Generic Factory for the Quoter - // example. It uses the Naming Service to find a fitting factory. - -public: - Quoter_Generic_Factory_Impl (void); - ~Quoter_Generic_Factory_Impl (void); - - CORBA::Boolean supports (const CosLifeCycle::Key &factory_key, - CORBA::Environment &_env_there); - // Returns true if the Generic Factory is able to forward a request - // for creating an object described by the . - - CORBA::Object_ptr create_object (const CosLifeCycle::Key &factory_key, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there); - // Returns an object reference to a newly created object, though the - // Generic Factory itself cannot create objects, it will forward the - // request to a more concrete Factory. - -}; - -#endif /* QUOTER_GENERIC_FACTORY_IMPL_H */ diff --git a/TAO/tests/Quoter/Makefile b/TAO/tests/Quoter/Makefile deleted file mode 100644 index e13c3bb80b3..00000000000 --- a/TAO/tests/Quoter/Makefile +++ /dev/null @@ -1,144 +0,0 @@ -# -# $Id$ -# -# needed for the trading service stuff - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # TAO_ROOT - -TAO_IDLFLAGS=-I$(TAO_ROOT)/orbsvcs/orbsvcs - -ifdef trader - -ifndef STL_ROOT - STL_ROOT=/project/doc/irfan/ObjectSpace/SC4.0 -endif # STL_ROOT - -STD=$(STL_ROOT)/ospace/std -STL=$(STL_ROOT)/stl - -include $(STL_ROOT)/config/local.cfg - -CC_INCLUDES += -I$(STD) -CC_INCLUDES += -pta - -CPPFLAGS += \ - -I$(TOOLKIT) \ - $(CC_INCLUDES) \ - $(CC_FLAGS) \ - $(CC_DEFINES) \ - $(CC_EH) \ - $(CC_MT) - - -ifndef exceptions -CPPFLAGS += -DOS_NO_EXCEPTION_SPECIFIER -else -CPPFLAGS += -DOS_STL_ASSERT -endif - -LDFLAGS += -L$(STL_ROOT)/lib - -endif # trader -# end of the trading service stuff - -BIN = client server Factory_Finder Generic_Factory - -# The following lines tell the souce code that the trading -# service is available. - -ifdef trader - -CPPFLAGS += -DTRADER_AVAILABLE - -endif # trader - -BUILD = $(BIN) - - -IDL_SRC = \ - QuoterC.cpp QuoterS.cpp - -CLIENT_SRCS = \ - client.cpp - -SERVER_SRCS = \ - server.cpp Quoter_Impl.cpp - -FACTORY_FINDER_SRCS = \ - Factory_Finder.cpp Factory_Finder_Impl.cpp - -GENERIC_FACTORY_SRCS = \ - Generic_Factory.cpp Generic_Factory_Impl.cpp - - -LSRC= \ - $(IDL_SRC) $(CLIENT_SRCS) $(SERVER_SRCS) \ - $(FACTORY_FINDER_SRCS) $(GENERIC_FACTORY_SRCS) - -COMMON_OBJS = QuoterC.o QuoterS.o -CLIENT_OBJS = $(COMMON_OBJS) client.o -SERVER_OBJS = $(COMMON_OBJS) server.o Quoter_Impl.o -FACTORY_FINDER_OBJS = $(COMMON_OBJS) Factory_Finder.o Factory_Finder_Impl.o -GENERIC_FACTORY_OBJS = $(COMMON_OBJS) Generic_Factory.o Generic_Factory_Impl.o - -ifdef trader - -LDLIBS = -lorbsvcs -lospace -lTAO - -else - -LDLIBS = -lorbsvcs -lTAO - -endif - -#---------------------------------------------------------------------------- -# 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 -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 rules and variables... - -TSS_ORB_FLAG = #-DTAO_HAS_TSS_ORBCORE -LDFLAGS += -L$(TAO_ROOT)/orbsvcs/orbsvcs -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT)/orbsvcs -I$(TAO_ROOT)/orbsvcs/orbsvcs \ - -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat $(TSS_ORB_FLAG)#-H - -realclean: clean - -/bin/rm -rf QuoterC.* QuoterS.* - -$(IDL_SRC): Quoter.idl - $(TAO_ROOT)/TAO_IDL/tao_idl Quoter.idl -I$(TAO_ROOT)/orbsvcs/orbsvcs - -.PRECIOUS: $(IDL_SRC) - -client: $(addprefix $(VDIR),$(CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -server: $(addprefix $(VDIR),$(SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -Factory_Finder: $(addprefix $(VDIR),$(FACTORY_FINDER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -Generic_Factory: $(addprefix $(VDIR),$(GENERIC_FACTORY_OBJS)) - $(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/TAO/tests/Quoter/Quoter.dsw b/TAO/tests/Quoter/Quoter.dsw deleted file mode 100644 index 03e09302383..00000000000 --- a/TAO/tests/Quoter/Quoter.dsw +++ /dev/null @@ -1,65 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "Quoter Client"=.\client.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Quoter Factory Finder"=.\Factory_Finder.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "Quoter Server"=.\server.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "QuoterGenericFactory"=.\Generic_Factory.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/TAO/tests/Quoter/Quoter.idl b/TAO/tests/Quoter/Quoter.idl deleted file mode 100644 index dcc1f460e89..00000000000 --- a/TAO/tests/Quoter/Quoter.idl +++ /dev/null @@ -1,133 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = FILENAME -// quoter.idl -// -// = DESCRIPTION -// Quoter example that illustrate the use of the global POA and -// the CosLifeCycle service. -// -// = AUTHOR -// Darrell Brunsch (brunsch@cs.wustl.edu) -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "CosLifeCycle.idl" - -module Stock -{ - exception Invalid_Stock {}; - exception Invalid_Quoter {}; - - interface Quoter : CosLifeCycle::LifeCycleObject - { - // = TITLE - // Access Stock information. - - long get_quote (in string stock_name) - raises (Invalid_Stock, Invalid_Quoter); - - // Returns the current stock value or throws and exception. - - // LifeCycleObject copy(in FactoryFinder there, - // in Criteria the_criteria) - // raises(NoFactory, NotCopyable, InvalidCriteria, CannotMeetCriteria); - // copies this object to a location "there" using the "the_criteria" - - // void move(in FactoryFinder there, - // in Criteria the_criteria) - // raises(NoFactory, NotMovable, InvalidCriteria, CannotMeetCriteria); - // moves this object to a location "there" using the "the_criteria" - - // void remove() - // raises(NotRemovable); - // removes/deletes this object - - }; - - interface Quoter_Factory - { - // = TITLE - // Creation of Quoter objects - - Quoter create_quoter (in string name) - raises (Invalid_Quoter); - // Returns a new Quoter selected by name e.g., "Dow Jones," - // "Reuters,", etc - }; - - - interface Quoter_Factory_Finder : CosLifeCycle::FactoryFinder - { - // = TITLE - // Wrapper for the CosLifeCycle FactoryFinder - // - // inherits: - // Factories find_factories(in Key factory_key) raises(NoFactory); - }; - - interface Quoter_Generic_Factory : CosLifeCycle::GenericFactory - { - // = TITLE - // Wrapper for the CosLifeCycle GenericFactory - // - // inherits: - // boolean supports(in Key k); - // Object create_object(in Key k, in Criteria the_criteria) - // raises (NoFactory, InvalidCriteria, CannotMeetCriteria); - }; - - interface Quoter_Life_Cycle_Service : CosLifeCycle::GenericFactory - { - // = TITLE - // Wrapper for the CosLifeCycle GenericFactory - // - // inherits: - // boolean supports(in Key k); - // Object create_object(in Key k, in Criteria the_criteria) - // raises (NoFactory, InvalidCriteria, CannotMeetCriteria); - - void register_factory (in string name, - in string location, - in string description, - in Object object); - // provide an method for registering factories with their properties - }; - - interface Criteria_Evaluator - { - // = TITLE - // Criteria Evaluator - // - // = DESCRIPTION - // Interface description for an evaluator of CosLifeCycle - // Criterias. It is mainly a wrapper, which should make - // access easier - // - typedef sequence SeqNamedValuePair; - - typedef CosLifeCycle::Criteria Criteria; - - exception NotAvailable { string reason; }; - // raised if the questioned configuration is not available - - SeqNamedValuePair getInitialization (); - // get the initialization - - string getFilter (); - // get a filter string - - SeqNamedValuePair getLogicalLocation (); - // get the logical location - - string getPreferences (); - // get the preferences, not implemented - - void setCriteria (in Criteria criteria); - // set the Criteria which is searched for keywords - }; -}; - diff --git a/TAO/tests/Quoter/Quoter_Impl.cpp b/TAO/tests/Quoter/Quoter_Impl.cpp deleted file mode 100644 index 83811cff20e..00000000000 --- a/TAO/tests/Quoter/Quoter_Impl.cpp +++ /dev/null @@ -1,347 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Quoter -// -// = FILENAME -// Quoter_Impl.cpp -// -// = AUTHOR -// Darrell Brunsch -// -// ============================================================================ - -#include "tao/corba.h" -#include "Quoter_Impl.h" - - -// Constructor. Create all the quoter factories. - -Quoter_Factory_Impl::Quoter_Factory_Impl (size_t num, PortableServer::POA_ptr poa_ptr) - : my_quoters_ (0), - quoter_num_ (num), - next_quoter_ (0) - -{ - { - CORBA::Environment env; - ACE_NEW(this->my_quoters_, Quoter_Impl *[num]); - - for (size_t i = 0; i < num; i++) - { - ACE_NEW(this->my_quoters_[i], Quoter_Impl("x", // name - 0, // don't use the LifeCycle_Service - poa_ptr)); // a reference to the poa */ - - - poa_ptr->activate_object (this->my_quoters_[i], env); - if (env.exception () != 0) - { - env.print_exception ("POA::activate"); - } - - // Stringify the object reference and print it out. - CORBA::String_var quoter_ior = - TAO_ORB_Core_instance()->orb()->object_to_string (this->my_quoters_[i]->_this(env), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - } - } - } - -} - - -// Destructor - -Quoter_Factory_Impl::~Quoter_Factory_Impl (void) -{ - for (size_t i = 0; i < this->quoter_num_; i++) - delete this->my_quoters_[i]; - delete [] this->my_quoters_; -} - - -// Return the quoter by the id . - -Stock::Quoter_ptr -Quoter_Factory_Impl::create_quoter (const char *name, - CORBA::Environment &env) -{ - ACE_UNUSED_ARG (name); - - this->next_quoter_ = (this->next_quoter_ + 1) % this->quoter_num_; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Quoter %d Created\n", this->next_quoter_)); - - return my_quoters_[this->next_quoter_]->_this (env); -} - - -// Constructor - -Quoter_Impl::Quoter_Impl (const char *name, - const unsigned char use_LifeCycle_Service, - PortableServer::POA_ptr poa_ptr) - : use_LifeCycle_Service_ (use_LifeCycle_Service), - poa_var_ (PortableServer::POA::_duplicate (poa_ptr)) -{ - ACE_UNUSED_ARG (name); -} - - -// Destructor - -Quoter_Impl::~Quoter_Impl (void) -{ -} - - -// Returns the current quote for the stock . -// For now, just return 42. It was a good day on Wall Street. - -CORBA::Long -Quoter_Impl::get_quote (char const *stock_name, - class CORBA_Environment &env) -{ - ACE_UNUSED_ARG (stock_name); - ACE_UNUSED_ARG (env); - - return 42; -} - - -// Make a copy of this object - -CosLifeCycle::LifeCycleObject_ptr -Quoter_Impl::copy (CosLifeCycle::FactoryFinder_ptr there, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there) -{ - TAO_TRY - { - // The name of the Generic Factory - CosLifeCycle::Key factoryKey (2); // max = 2 - - if (this->use_LifeCycle_Service_ == 1) - { - // use the LifeCycle Service - factoryKey.length(1); - factoryKey[0].id = CORBA::string_dup ("Life_Cycle_Service"); - } - else - { - // use a Generic Factory - factoryKey.length(2); - factoryKey[0].id = CORBA::string_dup ("IDL_Quoter"); - factoryKey[1].id = CORBA::string_dup ("Quoter_Generic_Factory"); - } - - // Find an appropriate factory over there. - CosLifeCycle::Factories_ptr factories_ptr = - there->find_factories (factoryKey, _env_there); - - // Only a NoFactory exception might have occured, so if it - // occured, then go immediately back. - if (_env_there.exception() != 0) - { - // _env_there contains already the exception. - ACE_ERROR ((LM_ERROR, - "Quoter::copy: Exception occured while trying to find a factory.\n")); - - return CosLifeCycle::LifeCycleObject::_nil(); - } - - // Now it is known that there is at least one factory. - Stock::Quoter_var quoter_var; - - for (u_int i = 0; i < factories_ptr->length (); i++) - { - // Get the first object reference to a factory. - CORBA::Object_ptr generic_FactoryObj_ptr = (*factories_ptr)[i]; - - // Narrow it to a Quoter Factory. - CosLifeCycle::GenericFactory_var generic_Factory_var = - CosLifeCycle::GenericFactory::_narrow (generic_FactoryObj_ptr, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (generic_Factory_var.in ())) - { - ACE_ERROR ((LM_ERROR, - "Quoter::copy: Narrow failed. Generic Factory is not valid.\n")); - return CosLifeCycle::LifeCycleObject::_nil(); - } - - CosLifeCycle::Key genericFactoryName (1); // max = 1 - genericFactoryName.length(1); - genericFactoryName[0].id = CORBA::string_dup ("Quoter_Factory"); - - CosLifeCycle::Criteria criteria(1); - criteria.length (1); - criteria[0].name = CORBA::string_dup ("filter"); - criteria[0].value <<= CORBA::string_dup ("name=='Quoter_Generic_Factory'"); - - CORBA::Object_var quoterObject_var = - generic_Factory_var->create_object (genericFactoryName, - criteria, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - quoter_var = Stock::Quoter::_narrow (quoterObject_var.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (quoter_var.in ())) - { - // If we had already our last chance, then give up. - if (i == factories_ptr->length ()) - { - _env_there.exception (new CosLifeCycle::NoFactory (factoryKey)); - ACE_ERROR ((LM_ERROR, - "Quoter::copy: Last factory did not work. \n" - "No more factories are available. I give up.\n")); - return CosLifeCycle::LifeCycleObject::_nil(); - } - else - { - ACE_ERROR ((LM_ERROR, - "Quoter::copy: Factory did not create the Quoter properly.\n")); - // Tell what's wrong and try the next factory. - } - } - else - // if succeeded in creating a new Quoter over there, then stop trying - break; - } - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Quoter copied\n")); - - CosLifeCycle::LifeCycleObject_ptr lifeCycleObject_ptr = - CosLifeCycle::LifeCycleObject::_duplicate ((CosLifeCycle::LifeCycleObject_ptr) quoter_var.in()); - // Duplicate and eturn an object reference to the newly created Quoter. - return lifeCycleObject_ptr; - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - // Report a NoFactory exception back to the caller - _env_there.exception (new CosLifeCycle::NoFactory ()); - return CosLifeCycle::LifeCycleObject::_nil(); - } - TAO_ENDTRY; - return CosLifeCycle::LifeCycleObject::_nil(); -} - - -// Move this object using and - -void -Quoter_Impl::move (CosLifeCycle::FactoryFinder_ptr there, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_env_there) -{ - ACE_DEBUG ((LM_DEBUG,"Quoter_Impl::move: being called\n")); - - TAO_TRY - { - // We need to have a Factory Finder - if (CORBA::is_nil (there)) - { - ACE_ERROR ((LM_ERROR, - "Quoter_Impl::move: No Factory Finder, don't know how to go on.\n")); - _env_there.exception (new CosLifeCycle::NoFactory ()); - return; - } - - // We need to have access to the POA - if (CORBA::is_nil (this->poa_var_.in())) - { - ACE_ERROR ((LM_ERROR, - "Quoter_Impl::move: No access to the POA. Cannot move.\n")); - _env_there.exception (new CosLifeCycle::NotMovable ()); - return; - } - - // Create a new Quoter over there - CosLifeCycle::LifeCycleObject_var lifeCycleObject_var = - this->copy (there, the_criteria, _env_there); - - if (_env_there.exception () != 0) - { - ACE_ERROR ((LM_ERROR, - "Quoter_Impl::move: Exception while creating new Quoter.\n")); - // The exception is already contained in the right environment - return; - } - - if (CORBA::is_nil (lifeCycleObject_var.in ())) - { - ACE_ERROR ((LM_ERROR, - "Quoter_Impl::move: Created Quoter is not valid.\n")); - _env_there.exception (new CosLifeCycle::NoFactory ()); - return; - } - - // Set the POA, so that the requests will be forwarded to the new location - - // new location - CORBA::Object_var forward_to_var = CORBA::Object::_duplicate ((CORBA::Object_ptr) lifeCycleObject_var.in()); - - if (!CORBA::is_nil (forward_to_var.in ())) - { - PortableServer::ObjectId_var oid = this->poa_var_->servant_to_id (this, TAO_TRY_ENV); - TAO_CHECK_ENV; - - PortableServer::Servant servant = this->poa_var_->_servant (); - - if (servant == 0) - { - ACE_ERROR ((LM_ERROR,"Quoter_Impl::move: Could not find servant.\n")); - _env_there.exception (new CosLifeCycle::NotMovable()); - return; - } - - void *ptr = servant->_downcast ("IDL:PortableServer/POA:1.0"); - POA_PortableServer::POA *poa = (POA_PortableServer::POA *) ptr; - TAO_POA *tao_poa = ACE_dynamic_cast (TAO_POA *, poa); - - tao_poa->forward_object (oid.in (), - forward_to_var.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - } - else - { - ACE_ERROR ((LM_ERROR,"Quoter_Impl::move: forward_to refenence is nil.\n")); - _env_there.exception (new CosLifeCycle::NotMovable()); - return; - } - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("SYS_EX"); - return; - } - TAO_ENDTRY; -} - - -// Removes the object. Once we shut down the ORB we can call it a day. - -void -Quoter_Impl::remove (CORBA::Environment &_tao_environment) -{ - ACE_UNUSED_ARG (_tao_environment); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "I have been asked to shut down.\n")); - - TAO_ORB_Core_instance ()->orb ()->shutdown (); -} diff --git a/TAO/tests/Quoter/Quoter_Impl.h b/TAO/tests/Quoter/Quoter_Impl.h deleted file mode 100644 index fe0bbf74295..00000000000 --- a/TAO/tests/Quoter/Quoter_Impl.h +++ /dev/null @@ -1,108 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Quoter -// -// = FILENAME -// Quoter_Impl.h -// -// = AUTHOR -// Darrell Brunsch -// -// ============================================================================ - -#if !defined (QUOTER_IMPL_H) -#define QUOTER_IMPL_H - -#include "QuoterS.h" - -// Forward declaration. -class Quoter_Impl; - -// Typedefs. -typedef Quoter_Impl *Quoter_Impl_ptr; -typedef Quoter_Impl_ptr Quoter_Impl_ref; - -class Quoter_Impl: public POA_Stock::Quoter -{ - // = TITLE - // Quoter_Impl - // - // = DESCRIPTION - // Actual Quoter Implementation class. Returns a quoter for a given stock - // and provides an example for the lifecycle functionality. -public: - Quoter_Impl (const char *obj_name = "", - const unsigned char use_LifeCycle_Service = 0, - PortableServer::POA_ptr poa_ptr = 0); - // Constructor (use_LifeCycle_Service is 1 if the LifeCycle_Service should be used - // instead of the Quoter Generic_Factory - - ~Quoter_Impl (void); - // Destructor - - virtual CORBA::Long get_quote (const char *stock_name, - CORBA::Environment &env); - // Returns the current quote for the stock - - // = Lifecycle methods - - virtual CosLifeCycle::LifeCycleObject_ptr copy (CosLifeCycle::FactoryFinder_ptr there, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_tao_environment); - // Make a copy of this object - - virtual void move (CosLifeCycle::FactoryFinder_ptr there, - const CosLifeCycle::Criteria &the_criteria, - CORBA::Environment &_tao_environment); - // Move this object using - - virtual void remove (CORBA::Environment &_tao_environment); - // Removes the object. - -private: - unsigned char use_LifeCycle_Service_; - // This flag defines if a Generic Factory is used (0 by default) or - // the more sophisticated LifeCycle Service (1) - - PortableServer::POA_var poa_var_; - // Keep a reference to the POA for use by the move operation -}; - -// Forward declaration. -class Quoter_Factory_Impl; - -typedef Quoter_Factory_Impl *Quoter_Factory_Impl_ptr; - -class Quoter_Factory_Impl: public POA_Stock::Quoter_Factory -{ - // = TITLE - // Quoter_Factory_Impl - // - // = DESCRIPTION - // Factory object returning the quoter_impl objrefs. -public: - Quoter_Factory_Impl (size_t num, PortableServer::POA_ptr poa_ptr); - // Constructor that takes in the number of quoters in the pool. - - ~Quoter_Factory_Impl (void); - // Destructor. - - virtual Stock::Quoter_ptr create_quoter (const char *name, - CORBA::Environment &env); - // Return the quoter by the id . - -private: - Quoter_Impl **my_quoters_; - // Array of quoters. - - size_t quoter_num_; - // Number of quoters. - - size_t next_quoter_; - // Which quoter to return next. -}; - -#endif /* QUOTER_IMPL_H */ diff --git a/TAO/tests/Quoter/README b/TAO/tests/Quoter/README deleted file mode 100644 index ffcf5896fcc..00000000000 --- a/TAO/tests/Quoter/README +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ - -Here is a Stock Quoter example that features the use of the TAO IDL -compiler, the different types of configuration settings (global vs -tss, etc), and the Life Cycle Service. - -For your convenience, the run_test.btm has been provided. It is a -batch file that runs under 4NT. Work is in progress for a regular -batch file that performs the same action. - -And we'll probably get it working on other platforms as soon as it -is completed [since I've heard that some people actually use -platforms/opsystems besides NT ;-) ] - - -run_test - -Name Server ------------ - -Found under TAO\Orbsvcs, this is run for connections from the -server, client, and factory finder. Plans to move this into the -server are under consideration. - -To run with the default settings, use - -run_tests /ns - -Quoter Server -------------- - -To run with the default settings, use - -run_tests /sv - - -Quoter Client -------------- - -To run with the default settings, use - -run_tests /cl - -Quoter Factory Finder ---------------------- - -To run with the default settings, use - -run_tests /ff - diff --git a/TAO/tests/Quoter/client.conf b/TAO/tests/Quoter/client.conf deleted file mode 100644 index 6eee002c688..00000000000 --- a/TAO/tests/Quoter/client.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources tss" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Quoter/client.cpp b/TAO/tests/Quoter/client.cpp deleted file mode 100644 index 8a99943694f..00000000000 --- a/TAO/tests/Quoter/client.cpp +++ /dev/null @@ -1,413 +0,0 @@ -// $Id$ - -#include "ace/Read_Buffer.h" -#include "orbsvcs/CosNamingC.h" -#include "client.h" - -Quoter_Task::Quoter_Task (int argc, char **argv) - : argc_ (argc), argv_ (argv) -{ - // Nothing -} - -int -Quoter_Task::svc (void) -{ - if (this->quoter_client.init (this->argc_, this->argv_) == -1) - return 1; - else - return this->quoter_client.run (); -} - -// Constructor. -Quoter_Client::Quoter_Client (void) - : quoter_factory_key_ (0), - quoter_key_ (ACE_OS::strdup ("key0")), - shutdown_ (0), - quoter_var_ (Stock::Quoter::_nil ()), - useLifeCycleService_(0) // use the Generic Factory -{ - // Nothing -} - -// Parses the command line arguments and returns an error status. - -int -Quoter_Client::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "n:dlx"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'n': // multiple threads - // ignore it, it was handled already - break; - case 'd': // debug flag - TAO_debug_level++; - break; - case 'l': - this->useLifeCycleService_ = 1; - break; - case 'x': - this->shutdown_ = 1; - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-m]" - " [-d]" - " [-l] # use the lifecycle service instead of the generic factory" - " [-x]" - " [-s]" - "\n", - this->argv_ [0]), - -1); - } - - // Indicates successful parsing of command line. - return 0; -} - -int -Quoter_Client::run (void) -{ - CORBA::Long q = this->quoter_var_->get_quote ("ACE Hardware", this->env_); - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with get_quote."); - this->env_.clear(); - return -1; - } - ACE_DEBUG ((LM_DEBUG, "ACE Hardware = %i\n", q)); - - // Copy the Quoter - - CosLifeCycle::Criteria criteria; - CORBA::Object_var quoterObj_var = - this->quoter_var_->copy (factory_Finder_var_.in (), - criteria, - this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with copy."); - this->env_.clear(); - return -1; - } - - if (CORBA::is_nil (quoterObj_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "Quoter_Client::run: Copied Object pointer is nil!"), - -1); - - // Narrow it to the actual Quoter interface - - Stock::Quoter_var copied_quoter_var = - Stock::Quoter::_narrow (quoterObj_var.in (), - this->env_); - - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with narrow."); - this->env_.clear(); - return -1; - } - if (CORBA::is_nil (copied_quoter_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - "Quoter_Client::run: Copied Quoter is nil!"), - -1); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Copied object.\n")); - - q = 0; - q = copied_quoter_var->get_quote ("ACE Hardware", this->env_); - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with get_quote on copied object."); - this->env_.clear(); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Copied object: ACE Hardware = %i\n", q)); - - // Move the Quoter - this->quoter_var_->move (factory_Finder_var_.in (), - criteria, - this->env_); - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with move."); - this->env_.clear(); - return -1; - } - - // Caution, the object reference stays the same -/* - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Moved object\n")); - - q = 0; - q = this->quoter_var_->get_quote ("ACE Hardware", this->env_); - if (this->env_.exception () != 0) - { - this->env_.print_exception ("with get_quote on moved object."); - this->env_.clear(); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Moved object: ACE Hardware = %i\n", q)); */ - return 0; -} - -Quoter_Client::~Quoter_Client (void) -{ - // Free resources - // Close the ior files - if (this->quoter_factory_key_ != 0) - ACE_OS::free (this->quoter_factory_key_); - if (this->quoter_key_ != 0) - ACE_OS::free (this->quoter_key_); -} - -int -Quoter_Client::init_naming_service (void) -{ - TAO_TRY - { - // Resolve the Naming Service - CORBA::Object_var naming_obj = - orb_->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Unable to resolve the Name Service.\n"), - -1); - - CosNaming::NamingContext_var naming_context = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Have a proper reference to the Naming Service.\n")); - - - CosNaming::Name quoterFactoryFinderName (2); - quoterFactoryFinderName.length (2); - quoterFactoryFinderName[0].id = CORBA::string_dup ("IDL_Quoter"); - quoterFactoryFinderName[1].id = CORBA::string_dup ("Quoter_Factory_Finder"); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Trying to resolve the Quoter Factory Finder!\n")); - - CORBA::Object_var factory_obj = - naming_context->resolve (quoterFactoryFinderName, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Resolved the Quoter Factory Finder!\n")); - - factory_Finder_var_ = - Stock::Quoter_Factory_Finder::_narrow (factory_obj.in (), - TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (CORBA::is_nil (factory_Finder_var_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " could not resolve quoter factory in Naming service <%s>\n"), - -1); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Have a proper reference to the Quoter Factory Finder.\n")); - - // The name of the Quoter Generic Factory - CosLifeCycle::Key factoryName (2); // max = 2 - - if (this->useLifeCycleService_ == 1) - { - // use the LifeCycle Service - factoryName.length(1); - factoryName[0].id = CORBA::string_dup ("Life_Cycle_Service"); - } - else - { - // use a Generic Factory - factoryName.length(2); - factoryName[0].id = CORBA::string_dup ("IDL_Quoter"); - factoryName[1].id = CORBA::string_dup ("Quoter_Generic_Factory"); - } - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Trying to get a reference of a factory.\n")); - - // Find an appropriate factory over there. - CosLifeCycle::Factories_ptr factories_ptr = - factory_Finder_var_->find_factories (factoryName, TAO_TRY_ENV); - - if (factories_ptr == 0) - ACE_ERROR_RETURN ((LM_ERROR, - "Did not get a Generic Quoter Factory.\n"), - -1); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Got a proper reference of a factory.\n")); - - - // Get the first object reference to a factory. - CORBA::Object_var quoter_FactoryObj_var; - - if (factories_ptr->length () >= 1) - { - // everything is ok, at least one factory is there - quoter_FactoryObj_var = (*factories_ptr)[0]; - } - else - { - ACE_ERROR_RETURN ((LM_ERROR, - "No Factory received.\n"), - -1); - } - - // Narrow it to a Quoter Generic Factory - generic_Factory_var_ = CosLifeCycle::GenericFactory::_narrow (quoter_FactoryObj_var.in (), TAO_TRY_ENV); - - TAO_CHECK_ENV; - - if (CORBA::is_nil (this->generic_Factory_var_.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - "Factory received is not valid.\n"), - -1); - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Have a proper reference to the Quoter Factory.\n")); - } - TAO_CATCH (CosLifeCycle::NoFactory, excpt) - { - TAO_TRY_ENV.print_exception ("Quoter::init_naming_service: No Factory available!"); - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Quoter::init_naming_service"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -int -Quoter_Client::init (int argc, char **argv) -{ - this->argc_ = argc; - int i; - - // Make a copy of argv since ORB_init will change it. - this->argv_ = new char *[argc]; - - for (i = 0; i < argc; i++) - this->argv_[i] = argv[i]; - - TAO_TRY - { - // Retrieve the ORB. - this->orb_ = CORBA::ORB_init (this->argc_, - this->argv_, - "internet", - TAO_TRY_ENV); - TAO_CHECK_ENV; - - // Parse command line and verify parameters. - if (this->parse_args () == -1) - return -1; - - // deprecated - //if (this->use_naming_service_) - //{ - int naming_result = this->init_naming_service (); - if (naming_result == -1) - return naming_result; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Factory received OK\n")); - - // using the Quoter Generic Factory - CosLifeCycle::Key genericFactoryName (1); // max = 1 - genericFactoryName.length(1); - genericFactoryName[0].id = CORBA::string_dup ("Quoter_Factory"); - // The final factory - - CosLifeCycle::Criteria criteria(1); - criteria.length (1); - criteria[0].name = CORBA::string_dup ("filter"); - criteria[0].value <<= CORBA::string_dup ("name=='Quoter_Generic_Factory'"); - // used to find the last generic factory in the chain - - CORBA::Object_var quoterObject_var = - this->generic_Factory_var_->create_object (genericFactoryName, - criteria, - TAO_TRY_ENV); - TAO_CHECK_ENV; - - this->quoter_var_ = Stock::Quoter::_narrow (quoterObject_var.in(), TAO_TRY_ENV); - TAO_CHECK_ENV; - - if (TAO_debug_level > 0) - ACE_DEBUG ((LM_DEBUG, "Quoter Created\n")); - - if (CORBA::is_nil (this->quoter_var_.in())) - { - ACE_ERROR_RETURN ((LM_ERROR, - "null quoter objref returned by factory\n"), - -1); - } - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Quoter::init"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - - -// This function runs the test. - -int -main (int argc, char **argv) -{ - ACE_Thread_Manager thr_mgr; - - ACE_DEBUG ((LM_DEBUG,"\n\tQuoter: client\n\n")); - - int i; - int threads = 1; - - for (i = 0; i < argc; i++) - if (ACE_OS::strcmp (argv[i], "-n") == 0) - threads = ACE_OS::atoi(argv[i + 1]); - - Quoter_Task **clients = new Quoter_Task*[threads]; - - for (i = 0; i < threads; i++) - clients[i] = new Quoter_Task (argc, argv); - - - for (i = 0; i < threads; i++) - clients[i]->activate (THR_BOUND | ACE_SCHED_FIFO, 1, 0, ACE_DEFAULT_THREAD_PRIORITY); - - int result = ACE_Thread_Manager::instance ()->wait (); - - for (i = 0; i < threads; i++) - delete clients[i]; - - delete [] clients; - - return result; -} - diff --git a/TAO/tests/Quoter/client.dsp b/TAO/tests/Quoter/client.dsp deleted file mode 100644 index dcb2e126533..00000000000 --- a/TAO/tests/Quoter/client.dsp +++ /dev/null @@ -1,220 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Quoter Client" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Quoter 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 "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 "client.mak" CFG="Quoter Client - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Quoter Client - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Quoter 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)" == "Quoter 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 /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 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 - -!ELSEIF "$(CFG)" == "Quoter 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 "..\..\..\\" /I "..\..\\" /I "..\..\orbsvcs" /I "..\..\orbsvcs\orbsvcs" /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 tao.lib aced.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" - -!ENDIF - -# Begin Target - -# Name "Quoter Client - Win32 Release" -# Name "Quoter Client - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp" -# Begin Source File - -SOURCE=.\client.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h" -# Begin Source File - -SOURCE=.\client.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.h -# End Source File -# End Group -# Begin Group "Inline Files" - -# PROP Default_Filter "i" -# Begin Source File - -SOURCE=.\QuoterC.i -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.i -# End Source File -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Quoter.idl -USERDEP__QUOTE="..\..\tao_idl\tao_idl.exe" - -!IF "$(CFG)" == "Quoter Client - Win32 Release" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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)" == "Quoter Client - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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 Source File - -SOURCE=.\client.conf -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Quoter/client.h b/TAO/tests/Quoter/client.h deleted file mode 100644 index 1e37d188b79..00000000000 --- a/TAO/tests/Quoter/client.h +++ /dev/null @@ -1,112 +0,0 @@ -// -*- C++ -*- -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Quoter -// -// = FILENAME -// quoter_client.h -// -// = DESCRIPTION -// @@ Write this -// -// = AUTHORS -// Darrell Brunsch -// -// ============================================================================ - -#if !defined (QUOTER_CLIENT_H) -#define QUOTER_CLIENT_H - -#include "ace/Get_Opt.h" -#include "ace/Task.h" -#include "ace/Thread_Manager.h" -#include "tao/corba.h" -#include "QuoterC.h" -#include "orbsvcs/CosLifeCycleC.h" - -class Quoter_Client -{ - // = TITLE - // @@ Write this - // - // = DESCRIPTION - // @@ Write this -public: - // = Constructor and destructor. - Quoter_Client (void); - ~Quoter_Client (void); - - int run (void); - // Execute client example code. - - int init (int argc, char **argv); - // Initialize the client communication endpoint with server. - -private: - int init_naming_service (void); - // Function to initialize the naming service. - - int parse_args (void); - // Parses the arguments passed on the command line. - - int argc_; - // # of arguments on the command line. - - char **argv_; - // arguments from command line. - - char *quoter_factory_key_; - // Key of factory obj ref. - - char *quoter_key_; - // Key of the obj ref to be retrieved via the factory. - - int shutdown_; - // Flag to tell server to shutdown. - - Stock::Quoter_Factory_Finder_var factory_Finder_var_; - // Pointer to a factory finder - - Stock::Quoter_Factory_var factory_var_; - // Pointer to a factory - - CosLifeCycle::GenericFactory_var generic_Factory_var_; - // Pointer to a generic factory - - CORBA::Environment env_; - // Environment variable. - - Stock::Quoter_var quoter_var_; - // Quoter obj ref. - - CORBA::ORB_var orb_; - // Remember our orb. - - int useLifeCycleService_; - // Flag to tell if the a Generic Factory is going to be used - // or the LifeCycle Service (0 means Generic Factory, 1 means LCS) -}; - -class Quoter_Task : public ACE_Task -{ - // = TITLE - // @@ Write this - // - // = DESCRIPTION - // @@ Write this -public: - Quoter_Task (int argc, char **argv); - - virtual int svc (void); - -private: - Quoter_Client quoter_client; - int argc_; - char **argv_; - -}; - -#endif /* QUOTER_CLIENT_H */ diff --git a/TAO/tests/Quoter/ns.btm b/TAO/tests/Quoter/ns.btm deleted file mode 100644 index ebe5b49ad5d..00000000000 --- a/TAO/tests/Quoter/ns.btm +++ /dev/null @@ -1,4 +0,0 @@ -set nsiorfile=%temp%\qns_ior -REM Naming Service must have been built or else this will fail -start "Naming Service" /K ..\..\orbsvcs\Naming_Service\Naming_Service.exe -ORBport 10042 -ORBobjrefstyle url -o %nsiorfile - diff --git a/TAO/tests/Quoter/run_test.btm b/TAO/tests/Quoter/run_test.btm deleted file mode 100644 index a0e2ed1be86..00000000000 --- a/TAO/tests/Quoter/run_test.btm +++ /dev/null @@ -1,161 +0,0 @@ -@echo off - -REM This is a 4NT Batch file. To use, just type run_test and it will start the -REM server, wait for a second, and then start the client. At the end, it will -REM clean up. - -setlocal - -set nsiorfile=%temp%\qns_ior -set del=2 - -REM variables for parameters - -set nsport=20002 -set clport=20003 -set svport=20004 -set ffport=20005 -set lcport=20006 -set gfport=20007 -set n=1 -set leave=/C -set ior=0 -set done= - -:get_args - -if %1 == /h goto is_h -if %1 == /? goto is_h -goto no_h -:is_h -echo run_test [/n num] [/leave] [/h] [/ns, /sv, /ff, /cl, /gf] -echo. -echo /n num -- runs the client num times -echo /leave -- leaves the servers running and their windows open -echo /h -- prints this information -echo /ns /sv /ff /cl /gf -- Runs only one of the executables -quit -:no_h - -if not %1 == /ns goto no_ns -set done=quit -goto run_name_server -:no_ns - -if not %1 == /sv goto no_sv -set done=quit -goto run_server -:no_sv - -if not %1 == /ff goto no_ff -set done=quit -goto run_finder -:no_ff - -if not %1 == /lc goto no_lc -set done=quit -goto run_lifecycle_service -:no_lc - -if not %1 == /gf goto no_gf -set done=quit -goto run_generic_factory -:no_gf - - -if not %1 == /cl goto no_cl -set done=quit -goto run_client -:no_cl - -if not %1 == /n goto no_n -set n=%2 -shift -shift -goto get_args -:no_n - -if not %1 == /leave goto no_leave -set leave=/K -shift -goto get_args -:no_leave - -:run_name_server -REM Naming Service must have been built or else this will fail -start "Naming Service" %leave ..\..\orbsvcs\Naming_Service\Naming_Service.exe -ORBport %nsport -ORBobjrefstyle url -o %nsiorfile -rem -ORBnameserviceior %temp\qns_ior - -%done - -REM Delay some to let the Naming Service get set up -DELAY %del - -:run_server -REM read in the IOR from the file -for %%d in (@%nsiorfile) do set ior=%%d - -REM Start the server -start "Quoter Server" %leave server.exe -ORBport %svport -ORBobjrefstyle url -ORBnameserviceior %ior -ORBsvcconf server.conf - -%done - -REM Delay some to let the server get set up -DELAY %del - -:run_finder -REM read in the IOR from the file -for %%d in (@%nsiorfile) do set ior=%%d - -REM Start the factory finder -start "Quoter Factory Finder" %leave Factory_Finder.exe -ORBport %ffport -ORBobjrefstyle url -ORBnameserviceior %ior -ORBsvcconf svc.conf - -%done - -REM Delay some to let the Factory Finder get set up -DELAY %del - -:run_lifecycle_service -REM read in the IOR from the file -REM for %%d in (@%nsiorfile) do set ior=%%d - -REM Start the Lifecycle Service -REM start "Quoter LifeCycle Service" %leave LifeCycle_Service.exe -ORBport %lcport -ORBobjrefstyle url -ORBnameserviceior %ior -ORBsvcconf svc.conf - -%done - -REM Delay some to let the LifeCycle Service get set up -REM DELAY %del - -:run_generic_factory -REM read in the IOR from the file -for %%d in (@%nsiorfile) do set ior=%%d - -REM Start the factory finder -start "Quoter Generic Factory" %leave Generic_Factory.exe -ORBport %gfport -ORBobjrefstyle url -ORBnameserviceior %ior -ORBsvcconf svc.conf - - -%done - -REM Delay some to let the Generic Factory get set up -DELAY %del - -:run_client -REM read in the IOR from the file -for %%d in (@%nsiorfile) do set ior=%%d - -REM And now start the client -for /l %x in (1,1,%n) do client.exe -ORBobjrefstyle url -ORBport %clport -ORBnameserviceior %ior -ORBsvcconf client.conf - -%done - -REM We don't really need to delete this -REM del %temp%\qns_ior - -REM Remove any running servers -if %leave==/C activate "Naming Service" CLOSE -if %leave==/C activate "Quoter Server" CLOSE -if %leave==/C activate "Quoter Factory Finder" CLOSE -if %leave==/C activate "Quoter Generic Factory" CLOSE - -endlocal \ No newline at end of file diff --git a/TAO/tests/Quoter/run_test.pl b/TAO/tests/Quoter/run_test.pl deleted file mode 100755 index 34c896d38f3..00000000000 --- a/TAO/tests/Quoter/run_test.pl +++ /dev/null @@ -1,245 +0,0 @@ -#!/pkg/gnu/bin/perl -I../../../bin -# -# If your perl installation isn't in /pkg/gnu/bin/perl, -# please make the change accordingly -# -# This is a Perl script that runs the client and all the other servers that -# are needed - -use Process; - -$nsiorfile = "qns_ior"; - -# number of threads to use for multithreaded clients or servers - -$num_threads = 4; - -# amount of delay between running the servers - -$sleeptime = 1; - -# Get the userid (or ip on NT) - -if ($^O eq "MSWin32") -{ - system ("ipconfig | find \"Address\">ipnum"); - - open (IPNUM, "ipnum"); - - read (IPNUM, $line, 80); - - ($junk, $ip1, $ip2, $ip3, $ip4) = split (/: (\d+)\.(\d+)\.(\d+)\.(\d+)/, $line); - - close IPNUM; - - system ("del /q ipnum"); - - $uid = $ip4; -} -else -{ - $uid = getpwnam (getlogin ()); -} - -# variables for parameters - -$nsport = 20000 + $uid; -$clport = 0; -$svport = 0; -$ffport = 0; -$gfport = 0; - -# other variables - -$n = 1; -$leave = 1; -$ior = 0; -$done = ""; -$debug = ""; -$cm = ""; -$sm = ""; -$other = ""; -$c_conf = "client.conf"; -$s_conf = "server.conf"; - -sub read_nsior -{ - open (FH, "<$nsiorfile"); - - read (FH, $ior, 255); - - close (FH); -} - -sub name_server -{ - my $args = "$other -ORBport $nsport -ORBobjrefstyle url -o $nsiorfile"; - my $prog = "..$DIR_SEPARATOR..$DIR_SEPARATOR"."orbsvcs$DIR_SEPARATOR". - "Naming_Service$DIR_SEPARATOR". - "Naming_Service$Process::EXE_EXT"; - - $NS = Process::Create ($prog, $args); -} - -sub server -{ - my $args = "$other $debug $sm -ORBport $svport -ORBobjrefstyle url ". - "-ORBnameserviceior $ior -ORBsvcconf $s_conf"; - - $SV = Process::Create ("server$Process::EXE_EXT", $args); -} - -sub factory_finder -{ - my $args = "$other -ORBport $ffport -ORBobjrefstyle url -ORBnameserviceior ". - "$ior -ORBsvcconf svc.conf"; - - $FF = Process::Create ("Factory_Finder".$Process::EXE_EXT, $args); -} - -sub generic_factory -{ - my $args = "$other -ORBport $gfport -ORBobjrefstyle url -ORBnameserviceior ". - "$ior -ORBsvcconf svc.conf"; - - $GF = Process::Create ("Generic_Factory".$Process::EXE_EXT, $args); -} - -sub client -{ - my $exe = "client$Process::EXE_EXT $other $debug $cm -ORBobjrefstyle url ". - "-ORBport $clport -ORBnameserviceior $ior -ORBsvcconf $c_conf"; - - for ($j = 0; $j < $n; $j++) - { - system ($exe); - } -} - -# Parse the arguments - -for ($i = 0; $i <= $#ARGV; $i++) -{ - SWITCH: - { - if ($ARGV[$i] eq "-h" || $ARGV[$i] eq "-?") - { - print "run_test [-n num] [-leave] [-d] [-h] [-cm] [-sm] [-ns|sv|ff|cl|gf]\n"; - print "\n"; - print "-n num -- runs the client num times\n"; - print "-leave -- leaves the servers running and their windows open\n"; - print "-onewin -- keeps all tests in one window on NT\n"; - print "-d -- runs each in debug mode\n"; - print "-h -- prints this information\n"; - print "-cm -- use more than one thread in the client\n"; - print "-sm -- use more than one thread in the server\n"; - print "-ns -sv -ff -gf -cl -- runs only one of the executables\n"; - exit; - } - if ($ARGV[$i] eq "-n") - { - $n = $ARGV[$i + 1]; - $i++; - last SWITCH; - } - if ($ARGV[$i] eq "-d") - { - $debug = $debug." -d"; - last SWITCH; - } - if ($ARGV[$i] eq "-cm") - { - $cm = "-n ".$num_threads; - last SWITCH; - } - if ($ARGV[$i] eq "-sm") - { - $sm = "-n ".$num_threads; - last SWITCH; - } - if ($ARGV[$i] eq "-leave") - { - $leave = 0; - last SWITCH; - } - if ($ARGV[$i] eq "-ns") - { - name_server (); - exit; - } - if ($ARGV[$i] eq "-sv") - { - read_nsior (); - server (); - exit; - } - if ($ARGV[$i] eq "-ff") - { - read_nsior (); - factory_finder (); - exit; - } - if ($ARGV[$i] eq "-gf") - { - read_nsior (); - generic_factory (); - exit; - } - if ($ARGV[$i] eq "-cl") - { - read_nsior (); - client (); - exit; - } - if ($ARGV[$i] eq "-customconf") #secret flag from testall.pl - { - #use a different set of *.conf files - $c_conf = "c.conf"; - $s_conf = "s.conf"; - last SWITCH; - } - if ($ARGV[$i] eq "-onewin") - { - if ($^O eq "MSWin32") - { - $Process::newwindow = "no"; - } - last SWITCH; - } - - $other = $other." ".$ARGV[$i]; - } -} - -name_server (); -sleep $sleeptime; -read_nsior (); - -server (); -sleep $sleeptime; - -factory_finder (); -sleep $sleeptime; - -generic_factory (); -sleep $sleeptime; - -client (); - -if ($leave) -{ - $GF->Kill (); - $FF->Kill (); - $SV->Kill (); - $NS->Kill (); -} - - -if ($^O eq "MSWin32") -{ - system ("del ".$nsiorfile); -} -else -{ - system ("rm ".$nsiorfile); -} \ No newline at end of file diff --git a/TAO/tests/Quoter/run_test.sh b/TAO/tests/Quoter/run_test.sh deleted file mode 100755 index ad46004a42e..00000000000 --- a/TAO/tests/Quoter/run_test.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/ksh -# $Id$ - -# =TITLE -# Restart script -# -# =AUTHOR -# Michael Kircher (mk1@cs.wustl.edu) -# -# =DESCRIPTION -# This script restarts the Naming, Scheduling and Event Service, -# "clean" if it is specified as a parameter, then the old -# services are only killed and not restarted -# "lifecycle" if it is specified as a parameter, then -# the LifeCycle Service Object is used -# inbetween to ask the Generic Factory to -# create an Quoter. - -# save the old working dir -old_dir=`pwd` -# get the user name -login=`whoami` -# get the user id -uid=`id | cut -c5-20 | cut -f1 -d"("` - -#### Set TAO_ROOT, if it wasn't set. -if [ ! "$TAO_ROOT" ]; then - if [ "$ACE_ROOT" ]; then - TAO_ROOT=$ACE_ROOT/TAO - else - echo $0: you must set ACE_ROOT or TAO_ROOT! - exit 1 - fi -fi - -echo // Killing the old services - -ps -ef | grep ORBnameserviceior | grep $login | grep -v grep | cut -c10-17 > /tmp/pids$login - -if [ -s /tmp/pids$login ]; then - pids=`cat /tmp/pids$login` - kill $pids -fi - - -ps -ef | grep Service | grep $login | grep -v grep | cut -c10-17 > /tmp/pids$login - -if [ -s /tmp/pids$login ]; then - pids=`cat /tmp/pids$login` - kill $pids -fi - - -# stop here if "ss clean" was called -if [ $1 ]; then - if [ $1 = "clean" ]; then - exit - fi -fi - -echo // Initializing the log file - -if [ -r /tmp/logfile_$login ]; then - rm /tmp/logfile_$login -fi - -nameserviceport=`expr 20023 + $uid` -serverport=`expr 20024 + $uid` -factoryfinderport=`expr 20025 + $uid` -# the next port number is an exception, because we have nested call-backs -genericfactoryport=0 # `expr 20026 + $uid` -lifecycleserviceport=`expr 20027 + $uid` -clientport=`expr 20028 + $uid` - -cd $TAO_ROOT/orbsvcs/Naming_Service -./Naming_Service -ORBport $nameserviceport >> /tmp/logfile_$login 2>&1 & - -sleep 2 - -IOR=`cat /tmp/logfile_$login | grep IOR | cut -c21-300 | cut -f1 -d">" ` - -echo // The IOR of the Naming Service: $IOR - -echo // Started Naming Service on port $nameserviceport - -cd $TAO_ROOT/tests/Quoter -./server -ORBsvcconf server.conf -ORBnameserviceior $IOR -ORBport $serverport >> /tmp/logfile_$login 2>&1 & - -echo // Started server on port $serverport - -sleep 1 - -./Factory_Finder -ORBnameserviceior $IOR -ORBport $factoryfinderport >> /tmp/logfile_$login 2>&1 & - - -echo // Started Factory Finder on port $factoryfinderport - -if [ $1 ]; then - if [ $1 = "lifecycle" ]; then - - sleep 1 - - cd ../../orbsvcs/LifeCycle_Service - - ./Life_Cycle_Service -ORBnameserviceior $IOR -ORBport $lifecycleserviceport >> /tmp/logfile_$login 2>&1 & - - cd $old_dir - - echo // Started Life Cycle Service on port $lifecycleserviceport - sleep 1 - - ./Generic_Factory -l -ORBnameserviceior $IOR -ORBport $genericfactoryport >> /tmp/logfile_$login 2>&1 & - - echo // Started Generic Factory on port $genericfactoryport - echo // using the LifeCycle Service; - - fi -else - sleep 1 - - ./Generic_Factory -ORBnameserviceior $IOR -ORBport $genericfactoryport >> /tmp/logfile_$login 2>&1 & - - echo // Started Generic Factory on port $genericfactoryport - -fi - -echo "// Enjoy the use ;-)" -echo See what is running: -echo .. -ps -ef | grep mk1 | grep ORBnameserviceior -echo .. -echo call the client: -echo .. -./client -ORBsvcconf client.conf -ORBnameserviceior $IOR -ORBport $clientport - -cd $old_dir diff --git a/TAO/tests/Quoter/server.conf b/TAO/tests/Quoter/server.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/Quoter/server.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Quoter/server.cpp b/TAO/tests/Quoter/server.cpp deleted file mode 100644 index e08d6723d08..00000000000 --- a/TAO/tests/Quoter/server.cpp +++ /dev/null @@ -1,269 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = FILENAME -// Quoter_Server.cpp -// -// = DESCRIPTION -// The Server for the Quoter Factory -// -// = AUTHOR -// Darrell Brunsch (brunsch@cs.wustl.edu) -// Michael Kircher (mk1@cs.wustl.edu) -// -// ============================================================================ - -#include "server.h" - -Quoter_Server::Quoter_Server (void) - : num_of_objs_ (1), - quoter_Factory_Impl_ptr_ (0) -{ -} - -int -Quoter_Server::parse_args (void) -{ - ACE_Get_Opt get_opts (argc_, argv_, "dn:"); - int c; - - while ((c = get_opts ()) != -1) - switch (c) - { - case 'd': // debug flag. - TAO_debug_level++; - break; - case 'n': // number of Quoter objects we export - this->num_of_objs_ = ACE_OS::atoi (get_opts.optarg); - break; - case '?': - default: - ACE_ERROR_RETURN ((LM_ERROR, - "usage: %s" - " [-d]" - " [-n] " - "\n", - argv_ [0]), - 1); - } - - - // Indicates successful parsing of command line. - return 0; -} - -int -Quoter_Server::init (int argc, - char* argv[], - CORBA::Environment& env) -{ - if (this->orb_manager_.init (argc, - argv, - env) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "init"), - -1); - - // Copy them, because parse_args expects them there. - this->argc_ = argc; - int i; - - // Make a copy of argv since ORB_init will change it. - this->argv_ = new char *[argc]; - - for (i = 0; i < argc; i++) - this->argv_[i] = argv[i]; - - this->parse_args (); - - // Obtain the RootPOA. - CORBA::Object_var obj = this->orb_manager_.orb()->resolve_initial_references ("RootPOA"); - - // Get the POA_var object from Object_var. - PortableServer::POA_var root_poa = - PortableServer::POA::_narrow (obj.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::_narrow"); - return -1; - } - - // Get the POAManager of the RootPOA. - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POA::the_POAManager"); - return -1; - } - - ACE_NEW_RETURN (quoter_Factory_Impl_ptr_, - Quoter_Factory_Impl(this->num_of_objs_, - root_poa.in()), - 0); - - PortableServer::ObjectId_var quoter_Factory_oid = - PortableServer::string_to_ObjectId ("Quoter_Factory"); - - root_poa->activate_object_with_id (quoter_Factory_oid.in (), - quoter_Factory_Impl_ptr_, - env); - - // Get Object reference for first_foo_impl object. - Stock::Quoter_Factory_var quoter_Factory_var = quoter_Factory_Impl_ptr_->_this (env); - if (env.exception () != 0) - { - env.print_exception ("Quoter_Factory::_this"); - return -1; - } - - // Stringyfy the object reference and print it out. - CORBA::String_var quoter_Factory_ior = - this->orb_manager_.orb()->object_to_string (quoter_Factory_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("CORBA::ORB::object_to_string"); - return -1; - } - - poa_manager->activate (env); - if (env.exception () != 0) - { - env.print_exception ("PortableServer::POAManager::activate"); - return -1; - } - - - ACE_DEBUG ((LM_DEBUG, - "The IOR is: <%s>\n", - quoter_Factory_ior.in ())); - - return this->init_naming_service (env); -} - -// Initialization of Naming Service and register IDL_Quoter Context -// and Quoter_factory object. - -int -Quoter_Server::init_naming_service (CORBA::Environment& env) -{ - TAO_TRY - { - CORBA::ORB_ptr orb_ptr = TAO_ORB_Core_instance()->orb(); - TAO_CHECK_ENV; - - CORBA::Object_var naming_obj = - orb_ptr->resolve_initial_references ("NameService"); - - if (CORBA::is_nil (naming_obj.in ())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to resolve the Name Service.\n"), - -1); - - namingContext_var_ = - CosNaming::NamingContext::_narrow (naming_obj.in (), TAO_TRY_ENV); - TAO_CHECK_ENV; - - - CosNaming::Name quoterContextName (1); - quoterContextName.length (1); - quoterContextName[0].id = CORBA::string_dup ("IDL_Quoter"); - CosNaming::NamingContext_var quoterNameContext = - namingContext_var_->bind_new_context (quoterContextName, env); - TAO_CHECK_ENV_RETURN (env, -1); - - //Register the quoter_factory name with the IDL_quoter Naming - //Context... - CosNaming::Name quoterFactoryContextName (1); - quoterFactoryContextName.length (1); - quoterFactoryContextName[0].id = CORBA::string_dup ("Quoter_Factory"); - quoterNameContext->bind (quoterFactoryContextName, - quoter_Factory_Impl_ptr_->_this(env), - env); - TAO_CHECK_ENV_RETURN (env, -1); - - } - TAO_CATCHANY - { - TAO_TRY_ENV.print_exception ("Quoter::init_naming_service"); - return -1; - } - TAO_ENDTRY; - - return 0; -} - -int -Quoter_Server::run (CORBA::Environment& env) -{ - if (orb_manager_.orb()->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, - "%p\n", - "run"), - -1); - return 0; -} - -Quoter_Server::~Quoter_Server (void) -{ - TAO_TRY - { - // Unbind quoter factory context and name. - CosNaming::Name factory_name (2); - factory_name.length (2); - factory_name[0].id = CORBA::string_dup ("IDL_Quoter"); - factory_name[1].id = CORBA::string_dup ("Quoter_Factory"); - this->namingContext_var_->unbind (factory_name,TAO_TRY_ENV); - TAO_CHECK_ENV; - factory_name.length (1); - this->namingContext_var_->unbind (factory_name,TAO_TRY_ENV); - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - } - TAO_ENDTRY; -} - -int -main (int argc, char *argv[]) -{ - Quoter_Server quoter_server; - - ACE_DEBUG ((LM_DEBUG, - "\n\tQuoter:SERVER \n \n")); - TAO_TRY - { - if (quoter_server.init (argc, argv, TAO_TRY_ENV) == -1) - return 1; - else - { - quoter_server.run (TAO_TRY_ENV); - TAO_CHECK_ENV; - } - } - TAO_CATCH (CORBA::SystemException, sysex) - { - ACE_UNUSED_ARG (sysex); - TAO_TRY_ENV.print_exception ("System Exception"); - return -1; - } - TAO_CATCH (CORBA::UserException, userex) - { - ACE_UNUSED_ARG (userex); - TAO_TRY_ENV.print_exception ("User Exception"); - return -1; - } - TAO_ENDTRY; - return 0; -} diff --git a/TAO/tests/Quoter/server.dsp b/TAO/tests/Quoter/server.dsp deleted file mode 100644 index 75b1675fdc7..00000000000 --- a/TAO/tests/Quoter/server.dsp +++ /dev/null @@ -1,232 +0,0 @@ -# Microsoft Developer Studio Project File - Name="Quoter Server" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=Quoter 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="Quoter Server - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "Quoter Server - Win32 Release" (based on\ - "Win32 (x86) Console Application") -!MESSAGE "Quoter 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)" == "Quoter 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 "..\..\..\\" /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 tao.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\ace" /libpath:"..\..\tao" - -!ELSEIF "$(CFG)" == "Quoter 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 "..\..\..\\" /I "..\..\\" /I "..\..\orbsvcs" /I "..\..\orbsvcs\orbsvcs" /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 tao.lib orbsvcs.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\ace" /libpath:"..\..\tao" /libpath:"..\..\orbsvcs\orbsvcs" -# SUBTRACT LINK32 /nodefaultlib - -!ENDIF - -# Begin Target - -# Name "Quoter Server - Win32 Release" -# Name "Quoter Server - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp" -# Begin Source File - -SOURCE=.\Quoter_Impl.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.cpp -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.cpp -# End Source File -# Begin Source File - -SOURCE=.\server.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h" -# Begin Source File - -SOURCE=.\Quoter_Impl.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterC.h -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.h -# End Source File -# Begin Source File - -SOURCE=.\server.h -# End Source File -# End Group -# Begin Group "Inline Files" - -# PROP Default_Filter "i" -# Begin Source File - -SOURCE=.\QuoterC.i -# End Source File -# Begin Source File - -SOURCE=.\QuoterS.i -# End Source File -# End Group -# Begin Group "IDL Files" - -# PROP Default_Filter "" -# Begin Source File - -SOURCE=.\Quoter.idl -USERDEP__QUOTE="..\..\tao_idl\tao_idl.exe" - -!IF "$(CFG)" == "Quoter Server - Win32 Release" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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)" == "Quoter Server - Win32 Debug" - -# Begin Custom Build - Invoking TAO_IDL compiler -InputPath=.\Quoter.idl -InputName=Quoter - -BuildCmds= \ - ..\..\tao_idl\tao_idl $(InputName).idl -I../../orbsvcs/orbsvcs - -"$(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 Source File - -SOURCE=.\server.conf -# End Source File -# End Target -# End Project diff --git a/TAO/tests/Quoter/server.h b/TAO/tests/Quoter/server.h deleted file mode 100644 index 856ede4463d..00000000000 --- a/TAO/tests/Quoter/server.h +++ /dev/null @@ -1,83 +0,0 @@ -// $Id$ -// -*- C++ -*- - -// ============================================================================ -// -// = LIBRARY -// TAO/tests/Quoter -// -// = FILENAME -// quoter_server.h -// -// = DESCRIPTION -// Implements the Quoter_Server class which handles the initialization of -// the quoter implementations. -// -// = AUTHORS -// Darrell Brunsch (brunsch@cs.wustl.edu) -// -// ============================================================================ - -#if !defined (QUOTER_SERVER_H) -#define QUOTER_SERVER_H - -#include "ace/Get_Opt.h" -#include "ace/Log_Msg.h" -#include "orbsvcs/CosNamingC.h" -#include "orbsvcs/Naming/Naming_Utils.h" -#include "tao/TAO.h" -#include "Quoter_Impl.h" -#include "QuoterC.h" - -class Quoter_Server -{ - // =TITLE - // Defines a Quoter Server class that implements the functionality - // of a server process as an object. - // - // =DESCRIPTION - // The interface is quite simple. A server program has to call - // init to initialize the quoter_server's state and then call run - // to run the orb. -public: - - Quoter_Server (void); - // Default constructor - - ~Quoter_Server (void); - // Destructor - - int init (int argc, char *argv[], CORBA::Environment& env); - // Initialize the Quoter_Server state - parsing arguments and ... - - int run (CORBA::Environment& env); - // Run the orb - -private: - int parse_args (void); - // Parses the commandline arguments. - - int init_naming_service (CORBA::Environment &env); - // Initializes the name server and registers cubit factory with the - // name server. - - int num_of_objs_; - // Number of quoter objects we export. - - CosNaming::NamingContext_var namingContext_var_; - // Naming Service context - - Quoter_Factory_Impl *quoter_Factory_Impl_ptr_; - // Instantiate the Quoter Factory - - TAO_ORB_Manager orb_manager_; - // The ORB manager. - - int argc_; - // Number of commandline arguments. - - char **argv_; - // commandline arguments. -}; - -#endif /* QUOTER_SERVER_H */ diff --git a/TAO/tests/Quoter/sv.btm b/TAO/tests/Quoter/sv.btm deleted file mode 100644 index dff9cf19039..00000000000 --- a/TAO/tests/Quoter/sv.btm +++ /dev/null @@ -1,7 +0,0 @@ -set nsiorfile=%temp%\qns_ior -REM read in the IOR from the file -for %%d in (@%nsiorfile) do set ior=%%d - -REM Start the server -echo %ior -start "Quoter Server" /k Quoter_Server.exe -ORBport 10041 -ORBobjrefstyle url -ORBnameserviceior %ior -ORBsvcconf server.conf diff --git a/TAO/tests/Quoter/svc.conf b/TAO/tests/Quoter/svc.conf deleted file mode 100644 index 43c6a486c92..00000000000 --- a/TAO/tests/Quoter/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Quoter/testall.pl b/TAO/tests/Quoter/testall.pl deleted file mode 100755 index 44233a5e22b..00000000000 --- a/TAO/tests/Quoter/testall.pl +++ /dev/null @@ -1,126 +0,0 @@ -# This is a Perl script that runs the client and all the other servers that -# are needed - -$n = 1; -$leave = 0; -$ior = 0; -$done = ""; -$debug = ""; -$mt = ""; -$other = ""; - -pick_resource (); - -sub pick_resource -{ - $resource = "global"; - pick_poalock (); - $resource = "tss"; - pick_poalock (); -} - -sub pick_poalock -{ - $poalock = "thread"; - pick_poa (); - $poalock = "null"; - pick_poa (); -} - -sub pick_poa -{ - $poa = "global"; - pick_concurrency (); - - if ($resource ne "global") - { - $poa = "tss"; - pick_concurrency (); - } -} - -sub pick_concurrency -{ - $concurrency = "reactive"; - pick_mult_orbs (); -# if ($resource ne "tss") -# { - $concurrency = "thread-per-connection"; - pick_mult_orbs (); -# } -} - -sub pick_mult_orbs -{ - if ($resource ne "global") - { - $multorb = "yes"; - pick_c_resource (); - } - $multorb = "no"; - pick_c_resource (); -} - -sub pick_c_resource -{ - $c_resource = "global"; - pick_c_mult_orbs (); - $c_resource = "tss"; - pick_c_mult_orbs (); -} - -sub pick_c_mult_orbs -{ - if ($c_resource ne "global") - { - $c_multorb = "yes"; - do_work (); - } - $c_multorb = "no"; - do_work (); -} - -sub make_s_conf -{ - open (FH, ">s.conf"); - - select (FH); - - print "dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() \"-ORBresources ".$resource." -ORBpoa $poa\"\n"; - print "dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory()\n"; - print "dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() \"-ORBconcurrency $concurrency -ORBpoalock ".$poalock." -ORBdemuxstrategy dynamic -ORBtablesize 128\"\n"; - - select (STDOUT); - close (FH); -} - -sub make_c_conf -{ - open (FH, ">c.conf"); - - select (FH); - - print "dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() \"-ORBresources $c_resource\"\n"; - print "dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory()\n"; - print "dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() \"-ORBconcurrency reactive -ORBdemuxstrategy dynamic -ORBtablesize 128\"\n"; - - select (STDOUT); - close (FH); -} - - -sub do_work -{ - make_s_conf (); - make_c_conf (); - - print "-------------------------------------------\n"; - print "Server: $resource $poalock $poa $concurrency $multorb\n"; - print "Client: $c_resource $c_multorb\n"; - - if ($multorb eq "yes") { $mt = "-sm"; } else { $mt = ""; } - if ($c_multorb eq "yes") { $cmt = "-cm"; } else { $cmt = ""; } - - system ("perl run_test.pl $mt $cmt -customconf"); -} - diff --git a/TAO/tests/README b/TAO/tests/README deleted file mode 100644 index 4ca004ca6da..00000000000 --- a/TAO/tests/README +++ /dev/null @@ -1,34 +0,0 @@ -The following tests of TAO are provided in this directory. -The individual directories contain READMEs on how to run the tests. - - . Cubit - - Cubit example. The servant returns the cube of the number - sent to it by the client. - - . Demux_test (*NOTE* This is still under development) - - This tests various demultiplexing strategies used in TAO. - . POA - - Contains various small tests of POA features. - - . NestedUpcall - - Tests TAO's nested upcall feature, which allows - single-threaded clients and servers to perform callbacks on - each other without deadlocking. - - . Param_Test - - Tests features of the typecode interpreter. - - . Quoter - - Tests the use of the Global POA options with multiple threads. - - . Thruput_test - - Throughput tests for TAO, based on TTCP. - - diff --git a/TAO/tests/Thruput/COOL/Makefile b/TAO/tests/Thruput/COOL/Makefile deleted file mode 100644 index 08735a2d8fd..00000000000 --- a/TAO/tests/Thruput/COOL/Makefile +++ /dev/null @@ -1,133 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Makefile for the CHORUS COOL Cubit tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -IDL_SRC = ttcp.cpp ttcp.H sk_ttcp.C sk_ttcp.H - -SRC = $(IDL_SRC) ttcp_i.cpp server.cpp client.cpp utils.cpp - -SVR_OBJS = ttcp_i.o server.o ttcp.o utils.o - -CLT_OBJS = client.o ttcp.o utils.o - -LDLIBS = -lm -lOrb-mt -lposix4 - -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 - -#---------------------------------------------------------------------------- -# CHORUS related macros and target settings. -#---------------------------------------------------------------------------- - -CHORUS_BINDIR = $(CHORUS_ROOT)/bin -CHORUS_LIBDIR = $(CHORUS_ROOT)/lib -CHORUS_INCDIR = $(CHORUS_ROOT)/include - -CPPFLAGS += -I$(CHORUS_INCDIR) -I$(CHORUS_ROOT) -LDFLAGS += -L$(CHORUS_LIBDIR) -R $(CHORUS_LIBDIR) -L$(ACE)/ace -IDLFLAGS = --stub-header --stub-impl --skeleton-header --skeleton-impl --no-local --no-any --binding ttcp_sequence ttcp_sequence_i - -#---------------------------------------------------------------------------- -# Local targets -#---------------------------------------------------------------------------- - -all: $(IDL_SRC) server client - -$(IDL_SRC): ttcp.idl - $(CHORUS_BINDIR)/chic $(IDLFLAGS) ttcp.idl - -/bin/mv ttcp.C ttcp.cpp - -server: $(addprefix $(VDIR),$(SVR_OBJS)) - $(LINK.cc) -o server $(addprefix $(VDIR),$(SVR_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITSRV) $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(CLT_OBJS)) - $(LINK.cc) -o client $(addprefix $(VDIR),$(CLT_OBJS)) $(LDFLAGS) $(ITIIOP) $(ITCLT) $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf ttcp.cpp ttcp.H sk_ttcp.C sk_ttcp.H server client - -#---------------------------------------------------------------------------- -# Dependencies -#---------------------------------------------------------------------------- -# DO NOT DELETE THIS LINE -- g++dep uses it. -# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY. - -ttcp.o: ttcp.cpp ttcp.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/shortSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/longSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/doubleSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/charSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/octetSeq.H -sk_ttcp.o: sk_ttcp.C -ttcp_i.o: ttcp_i.cpp \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i ttcp_i.h ttcp.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/shortSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/longSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/doubleSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/charSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/octetSeq.H \ - ttcp_decl.h \ - $(ACE_ROOT)/ace/Profile_Timer.h \ - $(ACE_ROOT)/ace/Time_Value.h \ - $(ACE_ROOT)/ace/High_Res_Timer.h \ - $(ACE_ROOT)/ace/High_Res_Timer.i \ - $(ACE_ROOT)/ace/Profile_Timer.i -server.o: server.cpp \ - $(ACE_ROOT)/ace/ACE.h \ - $(ACE_ROOT)/ace/OS.h \ - $(ACE_ROOT)/ace/inc_user_config.h \ - $(ACE_ROOT)/ace/config.h \ - $(ACE_ROOT)/ace/streams.h \ - $(ACE_ROOT)/ace/Basic_Types.h \ - $(ACE_ROOT)/ace/Basic_Types.i \ - $(ACE_ROOT)/ace/OS.i \ - $(ACE_ROOT)/ace/Trace.h \ - $(ACE_ROOT)/ace/Log_Msg.h \ - $(ACE_ROOT)/ace/Log_Record.h \ - $(ACE_ROOT)/ace/Log_Priority.h \ - $(ACE_ROOT)/ace/Log_Record.i \ - $(ACE_ROOT)/ace/Version.h \ - $(ACE_ROOT)/ace/ACE.i ttcp_i.h ttcp.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/cool.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/shortSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/longSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/doubleSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/charSeq.H \ - /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/include/corba/octetSeq.H \ - $(ACE_ROOT)/ace/Get_Opt.h \ - $(ACE_ROOT)/ace/Get_Opt.i sk_ttcp.H \ - sk_ttcp.C - -# IF YOU PUT ANYTHING HERE IT WILL GO AWAY diff --git a/TAO/tests/Thruput/COOL/README b/TAO/tests/Thruput/COOL/README deleted file mode 100644 index f227cfeea21..00000000000 --- a/TAO/tests/Thruput/COOL/README +++ /dev/null @@ -1,117 +0,0 @@ - TTCP Benchmark README file - -This directory contains a modified version of the TTCP benchmark that -uses the TAO ORB. TTCP is used to measure the throughput of COOL -for sending different data types. This code tests sequences of short, -long, octet, char, double, and richly-typed data such as a struct. - -Organization ------------- - -client.cpp Client main program -server.cpp Server main program -ttcp.cpp Client & Server side stub -ttcp.H Client & Server side stub header file -sk_ttcp.C Server skeleton implementation file -sk_ttcp.H Server skeleton implementation header file -ttcp_i.cpp Implementation of the interface -ttcp_i.h Header for the implementation -utils.cpp Utilities to calculate throughput -ttcp_decl.h Common declarations - -Results -------- -Throughput results are displayed on stdout. - -Running the test ------------------ - Server - ------ - Usage: - server [COOL options] [Common options] - - [COOL options] ** these are required ** - cool-tcp://: -cool-tcp -cool-iiop - - THIS_HOSTNAME : the name of the host that the server will be running on. This is useful - if you want to specifya different interface (e.g. ATM, 100Mbit Ethernet) - - THIS_HOST_PORT: is the port number at which the server will start the high - priority servant. The low priority servant will be created at - (THIS_HOST_PORT+1). - - [Common options]: - -l ## length of bufs read from or written to network (default 8192) - -v verbose: print more statistics - -d ## set debug level - -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga - -L ## Output file name to store results - - Example: - - server cool-tcp://tango.cs.wustl.edu:3000 -cool-tcp -cool-iiop -d 1 - - The Output might look like this: - stringified obj reference = IOR:000000000000001649444C3A747463705F73657175656E63653A312E3000000000000002000000000000004900010000000000103132382E3235322E3136352E313430000BB80000000000290000000001000000010000001C0073193B00000002EFFFED98000000000000000A80FCA58C00000BB8000000434F4F4C000000290000000001000000010000001C0073193B00000002EFFFED98000000000000000A80FCA58C00000BB8 - Entering boa->run (). - - - Client - ------ - - Usage: - client -cool-tcp -cool-iiop [Common options] - - [Common options]: - -l ## length of bufs read from or written to network (default 8192) - -v verbose: print more statistics - -d ## debug level - -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga - -h ## Remote host to send data to - -p ## Port number" - -S ## Total Data Size to be sent - -L ## Output file name to store results - -q Send Sequence: Enumeration for various data types: - s = short, l = long, d = double, c = char - o = octet, S = BinStruct - - Example: - - # The following example will send 10Mb of data, using a megabyte rate, - in 1024 byte chunks, to host tango.cs.wustl.edu, to port 3000, and will send shorts - - client -cool-tcp -cool-iiop -S 10240000 -f m -l 1024 -h tango.cs.wustl.edu -p 3000 -q s - - The Output might look like this: - - Composed IOR string as: cool-tcp://tango.cs.wustl.edu:3000 - data size = 10240000, buflen = 1024, nbuf = 10000 - ttcp-t: 10240000 bytes in 2.81 real seconds = 27.82 Mbit/sec +++ - ttcp-t: 10000 Server Method calls, msec/call = 0.29, calls/sec = 3561.29 - ttcp-r: 10236928 bytes in 2.81 real seconds = 3560.03 KB/sec +++ - ttcp-r: 9993 Server Method calls, msec/call = 0.29, calls/sec = 3558.60 - ttcp-t: 176224.1user -1.-2674sys 0:02real 6261769% 0i+0d 101622maxrss -268440216+-277460652pf 10002+458757csw - ttcp-r: -268441649.-103user 728.0sys 0:02real -194852% 0i+0d 420maxrss -280679408+0pf -268441576+-277738728csw - - -Compiling ---------- - -Setup the CHORUS COOL environment variables before compiling, the -following is an example. You would typically want this in the shells' -resource file (e.g. .cshrc.mine). The example provided is for a C -shell. - - setenv CHORUS_ROOT /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt - set path = ($path /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/bin) - setenv LD_LIBRARY_PATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/lib:$LD_LIBRARY_PATH - setenv MANPATH /project/doc/miniCOOL/minicool.r4.3/solaris2.5-CC-mt/man:$MANPATH - -Makefiles are provided. Use make to compile. - -You can either run the server in the background in the same window as -the client or open a separate window for the client and server. - - --Sergio Flores-Gaitan -(sergio@cs.wustl.edu) \ No newline at end of file diff --git a/TAO/tests/Thruput/COOL/client.cpp b/TAO/tests/Thruput/COOL/client.cpp deleted file mode 100644 index 93ac0bb6785..00000000000 --- a/TAO/tests/Thruput/COOL/client.cpp +++ /dev/null @@ -1,290 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = Chorus COOL tests -// Throughput measurement using the TTCP benchmark adapted to work using COOL -// -// = FILENAME -// client.cpp -// -// Main program for the client -// -// = AUTHOR -// Aniruddha Gokhale -// Sergio Flores Ported code to use Chorus COOL ORB -// -// ============================================================================ - -#include -#include - -#include "ace/ACE.h" -#include "ace/Get_Opt.h" -#include "ttcp.H" -#include "ttcp_decl.h" - -#include "api/api.H" - -int print_usage (void); - -char Usage[] = - "Usage: client -cool-tcp -cool-iiop [Common options] \n" - "[Common options]:\n" - " -l ## length of bufs read from or written to network (default 8192)\n" - " -v verbose: print more statistics\n" - " -d ## debug level\n" - " -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n" - " -h ## Remote host to send data to\n" - " -p ## Port number" - " -L ## Output file name to store results\n" - " -S ## Total Data Size to be sent\n" - " -q Send Sequence: Enumeration for various data types:\n" - " s = short, l = long, d = double, c = char\n" - " o = octet, S = BinStruct \n"; - -CORBA::Long trans = 1; // we are a client - used for debugging purposes -CORBA::Long buflen = 8 * 1024; // length of buffer, default 8,192 bytes -char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Short port = 3000; // default TCP port number -char *host = "localhost"; // ptr to name of host -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu - // rate, proc resource usage. -CORBA::Char fmt = 'K'; // output - // format:k=kilobits,K=kilobytes, m = megabits, - // M = megabytes, g = gigabits, G = gigabytes -CORBA::String title = 0; // title of file to gather statistics -char stats[128]; // gathering the statistics -unsigned long srcDataSize; // Total amount of source data -unsigned long nbytes; // bytes on net -unsigned long numCalls; // # of I/O system calls -double cput, realt; // user, real time (seconds) -unsigned long dt; // data type - -u_int debug_level = 0; - -// declare variables for various message types -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -int -main (int argc, char *argv[]) -{ - - int c; - CORBA_ORB_ptr orb_ptr; // underlying ORB - CORBA::Object_ptr objref = CORBA::Object::_nil(); // object reference - ttcp_sequence_ptr ttcp_seq = 0; // obj reference to TTCP object - CORBA::Environment env; // environment - CORBA::String str; // holds the IOR - - fstream iorfile; - - // parse the arguments - ACE_Get_Opt get_opt (argc, argv, "d:vh:p:f:l:L:S:q:", 3); // Command line options - debug_level = 0; - while ((c = get_opt ()) != -1) - { - switch (c) - { - case 'h': - host = ACE_OS::strdup (get_opt.optarg); - break; - case 'L': - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'p': - port = ACE_OS::atoi (get_opt.optarg); - break; - case 'd': - debug_level = ACE_OS::atoi (get_opt.optarg); - if (debug_level > 10) - debug_level = 10; - break; - case 'l': - buflen = ACE_OS::atoi (get_opt.optarg); - break; - case 'v': - verbose = 1; - break; - case 'f': - fmt = *get_opt.optarg; - break; - case 'S': /* total source data to send. */ - srcDataSize = ACE_OS::atoi (get_opt.optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*get_opt.optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - default: - return print_usage (); - } - } - - // - // Transmitter - // - - // get a handle to the ORB - orb_ptr = CORBA_ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - ACE_DEBUG ((LM_DEBUG, "ORB initialization\n")); - //env.print_exception ("ORB initialization", stdout); - return -1; - } - - // allocate storage to read the IOR string - str = CORBA::string_alloc (500); - - sprintf (str, "cool-tcp://%s:%d", host, port); - - ACE_DEBUG ((LM_DEBUG, "Composed IOR string as: %s\n" , str)); - - COOL::EOABindingData bindingData (str); - ttcp_seq = ttcp_sequence::_bind(bindingData, env); - - CORBA::string_free (str); - - if (!CORBA::is_nil (ttcp_seq)) - { - // the number of iterations is based on the total data size and the - // individual buffer size sent - nbuf = srcDataSize/buflen; - ACE_DEBUG ((LM_DEBUG, "data size = %d, buflen = %d, nbuf = %d\n", - srcDataSize, buflen, nbuf)); - - // - // Prepare the Message to be sent - // - - - // first allocate a buffer of the desired size and alignment - errno = 0; - if ((buf = (char *) ACE_OS::malloc (buflen)) == (char *) NULL) - err ("malloc"); - - // fill the buffer with the data type to be sent - FillPattern (buf, buflen, dt); - - // - // Start the timers on the client and server sides - // - - prep_timer (); // start our time - ttcp_seq->start_timer (env); // ask the server to start its timer - if (env.exception () != 0) - { - ACE_DEBUG ((LM_DEBUG, "start_timer operation\n")); - //env.print_exception ("start_timer operation", stdout); - return -1; - } - -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_clear_data (); - quantify_start_recording_data (); -#endif - // send the same buffer nbuf times - while (nbuf--) - { - switch (dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq (*sseq, env); - nbytes += sseq->length () * sizeof (CORBA::Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq (*lseq, env); - nbytes += lseq->length () * sizeof (CORBA::Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq (*oseq, env); - nbytes += oseq->length () * sizeof (CORBA::Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq (*dseq, env); - nbytes += dseq->length () * sizeof (CORBA::Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq (*cseq, env); - nbytes += cseq->length () * sizeof (CORBA::Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq (*Sseq, env); - nbytes += Sseq->length () * sizeof (BinStruct); - break; - } - numCalls++; // nbytes and numCalls are used in the thruput - // measurement - if (env.exception () != 0) - { - ACE_DEBUG ((LM_DEBUG, "send operation\n")); - //env.print_exception ("send operation", stdout); - return -1; - } - } -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - // stop the timer on the server side - ttcp_seq->stop_timer (env); - if (env.exception () != 0) - { - ACE_DEBUG ((LM_DEBUG, "stop_timer operation\n")); - //env.print_exception ("stop_timer operation", stdout); - return -1; - } - // stop our timer - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - } - else - { - ACE_ERROR ((LM_ERROR, "error: objref is nil\n")); - } - - - CORBA::release (ttcp_seq); - CORBA::release (objref); - - return (0); -} - -int print_usage (void) -{ - ACE_ERROR ((LM_ERROR, "Usage error\n")); - ACE_ERROR ((LM_ERROR, "%s\n", Usage)); - return -1; -} diff --git a/TAO/tests/Thruput/COOL/server.cpp b/TAO/tests/Thruput/COOL/server.cpp deleted file mode 100644 index 6d3cc0e9b39..00000000000 --- a/TAO/tests/Thruput/COOL/server.cpp +++ /dev/null @@ -1,223 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = Chorus COOL tests -// Throughput measurement using the TTCP benchmark adapted to work using -// Chorus COOL -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// Sergio Flores Ported from TAO -// -// ============================================================================ - -#include -#include - -#include "ace/ACE.h" -#include "ace/Get_Opt.h" - -#include "ttcp_i.h" - -#include -#include -#include -#include -#include - -#include "ttcp.H" -#include "sk_ttcp.H" -#include "sk_ttcp.C" - -char Usage[] = "\ -Usage: server [COOL options] [Common options] \n\ - [COOL options] ** these are required ** \n\ - cool-tcp://: -cool-tcp -cool-iiop \n\n\ - THIS_HOSTNAME : the name of the host that the server will be running on. \n\ - This is useful if you want to specify a different interface (e.g. ATM, \n\ - 100Mbit Ethernet)\n\n\ - THIS_HOST_PORT: is the port number at which the server will start the high\n\ - priority servant. The low priority servant will be created at\n\ - (THIS_HOST_PORT+1).\n\n\ - [Common options]:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -v verbose: print more statistics\n\ - -d ## set debug level \n\ - -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ - -L ## Output file name for the data type used\n\n\ -"; - -CORBA::Long trans = 0; // we are the receiver -CORBA::Long buflen = 8 * 1024; // length of buffer -CORBA::Char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu rate, proc - // resource usage. -CORBA::Char fmt = 'K'; // output format:k=kilobits,K=kilobytes, m = - // megabits, M = megabytes, g = gigabits, G = - // gigabytes -u_int debug_level = 0; - -CORBA::String title = 0; // results filename - -CORBA::Char stats[128]; // gathering the statistics -CORBA::ULong srcDataSize; // Total amount of source data -CORBA::ULong nbytes; // bytes on net -CORBA::ULong numCalls; // # of I/O system calls -CORBA::Double cput, realt; // user, real time (seconds) -CORBA::ULong dt; // data type - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -// main program - Driver -int -main (int argc, char **argv) -{ - - int c; // option - CORBA::Environment env; // environment - CORBA_ORB_ptr orb_ptr; // handle to the ORB - CORBA_BOA_ptr oa_ptr; // Object adapter - CORBA::String str; // for stringified representation of the object reference - ttcp_sequence_i my_ttcp_i ("TTCP_IIOP_test"); // instance of the target object - ttcp_sequence_ptr my_ttcp; - - COOL::EOA::bind(argv[1], env); - if (env.exception() != 0) - { - ACE_ERROR_RETURN ((LM_ERROR, - "Impossible to bind the ORB to the description:%s\n", - argv[1]), -1); - } - - // initialize the underlying ORB and get a handle to it - orb_ptr = CORBA_ORB_init (argc, argv, 0, env); - if (env.exception () != 0) - { - ACE_DEBUG ((LM_ERROR, "ORB_init failed..\n")); - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } - return -1; - } - - // now get a handle to the object adapter - oa_ptr = orb_ptr->OA_init (argc, argv, 0, env); - if (env.exception () != 0) - { - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - } - - // for parsing the arguments - ACE_Get_Opt get_opt (argc, argv, "l:vd:f:L:", 2, 1); - debug_level = 0; - while ((c = get_opt ()) != -1) - { - switch (c) - { - case 'v': - verbose = 1; - break; - case 'L': - // title of output file that stores result - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'd': - // debugging level - debug_level = ACE_OS::atoi (get_opt.optarg); - if (debug_level > 10) - debug_level = 10; - break; - case 'f': - // output format i.e., Mbps, Kbps, etc - fmt = *get_opt.optarg; - break; - default: - ACE_ERROR ((LM_ERROR, "Usage error\n")); - ACE_ERROR ((LM_ERROR, "%s\n", Usage)); - return -1; - } - } - - // - // Receiver - // - - COOL::EOABindingData bindingData; - - COOL_bind (my_ttcp_i, my_ttcp, bindingData, env); - - if (env.exception ()) - { - ACE_DEBUG ((LM_ERROR, "Bind failed.\n")); - return -1; - } - - if (debug_level > 0) - { - // get a stringified representation of the object reference created above - str = orb_ptr->object_to_string (my_ttcp, env); - if (env.exception() != 0) - { - CORBA::SystemException* ex; - - ex = CORBA::SystemException::_narrow(env.exception()); - if (ex) - { - CORBA::String_var msg = ex->message(); - fprintf(stderr, "%s.\n", (const char*) msg); - } - else - { - fprintf(stderr, "Unknown user exception.\n"); - } - return -1; - } - ACE_DEBUG ((LM_DEBUG, "stringified obj reference = %s\n", str)); - } - -#if defined (USE_QUANTIFY) - // gather profile data - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - ACE_DEBUG ((LM_DEBUG, "Entering boa->run ().\n")); - oa_ptr->run (); - - return 0; -} diff --git a/TAO/tests/Thruput/COOL/ttcp.idl b/TAO/tests/Thruput/COOL/ttcp.idl deleted file mode 100644 index bccdf4e374e..00000000000 --- a/TAO/tests/Thruput/COOL/ttcp.idl +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct BinStruct -{ - short s; - char c; - long l; - octet o; - double d; - // octet pad[8]; // to make it 32 bytes - // commented out until IDL support for arrays is added -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence DoubleSeq; - typedef sequence CharSeq; - typedef sequence OctetSeq; - typedef sequence StructSeq; - - - // Routines to send sequences of various data types - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/tests/Thruput/COOL/ttcp_decl.h b/TAO/tests/Thruput/COOL/ttcp_decl.h deleted file mode 100644 index 57440e13fc8..00000000000 --- a/TAO/tests/Thruput/COOL/ttcp_decl.h +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ace/OS.h" -#include "ace/Profile_Timer.h" - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include -#endif - - -/* define the data types to be sent */ -#define SEND_SHORT ((CORBA::ULong)(1)) -#define SEND_LONG ((CORBA::ULong)(2)) -#define SEND_CHAR ((CORBA::ULong)(3)) -#define SEND_OCTET ((CORBA::ULong)(4)) -#define SEND_DOUBLE ((CORBA::ULong)(5)) -#define SEND_STRUCT ((CORBA::ULong)(6)) -#define SEND_COMPOSITE ((CORBA::ULong)(7)) - -/************** -// Prototypes -***************/ -int err (char *s); -void mes (CORBA::Char *s); -CORBA::String outfmt (CORBA::Double b); -void prep_timer (void); -CORBA::Double read_timer (char *str, CORBA::Long len); -void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp); -void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -void psecs (CORBA::Long l, register char *cp); -void delay (CORBA::Long us); -void FillPattern (register char *cp, register CORBA::Long bufLen, CORBA::ULong dt); -void PrintStats (void); - -/* Global variables defined here as extern */ -extern ACE_Svc_Export CORBA::Long trans; // whether we are transmitter - // or receiver -extern ACE_Svc_Export CORBA::Long buflen; /* length of buffer */ -extern ACE_Svc_Export char *buf; /* ptr to dynamic buffer */ -extern ACE_Svc_Export CORBA::Long nbuf; /* number of buffers to send in sinkmode */ -extern ACE_Svc_Export CORBA::Short port; /* TCP port number */ -extern ACE_Svc_Export char *host; /* ptr to name of host */ -extern ACE_Svc_Export CORBA::Long verbose; /* 0=print basic info, 1=prCORBA::Long cpu rate, proc - * resource usage. */ -extern ACE_Svc_Export CORBA::Char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern ACE_Svc_Export char *title; - -extern ACE_Svc_Export char stats[128]; -extern ACE_Svc_Export CORBA::ULong srcDataSize; /* Total amount of source data */ -extern ACE_Svc_Export CORBA::ULong nbytes; /* bytes on net */ -extern ACE_Svc_Export CORBA::ULong numCalls; /* # of I/O system calls */ -extern ACE_Svc_Export CORBA::Double cput, realt; /* user, real time (seconds) */ -extern ACE_Svc_Export CORBA::ULong dt; - -/* declare struct variables for various message types */ -extern ACE_Svc_Export ttcp_sequence::ShortSeq *sseq; -extern ACE_Svc_Export ttcp_sequence::LongSeq *lseq; -extern ACE_Svc_Export ttcp_sequence::OctetSeq *oseq; -extern ACE_Svc_Export ttcp_sequence::DoubleSeq *dseq; -extern ACE_Svc_Export ttcp_sequence::CharSeq *cseq; -extern ACE_Svc_Export ttcp_sequence::StructSeq *Sseq; - -#endif diff --git a/TAO/tests/Thruput/COOL/ttcp_i.cpp b/TAO/tests/Thruput/COOL/ttcp_i.cpp deleted file mode 100644 index 3b891f609bf..00000000000 --- a/TAO/tests/Thruput/COOL/ttcp_i.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// $Id$ - -//#include -#include "ace/ACE.h" -#include "ace/streams.h" -#include "ttcp_i.h" -#include "ttcp_decl.h" - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i (const char *obj_name) -{ - this->nbytes_ = 0; - numCalls = 0; -} - -void -ttcp_sequence_i::start_timer (CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -#if defined (USE_PURIFY) - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -} - -void -ttcp_sequence_i::sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Short); -} - -void -ttcp_sequence_i::sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Double) ; -} - -void -ttcp_sequence_i::sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Char) ; -} - -void -ttcp_sequence_i::sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(BinStruct) ; -#ifdef DEBUG - // cout << "Bytes received so far = " << this->nbytes_ << endl; -#endif -} - - - - - - - - - diff --git a/TAO/tests/Thruput/COOL/ttcp_i.h b/TAO/tests/Thruput/COOL/ttcp_i.h deleted file mode 100644 index 92743612475..00000000000 --- a/TAO/tests/Thruput/COOL/ttcp_i.h +++ /dev/null @@ -1,49 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = COOL tests -// Throughput measurement using the TTCP benchmark adapted to work using COOL -// -// = FILENAME -// ttcp_i.h -// -// = AUTHOR -// Aniruddha Gokhale -// Sergio Flores-Gaitan Ported to COOL -// -// ============================================================================ - -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcp.H" - -class ttcp_sequence_i -{ -public: - ttcp_sequence_i (const char *obj_name = 0); - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA::Environment &IT_env); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (CORBA::Environment &IT_env); - virtual void stop_timer (CORBA::Environment &IT_env); - -private: - unsigned long nbytes_; -}; - -#endif // defined (TTCP_I_H) - diff --git a/TAO/tests/Thruput/COOL/utils.cpp b/TAO/tests/Thruput/COOL/utils.cpp deleted file mode 100644 index 18d33cc22cd..00000000000 --- a/TAO/tests/Thruput/COOL/utils.cpp +++ /dev/null @@ -1,467 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// utils.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -// This file has all the helper functions that do the computation of -// throughput, system time used, user time, etc based on data collected. - -#include "ttcp.H" -#include "ttcp_decl.h" - -// the error function. -// displays the error message and exits -int err (char * s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - ACE_OS::perror (s); - ACE_OS::fprintf (stderr, "errno=%d\n", errno); - return -1; -} - -// prints a message indicating if it is a transmitter or a receiver -void mes (CORBA::String s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -// does the formatting for the desired units in which the result is to be -// displayed -CORBA::String -outfmt (CORBA::Double b) -{ - static char obuf[50]; - switch (fmt) - { - case 'G': - ACE_OS::sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - ACE_OS::sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - ACE_OS::sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - ACE_OS::sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - ACE_OS::sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - ACE_OS::sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -/* - * P R E P _ T I M E R - */ -// this is in fact the internals of the "start_timer" operation -void -prep_timer (void) -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - ACE_OS::getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -// This implements the internals of the "stop_timer" method -double -read_timer (char *str, CORBA::Long len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - ACE_OS::getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -// prints the rusage stats -void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - ACE_OS::sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - ACE_OS::sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - ACE_OS::sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - ACE_OS::sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - ACE_OS::sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - ACE_OS::sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - ACE_OS::sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - ACE_OS::sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -// adds two "timeval" structures -void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -// finds difference between two timevals -void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -// print in seconds -void -psecs (CORBA::Long l, register char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - ACE_OS::sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - ACE_OS::sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - ACE_OS::sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - ACE_OS::sprintf (cp, "%d%d", i / 10, i % 10); -} - -// generate the specified delay in microseconds -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -// fill up a buffer with a data type that we want to send -void -FillPattern (register char *cp, register CORBA::Long bufLen, CORBA::ULong dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register long *SeqPtr = (long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA::Char *SeqPtr = (CORBA::Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register BinStruct *SeqPtr = (BinStruct *)cp; - register char c = 0; - num = bufLen/sizeof(BinStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_OCTET: - default: - { - register CORBA::Octet *SeqPtr = (CORBA::Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA::Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} - -// print all the statistics -void PrintStats (void) -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - - if (title != 0) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - ACE_OS::fprintf (outFile, "\n%ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - ACE_OS::fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } - - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - ACE_OS::fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - ACE_OS::fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} diff --git a/TAO/tests/Thruput/CORBAplus/Makefile b/TAO/tests/Thruput/CORBAplus/Makefile deleted file mode 100644 index cc6db955b9a..00000000000 --- a/TAO/tests/Thruput/CORBAplus/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the Thruput benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -LDLIBS = -lcorba -lunixsvc -lpbroker -lboadc -lnaming -llifecycl -lfsstream - -IDL_SRC = ttcp.cpp ttcp_s.cpp -PROG_SRCS = $(IDL_SRC) client.cpp ttcp_i.cpp server.cpp utils.cpp - -LSRC = $(PROG_SRCS) - -TTCP_CLIENT_OBJS = ttcp.o client.o utils.o - -TTCP_SERVER_OBJS = ttcp.o ttcp_s.o server.o ttcp_i.o utils.o - -BIN = client server - -BUILD = $(BIN) - -VLDLIBS = $(LDLIBS:%=%$(VAR)) -VBIN = $(BIN:%=%$(VAR)) - -#---------------------------------------------------------------------------- -# Include macros and targets -#---------------------------------------------------------------------------- - -exceptions = 1 - -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 modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(PBHOME)/lib -CPPFLAGS += -I$(PBHOME)/include - -$(IDL_SRC): ttcp.idl - $(PBHOME)/bin/idlc ttcp.idl - -/bin/mv ttcp.C ttcp.cpp - -/bin/mv ttcp_s.C ttcp_s.cpp - -server: $(addprefix $(VDIR),$(TTCP_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(PBHOME)/lib/iiop_s.o $(VLDLIBS) $(POSTLINK) -#patch on the previous line to allow reading from an environment variable -#the host (interface) I would like the server to bind to. -#The patch is "$(PBHOME)/lib/iiop_s.o" - -client: $(addprefix $(VDIR),$(TTCP_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -clean: - -/bin/rm -rf *.o $(BIN) obj.* core Templates.DB .make.state - -realclean: clean - -/bin/rm -rf ttcp.cpp ttcp.h ttcp_s.cpp ttcp_s.h diff --git a/TAO/tests/Thruput/CORBAplus/README b/TAO/tests/Thruput/CORBAplus/README deleted file mode 100644 index 14ffcd4e0e3..00000000000 --- a/TAO/tests/Thruput/CORBAplus/README +++ /dev/null @@ -1,47 +0,0 @@ - CORBAplus TTCP Benchmark README file - -This directory contains a modified version of the TTCP benchmark that -uses the TAO ORB. TTCP is used to measure the throughput of CORBAplus -for sending different data types. This code tests sequences of short, -long, octet, char, double, and richly-typed data such as a struct. - -Organization ------------- - -client.cpp Client main program -server.cpp Server main program -ttcp.cpp Client side stubs -ttcp_s.cpp Server side skeletons -ttcp.h Header file for stubs -ttcp_s.h Header file for the skeletons -ttcp_i.cpp Implementaion of the interface -ttcp_i.h Header for the implementation -utils.cpp Utilities to calculate throughput -ttcp_decls.h Common declarations - -Results -------- -//Throughput results are stored under the results directory. If testing -//for REMOTE transfers, use the ./results/REMOTE directory. - -Running the tests ------------------ -Three scripts are provided - -(0) run_tests : run several clients sequentially. transmits 10Mb - -(1) run_server : runs the server. Be sure to change the host name -(2) run_client : runs tests for various data types -(3) run_test : called by run_client - -Compiling ---------- - -Type make - -To provide for 2way tests (no data is sent in the reverse -direction. Sender blocks for a minimal ACK), comment out the -DONEWAY -flag from the CPPFLAGS - --Aniruddha Gokhale -(gokhale@cs.wustl.edu) diff --git a/TAO/tests/Thruput/CORBAplus/client.cpp b/TAO/tests/Thruput/CORBAplus/client.cpp deleted file mode 100644 index 2313c649e3f..00000000000 --- a/TAO/tests/Thruput/CORBAplus/client.cpp +++ /dev/null @@ -1,303 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// client.cpp -// -// Main program for the client -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include -#include - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/request.h" -#include "pbroker/corba/environ.h" -#include "ace/ACE.h" -#include "ace/Get_Opt.h" -#include "ttcp.h" -#include "ttcp_decl.h" - -int print_usage (void); - -char Usage[] = - "Usage: client [-options] \n" - "Common options:\n" - "-l ## length of bufs read from or written to network (default 8192)\n" - "-v verbose: print more statistics\n" - "-d ## debug level\n" - "-f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n" - "-h ## Remote host to send data to\n" - "-p ## Port number" - "-L ## Output file name to store results\n" - "-S ## Total Data Size to be sent\n" - "-q Send Sequence: Enumeration for various data types:\n" - "s = short, l = long, d = double, c = char\n" - "o = octet, S = BinStruct \n"; - -u_int _debug_level = 0; - -CORBA::Long trans = 1; // we are a client - used for debugging purposes -CORBA::Long buflen = 8 * 1024; // length of buffer, default 8,192 bytes -char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Short port = ACE_DEFAULT_SERVER_PORT; // TCP port number -char *host = "localhost"; // ptr to name of host -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu - // rate, proc resource usage. -CORBA::Char fmt = 'K'; // output - // format:k=kilobits,K=kilobytes, m = megabits, - // M = megabytes, g = gigabits, G = gigabytes -char *title = 0; // title of file to gather statistics -char stats[128]; // gathering the statistics -unsigned long srcDataSize; // Total amount of source data -unsigned long nbytes; // bytes on net -unsigned long numCalls; // # of I/O system calls -double cput, realt; // user, real time (seconds) -unsigned long dt; // data type - -// declare variables for various message types -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -int -main (int argc, char *argv[]) -{ - try { - int c; - CORBA::ORB_ptr orb_ptr; // underlying ORB - CORBA::String objkey = "TTCP_IIOP_test"; // name of the TTCP object on the - // server - CORBA::Object_ptr objref = CORBA::Object::_nil(); // object reference - ttcp_sequence_ptr ttcp_seq = 0; // obj reference to TTCP object - CORBA::Environment env; // environment - CORBA::String str; // holds the IOR - - fstream iorfile; - - ACE_UNUSED_ARG (objkey); - - // parse the arguments - ACE_Get_Opt get_opt (argc, argv, "d:vh:f:l:L:S:q:"); // Command line options - _debug_level = 0; - while ((c = get_opt ()) != -1) - { - switch (c) - { - case 'h': - host = ACE_OS::strdup (get_opt.optarg); - break; - case 'L': - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'd': - _debug_level = ACE_OS::atoi (get_opt.optarg); - if (_debug_level > 10) - _debug_level = 10; - break; - case 'l': - buflen = ACE_OS::atoi (get_opt.optarg); - break; - case 'v': - verbose = 1; - break; - case 'f': - fmt = *get_opt.optarg; - break; - case 'S': /* total source data to send. */ - srcDataSize = ACE_OS::atoi (get_opt.optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*get_opt.optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - // default: - //return print_usage (); - } - } - - // - // Transmitter - // - - // get a handle to the ORB - orb_ptr = CORBA::ORB_init (argc, - argv); - if (env.exception () != 0) - { - // env.print_exception ("ORB initialization", stdout); - return -1; - } - - // Retrieve a factory objref. - objref = orb_ptr->resolve_initial_references ("TTCP_IIOP_test"); - // @@ put exception handling here !! - - if (CORBA::is_nil (objref) == CORBA_TRUE) - ACE_ERROR_RETURN ((LM_ERROR, - "resolve_initial_references returned null object for ttcp_sequence\n"), - -1); - - - if (!CORBA::is_nil (objref)) - { - // if it is a valid obj ref, narrow it to a ttcp_sequence CORBA object - ttcp_seq = ttcp_sequence::_narrow (objref); - - if (!CORBA::is_nil (ttcp_seq)) - { - - // the number of iterations is based on the total data size and the - // individual buffer size sent - nbuf = srcDataSize/buflen; - ACE_DEBUG ((LM_DEBUG, "data size = %d, buflen = %d, nbuf = %d\n", - srcDataSize, buflen, nbuf)); - - // - // Prepare the Message to be sent - // - - // first allocate a buffer of the desired size and alignment - errno = 0; - if ((buf = (char *) ACE_OS::malloc (buflen)) == (char *) NULL) - err ("malloc"); - - // fill the buffer with the data type to be sent - FillPattern (buf, buflen, dt); - - // - // Start the timers on the client and server sides - // - prep_timer (); // start our time - ttcp_seq->start_timer (); // ask the server to start its timer - if (env.exception () != 0) - { - // env.print_exception ("start_timer operation", stdout); - return -1; - } - -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_clear_data (); - quantify_start_recording_data (); -#endif - // send the same buffer nbuf times - while (nbuf--) - { - switch (dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq (*sseq); - nbytes += sseq->length () * sizeof (CORBA::Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq (*lseq); - nbytes += lseq->length () * sizeof (CORBA::Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq (*oseq); - nbytes += oseq->length () * sizeof (CORBA::Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq (*dseq); - nbytes += dseq->length () * sizeof (CORBA::Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq (*cseq); - nbytes += cseq->length () * sizeof (CORBA::Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq (*Sseq); - nbytes += Sseq->length () * sizeof (BinStruct); - break; - } - - numCalls++; // nbytes and numCalls are used in the thruput - // measurement - } -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - // stop the timer on the server side - ttcp_seq->stop_timer (); - - if (env.exception () != 0) - { - // env.print_exception ("stop_timer operation", stdout); - return -1; - } - // stop our timer - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - } - } - - CORBA::release (ttcp_seq); - CORBA::release (objref); - CORBA::release (orb_ptr); - } - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): client.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: client.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: client.cpp\n\n")); - } - - return (0); -} - -int print_usage (void) -{ - ACE_ERROR ((LM_ERROR, "Usage error\n")); - ACE_ERROR ((LM_ERROR, "%s\n", Usage)); - return -1; -} diff --git a/TAO/tests/Thruput/CORBAplus/extract b/TAO/tests/Thruput/CORBAplus/extract deleted file mode 100644 index f0fc2947b92..00000000000 --- a/TAO/tests/Thruput/CORBAplus/extract +++ /dev/null @@ -1,4 +0,0 @@ -rm -f outfile -touch outfile -grep "Mbit/sec\|Send" results.CP | head -20 > outfile -grep "msec/call\|Send" results.CP | head -20 >> outfile diff --git a/TAO/tests/Thruput/CORBAplus/run b/TAO/tests/Thruput/CORBAplus/run deleted file mode 100644 index 009677fdcde..00000000000 --- a/TAO/tests/Thruput/CORBAplus/run +++ /dev/null @@ -1 +0,0 @@ -client -S 67108864 -f m -l $1 -L temp -q $2 -d $3 diff --git a/TAO/tests/Thruput/CORBAplus/run_client b/TAO/tests/Thruput/CORBAplus/run_client deleted file mode 100644 index 9e6932f8ae6..00000000000 --- a/TAO/tests/Thruput/CORBAplus/run_client +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/csh -f -# All ATM tests: 64k socket Queue Size -# -# shorts -run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 s $2 -sleep 5 -# longs -run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 l $2 -sleep 5 -# octets -run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 o $2 -sleep 5 -# doubles -run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 d $2 -sleep 5 -# chars -#run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 c $2 -#sleep 5 -# structures -run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 S $2 -sleep 5 -# Composite Structs -#run_test 67108864 128 $1 ./results/REMOTE/$1/sun-iiop.atm.64 C $2 -#sleep 5 -# diff --git a/TAO/tests/Thruput/CORBAplus/run_server b/TAO/tests/Thruput/CORBAplus/run_server deleted file mode 100644 index e4faa5331e4..00000000000 --- a/TAO/tests/Thruput/CORBAplus/run_server +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/csh -# -# Usage: server -# -u : use IOR -# -f m : output results in Mbps -# -b ** not implemented ** -# -OAhost ************* must provide this for this version -# -OAthread : use threaded version as opposed to reactive -# -server -f m -ORBhost mambo.cs.wustl.edu #-OAthread diff --git a/TAO/tests/Thruput/CORBAplus/run_test b/TAO/tests/Thruput/CORBAplus/run_test deleted file mode 100644 index 622b0b4fee6..00000000000 --- a/TAO/tests/Thruput/CORBAplus/run_test +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/csh -f -echo $* -if ($#argv < 3) then - echo "Usage: sclt " - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[2] * 1024) -#echo $limit -#echo $msize -test -d $4 || mkdir $4 -echo "Iteration#" 1 ": client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 -client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S $1 -f m -l $msize -h $3 -L $4 -q $5 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S" $1 "-D -f m -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 - client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S $1 -f m -l $msize -h $3 -L $4 -q $5 - label: - set flag=1 - sleep 5 - foreach i (2) - echo "Iteration#" $i ": client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L " $4 "-q" $5 -b 65536 - client -pbtrace -pbinit TTCP_IIOP_test iiop://$3:$6/TTCP_IIOP_test -S $1 -f m -l $msize -h $3 -L $4 -q $5 - end - echo "---------------------------" - @ msize = ($msize * 2) - sleep 5 -end - -echo " " -echo "Done at:" -date diff --git a/TAO/tests/Thruput/CORBAplus/run_tests b/TAO/tests/Thruput/CORBAplus/run_tests deleted file mode 100644 index 0cbf595fe84..00000000000 --- a/TAO/tests/Thruput/CORBAplus/run_tests +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/csh -# -# Usage: run_tests -# : remote hostname server -# : remote port to send requests. -# - -rm -f results.CP -touch results.CP - -echo "CORBAplus throughput test" -echo "=========================" -echo "CORBAplus throughput test" >>& results.CP -echo "=========================" >>& results.CP - - -echo "Send Struct --------------------------------------------------------" >>& results.CP - ./client -S 10485760 -f m -l 1024 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 2048 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 4096 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 8192 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 16384 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 32768 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 65536 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 131072 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 262144 -q S -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - -echo "Send Short ---------------------------------------------------------" >>& results.CP - ./client -S 10485760 -f m -l 1024 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 2048 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 4096 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 8192 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 16384 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 32768 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 65536 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 131072 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - ./client -S 10485760 -f m -l 262144 -q s -pbtrace -pbinit TTCP_IIOP_test iiop://$1:$2/TTCP_IIOP_test >>& results.CP - - -grep "Mbit/sec\|Send" results.CP - diff --git a/TAO/tests/Thruput/CORBAplus/server.cpp b/TAO/tests/Thruput/CORBAplus/server.cpp deleted file mode 100644 index 4d54a181ebc..00000000000 --- a/TAO/tests/Thruput/CORBAplus/server.cpp +++ /dev/null @@ -1,176 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include -#include - -#include -#include -#include // will force usage of "Full" BOA API -#include - -#include "ace/ACE.h" -#include "ttcp_i.h" -#include "ace/Get_Opt.h" - -char Usage[] = "\ -Usage: server [TAO options] [options] \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --v verbose: print more statistics\n\ --d ## set debug level \n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --L ## Output file name for the data type used\n\n\ -"; - -CORBA::Long trans = 0; // we are the receiver -CORBA::Long buflen = 8 * 1024; // length of buffer -CORBA::Char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu rate, proc - // resource usage. -CORBA::Char fmt = 'K'; // output format:k=kilobits,K=kilobytes, m = - // megabits, M = megabytes, g = gigabits, G = - // gigabytes - -char *title = 0; // results filename - -CORBA::Char stats[128]; // gathering the statistics -CORBA::ULong srcDataSize; // Total amount of source data -CORBA::ULong nbytes; // bytes on net -CORBA::ULong numCalls; // # of I/O system calls -CORBA::Double cput, realt; // user, real time (seconds) -CORBA::ULong dt; // data type - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -ttcp_sequence_i *my_ttcp; // instance of the target object - -u_int _debug_level = 0; - -// main program - Driver -int -main (int argc, char **argv) -{ - - int c; // option - CORBA::Environment env; // environment - XpsORB_ptr orb_ptr = XpsORB::_nil (); // handle to the ORB - XpsBOA * oa_ptr = XpsBOA::_nil (); // Object adapter - CORBA::String key = (CORBA::String) "key0"; // key assigned to our - // target object - CORBA::String str; // for stringified representation of the object reference - - ACE_UNUSED_ARG (key); - - try - { - // initialize the underlying ORB and get a handle to it - orb_ptr = XpsORB::init (argc, argv); - - // now get a handle to the object adapter - oa_ptr = XpsBOA::init (argc, argv); - - if (CORBA::is_nil(orb_ptr) || CORBA::is_nil(oa_ptr)) - { - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the ORB and/or the BOA\n"), - 1); - } - - // for parsing the arguments - ACE_Get_Opt get_opt (argc, argv, "l:vd:f:L:"); - - _debug_level = 0; - for (; (c = get_opt ()) != EOF;) - { - switch (c) - { - case 'L': - // title of output file that stores result - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'd': - // debugging level - _debug_level = ACE_OS::atoi (get_opt.optarg); - if (_debug_level > 10) - _debug_level = 10; - break; - case 'f': - // output format i.e., Mbps, Kbps, etc - fmt = *get_opt.optarg; - break; - } - } - - // - // Receiver - // - - // create an instance of an object implementing the "ttcp" interface - my_ttcp = new ttcp_sequence_i ("TTCP_IIOP_test"); // this is its name - - if (1)//_debug_level > 0) - { - // get a stringified representation of the object reference created above - str = orb_ptr->object_to_url (my_ttcp); - ACE_DEBUG ((LM_DEBUG, "stringified obj reference = %s\n", str)); - } - -#if defined (USE_QUANTIFY) - // gather profile data - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - oa_ptr->obj_is_ready (my_ttcp, nil); - oa_ptr->registerAlias (my_ttcp, "TTCP_IIOP_test"); - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - XpsEventService eventService; - eventService.mainloop(); // control will not return to this point - - } /* end of try() */ - catch(const CORBA::SystemException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::SystemException caught: %s (minor: %d): server.cpp\n\n", - exc._repository_id (), - exc.minor ())); - } - catch(const CORBA::UserException& exc) - { - ACE_DEBUG ((LM_DEBUG, - "CORBA::UserException caught: %s: server.cpp\n\n", - exc._repository_id ())); - } - catch(...) - { - ACE_DEBUG ((LM_DEBUG, - "Exception caught: server.cpp\n\n")); - } - - return 0; - - // usage: - // fprintf (stderr, Usage); - // return(1); -} diff --git a/TAO/tests/Thruput/CORBAplus/ttcp.idl b/TAO/tests/Thruput/CORBAplus/ttcp.idl deleted file mode 100644 index bccdf4e374e..00000000000 --- a/TAO/tests/Thruput/CORBAplus/ttcp.idl +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct BinStruct -{ - short s; - char c; - long l; - octet o; - double d; - // octet pad[8]; // to make it 32 bytes - // commented out until IDL support for arrays is added -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence DoubleSeq; - typedef sequence CharSeq; - typedef sequence OctetSeq; - typedef sequence StructSeq; - - - // Routines to send sequences of various data types - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/tests/Thruput/CORBAplus/ttcp_decl.h b/TAO/tests/Thruput/CORBAplus/ttcp_decl.h deleted file mode 100644 index 0a8e3c9572a..00000000000 --- a/TAO/tests/Thruput/CORBAplus/ttcp_decl.h +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ace/OS.h" -#include "ace/Profile_Timer.h" - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include -#endif - - -/* define the data types to be sent */ -#define SEND_SHORT ((CORBA::ULong)(1)) -#define SEND_LONG ((CORBA::ULong)(2)) -#define SEND_CHAR ((CORBA::ULong)(3)) -#define SEND_OCTET ((CORBA::ULong)(4)) -#define SEND_DOUBLE ((CORBA::ULong)(5)) -#define SEND_STRUCT ((CORBA::ULong)(6)) -#define SEND_COMPOSITE ((CORBA::ULong)(7)) - -/************** -// Prototypes -***************/ -int err (char *s); -void mes (CORBA::Char *s); -char *outfmt (CORBA::Double b); -void prep_timer (void); -CORBA::Double read_timer (char *str, CORBA::Long len); -void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp); -void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -void psecs (CORBA::Long l, register char *cp); -void delay (CORBA::Long us); -void FillPattern (register char *cp, register CORBA::Long bufLen, CORBA::ULong dt); -void PrintStats (void); - -/* Global variables defined here as extern */ -extern ACE_Svc_Export CORBA::Long trans; // whether we are transmitter - // or receiver -extern ACE_Svc_Export CORBA::Long buflen; /* length of buffer */ -extern ACE_Svc_Export char *buf; /* ptr to dynamic buffer */ -extern ACE_Svc_Export CORBA::Long nbuf; /* number of buffers to send in sinkmode */ -extern ACE_Svc_Export CORBA::Short port; /* TCP port number */ -extern ACE_Svc_Export char *host; /* ptr to name of host */ -extern ACE_Svc_Export CORBA::Long verbose; /* 0=print basic info, 1=prCORBA::Long cpu rate, proc - * resource usage. */ -extern ACE_Svc_Export CORBA::Char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern ACE_Svc_Export char *title; - -extern ACE_Svc_Export char stats[128]; -extern ACE_Svc_Export CORBA::ULong srcDataSize; /* Total amount of source data */ -extern ACE_Svc_Export CORBA::ULong nbytes; /* bytes on net */ -extern ACE_Svc_Export CORBA::ULong numCalls; /* # of I/O system calls */ -extern ACE_Svc_Export CORBA::Double cput, realt; /* user, real time (seconds) */ -extern ACE_Svc_Export CORBA::ULong dt; - -/* declare struct variables for various message types */ -extern ACE_Svc_Export ttcp_sequence::ShortSeq *sseq; -extern ACE_Svc_Export ttcp_sequence::LongSeq *lseq; -extern ACE_Svc_Export ttcp_sequence::OctetSeq *oseq; -extern ACE_Svc_Export ttcp_sequence::DoubleSeq *dseq; -extern ACE_Svc_Export ttcp_sequence::CharSeq *cseq; -extern ACE_Svc_Export ttcp_sequence::StructSeq *Sseq; - -#endif diff --git a/TAO/tests/Thruput/CORBAplus/ttcp_i.cpp b/TAO/tests/Thruput/CORBAplus/ttcp_i.cpp deleted file mode 100644 index cf95a1db4ec..00000000000 --- a/TAO/tests/Thruput/CORBAplus/ttcp_i.cpp +++ /dev/null @@ -1,105 +0,0 @@ -// $Id$ - -#include "pbroker/corba/orb.h" -#include "pbroker/corba/environ.h" -#include -#include -#include -#include "ace/ACE.h" -#include "ttcp_i.h" -#include "ttcp_decl.h" - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i(const char *obj_name) - : key_(obj_name) -{ - this->nbytes_ = 0; - numCalls = 0; -} - -const char * -ttcp_sequence_i::_get_name (void) -{ - return key_; -} - -void -ttcp_sequence_i::start_timer (void) -{ - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (void) -{ - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -#if defined (USE_PURIFY) - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -} - -void -ttcp_sequence_i::sendShortSeq(const ttcp_sequence::ShortSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Short); -} - -void -ttcp_sequence_i::sendLongSeq(const ttcp_sequence::LongSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq(const ttcp_sequence::OctetSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq(const ttcp_sequence::DoubleSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Double) ; -} - -void -ttcp_sequence_i::sendCharSeq(const ttcp_sequence::CharSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Char) ; -} - -void -ttcp_sequence_i::sendStructSeq(const ttcp_sequence::StructSeq& ttcp_seq) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(BinStruct) ; -#ifdef DEBUG - // cout << "Bytes received so far = " << this->nbytes_ << endl; -#endif -} - - - - - - - - - diff --git a/TAO/tests/Thruput/CORBAplus/ttcp_i.h b/TAO/tests/Thruput/CORBAplus/ttcp_i.h deleted file mode 100644 index b052d603400..00000000000 --- a/TAO/tests/Thruput/CORBAplus/ttcp_i.h +++ /dev/null @@ -1,61 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using -// CORBAplus PowerBroker from Expersoft -// = FILENAME -// ttcp_i.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include -#include -#include "pbroker/corba/orb.h" -#include "pbroker/corba/request.h" -#include "pbroker/corba/environ.h" - -#include "ace/OS.h" -#include "ttcp_s.h" - -class ttcp_sequence_i: public ttcp_sequence_base_impl -{ -public: - // XPS_CAST1_DECL(ttcp_sequence_i,ttcp_sequence_base_impl) - // XPS_DEFINE_IMPLEMENTATION(ttcp_sequence_decl) - - ttcp_sequence_i(const char *obj_name); - - ttcp_sequence_i (void) - { ttcp_sequence_i ("keyone");} - - ttcp_sequence_i (const CORBA_ReferenceData & refData) - { ttcp_sequence_i ("keyone");} - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (void); - virtual void stop_timer (void); - - const char *_get_name (void); - // get the key of the object. -private: - unsigned long nbytes_; - const char *key_; -}; - -#endif // defined (TTCP_I_H) - diff --git a/TAO/tests/Thruput/CORBAplus/utils.cpp b/TAO/tests/Thruput/CORBAplus/utils.cpp deleted file mode 100644 index 41c46840a83..00000000000 --- a/TAO/tests/Thruput/CORBAplus/utils.cpp +++ /dev/null @@ -1,467 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// utils.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -// This file has all the helper functions that do the computation of -// throughput, system time used, user time, etc based on data collected. - -#include "ttcp.h" -#include "ttcp_decl.h" - -// the error function. -// displays the error message and exits -int err (char *s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - ACE_OS::perror (s); - ACE_OS::fprintf (stderr, "errno=%d\n", errno); - return -1; -} - -// prints a message indicating if it is a transmitter or a receiver -void mes (CORBA::String s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -// does the formatting for the desired units in which the result is to be -// displayed -char * -outfmt (CORBA::Double b) -{ - static char obuf[50]; - switch (fmt) - { - case 'G': - ACE_OS::sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - ACE_OS::sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - ACE_OS::sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - ACE_OS::sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - ACE_OS::sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - ACE_OS::sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -/* - * P R E P _ T I M E R - */ -// this is in fact the internals of the "start_timer" operation -void -prep_timer (void) -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - ACE_OS::getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -// This implements the internals of the "stop_timer" method -double -read_timer (char *str, CORBA::Long len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - ACE_OS::getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -// prints the rusage stats -void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - ACE_OS::sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - ACE_OS::sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - ACE_OS::sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - ACE_OS::sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - ACE_OS::sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - ACE_OS::sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - ACE_OS::sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - ACE_OS::sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -// adds two "timeval" structures -void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -// finds difference between two timevals -void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -// print in seconds -void -psecs (CORBA::Long l, register char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - ACE_OS::sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - ACE_OS::sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - ACE_OS::sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - ACE_OS::sprintf (cp, "%d%d", i / 10, i % 10); -} - -// generate the specified delay in microseconds -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -// fill up a buffer with a data type that we want to send -void -FillPattern (register char *cp, register CORBA::Long bufLen, CORBA::ULong dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register long *SeqPtr = (long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA::Char *SeqPtr = (CORBA::Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register BinStruct *SeqPtr = (BinStruct *)cp; - register char c = 0; - num = bufLen/sizeof(BinStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_OCTET: - default: - { - register CORBA::Octet *SeqPtr = (CORBA::Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA::Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} - -// print all the statistics -void PrintStats (void) -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - - if (title != 0) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - ACE_OS::fprintf (outFile, "\n%ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - ACE_OS::fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } - - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - ACE_OS::fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - ACE_OS::fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} diff --git a/TAO/tests/Thruput/Makefile b/TAO/tests/Thruput/Makefile deleted file mode 100644 index 50d889896c9..00000000000 --- a/TAO/tests/Thruput/Makefile +++ /dev/null @@ -1,26 +0,0 @@ -#---------------------------------------------------------------------------- -# @(#)Makefile 1.1 10/18/96 -# -# Makefile for the TAO thruput tests -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -DIRS = TAO - -# DIRS = CORBAplus \ -# Orbix \ -# TAO - -#---------------------------------------------------------------------------- -# 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/TAO/tests/Thruput/Orbix/Client.cpp b/TAO/tests/Thruput/Orbix/Client.cpp deleted file mode 100644 index 66a07c64134..00000000000 --- a/TAO/tests/Thruput/Orbix/Client.cpp +++ /dev/null @@ -1,326 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" - -char Usage[] = "\ -Usage: client [-options] [ORBeline options] host \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --A align the start of buffers to this modulus (default 16384)\n\ --o start buffers at this offset from the modulus (default 0)\n\ --v verbose: print more statistics\n\ --d set SO_DEBUG socket option\n\ --b ## set socket buffer size (if supported)\n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --n ## number of source bufs written to network (default 2048)\n\ --x Use new lines after each entry in output file\n\ --h ## Remote host to send data to\n\ --D don't buffer TCP writes (sets TCP_NODELAY socket option)\n\ --L ## Output file name for the data type used\n\ --S \n\ --q Send Sequence: Enumeration for various data types:\n\ -s = short, l = long, d = double, c = char\n\ -o = octet, S = struct, C = composite\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else - void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans =1; /* 0=receive, !0=transmit mode */ -int sinkmode = 1; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc -* resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, -* m = megabits, M = megabytes, -* g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; -ttcp_sequence::CompositeSeq *Cseq; - - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - unsigned short done = 0; - int c; - - CORBA::Environment env; - CORBA::Object_ptr target; // will hold handle to proxy - ttcp_sequence_ptr ttcp_seq; - - if (argc < 2) - goto usage; - - - while (!done && ((c = getopt (argc, argv, "dvDb:h:f:l:n:A:o:L:xS:q:O")) != -1)) - { - switch (c) - { - case 'h': - host = optarg; - break; - case 'x': - new_line = 1; - break; - case 'L': - title = optarg; - break; - case 'd': - options |= SO_DEBUG; - break; - case 'D': -#ifdef TCP_NODELAY - nodelay = 1; -#else - fprintf (stderr, - "ttcp: -D option ignored: TCP_NODELAY socket option not supported\n"); -#endif - break; - case 'n': - nbuf = atoi (optarg); - break; - case 'l': - buflen = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'A': - bufalign = atoi (optarg); - break; - case 'o': - bufoffset = atoi (optarg); - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'S': /* total source data to send. */ - /* modify nbuf accordingly */ - srcDataSize = atoi(optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - case 'O': - case '?': - done = 1; - break; - default: - goto usage; - } - } - - // - // Transmitter - // - - // now bind to server - try { - char *service_name = new char[15]; - strcpy(service_name,":SII_ttcp"); // server object's name - - target = ttcp_sequence::_bind (service_name, host); - if (!CORBA::is_nil(target)){ - ttcp_seq = ttcp_sequence::_narrow(target); - - if (!CORBA::is_nil(ttcp_seq)){ - /* start recording quantify data from here */ - if (sockbufsize) - { - /* file descriptor of a proxy is obtained using the _fd() method */ - if (setsockopt (ttcp_seq->_fd (), SOL_SOCKET, SO_SNDBUF, (char *) &sockbufsize, - sizeof sockbufsize) < 0) - err ("setsockopt: sndbuf"); - mes ("sndbuf"); - } - - if (nodelay) - { - struct protoent *p; - p = getprotobyname ("tcp"); - if (setsockopt (ttcp_seq->_fd (), - p->p_proto, - TCP_NODELAY, - (char *)& one, - sizeof (one))) - err ("setsockopt: nodelay"); - mes ("nodelay"); - } - - /* modify nbuf according to Total data size */ - nbuf = srcDataSize/buflen; - fprintf(stderr, "data size = %d, buflen = %d, nbuf = %d\n",srcDataSize, buflen, nbuf); - - // - // Prepare the Message to be sent - // - - errno = 0; - if ((buf = (char *) malloc (buflen + bufalign)) == (char *) NULL) - err ("malloc"); - if (bufalign != 0) - buf += (bufalign - ((int) buf % bufalign) + bufoffset) % bufalign; - - - // fill the appropriate buffers - FillPattern (buf, buflen, dt); - // - // Start the timers on the client and server sides - // - - prep_timer (); - ttcp_seq->start_timer (); -#if defined (USE_QUANTIFY) - quantify_clear_data(); - quantify_start_recording_data(); -#endif - while (nbuf--) - { - switch(dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq(*sseq); - nbytes += sseq->length()*sizeof(CORBA::Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq(*lseq); - nbytes += lseq->length()*sizeof(CORBA::Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq(*oseq); - nbytes += oseq->length()*sizeof(CORBA::Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq(*dseq); - nbytes += dseq->length()*sizeof(CORBA::Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq(*cseq); - nbytes += cseq->length()*sizeof(CORBA::Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq(*Sseq); - nbytes += Sseq->length()*sizeof(PerfStruct); - break; - case SEND_COMPOSITE: - ttcp_seq->sendCompositeSeq(*Cseq); - nbytes += Cseq->length()*sizeof(CompositeStruct); - break; - } - numCalls++; - } -#if defined(USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - ttcp_seq->stop_timer(); - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - - } - } - } - catch(CORBA::SystemException &se){ - // an error occurred while trying to bind to the object. - cerr << "Bind to object failed" << endl; - cerr << "System exception " << &se << endl; - return -1; - } - catch(...) - { - // an error occurred while trying to bind to the object. - cerr << "Bind to object failed" << endl; - cerr << "Unexpected exception " << endl; - return -1; - }; - - CORBA::release(ttcp_seq); - return(0); - usage: - fprintf (stderr, Usage); - return 1; -} diff --git a/TAO/tests/Thruput/Orbix/Makefile b/TAO/tests/Thruput/Orbix/Makefile deleted file mode 100644 index fa8000d6818..00000000000 --- a/TAO/tests/Thruput/Orbix/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -#### $Id$ - -include orbixsol2s4.mk - -all: client server - @echo - - @echo "\"client\" and \"server\" have been compiled." - @echo - @echo "To run tests, check the how_to_run_tests file." - @echo - -C++FLAGS += -DSYSV -DWANT_ORBIX_FDS -DLM_RESULTS #-DUSE_TIE -SERVER_OBJS = ttcpS.o ttcp_i.o utils.o Srv_Main.o -CLIENT_OBJS = ttcpC.o utils.o Client.o - -ifdef unpad -C++FLAGS += -DUNPAD -endif - -ifeq ($(OSRELEASE),5.4) -C++FLAGS += -DSUNOS54 -endif - -ifdef quantify -#QDIR = /pkg/purify/quantify-2.1-solaris2 -QDIR = /pkg/purify/quantify-3.0-solaris2 -QUANTIFY = $(QDIR)/quantify -cache-dir=/project/mambo/gokhale/cache -record-register-window-traps -C++FLAGS += -DUSE_QUANTIFY -I$(QDIR) -#CLIENT_OBJS += $(QDIR)/quantify_stubs.a -#SERVER_OBJS += $(QDIR)/quantify_stubs.a -LDFLAGS += -L$(QDIR) -lquantify_stubs -else -ifdef purify -QUANTIFY = purify -cache-dir=/project/mambo/gokhale/cache -else -ifdef debug -QUANTIFY = -C++FLAGS += -LDFLAGS += -else -QUANTIFY = -C++FLAGS += -O4 -LDFLAGS += -O4 -endif -endif -endif - -client: $(CLIENT_OBJS) - $(QUANTIFY) $(C++) $(C++FLAGS) -o client $(CLIENT_OBJS) $(LDFLAGS) $(ITSRV) $(SYSLIBS) - -server: $(SERVER_OBJS) - $(QUANTIFY) $(C++) $(C++FLAGS) -o server $(SERVER_OBJS) $(LDFLAGS) $(ITSRV) $(SYSLIBS) - -ttcp.h ttcpC.$(C++SUFFIX) ttcpS.$(C++SUFFIX):ttcp.idl - $(IDL) $(IDLFLAGS) $< - -.PHONY: clean - -clean: - rm -f core *.o *~ client server *C.cpp *S.cpp ttcp.h - -checkin: - ci ttcp.idl - ci ttcp_i.h - ci ttcp_i.cpp - ci Srv_Main.cpp - ci Client.cpp - ci ttcp_decl.h - ci utils.cpp - rm -f core *.o *~ client server *C.cpp *S.cpp ttcp.h - -checkout: - co -l ttcp.idl - co -l ttcp_i.h - co -l ttcp_i.cpp - co -l Srv_Main.cpp - co -l Client.cpp - co -l ttcp_decl.h - co -l utils.cpp - -release: - test -d $(RDIR)/SII/1way/Orbix || mkdir -p $(RDIR)/SII/1way/Orbix - cp *.idl *.cpp *.h Makefile run* README* $(RDIR)/SII/1way/Orbix/. - diff --git a/TAO/tests/Thruput/Orbix/README b/TAO/tests/Thruput/Orbix/README deleted file mode 100644 index 21e58670e48..00000000000 --- a/TAO/tests/Thruput/Orbix/README +++ /dev/null @@ -1,40 +0,0 @@ -This directory contains code that has a modified version of the TTCP benchmark that uses -Orbix. Our intent is to test the performance of Orbix over ATM using the CORBA IDL "sequence" -data type. - -We define sequences of "short", "long", "double", "octet", "char", a user-defined -"struct" and a composite struct. - -We run our server program using the following command line: (this is -an example) - -putit SII_ttcp "/project/mambo/gokhale/TTCP-testbed/SII/1way/Orbix/server -f m -b 65536" - -The client program is run using the following command line: -client -S -f m -l -h -L -q -b - - implies what sequence type you want to send: -s short -c chars -o octet -d double -l long -S user defined struct -C composite struct - will store the result that indicates the thruput observed in Mbps (because -we chose -f m as the option). - -An example is given from the "run" script - -client -S 67108864 -f m -l $1 -h encip1-merengue.cs.wustl.edu -L temp -q $2 -b 65536 - - -The following files are used: - -ttcp.idl This file is the CORBA IDL declaration for the TTCP benchmark. -Srv_main.cpp Server program. -Client.cpp Client program. -ttcp_i.cpp Implementation of various methods of the ttcp_sequence object. -ttcp_i.h Implementation header -utils.cpp Lots of functions that came along with the original TTCP benchmark. -ttcp_decl.h Prototypes, extern decls, etc... diff --git a/TAO/tests/Thruput/Orbix/Srv_Main.cpp b/TAO/tests/Thruput/Orbix/Srv_Main.cpp deleted file mode 100644 index b6b338628d9..00000000000 --- a/TAO/tests/Thruput/Orbix/Srv_Main.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" - - -char Usage[] = "\ -Usage: server [options] \n\ -Common options:\n\ - -l ## length of bufs read from or written to network (default 8192)\n\ - -A align the start of buffers to this modulus (default 16384)\n\ - -O start buffers at this offset from the modulus (default 0)\n\ - -v verbose: print more statistics\n\ - -d set SO_DEBUG socket option\n\ - -b ## set socket buffer size (if supported)\n\ - -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ - -L ## Output file name for the data type used\n\ -Options specific to -r:\n\ - -B for -s, only output full blocks as specified by -l (for TAR)\n\ - -T \"touch\": access each byte as it's read\n\ -"; - -#if !defined (__cplusplus) -typedef void (*SIG_TYP)(); -#endif - -#ifdef SVR4 -void -sigpipe (int foo) -#else -void -sigpipe () -#endif -{ -} - -int fromlen; -int domain = PF_INET; /* Default is to use Internet domain sockets. */ -char *domainname; /* Rendezvous address for UNIX domain sockets. */ -int fd; /* fd of network socket */ -int buflen = 8 * 1024; /* length of buffer */ -char *buf; /* ptr to dynamic buffer */ -int nbuf = 2 * 1024; /* number of buffers to send in sinkmode */ - -int bufoffset = 0; /* align buffer to this */ -int bufalign = 16 * 1024; /* modulo this */ - -int udp = 0; /* 0 = tcp, !0 = udp */ -int options = 0; /* socket options */ -int one = 1; /* for 4.3 BSD style setsockopt() */ -short port = 5001; /* TCP port number */ -char *host; /* ptr to name of host */ -int trans; /* 0=receive, !0=transmit mode */ -int sinkmode = 0; /* 0=normal I/O, !0=sink/source mode */ -int verbose = 0; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -int nodelay = 0; /* set TCP_NODELAY socket option */ -int b_flag = 0; /* use mread() */ -int sockbufsize = 0; /* socket buffer size to use */ -int new_line=0; /* This is a special flag */ -int write_to_file=1; /* indecates writing to file (default)*/ -char fmt = 'K'; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -int touchdata = 0; /* access data after reading */ - -struct hostent *addr; -char *title = 0; - -char stats[128]; -unsigned long srcDataSize; /* Total amount of source data */ -unsigned long nbytes; /* bytes on net */ -unsigned long numCalls; /* # of I/O system calls */ -double cput, realt; /* user, real time (seconds) */ -unsigned long dt; - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; -ttcp_sequence::CompositeSeq *Cseq; - -unsigned short isDone = 0; - -int -main (int argc, char *argv[]) -{ - - unsigned long addr_tmp; - int c; - unsigned short done = 0; - - - if (argc < 2) - goto usage; - - // Now process the options other than Orbix specific options - while (!done && ((c = getopt (argc, argv, "dvb:f:l:L:O")) != -1)) - { - switch (c) - { - case 'L': - title = optarg; - break; - case 'd': - options |= SO_DEBUG; - break; - case 'l': - buflen = atoi (optarg); - break; - case 'v': - verbose = 1; - break; - case 'b': -#if defined(SO_SNDBUF) || defined(SO_RCVBUF) - sockbufsize = atoi (optarg); -#else - fprintf (stderr, - "ttcp: -b option ignored: SO_SNDBUF/SO_RCVBUF socket options not supported\n"); -#endif - break; - case 'f': - fmt = *optarg; - break; - case 'O': - case '?': - done = 1; - break; - default: - goto usage; - } - } - - ttcp_sequence_i *my_ttcp; - // - // Receiver - // - try { - char *service_name = new char[15]; - strcpy(service_name,"SII_ttcp"); - -#if defined (USE_TIE) - // TIE approach - my_ttcp = new ttcp_sequence_i; - _tie_ttcp_sequence *my_ttcp_tmpl = new - _tie_ttcp_sequence (*my_ttcp); - -#else - my_ttcp = new ttcp_sequence_i; -#endif - -#if defined (USE_QUANTIFY) - quantify_clear_data(); - quantify_start_recording_data(); -#endif - CORBA::Orbix.impl_is_ready(service_name); - } - catch(CORBA::SystemException &se) { - // an error occured calling impl_is_ready() - output the error. - cout << "System Exception getting the implementation ready " << &se << endl; - return -1; - } - catch(...) { - // an error occured calling obj_is_ready() - output the error. - cout << "Undefined Exception getting the implementation ready " << endl; - return -1; - } - CORBA::release(my_ttcp); - return (0); -usage: - fprintf (stderr, Usage); - return(1); -} - - - - - diff --git a/TAO/tests/Thruput/Orbix/extract b/TAO/tests/Thruput/Orbix/extract deleted file mode 100644 index 9cce54ca390..00000000000 --- a/TAO/tests/Thruput/Orbix/extract +++ /dev/null @@ -1,4 +0,0 @@ -rm -f outfile -touch outfile -grep "Mbit/sec\|Send" results.TAO | head -20 > outfile -grep "msec/call\|Send" results.TAO | head -20 >> outfile diff --git a/TAO/tests/Thruput/Orbix/loop64 b/TAO/tests/Thruput/Orbix/loop64 deleted file mode 100644 index 102c2afd209..00000000000 --- a/TAO/tests/Thruput/Orbix/loop64 +++ /dev/null @@ -1,24 +0,0 @@ -# All ATM tests: 64k socket Queue Size -# -# shorts -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 s -sleep 2 -# longs -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 l -sleep 2 -# octets -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 o -sleep 2 -# doubles -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 d -sleep 2 -# chars -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 c -sleep 2 -# structures -run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 S -sleep 2 -# Composite Structs -#run_test 67108864 1024 encip1-merengue.cs.wustl.edu ./results/LOOPBACK/orbix.atm.64 C -#sleep 2 -# diff --git a/TAO/tests/Thruput/Orbix/orbixsol2s4.mk b/TAO/tests/Thruput/Orbix/orbixsol2s4.mk deleted file mode 100644 index 01fd92b98c8..00000000000 --- a/TAO/tests/Thruput/Orbix/orbixsol2s4.mk +++ /dev/null @@ -1,148 +0,0 @@ -# ------------------------------------------------------------ -# Orbix 2.2 implicit rules for SunOS/GNU Make -# ------------------------------------------------------------ -# -# If you cut'n'paste this into your /usr/include/make/default.mk -# file, beware! This is not officially supported by Iona -# Technologies, and you may want to be a bit of a Makefile hacker -# to make it integrate well with your site's setup. - -# The best thing to do would be put it in a standard place and -# anyone who wants the Orbix implicit rule set can include -# it with an "include /orbix.mk" line in their -# Makefile. A good place to put it might be /usr/include/make. - -# These rules define default C++, C++FLAGS and C++SUFFIX. -# C++ is the C++ compiler to use; C++FLAGS are command-line -# flags to the C++ compiler for use in compiling C++ source -# files into objects; C++SUFFIX is the filename suffix -# indicating C++ source. By default, it's set to "C" for AT&T C++, -# and "cc" for GNU g++. - -# Feel free to override these in your Makefiles *after* -# including this file. - -# IMPORTANT: If the -M switch is specified in IDLFLAGS, the IDL -# compiler appends to the user-specified file. The dependency for -# specified_file.o in the linking target should appear _after_ any use -# of the IDL compiler which takes the -M flag. Putting it _last_ -# is normally the best approach. - -# Note that these rule definitions use pattern matching, -# and therefore only work with SunOS make and GNU make. - -# They may not work with other vendor's versions of make. -# If they do not, you may wish to try using GNU make, which -# is free software produced by the Free Software Foundation. - -# If the version of make you wish to use does not support -# pattern matching, use the sample explicit rule set in -# the comments at the end of this file. - -# ------------------------------------------------------------ -# Essential: set these to the locations into which you -# have installed Orbix' components: - -ORBIX_BINDIR = /opt/Orbix_2.2/bin -ORBIX_LIBDIR = /opt/Orbix_2.2/lib -ORBIX_INCDIR = /opt/Orbix_2.2/include - -#------------------------------------------------------------- -# To compile the demos, you should change these values as -# appropriate for your particular system installation -#------------------------------------------------------------- - -X11BASE = /usr/openwin -X11INCDIR = $(X11BASE)/include -X11LIBDIR = $(X11BASE)/lib - -C++ = CC -C++FLAGS = -I$(ORBIX_INCDIR) -I. -C++SUFFIX = cpp -CXX = CC -CPPFLAGS += -I$(ORBIX_INCDIR) -I. -CPPSUFFIX = cpp - -# ------------------------------------------------------------ -# ITCLT, IRCLT and ITSRV can be either statically or dynamically linked -# Use -Bdynamic or -Bstatic as appropriate. -# ------------------------------------------------------------ -ITCLT = -Bdynamic -lorbix -ITSRV = -Bdynamic -lorbix -IRCLT = -Bdynamic -lIRclt -ITIIOP = -Bdynamic -liiop -ITDSI = -Bdynamic -lDSI -ITIFR = -Bdynamic -lifr - - -# ------------------------------------------------------------ -# SYSLIBS must be dynamically linked; otherwise you can expect to -# get linkage errors for symbols in the nsl library -# ------------------------------------------------------------ - -LDFLAGS = -L$(ORBIX_LIBDIR) -SYSLIBS = -Bdynamic -lnsl -lsocket - -IDL = $(ORBIX_BINDIR)/idl -IDLFLAGS = -h .h -c C.cpp -s S.cpp -B -A -m interOp -#------------------------------------------------------------ -# The following section defines implicit rules for creating -# *.{C,S}.C files, rules for compiling those -# into objects, and even a rule for compiling C++ source into -# objects (in case one isn't already defined). - -# ------------------------------------------------------------ -# first, put the new suffixes at the *head* of the suffix list, -# overriding any existing .C compilation method. -.SUFFIXES: -.SUFFIXES: .$(C++SUFFIX) .idl $(SUFFIXES) - -# .SUFFIXES: .$(C++SUFFIX) .idl .hh $(SUFFIXES) -# ------------------------------------------------------------ -# *[CS].o must be compiled here, and depends -# mostly on the C++ files produced from the IDL file. - -%C.o: %C.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%S.o: %S.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -%.o: %.$(C++SUFFIX) - $(C++) -c $(C++FLAGS) $< - -# and here's how to compile C++ files from the IDL file. -# only ONE of these rules will be run at make-time, - -%S.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -%C.$(C++SUFFIX): %.idl - $(IDL) $(IDLFLAGS) $< - -#%.hh: %.idl -%.h: %.idl - $(IDL) $(IDLFLAGS) $< - -# ------------------------------------------------------------ -# If the version of make you wish to use does not support -# pattern matching, here's a sample of an explicit rule set. -# We assume the IDL file is called "foobar.idl", we wish -# to compile "foobarC.o", "foobarS.o", and -# "foobar.hh", and the C++ file suffix. -# ------------------------------------------------------------ - -# foobarC.o: foobar.hh foobarC.C -# $(C++) -c ($C++FLAGS) foobarC.C -# -# foobarS.o: foobar.hh foobarS.C -# $(C++) -c ($C++FLAGS) foobarS.C -# -# foobarC.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobarS.C: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl -# -# foobar.hh: foobar.idl -# $(IDL) -c ($IDLFLAGS) foobar.idl diff --git a/TAO/tests/Thruput/Orbix/run b/TAO/tests/Thruput/Orbix/run deleted file mode 100644 index 7af22c9407b..00000000000 --- a/TAO/tests/Thruput/Orbix/run +++ /dev/null @@ -1 +0,0 @@ -client -S 67108864 -f m -D -l $1 -h mambo-atm.wustl.edu -L temp -q $2 -b 65536 diff --git a/TAO/tests/Thruput/Orbix/run_client b/TAO/tests/Thruput/Orbix/run_client deleted file mode 100644 index 0de2a604e31..00000000000 --- a/TAO/tests/Thruput/Orbix/run_client +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/csh -f -# All ATM tests: 64k socket Queue Size -# -# shorts -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 s -sleep 2 -# longs -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 l -sleep 2 -# octets -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 o -sleep 2 -# doubles -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 d -sleep 2 -# chars -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 c -sleep 2 -# structures -run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 S -sleep 2 -# Composite Structs -#run_test 67108864 1024 mambo-atm.wustl.edu ./results/REMOTE/orbix.atm.64 C -#sleep 2 -# diff --git a/TAO/tests/Thruput/Orbix/run_server b/TAO/tests/Thruput/Orbix/run_server deleted file mode 100644 index 1dad6e9c600..00000000000 --- a/TAO/tests/Thruput/Orbix/run_server +++ /dev/null @@ -1,4 +0,0 @@ -rmit SII_ttcp -putit SII_ttcp "/project/mambo/gokhale/TTCP-testbed/SII/1way/Orbix/server -f m -b 65536 -l 131072" -#putit SII_ttcp -persistent -#truss -f server -f m -b 65536 -l 131072 diff --git a/TAO/tests/Thruput/Orbix/run_test b/TAO/tests/Thruput/Orbix/run_test deleted file mode 100644 index 9ca15639427..00000000000 --- a/TAO/tests/Thruput/Orbix/run_test +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/csh -f -if ($#argv < 3) then - echo "Usage: sclt " - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[2] * 1024) -#echo $limit -#echo $msize -echo "Iteration#" 1 ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 -client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "Iteration#" 1 ": client -S" $1 "-D -f m -l" $msize "-h" $3 "-x -L" $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - label: - set flag=1 - sleep 2 - foreach i (2 3) - echo "Iteration#" $i ": client -S" $1 "-D -f m -s -t -l" $msize "-h" $3 "-x -L " $4 "-q" $5 -b 65536 - client -S $1 -D -f m -l $msize -h $3 -x -L $4 -q $5 -b 65536 - end - echo "---------------------------" - @ msize = ($msize * 2) -end - -echo " " -echo "Done at:" -date diff --git a/TAO/tests/Thruput/Orbix/run_tests b/TAO/tests/Thruput/Orbix/run_tests deleted file mode 100644 index 96245b9fbc8..00000000000 --- a/TAO/tests/Thruput/Orbix/run_tests +++ /dev/null @@ -1,78 +0,0 @@ -#! /bin/csh - -rm -f results.TAO -touch results.TAO - -echo "TAO throughput test" -echo "TAO throughput test" >>results.TAO -echo "===================" -echo "===================" >>results.TAO - - -echo "Send Struct --------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q S >>& results.TAO - -echo "Send Short ---------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q s >>& results.TAO - -echo "Send Long ----------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q l >>& results.TAO - -echo "Send Octet ---------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q o >>& results.TAO - -echo "Send Double --------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q d >>& results.TAO - -echo "Send Char ----------------------------------------------------------" >>results.TAO - ./client -S 10485760 -f m -l 1024 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 2048 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 4096 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 8192 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 16384 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 32768 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 65536 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 131072 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - ./client -S 10485760 -f m -l 262144 -h merengue-atm1 -L ./results/REMOTE/sun-iiop.atm.64 -q c >>& results.TAO - -grep "Mbit/sec\|Send" results.TAO diff --git a/TAO/tests/Thruput/Orbix/ttcp.idl b/TAO/tests/Thruput/Orbix/ttcp.idl deleted file mode 100644 index 9e95e00d8b0..00000000000 --- a/TAO/tests/Thruput/Orbix/ttcp.idl +++ /dev/null @@ -1,40 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct PerfStruct{ - short s; - char c; - long l; - octet o; - double d; - //padding - long pad[2]; -}; - -struct CompositeStruct{ - PerfStruct ps; -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence DoubleSeq; - typedef sequence CharSeq; - typedef sequence OctetSeq; - typedef sequence StructSeq; - typedef sequence CompositeSeq; - - // Routines to send sequences of various data types - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - oneway void sendCompositeSeq (in CompositeSeq ttcp_seq); - - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/tests/Thruput/Orbix/ttcp_decl.h b/TAO/tests/Thruput/Orbix/ttcp_decl.h deleted file mode 100644 index a9542d2b38e..00000000000 --- a/TAO/tests/Thruput/Orbix/ttcp_decl.h +++ /dev/null @@ -1,154 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ttcp.h" - -/* #define BSD43 */ -/* #define BSD42 */ -/* #define BSD41a */ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* struct itimerval */ -#include -#include -#include -#include -#include - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include -#endif - - -#if defined(SYSV) -#define bcopy(b1,b2,n) memcpy(b2,b1,n) -#define bzero(b1,n) memset(b1,0,n) -#include -#include -#endif - -#if defined(SUNOS54) -struct rusage - { - struct timeval ru_utime, ru_stime; - }; -#define RUSAGE_SELF 0 -#else -#include -#endif - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) -#define SEND_COMPOSITE ((unsigned long)(7)) - -/************** -// Prototypes -***************/ -void err (char *s); -void mes (char *s); -char *outfmt (double b); -static void getrusage (int ignored, register struct rusage *ru); -static void gettimeofday (struct timeval *tp, struct timezone *zp); -void prep_timer (void); -double read_timer (char *str, int len); -static void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, char *outp); -static void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -static void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -static void psecs (long l, register char *cp); -void delay (int us); -int mread (int fd, register char *bufp, unsigned n); -int Nread (int fd, void *buf, int count); -int Nwrite (int fd, void *buf, int count); -void FillPattern(register char *cp, register int bufLen, unsigned long dt); -void PrintStats(); -int SetSocketBufferSize(int size, unsigned short isTrans); -int SetNoDelay(); -void ProcessArguments(int argc, char **argv, unsigned short isTrans); - -/* Global variables defined here as extern */ -extern int fromlen; -extern int domain; /* Default is to use Internet domain sockets. */ -extern char *domainname; /* Rendezvous address for UNIX domain sockets. */ -extern int fd; /* fd of network socket */ - -extern int buflen; /* length of buffer */ -extern char *buf; /* ptr to dynamic buffer */ -extern int nbuf; /* number of buffers to send in sinkmode */ - -extern int bufoffset; /* align buffer to this */ -extern int bufalign; /* modulo this */ - -extern int udp; /* 0 = tcp, !0 = udp */ -extern int options; /* socket options */ -extern int one; /* for 4.3 BSD style setsockopt() */ -extern short port; /* TCP port number */ -extern char *host; /* ptr to name of host */ -extern int trans; /* 0=receive, !0=transmit mode */ -extern int sinkmode; /* 0=normal I/O, !0=sink/source mode */ -extern int verbose; /* 0=print basic info, 1=print cpu rate, proc - * resource usage. */ -extern int nodelay; /* set TCP_NODELAY socket option */ -extern int b_flag; /* use mread() */ -extern int sockbufsize; /* socket buffer size to use */ -extern int new_line; /* This is a special flag */ -extern int write_to_file; /* indecates writing to file (default)*/ -extern char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern int touchdata; /* access data after reading */ - -extern struct hostent *addr; -extern int errno; -extern int optind; -extern char *optarg; -extern char *title; - -extern char stats[128]; -extern unsigned long srcDataSize; /* Total amount of source data */ -extern unsigned long nbytes; /* bytes on net */ -extern unsigned long numCalls; /* # of I/O system calls */ -extern double cput, realt; /* user, real time (seconds) */ -extern unsigned long dt; - -extern unsigned short isDone; - -/* declare struct variables for various message types */ -extern ttcp_sequence::ShortSeq *sseq; -extern ttcp_sequence::LongSeq *lseq; -extern ttcp_sequence::OctetSeq *oseq; -extern ttcp_sequence::DoubleSeq *dseq; -extern ttcp_sequence::CharSeq *cseq; -extern ttcp_sequence::StructSeq *Sseq; -extern ttcp_sequence::CompositeSeq *Cseq; - -#endif diff --git a/TAO/tests/Thruput/Orbix/ttcp_i.cpp b/TAO/tests/Thruput/Orbix/ttcp_i.cpp deleted file mode 100644 index 04df1132887..00000000000 --- a/TAO/tests/Thruput/Orbix/ttcp_i.cpp +++ /dev/null @@ -1,113 +0,0 @@ -// $Id$ - -#include "ttcp_i.h" - -/* callback routine that will change the size of the socket queue */ -static void -SD_Ready (int io_descriptor) -{ - if (sockbufsize) - { - if (setsockopt (io_descriptor, SOL_SOCKET, SO_RCVBUF, - (char *) &sockbufsize, sizeof sockbufsize) < 0) - perror ("setsockopt: rcvbuf"), exit (1); - } -} - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i() -{ - this->nbytes_ = 0; - numCalls = 0; - // register a callback so we can manipulate the descriptor - // being used by orbix. - - if (CORBA::Orbix.registerIOCallback (OrbixIOCallback(SD_Ready), - FD_OPEN_CALLBACK) != 0) - perror ("can't register callback"), exit (1); -} - - -void -ttcp_sequence_i::start_timer (CORBA::Environment &IT_env) -{ - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (CORBA::Environment &IT_env) -{ - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - exit(0); -#endif -} - -void -ttcp_sequence_i::sendShortSeq(const ttcp_sequence::ShortSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Short); -} - -void -ttcp_sequence_i::sendLongSeq(const ttcp_sequence::LongSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq(const ttcp_sequence::OctetSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq(const ttcp_sequence::DoubleSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Double) ; -} - -void -ttcp_sequence_i::sendCharSeq(const ttcp_sequence::CharSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Char) ; -} - -void -ttcp_sequence_i::sendStructSeq(const ttcp_sequence::StructSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(PerfStruct) ; -} - -void -ttcp_sequence_i::sendCompositeSeq(const ttcp_sequence::CompositeSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CompositeStruct) ; -} - - - - - - - - - - - - - diff --git a/TAO/tests/Thruput/Orbix/ttcp_i.h b/TAO/tests/Thruput/Orbix/ttcp_i.h deleted file mode 100644 index 1a346e65401..00000000000 --- a/TAO/tests/Thruput/Orbix/ttcp_i.h +++ /dev/null @@ -1,65 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ttcp_i.h -// -// This header file provides facility to use it either as a BOA approach or as -// a TIE approach. -// -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcp.h" -#include "ttcp_decl.h" - -/* define the data types to be sent */ -#define SEND_SHORT ((unsigned long)(1)) -#define SEND_LONG ((unsigned long)(2)) -#define SEND_CHAR ((unsigned long)(3)) -#define SEND_OCTET ((unsigned long)(4)) -#define SEND_DOUBLE ((unsigned long)(5)) -#define SEND_STRUCT ((unsigned long)(6)) -#define SEND_COMPOSITE ((unsigned long)(7)) - - -#if defined(USE_TIE) -class ttcp_sequence_i -#else // use BOA -class ttcp_sequence_i - : public virtual ttcp_sequenceBOAImpl -#endif -{ -public: - ttcp_sequence_i(); - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - virtual void sendCompositeSeq (const ttcp_sequence::CompositeSeq& ttcp_seq, - CORBA::Environment &IT_env=CORBA::default_environment); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (CORBA::Environment &IT_env= - CORBA::default_environment); - virtual void stop_timer (CORBA::Environment &IT_env= - CORBA::default_environment); -private: - unsigned long nbytes_; -}; - -#if defined(USE_TIE) -// ttcp_sequence_i implements ttcp_sequence -DEF_TIE(ttcp_sequence, ttcp_sequence_i); -#endif - -#endif // defined (TTCP_I_H) diff --git a/TAO/tests/Thruput/Orbix/utils.cpp b/TAO/tests/Thruput/Orbix/utils.cpp deleted file mode 100644 index db49947b16a..00000000000 --- a/TAO/tests/Thruput/Orbix/utils.cpp +++ /dev/null @@ -1,561 +0,0 @@ -// $Id$ - -#include "ttcp_decl.h" - -void -err (char *s) -{ - fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - perror (s); - fprintf (stderr, "errno=%d\n", errno); - exit (1); -} - -void -mes (char *s) -{ - fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -char * -outfmt (double b) -{ - static char obuf[50]; - switch (fmt) - { - case 'G': - sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -#if defined(SYSV) -/*ARGSUSED */ -static void -getrusage (int ignored, register struct rusage *ru) -{ - struct tms buf; - - times (&buf); - - /* Assumption: HZ <= 2147 (LONG_MAX/1000000) */ - ru->ru_stime.tv_sec = buf.tms_stime / HZ; - ru->ru_stime.tv_usec = ((buf.tms_stime % HZ) * 1000000) / HZ; - ru->ru_utime.tv_sec = buf.tms_utime / HZ; - ru->ru_utime.tv_usec = ((buf.tms_utime % HZ) * 1000000) / HZ; -} - -/*ARGSUSED */ -static void -gettimeofday (struct timeval *tp, struct timezone *zp) -{ - tp->tv_sec = time (0); - tp->tv_usec = 0; -} -#endif /* SYSV */ -/* - * P R E P _ T I M E R - */ -void -prep_timer () -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -double -read_timer (char *str, int len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -static void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -static void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -static void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -static void -psecs (long l, register char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - sprintf (cp, "%d%d", i / 10, i % 10); -} - -/* - * N R E A D - */ -int -Nread (int fd, void *buf, int count) -{ - struct sockaddr_in from; - int len = sizeof (from); - register int cnt; - if (udp) - { - cnt = recvfrom (fd, (char *) buf, count, 0, (struct sockaddr *) &from, &len); - numCalls++; - } - else - { - if (b_flag) - cnt = mread (fd, (char *) buf, count); /* fill buf */ - else - { - cnt = read (fd, buf, count); - numCalls++; - } - if (touchdata && cnt > 0) - { - register int c = cnt, sum; - register char *b = (char *) buf; - while (c--) - sum += *b++; - } - } - return (cnt); -} - - -/* - * N W R I T E - */ -int -Nwrite (int fd, void *buf, int count) -{ - return 0; -} - -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -/* - * M R E A D - * - * This function performs the function of a read(II) but will - * call read(II) multiple times in order to get the requested - * number of characters. This can be necessary because - * network connections don't deliver data with the same - * grouping as it is written with. Written by Robert S. Miles, BRL. - */ -int -mread (int fd, register char *bufp, unsigned n) -{ - register unsigned count = 0; - register int nread; - - do - { - nread = read (fd, bufp, n - count); - numCalls++; - if (nread < 0) - { - perror ("ttcp_mread"); - return (-1); - } - if (nread == 0) - return ((int) count); - count += (unsigned) nread; - bufp += nread; - } - while (count < n); - - return ((int) count); -} - -void -FillPattern (register char *cp, register int bufLen, unsigned long dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register long *SeqPtr = (long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA::Char *SeqPtr = (CORBA::Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register PerfStruct *SeqPtr = (PerfStruct *)cp; - register char c = 0; - num = bufLen/sizeof(PerfStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_COMPOSITE: - { - register CompositeStruct *SeqPtr = (CompositeStruct *)cp; - register char c = 0; - num = bufLen/sizeof(CompositeStruct); - for (i=0; i < num; i++){ - SeqPtr[i].ps.s = (short)lrand48(); - SeqPtr[i].ps.l = lrand48(); - SeqPtr[i].ps.d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].ps.c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].ps.o = (unsigned char)(c++ & 0x7f); - } - Cseq = new ttcp_sequence::CompositeSeq(num, num, SeqPtr); - } - break; - case SEND_OCTET: - default: - { - register CORBA::Octet *SeqPtr = (CORBA::Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA::Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} -void PrintStats() -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - -//#if defined (LM_RESULTS) - if (trans && (title != 0)) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - if (new_line) - fprintf (outFile, "\n -l %ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } -//#endif - - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} diff --git a/TAO/tests/Thruput/TAO/Makefile b/TAO/tests/Thruput/TAO/Makefile deleted file mode 100644 index 5e88e47d1ce..00000000000 --- a/TAO/tests/Thruput/TAO/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -#---------------------------------------------------------------------------- -# $Id$ -# -# Top-level Makefile for the TAO_TTCP benchmark -#---------------------------------------------------------------------------- - -#---------------------------------------------------------------------------- -# Local macros -#---------------------------------------------------------------------------- - -ifndef TAO_ROOT - TAO_ROOT = $(ACE_ROOT)/TAO -endif # ! TAO_ROOT - -LDLIBS = -lTAO - -IDL_SRC = ttcpC.cpp ttcpS.cpp -PROG_SRCS = $(IDL_SRC) client.cpp ttcp_i.cpp server.cpp utils.cpp tmplinst.cpp - -LSRC = $(PROG_SRCS) - -TTCP_CLIENT_OBJS = ttcpC.o client.o utils.o tmplinst.o ttcpS.o - -TTCP_SERVER_OBJS = ttcpC.o ttcpS.o server.o ttcp_i.o utils.o tmplinst.o - -BIN = client server - -BUILD = $(BIN) - -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 $(TAO_ROOT)/rules.tao.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 -include $(TAO_ROOT)/taoconfig.mk - -#---------------------------------------------------------------------------- -# Local modifications to variables imported by includes above. -#---------------------------------------------------------------------------- - -LDFLAGS += -L$(TAO_ROOT)/tao -CPPFLAGS += -I$(TAO_ROOT) -I$(TAO_ROOT)/tao/compat - -$(IDL_SRC): ttcp.idl - $(TAO_ROOT)/TAO_IDL/tao_idl ttcp.idl - -server: $(addprefix $(VDIR),$(TTCP_SERVER_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -client: $(addprefix $(VDIR),$(TTCP_CLIENT_OBJS)) - $(LINK.cc) $(LDFLAGS) -o $@ $^ $(VLDLIBS) $(POSTLINK) - -realclean: clean - -/bin/rm -rf ttcpC.* ttcpS.* -# 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/TAO/tests/Thruput/TAO/README b/TAO/tests/Thruput/TAO/README deleted file mode 100644 index 0203d8604c1..00000000000 --- a/TAO/tests/Thruput/TAO/README +++ /dev/null @@ -1,47 +0,0 @@ - TAO_TTCP Benchmark README file - -This directory contains a modified version of the TTCP benchmark that -uses the TAO ORB. TAO_TTCP is used to measure the throughput of TAO -for sending different data types. This code tests sequences of short, -long, octet, char, double, and richly-typed data such as a struct. -This benchmark uses an interpretive form of marshaling the data by -using the dynamic invocation interfaces provided by the TAO ORB. - -Organization ------------- - -client.cpp Client main program -server.cpp Server main program -ttcpC.cpp Client side stubs -ttcpS.cpp Server side skeletons -ttcpC.h Header file for stubs -ttcpS.h Header file for the skeletons -ttcp_i.cpp Implementaion of the interface -ttcp_i.h Header for the implementation -utils.cpp Utilities to calculate throughput -ttcp_decls.h Common declarations - -Results -------- -Throughput results are stored under the results directory. If testing -for REMOTE transfers, use the ./results/REMOTE directory. - -Running the tests ------------------ -Three scripts are provided - -(1) run_server : runs the server. Be sure to change the host name -(2) run_client : runs tests for various data types -(3) run_test : called by run_client - -Compiling ---------- - -Type make - -To provide for 2way tests (no data is sent in the reverse -direction. Sender blocks for a minimal ACK), comment out the -DONEWAY -flag from the CPPFLAGS - --Aniruddha Gokhale -(gokhale@cs.wustl.edu) diff --git a/TAO/tests/Thruput/TAO/client.cpp b/TAO/tests/Thruput/TAO/client.cpp deleted file mode 100644 index 13a72a368af..00000000000 --- a/TAO/tests/Thruput/TAO/client.cpp +++ /dev/null @@ -1,281 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// client.cpp -// -// Main program for the client -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include -#include - -#include "ace/ACE.h" -#include "ttcpC.h" -#include "ttcp_decl.h" - -int print_usage (void); - -char Usage[] = - "Usage: client [-options] \n" - "Common options:\n" - "-i Object reference string that the server outputs when started\n" - "-l ## length of bufs read from or written to network (default 8192)\n" - "-v verbose: print more statistics\n" - "-d ## debug level\n" - "-f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n" - "-L ## Output file name to store results\n" - "-S ## Total Data Size to be sent\n" - "-q Send Sequence: Enumeration for various data types:\n" - " s = short, l = long, d = double, c = char\n" - " o = octet, S = BinStruct \n"; - -CORBA::Long trans = 1; // we are a client - used for debugging purposes -CORBA::Long buflen = 8 * 1024; // length of buffer, default 8,192 bytes -CORBA::Char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Short port = TAO_DEFAULT_SERVER_PORT; // TCP port number -CORBA::Char *host = "localhost"; // ptr to name of host -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu - // rate, proc resource usage. -CORBA::Char fmt = 'K'; // output - // format:k=kilobits,K=kilobytes, m = megabits, - // M = megabytes, g = gigabits, G = gigabytes -CORBA::String title = 0; // title of file to gather statistics -char stats[128]; // gathering the statistics -unsigned long srcDataSize; // Total amount of source data -unsigned long nbytes; // bytes on net -unsigned long numCalls; // # of I/O system calls -double cput, realt; // user, real time (seconds) -unsigned long dt; // data type -char * ior = 0; - -// declare variables for various message types -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -int -main (int argc, char *argv[]) -{ - - int c; - CORBA::ORB_ptr orb_ptr; // underlying ORB - CORBA::String objkey = "TTCP_IIOP_test"; // name of the TTCP object on the - // server - CORBA::Object_ptr objref = CORBA::Object::_nil(); // object reference - ttcp_sequence_ptr ttcp_seq = 0; // obj reference to TTCP object - CORBA::Environment env; // environment - - fstream iorfile; - - ACE_UNUSED_ARG (objkey); - - // parse the arguments - ACE_Get_Opt get_opt (argc, argv, "d:vf:l:L:S:q:i:"); // Command line options - TAO_debug_level = 0; - while ((c = get_opt ()) != -1) - { - switch (c) - { - case 'i': - ior = ACE_OS::strdup (get_opt.optarg); - break; - case 'L': - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'd': - TAO_debug_level = ACE_OS::atoi (get_opt.optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'l': - buflen = ACE_OS::atoi (get_opt.optarg); - break; - case 'v': - verbose = 1; - break; - case 'f': - fmt = *get_opt.optarg; - break; - case 'S': /* total source data to send. */ - srcDataSize = ACE_OS::atoi (get_opt.optarg); - break; - case 'q': /* Send sequence of desired data type */ - switch(*get_opt.optarg){ - case 's': - dt = SEND_SHORT; - break; - case 'l': - dt = SEND_LONG; - break; - case 'd': - dt = SEND_DOUBLE; - break; - case 'c': - dt = SEND_CHAR; - break; - case 'o': - dt = SEND_OCTET; - break; - case 'S': - dt = SEND_STRUCT; - break; - case 'C': - dt = SEND_COMPOSITE; - break; - } - break; - default: - return print_usage (); - } - } - - // - // Transmitter - // - - // get a handle to the ORB - orb_ptr = CORBA::ORB_init (argc, argv, "internet", env); - if (env.exception () != 0) - { - env.print_exception ("ORB initialization", stdout); - return -1; - } - - ACE_DEBUG ((LM_DEBUG, "Read IOR string as: %s\n" , ior)); - - // retrieve an object reference out of the stringified IOR - objref = orb_ptr->string_to_object (ior, env); - - if (env.exception () != 0) - { - env.print_exception ("string_to_object", stdout); - return -1; - } - - if (!CORBA::is_nil (objref)) - { - // if it is a valid obj ref, narrow it to a ttcp_sequence CORBA object - ttcp_seq = ttcp_sequence::_narrow (objref, env); - - if (!CORBA::is_nil (ttcp_seq)) - { - - // the number of iterations is based on the total data size and the - // individual buffer size sent - nbuf = srcDataSize/buflen; - ACE_DEBUG ((LM_DEBUG, "data size = %d, buflen = %d, nbuf = %d\n", - srcDataSize, buflen, nbuf)); - - // - // Prepare the Message to be sent - // - - - // first allocate a buffer of the desired size and alignment - errno = 0; - if ((buf = (char *) ACE_OS::malloc (buflen)) == (char *) NULL) - err ("malloc"); - - // fill the buffer with the data type to be sent - FillPattern (buf, buflen, dt); - - // - // Start the timers on the client and server sides - // - - prep_timer (); // start our time - ttcp_seq->start_timer (env); // ask the server to start its timer - if (env.exception () != 0) - { - env.print_exception ("start_timer operation", stdout); - return -1; - } - -#if defined (USE_QUANTIFY) - /* start recording quantify data from here */ - quantify_clear_data (); - quantify_start_recording_data (); -#endif - // send the same buffer nbuf times - while (nbuf--) - { - switch (dt){ - case SEND_SHORT: - ttcp_seq->sendShortSeq (*sseq, env); - nbytes += sseq->length () * sizeof (CORBA::Short); - break; - case SEND_LONG: - ttcp_seq->sendLongSeq (*lseq, env); - nbytes += lseq->length () * sizeof (CORBA::Long); - break; - case SEND_OCTET: - ttcp_seq->sendOctetSeq (*oseq, env); - nbytes += oseq->length () * sizeof (CORBA::Octet); - break; - case SEND_DOUBLE: - ttcp_seq->sendDoubleSeq (*dseq, env); - nbytes += dseq->length () * sizeof (CORBA::Double); - break; - case SEND_CHAR: - ttcp_seq->sendCharSeq (*cseq, env); - nbytes += cseq->length () * sizeof (CORBA::Char); - break; - case SEND_STRUCT: - ttcp_seq->sendStructSeq (*Sseq, env); - nbytes += Sseq->length () * sizeof (BinStruct); - break; - } - numCalls++; // nbytes and numCalls are used in the thruput - // measurement - if (env.exception () != 0) - { - env.print_exception ("send operation", stdout); - return -1; - } - } -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); -#endif - // - // Stop the timer - // - // stop the timer on the server side - ttcp_seq->stop_timer (env); - if (env.exception () != 0) - { - env.print_exception ("stop_timer operation", stdout); - return -1; - } - // stop our timer - (void) read_timer (stats, sizeof (stats)); - - // print results - PrintStats(); - } - } - - CORBA::release (ttcp_seq); - CORBA::release (objref); - CORBA::release (orb_ptr); - return (0); -} - -int print_usage (void) -{ - ACE_ERROR ((LM_ERROR, "Usage error\n")); - ACE_ERROR ((LM_ERROR, "%s\n", Usage)); - return -1; -} diff --git a/TAO/tests/Thruput/TAO/run b/TAO/tests/Thruput/TAO/run deleted file mode 100644 index 009677fdcde..00000000000 --- a/TAO/tests/Thruput/TAO/run +++ /dev/null @@ -1 +0,0 @@ -client -S 67108864 -f m -l $1 -L temp -q $2 -d $3 diff --git a/TAO/tests/Thruput/TAO/run_client b/TAO/tests/Thruput/TAO/run_client deleted file mode 100644 index ee845fcce8c..00000000000 --- a/TAO/tests/Thruput/TAO/run_client +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/csh -f -# All ATM tests: 64k socket Queue Size -# -# Arguments: -# $1 -# $2 - -if ($#argv < 2) then - echo "Usage: run_client " - exit 1 -endif - -# shorts -run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 s $2 -sleep 5 -# longs -run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 l $2 -sleep 5 -# octets -run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 o $2 -sleep 5 -# doubles -run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 d $2 -sleep 5 -# chars -#run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 c $2 -#sleep 5 -# structures -run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 S $2 -sleep 5 -# Composite Structs -#run_test 67108864 128 ./results/REMOTE/$1/sun-iiop.atm1.64 C $2 -#sleep 5 -# diff --git a/TAO/tests/Thruput/TAO/run_server b/TAO/tests/Thruput/TAO/run_server deleted file mode 100644 index 50fdce5df97..00000000000 --- a/TAO/tests/Thruput/TAO/run_server +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/csh -x -# -# Usage: server -# -u : use IOR -# -f m : output results in Mbps -# -b ** not implemented ** -# -OAhost ************* must provide this for this version -# -OAthread : use threaded version as opposed to reactive -# - -server -d 1 -f m -ORBhost `hostname` -ORBobjrefstyle url #-OAthread diff --git a/TAO/tests/Thruput/TAO/run_test b/TAO/tests/Thruput/TAO/run_test deleted file mode 100644 index e60f3296371..00000000000 --- a/TAO/tests/Thruput/TAO/run_test +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/csh -f - -# $1 -# $2 <-- currently not used? $2 == $argv[2] ?? -# $3 -# $4 -# $5 - -# e.g. -# % run_test 10000 512 mambo\! s iiop:1.0//128.252.165.144:10015/P350892cc000ad963RootPOA/RootPOA_is_BAD/TTCP_IIOP_test -# - -if ($#argv < 5) then - echo "Usage: run_test " - exit 1 -endif -# -@ msize=1024 -@ limit= ($argv[2] * 1024) -#echo $limit -#echo $msize - echo "-->" - echo "--> ITERATION #" 1 - echo " client -S" $1 "-f m -l" $msize "-L" $3 "-q" $4 "-i" $5 - echo "-->" -client -S $1 -f m -l $msize -L $3 -q $4 -i $5 -set flag=0 -while ($msize <= $limit) - if ($flag == 0) goto label - echo "-->" - echo "--> ITERATION #" 1 - echo " client -S" $1 "-f m -l" $msize "-L" $3 "-q" $4 "-i" $5 - echo "-->" - client -S $1 -f m -l $msize -L $3 -q $4 -i $5 - label: - set flag=1 - sleep 5 - foreach i (2) - echo "-->" - echo "--> ITERATION #" $i - echo " client -S" $1 "-f m -l" $msize "-L" $3 "-q" $4 "-i" $5 - echo "-->" - client -S $1 -f m -l $msize -L $3 -q $4 -i $5 - end - echo "---------------------------" - @ msize = ($msize * 2) - sleep 5 -end - -echo " " -echo "Done at:" -date diff --git a/TAO/tests/Thruput/TAO/server.cpp b/TAO/tests/Thruput/TAO/server.cpp deleted file mode 100644 index 2dd6c47d77c..00000000000 --- a/TAO/tests/Thruput/TAO/server.cpp +++ /dev/null @@ -1,217 +0,0 @@ -// $Id$ -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// server.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#include "ace/ACE.h" -#include "ace/Get_Opt.h" - -#include "ttcp_i.h" - -char Usage[] = "\ -Usage: server [TAO options] [options] \n\ -Common options:\n\ --l ## length of bufs read from or written to network (default 8192)\n\ --v verbose: print more statistics\n\ --d ## set debug level \n\ --f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\n\ --L ## Output file name for the data type used\n\n\ -"; - -CORBA::Long trans = 0; // we are the receiver -CORBA::Long buflen = 8 * 1024; // length of buffer -CORBA::Char *buf; // ptr to dynamic buffer -CORBA::Long nbuf; // number of buffers to send in sinkmode -CORBA::Long verbose = 0; // 0=print basic info, 1=print cpu rate, proc - // resource usage. -CORBA::Char fmt = 'K'; // output format:k=kilobits,K=kilobytes, m = - // megabits, M = megabytes, g = gigabits, G = - // gigabytes - -CORBA::Char *title = 0; // results filename - -CORBA::Char stats[128]; // gathering the statistics -CORBA::ULong srcDataSize; // Total amount of source data -CORBA::ULong nbytes; // bytes on net -CORBA::ULong numCalls; // # of I/O system calls -CORBA::Double cput, realt; // user, real time (seconds) -CORBA::ULong dt; // data type - -/* declare struct variables for various message types */ -ttcp_sequence::ShortSeq *sseq; -ttcp_sequence::LongSeq *lseq; -ttcp_sequence::OctetSeq *oseq; -ttcp_sequence::DoubleSeq *dseq; -ttcp_sequence::CharSeq *cseq; -ttcp_sequence::StructSeq *Sseq; - -ttcp_sequence_i *my_ttcp; // instance of the target object - -// main program - Driver -int -main (int argc, char **argv) -{ - - int c; // option - CORBA::Environment env; // environment - CORBA::ORB_var orb_var; // handle to the ORB - PortableServer::POA_var root_poa; // Object adapter - CORBA::String key = (CORBA::String) "key0"; // key assigned to our - // target object - CORBA::Object_var obj_var; - char *oa_name = "RootPOA"; // name of our OA - char *orb_name = "internet"; // name of our ORB - CORBA::String str; // for stringified representation of the object reference - - ACE_UNUSED_ARG (key); - - // initialize the underlying ORB and get a handle to it - orb_var = CORBA::ORB_init (argc, argv, orb_name, env); - if (env.exception () != 0) - { - env.print_exception ("ORB init"); - return 1; - } - - obj_var = orb_var->resolve_initial_references(oa_name); - - if (CORBA::is_nil(obj_var.in())) - ACE_ERROR_RETURN ((LM_ERROR, - " (%P|%t) Unable to initialize the POA.\n"), - -1); - - root_poa = PortableServer::POA::_narrow (obj_var.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("POA init"); - return 1; - } - - PortableServer::POAManager_var poa_manager = - root_poa->the_POAManager (env); - - if (env.exception () != 0) - { - env.print_exception ("POA manager"); - return 1; - } - - CORBA::PolicyList policies (2); - policies.length (2); - policies[0] = - root_poa->create_id_assignment_policy (PortableServer::USER_ID, - env); - policies[1] = - root_poa->create_lifespan_policy (PortableServer::PERSISTENT, - env); - - // We use a different POA, otherwise the user would have to - // change the object key each time it invokes the server. - PortableServer::POA_var good_poa = - root_poa->create_POA ("RootPOA_is_BAD", - poa_manager.in (), - policies, - env); - - if (env.exception () != 0) - { - env.print_exception ("create good poa"); - return 1; - } - - // for parsing the arguments - ACE_Get_Opt get_opt (argc, argv, "l:vd:f:L:"); - - TAO_debug_level = 0; - for (; (c = get_opt ()) != EOF;) - { - switch (c) - { - case 'L': - // title of output file that stores result - title = ACE_OS::strdup (get_opt.optarg); - break; - case 'd': - // debugging level - TAO_debug_level = ACE_OS::atoi (get_opt.optarg); - if (TAO_debug_level > 10) - TAO_debug_level = 10; - break; - case 'f': - // output format i.e., Mbps, Kbps, etc - fmt = *get_opt.optarg; - break; - } - } - - // - // Receiver - // - - // create an instance of an object implementing the "ttcp" interface - my_ttcp = new ttcp_sequence_i; // this is its name - - PortableServer::ObjectId_var id = - PortableServer::string_to_ObjectId ("TTCP_IIOP_test"); - good_poa->activate_object_with_id (id.in (), - my_ttcp, - env); - if (env.exception () != 0) - { - env.print_exception ("string_to_ObjectId"); - return 1; - } - - obj_var = good_poa->id_to_reference (id.in (), env); - - if (env.exception () != 0) - { - env.print_exception ("id_to_reference"); - return 1; - } - - poa_manager->activate (env); - - if (env.exception () != 0) - { - env.print_exception ("id_to_reference"); - return 1; - } - - if (TAO_debug_level > 0) - { - // get a stringified representation of the object reference created above - str = orb_var->object_to_string (obj_var.in (), - env); - if (env.exception () != 0) - { - env.print_exception ("object_to_string"); - return 1; - } - - ACE_DEBUG ((LM_DEBUG, "stringified obj reference = %s\n", str)); - } - -#if defined (USE_QUANTIFY) - // gather profile data - quantify_clear_data(); - quantify_start_recording_data(); -#endif - - // Handle requests for this object until we're killed, or one of the - // methods asks us to exit. - if (orb_var->run () == -1) - ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "run"), -1); - - return 0; -} diff --git a/TAO/tests/Thruput/TAO/svc.conf b/TAO/tests/Thruput/TAO/svc.conf deleted file mode 100644 index df32a6c3b41..00000000000 --- a/TAO/tests/Thruput/TAO/svc.conf +++ /dev/null @@ -1,49 +0,0 @@ -# $Id$ -# -# This file contains a sample ACE_Service_Config configuration -# file specifying the strategy factories utilized by an application -# using TAO. There are currently only two possible factories: -# Client_Strategy_Factory and Server_Strategy_Factory. These names -# must be used as the second argument to their corresponding line, -# because that's what the ORB uses to find the desired factory. -# -# Note that there are two unordinary characteristics of the way *this* -# file is set up: -# - both client and server strategies are specified in the same -# file, which would only make sense for co-located clients & servers -# - both of the factories are actually sourced out of libTAO.so -# (TAO.DLL on Win32), and they would normally be in a separate -# dll from the TAO ORB Core. -# -# The options which can be passed to the Resource Factory are: -# -# -ORBresources -# where can be 'global' to specify globally-held resources, -# or 'tss' to specify thread-specific resources. -# -# The options which can be passed to the Client are: -# -# -# The options which can be passed to the Server are: -# -# -ORBconcurrency -# where can be 'thread-per-connection' to specify -# use of the ACE_Threaded_Strategy concurrency strategy, -# or 'reactive' to specify use of the ACE_Reactive_Strategy -# concurrency strategy. -# -# -ORBthreadflags -# specifies the default thread flags to use, where is a -# logical OR'ing of the flags THR_DETACHED, THR_BOUND, THR_NEW_LWP, -# THR_SUSPENDED, or THR_DAEMON. Note that not every flag may be valid -# on every platform. -# -# -ORBdemuxstrategy -# where can be one of 'dynamic', 'linear', 'active', or 'user', -# and specifies the type of object lookup strategy used internally. -# -ORBtablesize -# specifies the size of the object table -# -dynamic Resource_Factory Service_Object * TAO:_make_TAO_Resource_Factory() "-ORBresources global" -dynamic Client_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Client_Strategy_Factory() "" -dynamic Server_Strategy_Factory Service_Object * TAO:_make_TAO_Default_Server_Strategy_Factory() "-ORBconcurrency thread-per-connection -ORBdemuxstrategy dynamic -ORBtablesize 128" diff --git a/TAO/tests/Thruput/TAO/tmplinst.cpp b/TAO/tests/Thruput/TAO/tmplinst.cpp deleted file mode 100644 index 75b952f1e91..00000000000 --- a/TAO/tests/Thruput/TAO/tmplinst.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// -// $Id$ -// - -// The contents of this file REALLY should be generated by the IDL -// compiler, but that functionality isn't available yet. - -#include "ttcpC.h" - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class TAO_Unbounded_Sequence; -template class TAO_Unbounded_Sequence; -template class TAO_Unbounded_Sequence; -template class TAO_Unbounded_Sequence; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Unbounded_Sequence -#pragma instantiate TAO_Unbounded_Sequence -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/TAO/tests/Thruput/TAO/ttcp.idl b/TAO/tests/Thruput/TAO/ttcp.idl deleted file mode 100644 index 03f3fb4fff3..00000000000 --- a/TAO/tests/Thruput/TAO/ttcp.idl +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -struct BinStruct -{ - short s; - char c; - long l; - octet o; - double d; - // octet pad[8]; // to make it 32 bytes - // commented out until IDL support for arrays is added -}; - -// Richly typed data -interface ttcp_sequence -{ - typedef sequence ShortSeq; - typedef sequence LongSeq; - typedef sequence DoubleSeq; - typedef sequence CharSeq; - typedef sequence OctetSeq; - typedef sequence StructSeq; - - // = Routines to send sequences of various data types. - oneway void sendShortSeq (in ShortSeq ttcp_seq); - oneway void sendLongSeq (in LongSeq ttcp_seq); - oneway void sendDoubleSeq (in DoubleSeq ttcp_seq); - oneway void sendCharSeq (in CharSeq ttcp_seq); - oneway void sendOctetSeq (in OctetSeq ttcp_seq); - oneway void sendStructSeq (in StructSeq ttcp_seq); - - // = Control the timers. - oneway void start_timer (); - oneway void stop_timer (); -}; diff --git a/TAO/tests/Thruput/TAO/ttcp_decl.h b/TAO/tests/Thruput/TAO/ttcp_decl.h deleted file mode 100644 index 88974519140..00000000000 --- a/TAO/tests/Thruput/TAO/ttcp_decl.h +++ /dev/null @@ -1,78 +0,0 @@ -// $Id$ - - -/* - * T T C P Header File - * - */ - -/* This file includes all the declarations and prototypes */ - -#ifndef _TTCP_DECL_H_ -#define _TTCP_DECL_H_ - -#include "ace/OS.h" -#include "ace/Profile_Timer.h" - -/* File to be included if Quantify is to be used */ -#if defined (USE_QUANTIFY) -#include -#endif - - -/* define the data types to be sent */ -#define SEND_SHORT ((CORBA::ULong)(1)) -#define SEND_LONG ((CORBA::ULong)(2)) -#define SEND_CHAR ((CORBA::ULong)(3)) -#define SEND_OCTET ((CORBA::ULong)(4)) -#define SEND_DOUBLE ((CORBA::ULong)(5)) -#define SEND_STRUCT ((CORBA::ULong)(6)) -#define SEND_COMPOSITE ((CORBA::ULong)(7)) - -/************** -// Prototypes -***************/ -int err (CORBA::Char *s); -void mes (CORBA::Char *s); -CORBA::String outfmt (CORBA::Double b); -void prep_timer (void); -CORBA::Double read_timer (CORBA::Char *str, CORBA::Long len); -void prusage (register struct rusage *r0, struct rusage *r1, struct timeval *e, struct timeval *b, CORBA::Char *outp); -void tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1); -void tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0); -void psecs (CORBA::Long l, register CORBA::Char *cp); -void delay (CORBA::Long us); -void FillPattern (register CORBA::Char *cp, register CORBA::Long bufLen, CORBA::ULong dt); -void PrintStats (void); - -/* Global variables defined here as extern */ -extern ACE_Svc_Export CORBA::Long trans; // whether we are transmitter - // or receiver -extern ACE_Svc_Export CORBA::Long buflen; /* length of buffer */ -extern ACE_Svc_Export CORBA::Char *buf; /* ptr to dynamic buffer */ -extern ACE_Svc_Export CORBA::Long nbuf; /* number of buffers to send in sinkmode */ -extern ACE_Svc_Export CORBA::Short port; /* TCP port number */ -extern ACE_Svc_Export CORBA::Char *host; /* ptr to name of host */ -extern ACE_Svc_Export CORBA::Long verbose; /* 0=print basic info, 1=prCORBA::Long cpu rate, proc - * resource usage. */ -extern ACE_Svc_Export CORBA::Char fmt; /* output format:k=kilobits,K=kilobytes, - * m = megabits, M = megabytes, - * g = gigabits, G = gigabytes */ -extern ACE_Svc_Export CORBA::Char *title; - -extern ACE_Svc_Export CORBA::Char stats[128]; -extern ACE_Svc_Export unsigned long srcDataSize; /* Total amount of source data */ -extern ACE_Svc_Export unsigned long nbytes; /* bytes on net */ -extern ACE_Svc_Export unsigned long numCalls; /* # of I/O system calls */ -extern ACE_Svc_Export CORBA::Double cput, realt; /* user, real time (seconds) */ -extern ACE_Svc_Export unsigned long dt; - -/* declare struct variables for various message types */ -extern ACE_Svc_Export ttcp_sequence::ShortSeq *sseq; -extern ACE_Svc_Export ttcp_sequence::LongSeq *lseq; -extern ACE_Svc_Export ttcp_sequence::OctetSeq *oseq; -extern ACE_Svc_Export ttcp_sequence::DoubleSeq *dseq; -extern ACE_Svc_Export ttcp_sequence::CharSeq *cseq; -extern ACE_Svc_Export ttcp_sequence::StructSeq *Sseq; - -#endif diff --git a/TAO/tests/Thruput/TAO/ttcp_i.cpp b/TAO/tests/Thruput/TAO/ttcp_i.cpp deleted file mode 100644 index 8c0b687165a..00000000000 --- a/TAO/tests/Thruput/TAO/ttcp_i.cpp +++ /dev/null @@ -1,103 +0,0 @@ -// $Id$ - -#include -#include "ace/ACE.h" -#include "ttcp_i.h" -#include "ttcp_decl.h" - -/* the ttcp_i class implementation */ -ttcp_sequence_i::ttcp_sequence_i() -{ - this->nbytes_ = 0; - numCalls = 0; -} - -void -ttcp_sequence_i::start_timer (CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - this->nbytes_ = 0; - ::prep_timer (); -} - -void -ttcp_sequence_i::stop_timer (CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - - (void) ::read_timer (stats, sizeof (stats)); - ::nbytes = this->nbytes_; - ::PrintStats(); - // reset - this->nbytes_ = 0; - numCalls = 0; -#if defined (USE_QUANTIFY) - quantify_stop_recording_data(); - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -#if defined (USE_PURIFY) - ACE_Service_Config::end_reactor_event_loop(); - cerr << "*********** just before exiting " << endl; -#endif -} - -void -ttcp_sequence_i::sendShortSeq(const ttcp_sequence::ShortSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Short); -} - -void -ttcp_sequence_i::sendLongSeq(const ttcp_sequence::LongSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Long) ; -} - -void -ttcp_sequence_i::sendOctetSeq(const ttcp_sequence::OctetSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Octet) ; -} - -void -ttcp_sequence_i::sendDoubleSeq(const ttcp_sequence::DoubleSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Double) ; -} - -void -ttcp_sequence_i::sendCharSeq(const ttcp_sequence::CharSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(CORBA::Char) ; -} - -void -ttcp_sequence_i::sendStructSeq(const ttcp_sequence::StructSeq& ttcp_seq, CORBA::Environment &IT_env) -{ - ACE_UNUSED_ARG (IT_env); - numCalls++; - this->nbytes_ += ttcp_seq.length()*sizeof(BinStruct) ; -#ifdef DEBUG - // cout << "Bytes received so far = " << this->nbytes_ << endl; -#endif -} - - - - - - - - - diff --git a/TAO/tests/Thruput/TAO/ttcp_i.h b/TAO/tests/Thruput/TAO/ttcp_i.h deleted file mode 100644 index bfa0ffb0f44..00000000000 --- a/TAO/tests/Thruput/TAO/ttcp_i.h +++ /dev/null @@ -1,48 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// ttcp_i.h -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -#if !defined (TTCP_I_H) -#define TTCP_I_H - -#include "ttcpS.h" - -class ttcp_sequence_i: public POA_ttcp_sequence -{ -public: - ttcp_sequence_i(); - - virtual void sendShortSeq (const ttcp_sequence::ShortSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendLongSeq (const ttcp_sequence::LongSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendDoubleSeq (const ttcp_sequence::DoubleSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendCharSeq (const ttcp_sequence::CharSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendStructSeq (const ttcp_sequence::StructSeq& ttcp_seq, - CORBA::Environment &IT_env); - virtual void sendOctetSeq (const ttcp_sequence::OctetSeq& ttcp_seq, - CORBA::Environment &IT_env); - - /* Routines to calculate the time required to transfer */ - virtual void start_timer (CORBA::Environment &IT_env); - virtual void stop_timer (CORBA::Environment &IT_env); - -private: - unsigned long nbytes_; -}; - -#endif // defined (TTCP_I_H) - diff --git a/TAO/tests/Thruput/TAO/utils.cpp b/TAO/tests/Thruput/TAO/utils.cpp deleted file mode 100644 index 3185221a778..00000000000 --- a/TAO/tests/Thruput/TAO/utils.cpp +++ /dev/null @@ -1,506 +0,0 @@ -// $Id$ - -// ============================================================================ -// -// = TAO tests -// Throughput measurement using the TTCP benchmark adapted to work using TAO -// -// = FILENAME -// utils.cpp -// -// = AUTHOR -// Aniruddha Gokhale -// -// ============================================================================ - -// This file has all the helper functions that do the computation of -// throughput, system time used, user time, etc based on data collected. - -#include "ttcpC.h" -#include "ttcp_decl.h" - -// the error function. -// displays the error message and exits -int err (CORBA::String s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: ", trans ? "-t" : "-r"); - ACE_OS::perror (s); - ACE_OS::fprintf (stderr, "errno=%d\n", errno); - return -1; -} - -// prints a message indicating if it is a transmitter or a receiver -void mes (CORBA::String s) -{ - ACE_OS::fprintf (stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s); -} - -// does the formatting for the desired units in which the result is to be -// displayed -CORBA::String -outfmt (CORBA::Double b) -{ - static CORBA::Char obuf[50]; - switch (fmt) - { - case 'G': - ACE_OS::sprintf (obuf, "%.2f GB", b / 1024.0 / 1024.0 / 1024.0); - break; - default: - case 'K': - ACE_OS::sprintf (obuf, "%.2f KB", b / 1024.0); - break; - case 'M': - ACE_OS::sprintf (obuf, "%.2f MB", b / 1024.0 / 1024.0); - break; - case 'g': - ACE_OS::sprintf (obuf, "%.2f Gbit", b * 8.0 / 1024.0 / 1024.0 / 1024.0); - break; - case 'k': - ACE_OS::sprintf (obuf, "%.2f Kbit", b * 8.0 / 1024.0); - break; - case 'm': - ACE_OS::sprintf (obuf, "%.2f Mbit", b * 8.0 / 1024.0 / 1024.0); - break; - } - return obuf; -} - -#if defined (VXWORKS) || defined (CHORUS) -// Just so this file will compile. -inline -int -lrand48 () -{ - return ::rand (); -} - -inline -double -drand48 () -{ - return ::rand (); -} -#endif /* VXWORKS || CHORUS */ - -// fill up a buffer with a data type that we want to send -void -FillPattern (register CORBA::Char *cp, register CORBA::Long bufLen, CORBA::ULong dt) -{ - unsigned long - num, i; - - switch(dt){ - case SEND_SHORT: - { - register short *SeqPtr = (short *)cp; - num = bufLen/sizeof(short); - for (i=0; i < num; i++) - SeqPtr[i] = (short)lrand48(); - sseq = new ttcp_sequence::ShortSeq(num,num, SeqPtr); - } - break; - case SEND_LONG: - { - register CORBA::Long *SeqPtr = (CORBA::Long *)cp; - num = bufLen/sizeof(long); - for (i=0; i < num; i++) - SeqPtr[i] = lrand48(); - lseq = new ttcp_sequence::LongSeq(num, num, SeqPtr); - } - break; - case SEND_DOUBLE: - { - register double *SeqPtr = (double *)cp; - num = bufLen/sizeof(double); - for (i=0; i < num; i++) - SeqPtr[i] = drand48(); - dseq = new ttcp_sequence::DoubleSeq(num, num, SeqPtr); - } - break; - case SEND_CHAR: - { - register CORBA::Char *SeqPtr = (CORBA::Char *)cp; - register char c = 0; - num = bufLen/sizeof(char); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - cseq = new ttcp_sequence::CharSeq(num, num, SeqPtr); - } - break; - case SEND_STRUCT: - { - register BinStruct *SeqPtr = (BinStruct *)cp; - register char c = 0; - num = bufLen/sizeof(BinStruct); - for (i=0; i < num; i++){ - SeqPtr[i].s = (short)lrand48(); - SeqPtr[i].l = lrand48(); - SeqPtr[i].d = drand48(); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].c = (c++ & 0x7f); - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i].o = (unsigned char)(c++ & 0x7f); - } - Sseq = new ttcp_sequence::StructSeq(num, num, SeqPtr); - - } - break; - case SEND_OCTET: - default: - { - register CORBA::Octet *SeqPtr = (CORBA::Octet *)cp; - register char c = 0; - num = bufLen/sizeof(CORBA::Octet); - for(i=0; i < num; i++){ - while (!isprint(c & 0x7f)) - c++; - SeqPtr[i] = (c++ & 0x7f); - } - oseq = new ttcp_sequence::OctetSeq(num, num, SeqPtr); - } - break; - } -} - -// print all the statistics -void PrintStats (void) -{ - if (cput <= 0.0) - cput = 0.001; - if (realt <= 0.0) - realt = 0.001; - - if (title != 0) - { - double tmp; - FILE *outFile; - char filename[BUFSIZ]; - - strcpy(filename, title); - switch(dt){ - case SEND_SHORT: - strcat(filename, ".shortSeq.results"); - break; - case SEND_LONG: - strcat(filename, ".longSeq.results"); - break; - case SEND_DOUBLE: - strcat(filename, ".doubleSeq.results"); - break; - case SEND_CHAR: - strcat(filename, ".charSeq.results"); - break; - case SEND_STRUCT: - strcat(filename, ".structSeq.results"); - break; - case SEND_COMPOSITE: - strcat(filename, ".compositeSeq.results"); - break; - case SEND_OCTET: - default: - strcat(filename, ".octetSeq.results"); - break; - } - outFile = fopen (filename, "a+"); - ACE_OS::fprintf (outFile, "\n%ldk \t", buflen / 1024); - tmp = ((double) nbytes) / realt; - ACE_OS::fprintf (outFile, "%.2f ", tmp * 8.0 / 1024.0 / 1024.0); - fclose (outFile); - } - - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f real seconds = %s/sec +++\n", - trans ? "-t" : "-r", - nbytes, realt, outfmt (((double) nbytes) / realt)); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: %ld bytes in %.2f CPU seconds = %s/cpu sec\n", - trans ? "-t" : "-r", - nbytes, cput, outfmt (((double) nbytes) / cput)); - } - ACE_OS::fprintf (stdout, - "ttcp%s: %d Server Method calls, msec/call = %.2f, calls/sec = %.2f\n", - trans ? "-t" : "-r", - numCalls, - 1024.0 * realt / ((double) numCalls), - ((double) numCalls) / realt); - ACE_OS::fprintf (stdout, "ttcp%s: %s\n", trans ? "-t" : "-r", stats); - if (verbose) - { - ACE_OS::fprintf (stdout, - "ttcp%s: buffer address %#x\n", - trans ? "-t" : "-r", - buf); - } -} - -// generate the specified delay in microseconds -void -delay (int us) -{ - struct timeval tv; - - tv.tv_sec = 0; - tv.tv_usec = us; - (void) select (1, (fd_set *) 0, (fd_set *) 0, (fd_set *) 0, &tv); -} - -#if defined (ACE_HAS_PRUSAGE_T) || defined (ACE_HAS_GETRUSAGE) -// Mon Apr 06 09:50:16 1998 David L. Levine -// @@ This file should be updated to use ACE_Profile_Timer instead of -// using rusage directly. - -static struct itimerval itime0; /* Time at which timing started */ -static struct rusage ru0; /* Resource utilization at the start */ - -/* - * P R E P _ T I M E R - */ -// this is in fact the internals of the "start_timer" operation -void -prep_timer (void) -{ - itime0.it_interval.tv_sec = 0; - itime0.it_interval.tv_usec = 0; - itime0.it_value.tv_sec = (ACE_INT32) LONG_MAX / 22; /* greatest possible value , itimer() count backwards */ - itime0.it_value.tv_usec = 0; - - - ACE_OS::getrusage (RUSAGE_SELF, &ru0); - - /* Init REAL Timer */ - if (setitimer (ITIMER_REAL, &itime0, NULL)) - { - perror ("Setting 'itimer' REAL failed"); - return; - } - -} - -/* - * R E A D _ T I M E R - * - */ -// This implements the internals of the "stop_timer" method -double -read_timer (CORBA::Char *str, CORBA::Long len) -{ - struct itimerval itimedol; - struct rusage ru1; - struct timeval td; - struct timeval tend, tstart; - char line[132]; - - ACE_OS::getrusage (RUSAGE_SELF, &ru1); - - if (getitimer (ITIMER_REAL, &itimedol)) - { - perror ("Getting 'itimer' REAL failed"); - return (0.0); - } - - prusage (&ru0, &ru1, &itime0.it_value, &itimedol.it_value, line); - (void) strncpy (str, line, len); - - /* Get real time */ - tvsub (&td, &itime0.it_value, &itimedol.it_value); - realt = td.tv_sec + ((double) td.tv_usec) / 1000000; - - /* Get CPU time (user+sys) */ - tvadd (&tend, &ru1.ru_utime, &ru1.ru_stime); - tvadd (&tstart, &ru0.ru_utime, &ru0.ru_stime); - tvsub (&td, &tend, &tstart); - cput = td.tv_sec + ((double) td.tv_usec) / 1000000; - if (cput < 0.00001) - cput = 0.00001; - return (cput); -} - -// prints the rusage stats -void -prusage (register struct rusage *r0, struct rusage *r1, - struct timeval *e, struct timeval *b, char *outp) -{ - struct timeval tdiff; - register time_t t; - register char *cp; - register int i; - int ms; - - t = (r1->ru_utime.tv_sec - r0->ru_utime.tv_sec) * 100 + - (r1->ru_utime.tv_usec - r0->ru_utime.tv_usec) / 10000 + - (r1->ru_stime.tv_sec - r0->ru_stime.tv_sec) * 100 + - (r1->ru_stime.tv_usec - r0->ru_stime.tv_usec) / 10000; - ms = (e->tv_sec - b->tv_sec) * 100 + (e->tv_usec - b->tv_usec) / 10000; - -#define END(x) {while(*x) x++;} -#if defined(SYSV) - cp = "%Uuser %Ssys %Ereal %P"; -#else -#if defined(sgi) /* IRIX 3.3 will show 0 for %M,%F,%R,%C */ - cp = "%Uuser %Ssys %Ereal %P %Mmaxrss %F+%Rpf %Ccsw"; -#else - cp = "%Uuser %Ssys %Ereal %P %Xi+%Dd %Mmaxrss %F+%Rpf %Ccsw"; -#endif -#endif - for (; *cp; cp++) - { - if (*cp != '%') - *outp++ = *cp; - else if (cp[1]) - switch (*++cp) - { - - case 'U': - tvsub (&tdiff, &r1->ru_utime, &r0->ru_utime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'S': - tvsub (&tdiff, &r1->ru_stime, &r0->ru_stime); - ACE_OS::sprintf (outp, "%d.%01d", tdiff.tv_sec, tdiff.tv_usec / 100000); - END (outp); - break; - - case 'E': - psecs (ms / 100, outp); - END (outp); - break; - - case 'P': - ACE_OS::sprintf (outp, "%d%%", (int) (t * 100 / ((ms ? ms : 1)))); - END (outp); - break; - -#if !defined(SYSV) - case 'W': - i = r1->ru_nswap - r0->ru_nswap; - ACE_OS::sprintf (outp, "%d", i); - END (outp); - break; - - case 'X': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : (r1->ru_ixrss - r0->ru_ixrss) / t); - END (outp); - break; - - case 'D': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - (r1->ru_idrss + r1->ru_isrss - (r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'K': - ACE_OS::sprintf (outp, "%d", t == 0 ? 0 : - ((r1->ru_ixrss + r1->ru_isrss + r1->ru_idrss) - - (r0->ru_ixrss + r0->ru_idrss + r0->ru_isrss)) / t); - END (outp); - break; - - case 'M': - ACE_OS::sprintf (outp, "%d", r1->ru_maxrss / 2); - END (outp); - break; - - case 'F': - ACE_OS::sprintf (outp, "%d", r1->ru_majflt - r0->ru_majflt); - END (outp); - break; - - case 'R': - ACE_OS::sprintf (outp, "%d", r1->ru_minflt - r0->ru_minflt); - END (outp); - break; - - case 'I': - ACE_OS::sprintf (outp, "%d", r1->ru_inblock - r0->ru_inblock); - END (outp); - break; - - case 'O': - ACE_OS::sprintf (outp, "%d", r1->ru_oublock - r0->ru_oublock); - END (outp); - break; - case 'C': - ACE_OS::sprintf (outp, "%d+%d", r1->ru_nvcsw - r0->ru_nvcsw, - r1->ru_nivcsw - r0->ru_nivcsw); - END (outp); - break; -#endif /* !SYSV */ - } - } - *outp = '\0'; -} - -// adds two "timeval" structures -void -tvadd (struct timeval *tsum, struct timeval *t0, struct timeval *t1) -{ - - tsum->tv_sec = t0->tv_sec + t1->tv_sec; - tsum->tv_usec = t0->tv_usec + t1->tv_usec; - if (tsum->tv_usec > 1000000) - tsum->tv_sec++, tsum->tv_usec -= 1000000; -} - -// finds difference between two timevals -void -tvsub (struct timeval *tdiff, struct timeval *t1, struct timeval *t0) -{ - - tdiff->tv_sec = t1->tv_sec - t0->tv_sec; - tdiff->tv_usec = t1->tv_usec - t0->tv_usec; - if (tdiff->tv_usec < 0) - tdiff->tv_sec--, tdiff->tv_usec += 1000000; -} - -// print in seconds -void -psecs (CORBA::Long l, register CORBA::Char *cp) -{ - register int i; - - i = l / 3600; - if (i) - { - ACE_OS::sprintf (cp, "%d:", i); - END (cp); - i = l % 3600; - ACE_OS::sprintf (cp, "%d%d", (i / 60) / 10, (i / 60) % 10); - END (cp); - } - else - { - i = l; - ACE_OS::sprintf (cp, "%d", i / 60); - END (cp); - } - i %= 60; - *cp++ = ':'; - ACE_OS::sprintf (cp, "%d%d", i / 10, i % 10); -} - -#else /* ! ACE_HAS_PRUSAGE_T || ! ACE_HAS_GETRUSAGE */ - -void -prep_timer (void) -{ - ACE_ERROR ((LM_ERROR, "%s:%d; not supported\n", __FILE__, __LINE__)); - errno = ENOTSUP; -} - -double -read_timer (CORBA::Char *str, CORBA::Long len) -{ - ACE_NOTSUP_RETURN (0.0); -} - -#endif /* ! ACE_HAS_PRUSAGE_T || ! ACE_HAS_GETRUSAGE */ diff --git a/VERSION b/VERSION deleted file mode 100644 index 53322fbba4f..00000000000 --- a/VERSION +++ /dev/null @@ -1,4 +0,0 @@ -This is ACE version 4.5.13, released Fri Jun 19 11:22:27 1998. - -If you have any problems with ACE, please send email to Douglas -C. Schmidt (schmidt@cs.wustl.edu). diff --git a/WindozeCE/ACEApp.cpp b/WindozeCE/ACEApp.cpp deleted file mode 100644 index 3d7ab6722ca..00000000000 --- a/WindozeCE/ACEApp.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// $Id$ - -#include "stdafx.h" -#include "ace/OS.h" -#include "ACEApp.h" - -#if 0 -int -main (int argc, ASYS_TCHAR *argv[]) -{ - Sleep (500); - for (int i = 0; i < argc; i++, Sleep (700)) - ACE_DEBUG ((LM_DEBUG, TEXT ("The %d command arg is \"%s\""), - i, argv [i])); - return 0; -} -#endif diff --git a/WindozeCE/ACEApp.h b/WindozeCE/ACEApp.h deleted file mode 100644 index 6d5107dedbf..00000000000 --- a/WindozeCE/ACEApp.h +++ /dev/null @@ -1,14 +0,0 @@ -// $Id$ - -#if !defined (ACE_APP_H) -#define ACE_APP_H - -#if !defined (NC_ACE_NOTIRY) -#define NC_ACE_NOTIFY 2 -#define INC_ACE_LOGMSG 0 -#endif - -#endif /* ACE_APP_H */ - - - diff --git a/WindozeCE/README b/WindozeCE/README deleted file mode 100644 index 9d5d184e3db..00000000000 --- a/WindozeCE/README +++ /dev/null @@ -1,35 +0,0 @@ - CE specific files, may not run on 95/NT. - -What is this directory: - - This directory contains a collection of files for a template - windows program. It is written with Microsoft's MFC classes. - They also demonstrate a simple method to pass ACE_Log_Msg's - output to a window program with PostMessage. - -How to use this directory: - - I was planning to make this a DLL so that we can integrate CE - project files with the current Win32 project files. However, - the CE toolkit still seems very rudimentary and, certainly, I - am not familiar with it. - - To use these files, simply include all .cpp and .rc files in - your original text-based program. Compile them with "using - Shared MFC library" set (important.) - -Running the programs: - - Start the program. Key in command line parameters in the edit - box and tap on start button. The button displays "Running.." - when the program is executing and "Stopped" after the ACE - program has finished execution. - -Future works: - - * We need to allow scrollable output. - - * Make this a DLL? - - * Get the command line automatically. (This may need to - rewrite the program using native Win32 APIs.) diff --git a/WindozeCE/StdAfx.cpp b/WindozeCE/StdAfx.cpp deleted file mode 100644 index ee3447570e6..00000000000 --- a/WindozeCE/StdAfx.cpp +++ /dev/null @@ -1,7 +0,0 @@ -// $Id$ -// stdafx.cpp : source file that includes just the standard includes -// WindozeCE.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - diff --git a/WindozeCE/StdAfx.h b/WindozeCE/StdAfx.h deleted file mode 100644 index cb29f2a1b1f..00000000000 --- a/WindozeCE/StdAfx.h +++ /dev/null @@ -1,26 +0,0 @@ -// $Id$ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#if !defined(AFX_STDAFX_H__37544C6D_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) -#define AFX_STDAFX_H__37544C6D_E3BC_11D1_968E_0040054CF0F0__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers - -#include // MFC core and standard components -#include // MFC extensions -#ifndef _AFX_NO_AFXCMN_SUPPORT -#include // MFC support for Windows Common Controls -#endif // _AFX_NO_AFXCMN_SUPPORT - - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_STDAFX_H__37544C6D_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) diff --git a/WindozeCE/WindozeCE.aps b/WindozeCE/WindozeCE.aps deleted file mode 100644 index 0f2688cf3cd..00000000000 Binary files a/WindozeCE/WindozeCE.aps and /dev/null differ diff --git a/WindozeCE/WindozeCE.clw b/WindozeCE/WindozeCE.clw deleted file mode 100644 index eca2fb8b2d8..00000000000 --- a/WindozeCE/WindozeCE.clw +++ /dev/null @@ -1,41 +0,0 @@ -; CLW file contains information for the MFC ClassWizard - -[General Info] -Version=1 -LastClass=CWindozeCEDlg -LastTemplate=CDialog -NewFileInclude1=#include "stdafx.h" -NewFileInclude2=#include "WindozeCE.h" - -ClassCount=2 -Class1=CWindozeCEApp -Class2=CWindozeCEDlg - -ResourceCount=3 -Resource2=IDR_MAINFRAME -Resource3=IDD_WINDOZECE_DIALOG - -[CLS:CWindozeCEApp] -Type=0 -HeaderFile=WindozeCE.h -ImplementationFile=WindozeCE.cpp -Filter=N - -[CLS:CWindozeCEDlg] -Type=0 -HeaderFile=WindozeCEDlg.h -ImplementationFile=WindozeCEDlg.cpp -Filter=D -BaseClass=CDialog -VirtualFilter=dWC -LastObject=IDC_RUN - - -[DLG:IDD_WINDOZECE_DIALOG] -Type=1 -Class=CWindozeCEDlg -ControlCount=3 -Control1=IDC_PROGRAM_OUTPUT,edit,1352730692 -Control2=IDC_RUN,button,1342242817 -Control3=IDC_PROGRAM_ARGUMENTS,edit,1350631552 - diff --git a/WindozeCE/WindozeCE.cpp b/WindozeCE/WindozeCE.cpp deleted file mode 100644 index a08128041f4..00000000000 --- a/WindozeCE/WindozeCE.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// $Id$ -// WindozeCE.cpp : Defines the class behaviors for the application. -// - -#include "stdafx.h" -#include "WindozeCE.h" -#include "WindozeCEDlg.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEApp - -BEGIN_MESSAGE_MAP(CWindozeCEApp, CWinApp) - //{{AFX_MSG_MAP(CWindozeCEApp) - // NOTE - the ClassWizard will add and remove mapping macros here. - // DO NOT EDIT what you see in these blocks of generated code! - //}}AFX_MSG -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEApp construction - -CWindozeCEApp::CWindozeCEApp(LPCTSTR lpszAppName) - : CWinApp(lpszAppName) -{ - // TODO: add construction code here, - // Place all significant initialization in InitInstance -} - -///////////////////////////////////////////////////////////////////////////// -// The one and only CWindozeCEApp object - -// WCE MFC apps require the application name to be specified in the CWinApp -// constructor. A help contents filename may also be specified. - -CWindozeCEApp theApp(_T("WindozeCE")); - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEApp initialization - -BOOL CWindozeCEApp::InitInstance() -{ - // Standard initialization - // If you are not using these features and wish to reduce the size - // of your final executable, you should remove from the following - // the specific initialization routines you do not need. - - CWindozeCEDlg dlg; - m_pMainWnd = &dlg; - int nResponse = dlg.DoModal(); - if (nResponse == IDOK) - { - // TODO: Place code here to handle when the dialog is - // dismissed with OK - } - else if (nResponse == IDCANCEL) - { - // TODO: Place code here to handle when the dialog is - // dismissed with Cancel - } - - // Since the dialog has been closed, return FALSE so that we exit the - // application, rather than start the application's message pump. - return FALSE; -} diff --git a/WindozeCE/WindozeCE.dsp b/WindozeCE/WindozeCE.dsp deleted file mode 100644 index 6212adfb4cb..00000000000 --- a/WindozeCE/WindozeCE.dsp +++ /dev/null @@ -1,377 +0,0 @@ -# Microsoft Developer Studio Project File - Name="WindozeCE" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (WCE x86em) Application" 0x0b01 -# TARGTYPE "Win32 (WCE MIPS) Application" 0x0a01 -# TARGTYPE "Win32 (WCE SH) Application" 0x0901 - -CFG=WindozeCE - Win32 (WCE MIPS) 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 "WindozeCE.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 "WindozeCE.mak" CFG="WindozeCE - Win32 (WCE MIPS) Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "WindozeCE - Win32 (WCE MIPS) Release" (based on\ - "Win32 (WCE MIPS) Application") -!MESSAGE "WindozeCE - Win32 (WCE MIPS) Debug" (based on\ - "Win32 (WCE MIPS) Application") -!MESSAGE "WindozeCE - Win32 (WCE x86em) Release" (based on\ - "Win32 (WCE x86em) Application") -!MESSAGE "WindozeCE - Win32 (WCE x86em) Debug" (based on\ - "Win32 (WCE x86em) Application") -!MESSAGE "WindozeCE - Win32 (WCE SH) Release" (based on\ - "Win32 (WCE SH) Application") -!MESSAGE "WindozeCE - Win32 (WCE SH) Debug" (based on\ - "Win32 (WCE SH) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -# PROP WCE_Configuration "H/PC Ver. 2.00" - -!IF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Release" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "WMIPSRel" -# PROP BASE Intermediate_Dir "WMIPSRel" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "WMIPSRel" -# PROP Intermediate_Dir "WMIPSRel" -# PROP Target_Dir "" -CPP=clmips.exe -# ADD BASE CPP /nologo /MT /W3 /GX- /O2 /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "NDEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /QMRWCE /c -# ADD CPP /nologo /MT /W3 /GX- /O2 /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "NDEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /QMRWCE /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /r /d "MIPS" /d "_MIPS_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "NDEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /r /d "MIPS" /d "_MIPS_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "NDEBUG" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /machine:MIPS /subsystem:$(CESubsystem) -# SUBTRACT BASE LINK32 /pdb:none /nodefaultlib -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /machine:MIPS /subsystem:$(CESubsystem) -# SUBTRACT LINK32 /pdb:none /nodefaultlib -PFILE=pfile.exe -# ADD BASE PFILE COPY -# ADD PFILE COPY - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Debug" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "WMIPSDbg" -# PROP BASE Intermediate_Dir "WMIPSDbg" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "WMIPSDbg" -# PROP Intermediate_Dir "WMIPSDbg" -# PROP Target_Dir "" -CPP=clmips.exe -# ADD BASE CPP /nologo /MTd /W3 /GX- /Zi /Od /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /QMRWCE /c -# ADD CPP /nologo /MTd /W3 /GX- /Zi /Od /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "DEBUG" /D "MIPS" /D "_MIPS_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /QMRWCE /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /r /d "MIPS" /d "_MIPS_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "DEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /r /d "MIPS" /d "_MIPS_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "DEBUG" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /debug /machine:MIPS /subsystem:$(CESubsystem) -# SUBTRACT BASE LINK32 /pdb:none /nodefaultlib -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /debug /machine:MIPS /subsystem:$(CESubsystem) -# SUBTRACT LINK32 /pdb:none /nodefaultlib -PFILE=pfile.exe -# ADD BASE PFILE COPY -# ADD PFILE COPY - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Release" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "x86emRel" -# PROP BASE Intermediate_Dir "x86emRel" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "x86emRel" -# PROP Intermediate_Dir "x86emRel" -# PROP Target_Dir "" -CPP=cl.exe -# ADD BASE CPP /nologo /MT /W3 /GX- /O2 /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "WIN32" /D "STRICT" /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "NDEBUG" /D "x86" /D "i486" /D "_x86_" /D "_AFXDLL" /Yu"stdafx.h" /c -# ADD CPP /nologo /MT /W3 /GX- /O2 /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "WIN32" /D "STRICT" /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "NDEBUG" /D "x86" /D "i486" /D "_x86_" /D "_AFXDLL" /Yu"stdafx.h" /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "WIN32" /d "STRICT" /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "_WIN32_WCE_EMULATION" /d "INTERNATIONAL" /d "USA" /d "INTLMSG_CODEPAGE" /d "NDEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "WIN32" /d "STRICT" /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "_WIN32_WCE_EMULATION" /d "INTERNATIONAL" /d "USA" /d "INTLMSG_CODEPAGE" /d "NDEBUG" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /windowsce:emulation -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /machine:I386 /windowsce:emulation -EMPFILE=empfile.exe -# ADD BASE EMPFILE -COPY -# ADD EMPFILE -COPY - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Debug" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "x86emDbg" -# PROP BASE Intermediate_Dir "x86emDbg" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "x86emDbg" -# PROP Intermediate_Dir "x86emDbg" -# PROP Target_Dir "" -CPP=cl.exe -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX- /Zi /Od /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "WIN32" /D "STRICT" /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "_DEBUG" /D "x86" /D "i486" /D "_x86_" /D "_AFXDLL" /Yu"stdafx.h" /c -# ADD CPP /nologo /MTd /W3 /Gm /GX- /Zi /Od /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "WIN32" /D "STRICT" /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "_DEBUG" /D "x86" /D "i486" /D "_x86_" /D "_AFXDLL" /Yu"stdafx.h" /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "WIN32" /d "STRICT" /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "_WIN32_WCE_EMULATION" /d "INTERNATIONAL" /d "USA" /d "INTLMSG_CODEPAGE" /d "_DEBUG" /d "x86" /d "i486" /d "_x86_" /d "_AFXDLL" -# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "WIN32" /d "STRICT" /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "_WIN32_WCE_EMULATION" /d "INTERNATIONAL" /d "USA" /d "INTLMSG_CODEPAGE" /d "_DEBUG" /d "x86" /d "i486" /d "_x86_" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /windowsce:emulation -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /subsystem:windows /debug /machine:I386 /windowsce:emulation -EMPFILE=empfile.exe -# ADD BASE EMPFILE -COPY -# ADD EMPFILE -COPY - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Release" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "WCESHRel" -# PROP BASE Intermediate_Dir "WCESHRel" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "WCESHRel" -# PROP Intermediate_Dir "WCESHRel" -# PROP Target_Dir "" -CPP=shcl.exe -# ADD BASE CPP /nologo /MT /W3 /GX- /O2 /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "NDEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /c -# ADD CPP /nologo /MT /W3 /GX- /O2 /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "NDEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /r /d "SHx" /d "SH3" /d "_SH3_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "NDEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /r /d "SHx" /d "SH3" /d "_SH3_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "NDEBUG" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /machine:SH3 /subsystem:$(CESubsystem) -# SUBTRACT BASE LINK32 /pdb:none /nodefaultlib -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /machine:SH3 /subsystem:$(CESubsystem) -# SUBTRACT LINK32 /pdb:none /nodefaultlib -PFILE=pfile.exe -# ADD BASE PFILE COPY -# ADD PFILE COPY - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Debug" - -# PROP BASE Use_MFC 2 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "WCESHDbg" -# PROP BASE Intermediate_Dir "WCESHDbg" -# PROP BASE Target_Dir "" -# PROP Use_MFC 2 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "WCESHDbg" -# PROP Intermediate_Dir "WCESHDbg" -# PROP Target_Dir "" -CPP=shcl.exe -# ADD BASE CPP /nologo /MTd /W3 /GX- /Zi /Od /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /c -# ADD CPP /nologo /MTd /W3 /GX- /Zi /Od /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "DEBUG" /D "SHx" /D "SH3" /D "_SH3_" /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_AFXDLL" /Yu"stdafx.h" /c -RSC=rc.exe -# ADD BASE RSC /l 0x409 /r /d "SHx" /d "SH3" /d "_SH3_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "DEBUG" /d "_AFXDLL" -# ADD RSC /l 0x409 /r /d "SHx" /d "SH3" /d "_SH3_" /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "UNICODE" /d "DEBUG" /d "_AFXDLL" -MTL=midl.exe -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 /nologo /entry:"wWinMainCRTStartup" /debug /machine:SH3 /subsystem:$(CESubsystem) -# SUBTRACT BASE LINK32 /pdb:none /nodefaultlib -# ADD LINK32 /nologo /entry:"wWinMainCRTStartup" /debug /machine:SH3 /subsystem:$(CESubsystem) -# SUBTRACT LINK32 /pdb:none /nodefaultlib -PFILE=pfile.exe -# ADD BASE PFILE COPY -# ADD PFILE COPY - -!ENDIF - -# Begin Target - -# Name "WindozeCE - Win32 (WCE MIPS) Release" -# Name "WindozeCE - Win32 (WCE MIPS) Debug" -# Name "WindozeCE - Win32 (WCE x86em) Release" -# Name "WindozeCE - Win32 (WCE x86em) Debug" -# Name "WindozeCE - Win32 (WCE SH) Release" -# Name "WindozeCE - Win32 (WCE SH) Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" -# Begin Source File - -SOURCE=.\StdAfx.cpp - -!IF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Release" - -# ADD CPP /Yc"stdafx.h" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Debug" - -# ADD CPP /Yc"stdafx.h" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Release" - -# ADD CPP /Yc"stdafx.h" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Debug" - -# ADD CPP /Yc"stdafx.h" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Release" - -# ADD CPP /Yc"stdafx.h" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Debug" - -# ADD CPP /Yc"stdafx.h" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\WindozeCE.cpp - -!IF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\WindozeCE.rc - -!IF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\WindozeCEDlg.cpp - -!IF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE MIPS) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE x86em) Debug" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Release" - -!ELSEIF "$(CFG)" == "WindozeCE - Win32 (WCE SH) Debug" - -!ENDIF - -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;hpp;hxx;hm;inl" -# Begin Source File - -SOURCE=.\Resource.h -# End Source File -# Begin Source File - -SOURCE=.\StdAfx.h -# End Source File -# Begin Source File - -SOURCE=.\WindozeCE.h -# End Source File -# Begin Source File - -SOURCE=.\WindozeCEDlg.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" -# Begin Source File - -SOURCE=.\res\WindozeCE.ico -# End Source File -# Begin Source File - -SOURCE=.\res\WindozeCE.rc2 -# PROP Exclude_From_Scan -1 -# PROP BASE Exclude_From_Build 1 -# PROP Exclude_From_Build 1 -# End Source File -# End Group -# Begin Source File - -SOURCE=.\ReadMe.txt -# End Source File -# End Target -# End Project diff --git a/WindozeCE/WindozeCE.h b/WindozeCE/WindozeCE.h deleted file mode 100644 index 0252c250b3e..00000000000 --- a/WindozeCE/WindozeCE.h +++ /dev/null @@ -1,50 +0,0 @@ -// $Id$ -// WindozeCE.h : main header file for the WINDOZECE application -// - -#if !defined(AFX_WINDOZECE_H__37544C69_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) -#define AFX_WINDOZECE_H__37544C69_E3BC_11D1_968E_0040054CF0F0__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -#ifndef __AFXWIN_H__ - #error include 'stdafx.h' before including this file for PCH -#endif - -#include "resource.h" // main symbols - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEApp: -// See WindozeCE.cpp for the implementation of this class -// - -class CWindozeCEApp : public CWinApp -{ -public: - CWindozeCEApp(LPCTSTR lpszAppName); - -// Overrides - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CWindozeCEApp) - public: - virtual BOOL InitInstance(); - //}}AFX_VIRTUAL - -// Implementation - - //{{AFX_MSG(CWindozeCEApp) - // NOTE - the ClassWizard will add and remove member functions here. - // DO NOT EDIT what you see in these blocks of generated code ! - //}}AFX_MSG - DECLARE_MESSAGE_MAP() -}; - - -///////////////////////////////////////////////////////////////////////////// - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_WINDOZECE_H__37544C69_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) diff --git a/WindozeCE/WindozeCE.plg b/WindozeCE/WindozeCE.plg deleted file mode 100644 index 5eec2c4acbd..00000000000 --- a/WindozeCE/WindozeCE.plg +++ /dev/null @@ -1,18 +0,0 @@ ---------------------Configuration: WindozeCE - Win32 (WCE x86em) Debug-------------------- -Begining build with project "C:\Nanbor\WinCE\WindozeCE\WindozeCE.dsp", at root. -Active configuration is Win32 (WCE x86em) Application (based on Win32 (WCE x86em) Application) - -Project's tools are: - "32-bit C/C++ Compiler for 80x86em" with flags "/nologo /MTd /W3 /Gm /Zi /Od /D UNDER_CE=$(CEVersion) /D "UNICODE" /D "_UNICODE" /D "WIN32" /D "STRICT" /D _WIN32_WCE=$(CEVersion) /D "$(CEConfigName)" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "_DEBUG" /D "x86" /D "i486" /D "_x86_" /D "_AFXDLL" /Fp"x86emDbg/WindozeCE.pch" /Yu"stdafx.h" /Fo"x86emDbg/" /Fd"x86emDbg/" /c " - "Win32 Resource Compiler" with flags "/l 0x409 /fo"x86emDbg/WindozeCE.res" /d UNDER_CE=$(CEVersion) /d "UNICODE" /d "_UNICODE" /d "WIN32" /d "STRICT" /d _WIN32_WCE=$(CEVersion) /d "$(CEConfigName)" /d "_WIN32_WCE_EMULATION" /d "INTERNATIONAL" /d "USA" /d "INTLMSG_CODEPAGE" /d "_DEBUG" /d "x86" /d "i486" /d "_x86_" /d "_AFXDLL" " - "OLE Type Library Maker" with flags "/nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 " - "Browser Database Maker" with flags "/nologo /o"x86emDbg/WindozeCE.bsc" " - "COFF Linker for 80x86em" with flags "/nologo /entry:"wWinMainCRTStartup" /subsystem:windows /incremental:yes /pdb:"x86emDbg/WindozeCE.pdb" /debug /machine:I386 /out:"x86emDbg/WindozeCE.exe" /windowsce:emulation " - "Empfile Utility" with flags "-COPY " - "Custom Build" with flags "" - "" with flags "" - - - - -WindozeCE.exe - 0 error(s), 0 warning(s) diff --git a/WindozeCE/WindozeCE.rc b/WindozeCE/WindozeCE.rc deleted file mode 100644 index ff78591cb9c..00000000000 --- a/WindozeCE/WindozeCE.rc +++ /dev/null @@ -1,176 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "#define _AFX_NO_SPLITTER_RESOURCES\r\n" - "#define _AFX_NO_OLE_RESOURCES\r\n" - "#define _AFX_NO_TRACKER_RESOURCES\r\n" - "#define _AFX_NO_PROPERTY_RESOURCES\r\n" - "\r\n" - "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n" - "#ifdef _WIN32\r\n" - "LANGUAGE 9, 1\r\n" - "#pragma code_page(1252)\r\n" - "#endif\r\n" - "#include ""res\\WindozeCE.rc2"" // non-Microsoft Visual C++ edited resources\r\n" - "#include ""afxres.rc"" // Standard components\r\n" - "#include ""wceres.rc"" // WCE-specific components\r\n" - "#endif\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDR_MAINFRAME ICON DISCARDABLE "res\\WindozeCE.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -IDD_WINDOZECE_DIALOG DIALOGEX 0, 0, 285, 111 -STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU -EXSTYLE WS_EX_APPWINDOW | WS_EX_CAPTIONOKBTN -CAPTION "WindozeCE" -FONT 8, "Tahoma" -BEGIN - EDITTEXT IDC_PROGRAM_OUTPUT,7,7,271,79,ES_MULTILINE | - ES_AUTOVSCROLL | ES_READONLY | WS_VSCROLL - DEFPUSHBUTTON "Run",IDC_RUN,7,90,50,14 - EDITTEXT IDC_PROGRAM_ARGUMENTS,61,90,217,14,ES_AUTOHSCROLL -END - - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x1L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904B0" - BEGIN - VALUE "CompanyName", "\0" - VALUE "FileDescription", "WindozeCE WCE MFC Application\0" - VALUE "FileVersion", "1, 0, 0, 1\0" - VALUE "InternalName", "WindozeCE\0" - VALUE "LegalCopyright", "Copyright (C) 1998\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename", "WindozeCE.EXE\0" - VALUE "ProductName", "WindozeCE Application\0" - VALUE "ProductVersion", "1, 0, 0, 1\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// DESIGNINFO -// - -#ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE -BEGIN - IDD_WINDOZECE_DIALOG, DIALOG - BEGIN - LEFTMARGIN, 7 - RIGHTMARGIN, 278 - TOPMARGIN, 7 - BOTTOMMARGIN, 104 - END -END -#endif // APSTUDIO_INVOKED - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// -#define _AFX_NO_SPLITTER_RESOURCES -#define _AFX_NO_OLE_RESOURCES -#define _AFX_NO_TRACKER_RESOURCES -#define _AFX_NO_PROPERTY_RESOURCES - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE 9, 1 -#pragma code_page(1252) -#endif -#include "res\WindozeCE.rc2" // non-Microsoft Visual C++ edited resources -#include "afxres.rc" // Standard components -#include "wceres.rc" // WCE-specific components -#endif -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/WindozeCE/WindozeCEDlg.cpp b/WindozeCE/WindozeCEDlg.cpp deleted file mode 100644 index 63489881d79..00000000000 --- a/WindozeCE/WindozeCEDlg.cpp +++ /dev/null @@ -1,156 +0,0 @@ -// $Id$ -// WindozeCEDlg.cpp : implementation file -// - -#include "stdafx.h" -#include "WindozeCE.h" -#include "WindozeCEDlg.h" -#include "ace/ARGV.h" -#include "ACEApp.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -static CWnd *host_window_ = 0; - -UINT worker (void * arg) -{ - ACE_ARGV cmd_line ((TCHAR *) arg); - extern int ace_ce_main (int, ASYS_TCHAR *[]); - - int retv = ace_ce_main (cmd_line.argc (), cmd_line.argv ()); - host_window_->SetDlgItemText (IDC_RUN, TEXT ("Stopped")); - - return retv; - - // Sleep (500); - // for (size_t i = 0; i < cmd_line.argc (); i++, Sleep (500)) - // ACE_DEBUG ((LM_DEBUG, TEXT ("The %d command arg is \"%s\""), - // i, cmd_line.argv ()[i])); - - // return 0; - // CString *msg = 0; - // while (1) - // { - // Sleep (500); - // msg = new CString; - // SYSTEMTIME curtime; - // GetLocalTime (&curtime); - // msg->Format (TEXT ("Time: %02d:%02d:%02d.%03d"), curtime.wHour, - // curtime.wMinute, curtime.wSecond, - // curtime.wMilliseconds); - // ACE_DEBUG ((LM_DEBUG, TEXT ("(%P|%t) Test logging: %s\n"), *msg)); - // delete msg; - // } - // return 0; -} - - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEDlg dialog - -CWindozeCEDlg::CWindozeCEDlg(CWnd* pParent /*=NULL*/) - : CDialog(CWindozeCEDlg::IDD, pParent) -{ - //{{AFX_DATA_INIT(CWindozeCEDlg) - // NOTE: the ClassWizard will add member initialization here - //}}AFX_DATA_INIT - // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 - m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); -} - -void CWindozeCEDlg::DoDataExchange(CDataExchange* pDX) -{ - CDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CWindozeCEDlg) - // NOTE: the ClassWizard will add DDX and DDV calls here - //}}AFX_DATA_MAP -} - -BEGIN_MESSAGE_MAP(CWindozeCEDlg, CDialog) - //{{AFX_MSG_MAP(CWindozeCEDlg) - ON_WM_TIMER() - ON_BN_CLICKED(IDC_RUN, OnStart) - //}}AFX_MSG_MAP - END_MESSAGE_MAP() - - ///////////////////////////////////////////////////////////////////////////// - // CWindozeCEDlg message handlers - - BOOL CWindozeCEDlg::OnInitDialog() -{ - CDialog::OnInitDialog(); - - // Set the icon for this dialog. The framework does this automatically - // when the application's main window is not a dialog - SetIcon(m_hIcon, TRUE); // Set big icon - SetIcon(m_hIcon, FALSE); // Set small icon - - this->SetDlgItemText (IDC_PROGRAM_OUTPUT, - TEXT ("Fill in the command line arguments you want to pass to the program below:")); - CenterWindow(GetDesktopWindow()); // center to the hpc screen - - this->ace.set_window (this, NC_ACE_NOTIFY, INC_ACE_LOGMSG); - this->ace.set_self_default (); - host_window_ = this; - return TRUE; // return TRUE unless you set the focus to a control -} - -BOOL CWindozeCEDlg::OnCommand(WPARAM wParam, LPARAM lParam) -{ - static BOOL got_cmd = FALSE; - int notify = HIBYTE (wParam); - int id = LOBYTE (wParam); - - if (notify == NC_ACE_NOTIFY && id == INC_ACE_LOGMSG) - { - CString *msg = (CString *) lParam ; - LPTSTR head = (LPTSTR) ((LPCTSTR) *msg); - CString newbuf; - - LPTSTR newline; - - while ((newline = ACE_OS::strchr (head, '\n')) != NULL) - { - *newline = 0; - newbuf += head; - newbuf += "\r\n"; - head = newline+1; - } - - newbuf += head; - - CEdit *editor = (CEdit *) GetDlgItem (IDC_PROGRAM_OUTPUT); - editor -> ReplaceSel (newbuf); - - delete msg; - return TRUE; - } - return CDialog::OnCommand(wParam, lParam); -} - -void CWindozeCEDlg::OnTimer(UINT nIDEvent) -{ - // CWnd *text = this->GetDlgItem (IDC_TEXT_DISP); - // text->ModifyStyle (WS_VISIBLE, SS_CENTER, 0); - // this->UpdateWindow (); - - CDialog::OnTimer(nIDEvent); -} - -void CWindozeCEDlg::OnStart() -{ - static BOOL once = FALSE; - - if (! once) - { - CString cmdline; - this->GetDlgItemText (IDC_PROGRAM_ARGUMENTS, cmdline); - AfxBeginThread (worker, (void *) (LPCTSTR) cmdline); - this->SetDlgItemText (IDC_RUN, TEXT ("Running...")); - once = TRUE; - } -} diff --git a/WindozeCE/WindozeCEDlg.h b/WindozeCE/WindozeCEDlg.h deleted file mode 100644 index d141e218117..00000000000 --- a/WindozeCE/WindozeCEDlg.h +++ /dev/null @@ -1,54 +0,0 @@ -// $Id$ -// WindozeCEDlg.h : header file -// - -#include "ace/OS.h" - -#if !defined(AFX_WINDOZECEDLG_H__37544C6B_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) -#define AFX_WINDOZECEDLG_H__37544C6B_E3BC_11D1_968E_0040054CF0F0__INCLUDED_ - -#if _MSC_VER >= 1000 -#pragma once -#endif // _MSC_VER >= 1000 - -///////////////////////////////////////////////////////////////////////////// -// CWindozeCEDlg dialog - -class CWindozeCEDlg : public CDialog -{ - // Construction -public: - CWindozeCEDlg(CWnd* pParent = NULL); // standard constructor - - // Dialog Data - //{{AFX_DATA(CWindozeCEDlg) - enum { IDD = IDD_WINDOZECE_DIALOG }; - // NOTE: the ClassWizard will add data members here - //}}AFX_DATA - - // ClassWizard generated virtual function overrides - //{{AFX_VIRTUAL(CWindozeCEDlg) -protected: - virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support - virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); - //}}AFX_VIRTUAL - -// Implementation -protected: - HICON m_hIcon; - - ACE_CE_Bridge ace; - - // Generated message map functions - //{{AFX_MSG(CWindozeCEDlg) - virtual BOOL OnInitDialog(); - afx_msg void OnTimer(UINT nIDEvent); - afx_msg void OnStart(); - //}}AFX_MSG - DECLARE_MESSAGE_MAP() - }; - -//{{AFX_INSERT_LOCATION}} -// Microsoft Developer Studio will insert additional declarations immediately before the previous line. - -#endif // !defined(AFX_WINDOZECEDLG_H__37544C6B_E3BC_11D1_968E_0040054CF0F0__INCLUDED_) diff --git a/WindozeCE/res/WindozeCE.ico b/WindozeCE/res/WindozeCE.ico deleted file mode 100644 index b9204c1c06d..00000000000 Binary files a/WindozeCE/res/WindozeCE.ico and /dev/null differ diff --git a/WindozeCE/res/WindozeCE.rc2 b/WindozeCE/res/WindozeCE.rc2 deleted file mode 100644 index 65f376ac843..00000000000 --- a/WindozeCE/res/WindozeCE.rc2 +++ /dev/null @@ -1,13 +0,0 @@ -// $Id$ -// WindozeCE.RC2 - resources Microsoft Visual C++ does not edit directly -// - -#ifdef APSTUDIO_INVOKED - #error this file is not editable by Microsoft Visual C++ -#endif //APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// Add manually edited resources here... - -///////////////////////////////////////////////////////////////////////////// diff --git a/WindozeCE/resource.h b/WindozeCE/resource.h deleted file mode 100644 index 174cf16aba9..00000000000 --- a/WindozeCE/resource.h +++ /dev/null @@ -1,21 +0,0 @@ -// $Id$ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by WindozeCE.rc -// -#define IDD_WINDOZECE_DIALOG 102 -#define IDR_MAINFRAME 128 -#define IDC_PROGRAM_OUTPUT 1001 -#define IDC_RUN 1003 -#define IDC_PROGRAM_ARGUMENTS 1004 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1005 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/ace/ACE.bpg b/ace/ACE.bpg deleted file mode 100644 index 7a32b122e67..00000000000 --- a/ace/ACE.bpg +++ /dev/null @@ -1,21 +0,0 @@ -#------------------------------------------------------------------------------ -VERSION = BWS.01 -#------------------------------------------------------------------------------ -!ifndef ROOT -ROOT = $(MAKEDIR)\.. -!endif -#------------------------------------------------------------------------------ -MAKE = $(ROOT)\bin\make.exe -$(MAKEFLAGS) -f$** -DCC = $(ROOT)\bin\dcc32.exe $** -BRCC = $(ROOT)\bin\brcc32.exe $** -#------------------------------------------------------------------------------ -PROJECTS = ACER ACED -#------------------------------------------------------------------------------ -default: $(PROJECTS) -#------------------------------------------------------------------------------ - -ACER: ACER.bpr - $(MAKE) - -ACED: ACED.bpr - $(MAKE) diff --git a/ace/ACE.cpp b/ace/ACE.cpp deleted file mode 100644 index 145c6b213c4..00000000000 --- a/ace/ACE.cpp +++ /dev/null @@ -1,2877 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/IPC_SAP.h" -#include "ace/Handle_Set.h" -#include "ace/ACE.h" -#include "ace/Thread_Manager.h" -#include "ace/Reactor.h" -#include "ace/Auto_Ptr.h" -#include "ace/INET_Addr.h" -#include "ace/SString.h" -#include "ace/Process.h" -#include "ace/Version.h" - -#if defined (ACE_LACKS_INLINE_FUNCTIONS) -#include "ace/ACE.i" -#endif - -// Hex characters. -const char ACE::hex_chars_[] = "0123456789abcdef"; - -// Size of a VM page. -size_t ACE::pagesize_ = 0; - -u_int -ACE::major_version (void) -{ - return ACE_MAJOR_VERSION; -} - -u_int -ACE::minor_version (void) -{ - return ACE_MINOR_VERSION; -} - -u_int -ACE::beta_version (void) -{ - return ACE_BETA_VERSION; -} - -void -ACE::unique_name (const void *object, - LPTSTR name, - size_t length) -{ - // The process ID will provide uniqueness between processes on the - // same machine. The "this" pointer of the will provide - // uniqueness between other "live" objects in the same process. The - // uniqueness of this name is therefore only valid for the life of - // . - TCHAR temp_name[ACE_UNIQUE_NAME_LEN]; - ACE_OS::sprintf (temp_name, - __TEXT ("%d %d"), - ACE_OS::getpid (), - object); - ACE_OS::strncpy (name, - temp_name, - length); -} - -int -ACE::terminate_process (pid_t pid) -{ -#if defined (ACE_WIN32) - // Create a handle for the given process id. - ACE_HANDLE process_handle = - ::OpenProcess (PROCESS_TERMINATE, - FALSE, // New handle is not inheritable. - pid); - - if (process_handle == ACE_INVALID_HANDLE - || process_handle == NULL) - return -1; - else - { - // Kill the process associated with process_handle. - BOOL terminate_result = - ::TerminateProcess (process_handle, 0); - // Free up the kernel resources. - ACE_OS::close (process_handle); - return terminate_result; - } -#elif defined (CHORUS) - KnCap cap_; - - // Use the pid to find out the actor's capability, then kill it. - if (::acap (AM_MYSITE, pid, &cap_) == 0) - return ::akill (&cap_); - else - return -1; -#else - return ACE_OS::kill (pid, 9); -#endif /* ACE_WIN32 */ -} - -int -ACE::process_active (pid_t pid) -{ -#if !defined(ACE_WIN32) - int retval = ACE_OS::kill (pid, 0); - - if (retval == 0) - return 1; - else if (errno == ESRCH) - return 0; - else - return -1; -#else - // Create a handle for the given process id. - ACE_HANDLE process_handle = - ::OpenProcess (PROCESS_QUERY_INFORMATION, FALSE, pid); - if (process_handle == ACE_INVALID_HANDLE - || process_handle == NULL) - return 0; - else - { - DWORD status; - if (::GetExitCodeProcess (process_handle, - &status) == 0 - || status != STILL_ACTIVE) - return 0; - else - return 1; - } -#endif /* ACE_WIN32 */ -} - -#if !defined (ACE_HAS_WINCE) -int -ACE::register_stdin_handler (ACE_Event_Handler *eh, - ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr, - int flags) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (reactor); - - eh->reactor (reactor); - return thr_mgr->spawn (&ACE::read_adapter, (void *) eh, flags); -#else - // Keep compilers happy. - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (thr_mgr); - return reactor->register_handler (ACE_STDIN, - eh, - ACE_Event_Handler::READ_MASK); -#endif /* ACE_WIN32 */ -} - -int -ACE::remove_stdin_handler (ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (reactor); - ACE_UNUSED_ARG (thr_mgr); - - // What should we do here? - ACE_NOTSUP_RETURN (-1); -#else - // Keep compilers happy. - ACE_UNUSED_ARG (thr_mgr); - return reactor->remove_handler (ACE_STDIN, - ACE_Event_Handler::READ_MASK); -#endif /* ACE_WIN32 */ -} - -// Used to read from non-socket ACE_HANDLEs in our own thread to work -// around Win32 limitations that don't allow us to select() on -// non-sockets (such as ACE_STDIN). This is commonly used in -// situations where the Reactor is used to demultiplex read events on -// ACE_STDIN on UNIX. Note that must be a subclass of -// . If the method of this event -// handler returns we default to reading from -// ACE_STDIN. - -void * -ACE::read_adapter (void *args) -{ - ACE_Event_Handler *this_ptr = (ACE_Event_Handler *) args; - ACE_HANDLE handle = ACE_STDIN; - - while (this_ptr->handle_input (handle) != -1) - continue; - - this_ptr->handle_close (handle, - ACE_Event_Handler::READ_MASK); - this_ptr->reactor ()->notify (); - - return 0; -} -#endif /* ACE_HAS_WINCE */ - -// Split a string up into 'token'-delimited pieces, ala Perl's -// "split". - -char * -ACE::strsplit_r (char *str, - const char *token, - char *&next_start) -{ - char *result = 0; - - if (str != 0) - next_start = str; - - if (next_start != 0) - { - char *tok_loc = ACE_OS::strstr (next_start, token); - - if (tok_loc != 0) - { - // Return the beginning of the string. - result = next_start; - - // Insure it's terminated. - *tok_loc = '\0'; - next_start = tok_loc + ACE_OS::strlen (token); - } - else - { - result = next_start; - next_start = (char *) 0; - } - } - - return result; -} - -const char * -ACE::execname (const char *old_name) -{ -#if defined (ACE_HAS_WIN32) - if (ACE_OS::strstr (old_name, ".exe") == 0) - { - char *new_name; - - size_t size = - ACE_OS::strlen (old_name) - + ACE_OS::strlen (".exe") - + 1; - - ACE_NEW_RETURN (new_name, - char[size], - -1); - char *end = new_name; - - end = ACE::strecpy (new_name, old_name); - - // Concatenate the .exe suffix onto the end of the executable. - ACE_OS::strcpy (end, ".exe"); - - return new_name; - } -#endif /* ACE_HAS_WIN32 */ - return old_name; -} - -#if defined (ACE_HAS_UNICODE) -size_t -ACE::strrepl (wchar_t *s, wchar_t search, wchar_t replace) -{ - ACE_TRACE ("ACE::strrepl"); - - size_t replaced = 0; - - for (size_t i = 0; s[i] != '\0'; i++) - if (s[i] == search) - { - s[i] = replace; - replaced++; - } - - return replaced; -} - -wchar_t * -ACE::strsplit_r (wchar_t *str, - const wchar_t *token, - wchar_t *&next_start) -{ - wchar_t *result = 0; - - if (str != 0) - next_start = str; - - if (next_start != 0) - { - wchar_t *tok_loc = ACE_OS::strstr (next_start, token); - - if (tok_loc != 0) - { - // Return the beginning of the string. - result = next_start; - - // Insure it's terminated. - *tok_loc = '\0'; - next_start = tok_loc + ACE_OS::strlen (token); - } - else - { - result = next_start; - next_start = (wchar_t *) 0; - } - } - - return result; -} - -const wchar_t * -ACE::execname (const wchar_t *old_name) -{ -#if defined (ACE_HAS_WIN32) - if (ACE_OS::strstr (old_name, L".exe") == 0) - { - wchar_t *new_name; - - size_t size = - ACE_OS::strlen (old_name) - + ACE_OS::strlen (L".exe") - + 1; - - ACE_NEW_RETURN (new_name, - wchar_t[size], - -1); - wchar_t *end = new_name; - - end = ACE::strecpy (new_name, old_name); - - // Concatenate the .exe suffix onto the end of the executable. - ACE_OS::strcpy (end, L".exe"); - - return new_name; - } -#endif /* ACE_HAS_WIN32 */ - return old_name; -} -#endif /* ACE_HAS_UNICODE */ - -u_long -ACE::hash_pjw (const char *str, size_t len) -{ - u_long hash = 0; - - for (size_t i = 0; i < len; i++) - { - const char temp = str[i]; - hash = (hash << 4) + (temp * 13); - - u_long g = hash & 0xf0000000; - - if (g) - { - hash ^= (g >> 24); - hash ^= g; - } - } - - return hash; -} - -u_long -ACE::hash_pjw (const char *str) -{ - return ACE::hash_pjw (str, ACE_OS::strlen (str)); -} - -u_long -ACE::hash_pjw (const ACE_USHORT16 *str, size_t len) -{ - u_long hash = 0; - - for (size_t i = 0; i < len; i++) - { - const ACE_USHORT16 temp = str[i]; - hash = (hash << 4) + (temp * 13); - - u_long g = hash & 0xf0000000; - - if (g) - { - hash ^= (g >> 24); - hash ^= g; - } - } - - return hash; -} - -u_long -ACE::hash_pjw (const ACE_USHORT16 *str) -{ - return ACE::hash_pjw (str, ACE_WString::strlen (str)); -} - -// The CRC routine was taken from the FreeBSD implementation of cksum, -// that falls under the following license: -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * James W. Williams of NASA Goddard Space Flight Center. - * - * 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 the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. - */ - -u_long ACE::crc_table_[] = -{ - 0x0, - 0x04c11db7, 0x09823b6e, 0x0d4326d9, 0x130476dc, 0x17c56b6b, - 0x1a864db2, 0x1e475005, 0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, - 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd, - 0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, - 0x5bd4b01b, 0x569796c2, 0x52568b75, 0x6a1936c8, 0x6ed82b7f, - 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, - 0x745e66cd, 0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, - 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5, 0xbe2b5b58, - 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, - 0xa4ad16ea, 0xa06c0b5d, 0xd4326d90, 0xd0f37027, 0xddb056fe, - 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95, - 0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, - 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d, 0x34867077, 0x30476dc0, - 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, - 0x2ac12072, 0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, - 0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca, 0x7897ab07, - 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, - 0x6211e6b5, 0x66d0fb02, 0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, - 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba, - 0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, - 0xbb60adfc, 0xb6238b25, 0xb2e29692, 0x8aad2b2f, 0x8e6c3698, - 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, - 0x94ea7b2a, 0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, - 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2, 0xc6bcf05f, - 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, - 0xdc3abded, 0xd8fba05a, 0x690ce0ee, 0x6dcdfd59, 0x608edb80, - 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb, - 0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, - 0x58c1663d, 0x558240e4, 0x51435d53, 0x251d3b9e, 0x21dc2629, - 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, - 0x3b5a6b9b, 0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff, - 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623, 0xf12f560e, - 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, - 0xeba91bbc, 0xef68060b, 0xd727bbb6, 0xd3e6a601, 0xdea580d8, - 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3, - 0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, - 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b, 0x9b3660c6, 0x9ff77d71, - 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, - 0x857130c3, 0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, - 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c, 0x7b827d21, - 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, - 0x61043093, 0x65c52d24, 0x119b4be9, 0x155a565e, 0x18197087, - 0x1cd86d30, 0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec, - 0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, - 0x2056cd3a, 0x2d15ebe3, 0x29d4f654, 0xc5a92679, 0xc1683bce, - 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, - 0xdbee767c, 0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, - 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4, 0x89b8fd09, - 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, - 0x933eb0bb, 0x97ffad0c, 0xafb010b1, 0xab710d06, 0xa6322bdf, - 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 -}; - -// Compute a POSIX 1003.2 checksum. The routine takes an string and -// computes the CRC for it (it stops on the first '\0' character). - -u_long -ACE::crc32 (const char *string) -{ -#define COMPUTE(var, ch) (var) = ((var) << 8) ^ ACE::crc_table_[((var) >> 24) ^ (ch)] - register ACE_UINT32 crc = 0; - - u_long len = 0; - - for (const char *p = string; - *p != 0; - ++p) - { - COMPUTE (crc, *p); - ++len; - } - - // Include the length of the string. - - for (; len != 0; len >>= 8) - COMPUTE (crc, len & 0xff); - - return ~crc; -} - -size_t -ACE::strrepl (char *s, char search, char replace) -{ - ACE_TRACE ("ACE::strrepl"); - - size_t replaced = 0; - - for (size_t i = 0; s[i] != '\0'; i++) - if (s[i] == search) - { - s[i] = replace; - replaced++; - } - - return replaced; -} - -#if !defined (ACE_HAS_WINCE) -char * -ACE::strenvdup (const char *str) -{ - ACE_TRACE ("ACE::strenvdup"); - - char *temp; - - if (str[0] == '$' - && (temp = ACE_OS::getenv (&str[1])) != 0) - return ACE_OS::strdup (temp); - else - return ACE_OS::strdup (str); -} -#endif /* ACE_HAS_WINCE */ - -/* - -Examples: - -Source NT UNIX -================================================================== -netsvc netsvc.dll libnetsvc.so - (PATH will be (LD_LIBRARY_PATH - evaluated) evaluated) - -libnetsvc.dll libnetsvc.dll libnetsvc.dll + warning -netsvc.so netsvc.so + warning libnetsvc.so - -..\../libs/netsvc ..\..\libs\netsvc.dll ../../libs/netsvc.so - (absolute path used) (absolute path used) - -*/ - -int -ACE::ldfind (const ASYS_TCHAR filename[], - ASYS_TCHAR pathname[], - size_t maxpathnamelen) -{ - ACE_TRACE ("ACE::ldfind"); - - ASYS_TCHAR tempcopy[MAXPATHLEN + 1]; - ASYS_TCHAR searchpathname[MAXPATHLEN + 1]; - ASYS_TCHAR searchfilename[MAXPATHLEN + 1]; - - // Create a copy of filename to work with. - if (ACE_OS::strlen (filename) + 1 - > (sizeof tempcopy / sizeof (ASYS_TCHAR))) - { - errno = ENOMEM; - return -1; - } - else - ACE_OS::strcpy (tempcopy, filename); - - // Insert canonical directory separators. - ASYS_TCHAR *separator_ptr; - -#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/') - // Make all the directory separators ``canonical'' to simplify - // subsequent code. - ACE::strrepl (tempcopy, ACE_DIRECTORY_SEPARATOR_CHAR, '/'); -#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ - - // Separate filename from pathname. - separator_ptr = ACE_OS::strrchr (tempcopy, '/'); - - // This is a relative path. - if (separator_ptr == 0) - { - searchpathname[0] = '\0'; - ACE_OS::strcpy (searchfilename, tempcopy); - } - else // This is an absolute path. - { - ACE_OS::strcpy (searchfilename, separator_ptr + 1); - separator_ptr[1] = '\0'; - ACE_OS::strcpy (searchpathname, tempcopy); - } - - int got_suffix = 0; - - // Check to see if this has an appropriate DLL suffix for the OS - // platform. - ASYS_TCHAR *s = ACE_OS::strrchr (searchfilename, '.'); - - ASYS_TCHAR *dll_suffix = -#if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) - ACE_DLL_SUFFIX; -#else - _TEXT (ACE_DLL_SUFFIX); -#endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - - if (s != 0) - { - // Check whether this matches the appropriate platform-specific - // suffix. - if (ACE_OS::strcmp (s, dll_suffix) == 0) - got_suffix = 1; - else - ACE_ERROR ((LM_WARNING, - ASYS_TEXT ("Warning: improper suffix for a ") - ASYS_TEXT ("shared library on this platform: %s\n"), - s)); - } - - // Make sure we've got enough space in searchfilename. - if (ACE_OS::strlen (searchfilename) - + ACE_OS::strlen (ACE_DLL_PREFIX) - + got_suffix ? 0 : ACE_OS::strlen (dll_suffix) >= (sizeof searchfilename / - sizeof (ASYS_TCHAR))) - { - errno = ENOMEM; - return -1; - } - - // Use absolute pathname if there is one. - if (ACE_OS::strlen (searchpathname) > 0) - { - if (ACE_OS::strlen (searchfilename) - + ACE_OS::strlen (searchpathname) >= maxpathnamelen) - { - errno = ENOMEM; - return -1; - } - else - { -#if (ACE_DIRECTORY_SEPARATOR_CHAR != '/') - // Revert to native path name separators. - ACE::strrepl (searchpathname, - '/', - ACE_DIRECTORY_SEPARATOR_CHAR); -#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ - // First, try matching the filename *without* adding a - // prefix. - ACE_OS::sprintf (pathname, - ASYS_TEXT ("%s%s%s"), - searchpathname, - searchfilename, - got_suffix ? ASYS_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - return 0; - - // Second, try matching the filename *with* adding a prefix. - ACE_OS::sprintf (pathname, - ASYS_TEXT ("%s%s%s%s"), - searchpathname, - ACE_DLL_PREFIX, - searchfilename, - got_suffix ? ASYS_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - return 0; - } - } - - // Use relative filenames via LD_LIBRARY_PATH or PATH (depending on - // OS platform). - else - { - char *ld_path = ACE_OS::getenv (ACE_LD_SEARCH_PATH); - - if (ld_path != 0 - && (ld_path = ACE_OS::strdup (ld_path)) != 0) - { - // strtok has the strange behavior of not separating the - // string ":/foo:/bar" into THREE tokens. One would expect - // that the first iteration the token would be an empty - // string, the second iteration would be "/foo", and the - // third iteration would be "/bar". However, this is not - // the case; one only gets two iterations: "/foo" followed - // by "/bar". - - // This is especially a problem in parsing Unix paths - // because it is permissible to specify 'the current - // directory' as an empty entry. So, we introduce the - // following special code to cope with this: - - // Look at each dynamic lib directory in the search path. - char *nextholder = 0; - const char *path_entry = - ACE::strsplit_r (ld_path, - ACE_LD_SEARCH_PATH_SEPARATOR_STR, - nextholder); - int result = 0; - - for (;;) - { - // Check if at end of search path. - if (path_entry == 0) - { - errno = ENOENT; - result = -1; - break; - } - else if (ACE_OS::strlen (path_entry) - + 1 - + ACE_OS::strlen (searchfilename) - >= maxpathnamelen) - { - errno = ENOMEM; - result = -1; - break; - } - // This works around the issue where a path might have - // an empty component indicating 'current directory'. - // We need to do it here rather than anywhere else so - // that the loop condition will still work. - else if (path_entry[0] == '\0') - path_entry = "."; - - // First, try matching the filename *without* adding a - // prefix. - ACE_OS::sprintf (pathname, - ASYS_TEXT ("%s%c%s%s"), - path_entry, - ACE_DIRECTORY_SEPARATOR_CHAR, - searchfilename, - got_suffix ? ASYS_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - break; - - // Second, try matching the filename *with* adding a - // prefix. - ACE_OS::sprintf (pathname, - ASYS_TEXT ("%s%c%s%s%s"), - path_entry, - ACE_DIRECTORY_SEPARATOR_CHAR, - ACE_DLL_PREFIX, - searchfilename, - got_suffix ? ASYS_TEXT ("") : dll_suffix); - if (ACE_OS::access (pathname, F_OK) == 0) - break; - - // Fetch the next item in the path - path_entry = ACE::strsplit_r (0, - ACE_LD_SEARCH_PATH_SEPARATOR_STR, - nextholder); - } - - ACE_OS::free ((void *) ld_path); - return result; - } - } - - errno = ENOENT; - return -1; -} - -FILE * -ACE::ldopen (const ASYS_TCHAR *filename, - const ASYS_TCHAR *type) -{ - ACE_TRACE ("ACE::ldopen"); - - ASYS_TCHAR buf[MAXPATHLEN + 1]; - if (ACE::ldfind (filename, - buf, - sizeof (buf) /sizeof (ASYS_TCHAR)) == -1) - return 0; - else - return ACE_OS::fopen (buf, type); -} - -const char * -ACE::basename (const char *pathname, char delim) -{ - ACE_TRACE ("ACE::basename"); - const char *temp = ACE_OS::strrchr (pathname, delim); - - if (temp == 0) - return pathname; - else - return temp + 1; -} - -#if defined (ACE_HAS_UNICODE) -const wchar_t * -ACE::basename (const wchar_t *pathname, wchar_t delim) -{ - ACE_TRACE ("ACE::basename"); - const wchar_t *temp = ACE_OS::strrchr (pathname, delim); - - if (temp == 0) - return pathname; - else - return temp + 1; -} -#endif /* ACE_HAS_UNICODE */ - -// Send N char *ptrs and int lengths. Note that the char *'s precede -// the ints (basically, an varargs version of writev). The count N is -// the *total* number of trailing arguments, *not* a couple of the -// number of tuple pairs! - -ssize_t -ACE::send (ACE_HANDLE handle, size_t n, ...) -{ - ACE_TRACE ("ACE_SOCK_IO::send"); - - va_list argp; - size_t total_tuples = n / 2; - ACE_IO_Vector *iovp; -#if defined (ACE_HAS_ALLOCA) - iovp = (ACE_IO_Vector *) alloca (total_tuples * sizeof (ACE_IO_Vector)); -#else - ACE_NEW_RETURN (iovp, ACE_IO_Vector[total_tuples], -1); -#endif /* !defined (ACE_HAS_ALLOCA) */ - - va_start (argp, n); - - for (size_t i = 0; i < total_tuples; i++) - { - iovp[i].buffer (va_arg (argp, void *)); - iovp[i].length (va_arg (argp, ssize_t)); - } - - ssize_t result = ACE_OS::writev (handle, iovp, total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -// This is basically an interface to ACE_OS::readv, that doesn't use -// the struct iovec explicitly. The ... can be passed as an arbitrary -// number of (char *ptr, int len) tuples. However, the count N is the -// *total* number of trailing arguments, *not* a couple of the number -// of tuple pairs! - -ssize_t -ACE::recv (ACE_HANDLE handle, size_t n, ...) -{ - ACE_TRACE ("ACE_SOCK_IO::recv"); - - va_list argp; - size_t total_tuples = n / 2; - ACE_IO_Vector *iovp; -#if defined (ACE_HAS_ALLOCA) - iovp = (ACE_IO_Vector *) alloca (total_tuples * sizeof (ACE_IO_Vector)); -#else - ACE_NEW_RETURN (iovp, ACE_IO_Vector[total_tuples], -1); -#endif /* !defined (ACE_HAS_ALLOCA) */ - - va_start (argp, n); - - for (size_t i = 0; i < total_tuples; i++) - { - iovp[i].buffer (va_arg (argp, void *)); - iovp[i].length (va_arg (argp, ssize_t)); - } - - ssize_t result = ACE_OS::readv (handle, iovp, total_tuples); -#if !defined (ACE_HAS_ALLOCA) - delete [] iovp; -#endif /* !defined (ACE_HAS_ALLOCA) */ - va_end (argp); - return result; -} - -// Miscellaneous static methods used throughout ACE. - -ssize_t -ACE::send_n (ACE_HANDLE handle, const void *buf, size_t len) -{ - ACE_TRACE ("ACE::send_n"); - size_t bytes_written; - ssize_t n; - - for (bytes_written = 0; bytes_written < len; bytes_written += n) - { - n = ACE::send (handle, - (const char *) buf + bytes_written, - len - bytes_written); - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to send. - else - return -1; - } - } - - return bytes_written; -} - -ssize_t -ACE::send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags) -{ - ACE_TRACE ("ACE::send_n"); - size_t bytes_written; - ssize_t n; - - for (bytes_written = 0; bytes_written < len; bytes_written += n) - { - n = ACE_OS::send (handle, - (const char *) buf + bytes_written, - len - bytes_written, - flags); - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to send. - else - return -1; - } - } - - return bytes_written; -} - -// Receive bytes into from (uses the -// system call on UNIX and the call on Win32). - -ssize_t -ACE::write_n (ACE_HANDLE handle, - const void *buf, - size_t len) -{ - ACE_TRACE ("ACE::write_n"); - - size_t bytes_written; - ssize_t n; - - for (bytes_written = 0; bytes_written < len; bytes_written += n) - { - n = ACE_OS::write (handle, (const char *) buf + bytes_written, - len - bytes_written); - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to send. - else - return -1; - } - } - - return bytes_written; -} - -ssize_t -ACE::recv_n (ACE_HANDLE handle, void *buf, size_t len) -{ - ACE_TRACE ("ACE::recv_n"); - size_t bytes_read; - ssize_t n; - - for (bytes_read = 0; bytes_read < len; bytes_read += n) - { - n = ACE::recv (handle, - (char *) buf + bytes_read, - len - bytes_read); - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to read. - else - return -1; - } - else if (n == 0) - break; - } - - return bytes_read; -} - -ssize_t -ACE::recv_n (ACE_HANDLE handle, void *buf, size_t len, int flags) -{ - ACE_TRACE ("ACE::recv_n"); - size_t bytes_read; - ssize_t n; - - for (bytes_read = 0; bytes_read < len; bytes_read += n) - { - n = ACE::recv (handle, - (char *) buf + bytes_read, - len - bytes_read, - flags); - - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to read. - else - return -1; - } - else if (n == 0) - break; - } - - return bytes_read; -} - -// Receive bytes into from (uses the -// system call on UNIX and the call on Win32). - -ssize_t -ACE::read_n (ACE_HANDLE handle, - void *buf, - size_t len) -{ - ACE_TRACE ("ACE::read_n"); - - size_t bytes_read; - ssize_t n; - - for (bytes_read = 0; bytes_read < len; bytes_read += n) - { - n = ACE_OS::read (handle, - (char *) buf + bytes_read, - len - bytes_read); - - if (n == -1) - { - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to read. - else - return -1; - } - else if (n == 0) - break; - } - - return bytes_read; -} - -int -ACE::enter_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int &val) -{ - // Give value a default value to keep Purify happy! - val = 0; - - if (timeout == 0) - return 0; - - ACE_Handle_Set handle_set; - handle_set.set_bit (handle); - - // Wait for input to arrive or for the timeout to elapse. - int a = ACE_OS::select (int (handle) + 1, - (fd_set *) handle_set, // read_fds. - (fd_set *) 0, // write_fds. - (fd_set *) 0, // exception_fds. - timeout); - switch ( a ) - { - case 0: // Timer expired. return -1 - errno = ETIME; - /* FALLTHRU */ - case -1: // we got here directly - select() returned -1. - return -1; - case 1: // OK to read now. - /* FALLTHRU */ - default: // default is case a > 0; return a - // really should assert if a != 1 - //assert( a == 1 ); - // We need to record whether we are already *in* nonblocking - // mode, so that we can correctly reset the state when we're - // done. - val = ACE::get_flags (handle); - - if (ACE_BIT_DISABLED (val, ACE_NONBLOCK)) - // Set the handle into non-blocking mode if it's not - // already in it. - ACE::set_flags (handle, ACE_NONBLOCK); - return a; - } -} - -void -ACE::leave_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int val) -{ - if (timeout != 0 - && ACE_BIT_DISABLED (val, ACE_NONBLOCK)) - { - // We need to stash errno here because ACE::clr_flags() may - // reset it. - int error = errno; - - // Only disable ACE_NONBLOCK if we weren't in non-blocking mode - // originally. - ACE::clr_flags (handle, ACE_NONBLOCK); - errno = error; - } -} - -int -ACE::enter_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value* timeout, - int &val) -{ - // Give value a default value to keep Purify happy! - val = 0; - - if (timeout==0) - return 0; - - ACE_Handle_Set handle_set; - handle_set.set_bit (handle); - - // On timed writes we always go into select(); only if the - // handle is available for writing within the specified amount - // of time do we put it in non-blocking mode - - int a = ACE_OS::select (int (handle) + 1, - (fd_set *) 0, - (fd_set *) handle_set, - (fd_set *) 0, - timeout); - switch ( a ) - { - case 0: // Timer expired. - errno = ETIME; - /* FALLTHRU */ - case -1: // we got here directly - select() returned -1. - return -1; - case 1: // Ok to write now. - /* FALLTHRU */ - default: // default is case a > 0; return a - // really should assert if a != 1 - //assert( a == 1 ); - // We need to record whether we are already *in* nonblocking - // mode, so that we can correctly reset the state when we're - // done. - val = ACE::get_flags (handle); - - if (ACE_BIT_DISABLED (val, ACE_NONBLOCK)) - // Set the handle into non-blocking mode if it's not - // already in it. - ACE::set_flags (handle, ACE_NONBLOCK); - return a; - } -} - -void -ACE::leave_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int val) -{ - if (timeout != 0 - && ACE_BIT_DISABLED (val, ACE_NONBLOCK)) - { - // We need to stash errno here because ACE::clr_flags() may - // reset it. - int error = errno; - - // Only disable ACE_NONBLOCK if we weren't in non-blocking mode - // originally. - ACE::clr_flags (handle, ACE_NONBLOCK); - errno = error; - } -} - -ssize_t -ACE::sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::sendto"); -#if defined (ACE_HAS_SENDTO_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::sendto (handle, buf, len, flags, addr, addrlen); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::sendto_timedwait (handle, - buf, - len, - flags, - addr, - addrlen, - &ts); - } -#else - int val; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - int bytes_written = ACE_OS::sendto (handle, - buf, - len, - flags, - addr, - addrlen); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_SENDTO_TIMEDWAIT */ -} - -ssize_t -ACE::sendmsg (ACE_HANDLE handle, - const struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::sendmsg"); -#if defined (ACE_HAS_SENDMSG_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::sendmsg (handle, msg, flags); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::sendmsg_timedwait (handle, msg, flags, &ts); - } -#else - int val; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - int bytes_written = ACE_OS::sendmsg (handle, msg, flags); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_SENDMSG_TIMEDWAIT */ -} - -ssize_t -ACE::readv (ACE_HANDLE handle, - struct iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::readv"); -#if defined (ACE_HAS_READV_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::readv (handle, iov, iovcnt); - else { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::readv_timedwait (handle, iov, iovcnt, &ts); - } -#else - int val; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_read = ACE_OS::readv (handle, iov, iovcnt); - ACE::leave_recv_timedwait (handle, timeout, val); - return bytes_read; - } -#endif /* ACE_HAS_READV_TIMEDWAIT */ -} - -ssize_t -ACE::writev (ACE_HANDLE handle, - const struct iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::writev"); -#if defined (ACE_HAS_WRITEV_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::writev (handle, iov, iovcnt); - else { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::writev_timedwait (handle, iov, iovcnt, &ts); - } -#else - int val; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_written = ACE_OS::writev (handle, iov, iovcnt); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_WRITEV_TIMEDWAIT */ -} - -ssize_t -ACE::readv (ACE_HANDLE handle, - struct ACE_IO_Vector *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::readv"); -#if defined (ACE_HAS_READV_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::readv (handle, iov, iovcnt); - else { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::readv_timedwait (handle, iov, iovcnt, &ts); - } -#else - int val; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_read = ACE_OS::readv (handle, iov, iovcnt); - ACE::leave_recv_timedwait (handle, timeout, val); - return bytes_read; - } -#endif /* ACE_HAS_READV_TIMEDWAIT */ -} - -ssize_t -ACE::writev (ACE_HANDLE handle, - const struct ACE_IO_Vector *iov, - int iovcnt, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::writev"); -#if defined (ACE_HAS_WRITEV_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::writev (handle, iov, iovcnt); - else { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::writev_timedwait (handle, iov, iovcnt, &ts); - } -#else - int val; - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_written = ACE_OS::writev (handle, iov, iovcnt); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_WRITEV_TIMEDWAIT */ -} - -// Format buffer into printable format. This is useful for debugging. -// Portions taken from mdump by J.P. Knight (J.P.Knight@lut.ac.uk) -// Modifications by Todd Montgomery. - -int -ACE::format_hexdump (const char *buffer, int size, - ASYS_TCHAR *obuf, int obuf_sz) -{ - ACE_TRACE ("ACE::format_hexdump"); - - u_char c; - ASYS_TCHAR textver[16 + 1]; - - int maxlen = (obuf_sz / 68) * 16; - - if (size > maxlen) - size = maxlen; - - int i; - - for (i = 0; i < (size >> 4); i++) - { - int j; - - for (j = 0 ; j < 16; j++) - { - c = (u_char) buffer[(i << 4) + j]; - ACE_OS::sprintf (obuf, ASYS_TEXT ("%02x "), c); - obuf += 3; - if (j == 7) - { - ACE_OS::sprintf (obuf, ASYS_TEXT (" ")); - obuf++; - } - textver[j] = (c < 0x20 || c > 0x7e) ? '.' : c; - } - - textver[j] = 0; - - ACE_OS::sprintf (obuf, ASYS_TEXT (" %s\n"), textver); - - while (*obuf != '\0') - obuf++; - } - - if (size % 16) - { - for (i = 0 ; i < size % 16; i++) - { - c = (u_char) buffer[size - size % 16 + i]; - ACE_OS::sprintf (obuf, ASYS_TEXT ("%02x "),c); - obuf += 3; - if (i == 7) - { - ACE_OS::sprintf (obuf, ASYS_TEXT (" ")); - obuf++; - } - textver[i] = (c < 0x20 || c > 0x7e) ? '.' : c; - } - - for (i = size % 16; i < 16; i++) - { - ACE_OS::sprintf (obuf, ASYS_TEXT (" ")); - obuf += 3; - textver[i] = ' '; - } - - textver[i] = 0; - ACE_OS::sprintf (obuf, ASYS_TEXT (" %s\n"), textver); - } - return size; -} - -// 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. Returns 0 -// if unsuccessful, else returns pointer to beginning of the "time" -// portion of . - -ASYS_TCHAR * -ACE::timestamp (ASYS_TCHAR date_and_time[], int date_and_timelen) -{ - //ACE_TRACE ("ACE::timestamp"); - - if (date_and_timelen < 35) - { - errno = EINVAL; - return 0; - } - -#if defined (WIN32) - // @@ Jesper, I think Win32 supports all the UNIX versions below. - // Therefore, we can probably remove this WIN32 ifdef altogether. - SYSTEMTIME local; - ::GetLocalTime (&local); - - ACE_OS::sprintf (date_and_time, - ASYS_TEXT ("%02d/%02d/%04d %02d.%02d.%02d.%06d"), - (int) local.wMonth, // new, also the %02d in sprintf - (int) local.wDay, // new, also the %02d in sprintf - (int) local.wYear, // new, also the %02d in sprintf - (int) local.wHour, - (int) local.wMinute, - (int) local.wSecond, - (int) local.wMilliseconds * 1000); -#else /* UNIX */ - char timebuf[26]; // This magic number is based on the ctime(3c) man page. - ACE_Time_Value cur_time = ACE_OS::gettimeofday (); - time_t secs = cur_time.sec (); - ACE_OS::ctime_r (&secs, - timebuf, - sizeof timebuf); - ACE_OS::strncpy (date_and_time, - timebuf, - date_and_timelen); - ACE_OS::sprintf (&date_and_time[19], - ".%06d", - cur_time.usec ()); -#endif /* WIN32 */ - date_and_time[26] = '\0'; - return &date_and_time[11]; -} - -// This function rounds the request to a multiple of the page size. - -size_t -ACE::round_to_pagesize (off_t len) -{ - ACE_TRACE ("ACE::round_to_pagesize"); - - if (ACE::pagesize_ == 0) - ACE::pagesize_ = ACE_OS::getpagesize (); - - return (len + (ACE::pagesize_ - 1)) & ~(ACE::pagesize_ - 1); -} - -ACE_HANDLE -ACE::handle_timed_complete (ACE_HANDLE h, - ACE_Time_Value *timeout, - int is_tli) -{ - ACE_TRACE ("ACE::handle_timed_complete"); - ACE_Handle_Set rd_handles; - ACE_Handle_Set wr_handles; - int need_to_check; - -#if defined (ACE_WIN32) - ACE_Handle_Set ex_handles; - ex_handles.set_bit (h); -#endif /* ACE_WIN32 */ - rd_handles.set_bit (h); - wr_handles.set_bit (h); - -#if defined (ACE_WIN32) - int n = ACE_OS::select (int (h) + 1, - rd_handles, - wr_handles, - ex_handles, - timeout); -#else - int n = ACE_OS::select (int (h) + 1, - rd_handles, - wr_handles, - 0, - timeout); -#endif /* ACE_WIN32 */ - - // If we failed to connect within the time period allocated by the - // caller, then we fail (e.g., the remote host might have been too - // busy to accept our call). - if (n <= 0) - { - if (n == 0 && timeout != 0) - errno = ETIME; - return ACE_INVALID_HANDLE; - } - - // Check if the handle is ready for reading and the handle is *not* - // ready for writing, which may indicate a problem. But we need to - // make sure... -#if defined (ACE_WIN32) - need_to_check = rd_handles.is_set (h) || ex_handles.is_set (h); -#elif defined (VXWORKS) - ACE_UNUSED_ARG (is_tli); - - // Force the check on VxWorks. The read handle for "h" is not set, - // so "need_to_check" is false at this point. The write handle is - // set, for what it's worth. - need_to_check = 1; -#else - if (is_tli) - need_to_check = rd_handles.is_set (h) && !wr_handles.is_set (h); - else -#if defined(AIX) - // AIX is broken... both success and failed connect will set the - // write handle only, so always check. - need_to_check = 1; -#else - need_to_check = rd_handles.is_set (h); -#endif /* AIX */ -#endif /* ACE_WIN32 */ - - if (need_to_check) - { - char dummy; - - // The following recv() won't block provided that the - // ACE_NONBLOCK flag has not been turned off . - n = ACE::recv (h, &dummy, 1, MSG_PEEK); - - // If no data was read/peeked at, check to see if it's because - // of a non-connected socket (and therefore an error) or there's - // just no data yet. - if (n <= 0) - { - if (n == 0) - { - errno = ECONNREFUSED; - h = ACE_INVALID_HANDLE; - } - else if (errno != EWOULDBLOCK && errno != EAGAIN) - h = ACE_INVALID_HANDLE; - } - } - - // 1. The HANDLE is ready for writing and doesn't need to be checked or - // 2. recv() returned an indication of the state of the socket - if there is - // either data present, or a recv is legit but there's no data yet, - // the connection was successfully established. - return h; -} - -ACE_HANDLE -ACE::handle_timed_open (ACE_Time_Value *timeout, - LPCTSTR name, - int flags, - int perms) -{ - ACE_TRACE ("ACE::handle_timed_open"); - - if (timeout != 0) - { - // Open the named pipe or file using non-blocking mode... - ACE_HANDLE handle = ACE_OS::open (name, - flags | ACE_NONBLOCK, - perms); - if (handle == ACE_INVALID_HANDLE - && (errno == EWOULDBLOCK - && (timeout->sec () > 0 || timeout->usec () > 0))) - // This expression checks if we were polling. - errno = ETIME; - - return handle; - } - else - return ACE_OS::open (name, flags, perms); -} - -// Wait up to amount of time to accept a connection. - -int -ACE::handle_timed_accept (ACE_HANDLE listener, - ACE_Time_Value *timeout, - int restart) -{ - ACE_TRACE ("ACE::handle_timed_accept"); - // Make sure we don't bomb out on erroneous values. - if (listener == ACE_INVALID_HANDLE) - return -1; - - // Use the select() implementation rather than poll(). - ACE_Handle_Set rd_handle; - rd_handle.set_bit (listener); - - // We need a loop here if is enabled. - - for (;;) - { - switch (ACE_OS::select (int (listener) + 1, - rd_handle, 0, 0, - timeout)) - { - case -1: - if (errno == EINTR && restart) - continue; - else - return -1; - /* NOTREACHED */ - case 0: - if (timeout != 0 - && timeout->sec () == 0 - && timeout->usec () == 0) - errno = EWOULDBLOCK; - else - errno = ETIME; - return -1; - /* NOTREACHED */ - case 1: - return 0; - /* NOTREACHED */ - default: - errno = EINVAL; - return -1; - /* NOTREACHED */ - } - } - ACE_NOTREACHED(return 0); -} - -// Bind socket to an unused port. - -int -ACE::bind_port (ACE_HANDLE handle, - ACE_UINT32 ip_addr) -{ - ACE_TRACE ("ACE::bind_port"); - - sockaddr_in sin; - - ACE_OS::memset ((void *) &sin, 0, sizeof sin); - sin.sin_family = AF_INET; -#if defined (ACE_HAS_SIN_LEN) - sin.sin_len = sizeof sin; -#endif /* ACE_HAS_SIN_LEN */ - sin.sin_addr.s_addr = ip_addr; - -#if !defined (ACE_LACKS_WILDCARD_BIND) - // The OS kernel should select a free port for us. - sin.sin_port = 0; - return ACE_OS::bind (handle, - (sockaddr *) &sin, - sizeof sin); -#else - static u_short upper_limit = ACE_MAX_DEFAULT_PORT; - int round_trip = upper_limit; - int lower_limit = IPPORT_RESERVED; - - // We have to select the port explicitly. - - for (;;) - { - sin.sin_port = htons (upper_limit); - - if (ACE_OS::bind (handle, - (sockaddr *) &sin, - sizeof sin) >= 0) - { -#if defined (ACE_WIN32) - upper_limit--; -#endif /* ACE_WIN32 */ - return 0; - } - else if (errno != EADDRINUSE) - return -1; - else - { - upper_limit--; - - // Wrap back around when we reach the bottom. - if (upper_limit <= lower_limit) - upper_limit = ACE_MAX_DEFAULT_PORT; - - // See if we have already gone around once! - if (upper_limit == round_trip) - { - errno = EAGAIN; - return -1; - } - } - } -#endif /* ACE_HAS_WILDCARD_BIND */ -} - -// Make the current process a UNIX daemon. This is based on Stevens -// code from APUE. - -int -ACE::daemonize (const char pathname[], - int close_all_handles) -{ - ACE_TRACE ("ACE::daemonize"); -#if !defined (ACE_LACKS_FORK) - pid_t pid = ACE_OS::fork (); - - if (pid == -1) - return -1; - else if (pid != 0) - ACE_OS::exit (0); // Parent exits. - - // 1st child continues. - ACE_OS::setsid (); // Become session leader. - - ACE_OS::signal (SIGHUP, SIG_IGN); - - pid = ACE_OS::fork (); - - if (pid != 0) - ACE_OS::exit (0); // First child terminates. - - // Second child continues. - - ACE_OS::chdir (pathname); // change working directory. - - ACE_OS::umask (0); // clear our file mode creation mask. - - // Close down the files. - if (close_all_handles) - for (int i = ACE::max_handles () - 1; i >= 0; i--) - ACE_OS::close (i); - - return 0; -#else - ACE_UNUSED_ARG (pathname); - ACE_UNUSED_ARG (close_all_handles); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_LACKS_FORK */ -} - -int -ACE::max_handles (void) -{ - ACE_TRACE ("ACE::max_handles"); -#if defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT) - rlimit rl; - ACE_OS::getrlimit (RLIMIT_NOFILE, &rl); - return rl.rlim_cur; -#elif defined (_SC_OPEN_MAX) - return ACE_OS::sysconf (_SC_OPEN_MAX); -#elif defined (FD_SETSIZE) - return FD_SETSIZE; -#else - ACE_NOTSUP_RETURN (-1); -#endif /* defined (RLIMIT_NOFILE) && !defined (ACE_LACKS_RLIMIT) */ -} - -// Set the number of currently open handles in the process. -// -// If NEW_LIMIT == -1 set the limit to the maximum allowable. -// Otherwise, set it to be the value of NEW_LIMIT. - -int -ACE::set_handle_limit (int new_limit) -{ - ACE_TRACE ("ACE::set_handle_limit"); - int cur_limit = ACE::max_handles (); - int max_limit = cur_limit; - - if (cur_limit == -1) - return -1; - -#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE) - struct rlimit rl; - ACE_OS::memset ((void *) &rl, 0, sizeof rl); - ACE_OS::getrlimit (RLIMIT_NOFILE, &rl); - max_limit = rl.rlim_max; -#endif /* ACE_LACKS_RLIMIT */ - - if (new_limit == -1) - new_limit = max_limit; - - if (new_limit < 0) - { - errno = EINVAL; - return -1; - } - if (new_limit > cur_limit) - { -#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE) - rl.rlim_cur = new_limit; - return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl); -#else - // Must be return EINVAL errno. - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_LACKS_RLIMIT */ - } - else - { -#if !defined (ACE_LACKS_RLIMIT) && defined (RLIMIT_NOFILE) - rl.rlim_cur = new_limit; - return ACE_OS::setrlimit (RLIMIT_NOFILE, &rl); -#else - // We give a chance to platforms with not RLIMIT to work. - ACE_NOTSUP_RETURN (0); -#endif /* ACE_LACKS_RLIMIT */ - } -} - -// Flags are file status flags to turn on. - -int -ACE::set_flags (ACE_HANDLE handle, int flags) -{ - ACE_TRACE ("ACE::set_flags"); -#if defined (ACE_WIN32) || defined (ACE_LACKS_FCNTL) - switch (flags) - { - case ACE_NONBLOCK: - // nonblocking argument (1) - // blocking: (0) - { - u_long nonblock = 1; - return ACE_OS::ioctl (handle, FIONBIO, &nonblock); - } - default: - ACE_NOTSUP_RETURN (-1); - } -#else - int val = ACE_OS::fcntl (handle, F_GETFL, 0); - - if (val == -1) - return -1; - - // Turn on flags. - ACE_SET_BITS (val, flags); - - if (ACE_OS::fcntl (handle, F_SETFL, val) == -1) - return -1; - else - return 0; -#endif /* ACE_WIN32 || ACE_LACKS_FCNTL */ -} - -// Flags are the file status flags to turn off. - -int -ACE::clr_flags (ACE_HANDLE handle, int flags) -{ - ACE_TRACE ("ACE::clr_flags"); - -#if defined (ACE_WIN32) || defined (ACE_LACKS_FCNTL) - switch (flags) - { - case ACE_NONBLOCK: - // nonblocking argument (1) - // blocking: (0) - { - u_long nonblock = 0; - return ACE_OS::ioctl (handle, FIONBIO, &nonblock); - } - default: - ACE_NOTSUP_RETURN (-1); - } -#else - int val = ACE_OS::fcntl (handle, F_GETFL, 0); - - if (val == -1) - return -1; - - // Turn flags off. - ACE_CLR_BITS (val, flags); - - if (ACE_OS::fcntl (handle, F_SETFL, val) == -1) - return -1; - else - return 0; -#endif /* ACE_WIN32 || ACE_LACKS_FCNTL */ -} - -int -ACE::map_errno (int error) -{ - switch (error) - { -#if defined (ACE_WIN32) - case WSAEWOULDBLOCK: - return EAGAIN; // Same as UNIX errno EWOULDBLOCK. -#endif /* ACE_WIN32 */ - } - - return error; -} - -ssize_t -ACE::send (ACE_HANDLE handle, - const void *buf, - size_t n, - int flags, - const ACE_Time_Value *timeout) -{ -#if defined (ACE_HAS_SEND_TIMEDWAIT) - if (timeout == 0) - return ACE::send (handle, buf, n, flags); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday(); - timespec_t ts = copy; - return ::send_timedwait (handle, buf, n, flags, &ts); - } -#else - int val; - - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_written = ACE::send (handle, buf, n, flags); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_SEND_TIMEDWAIT */ -} - -ssize_t -ACE::send (ACE_HANDLE handle, - const void *buf, - size_t n, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::write"); -#if defined (ACE_HAS_WRITE_TIMEDWAIT) - if (timeout == 0) - return ACE::send (handle, buf, n); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::write_timedwait (handle, buf, n, &ts); - } -#else - int val; - - if (ACE::enter_send_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_written = ACE::send (handle, buf, n); - ACE::leave_send_timedwait (handle, timeout, val); - return bytes_written; - } -#endif /* ACE_HAS_WRITE_TIMEDWAIT */ -} - -ssize_t -ACE::send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout) -{ - // Total number of bytes written. - size_t bytes_written; - - // Actual number of bytes written in each attempt. - ssize_t n; - - for (bytes_written = 0; - bytes_written < len; - bytes_written += n) - { - n = ACE::send (handle, (char *) buf + bytes_written, - len - bytes_written, flags, timeout); - if (n == -1) - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to send. - else - return -1; - } - - return bytes_written; -} - -ssize_t -ACE::send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout) -{ - // Total number of bytes written. - size_t bytes_written; - - // Actual number of bytes written in each attempt. - ssize_t n; - - for (bytes_written = 0; - bytes_written < len; - bytes_written += n) - { - n = ACE::send (handle, (char *) buf + bytes_written, - len - bytes_written, timeout); - if (n == -1) - if (errno == EWOULDBLOCK) - n = 0; // Keep trying to send. - else - return -1; - } - - return bytes_written; -} - -ssize_t -ACE::recvfrom (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int *addrlen, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::recvfrom"); -#if defined (ACE_HAS_RECVFROM_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::recvfrom (handle, - buf, - len, - flags, - addr, - addrlen); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::recvfrom_timedwait (handle, - buf, - len, - flags, - addr, - addrlen, - &ts)a -; - } -#else - int val; - if (ACE::enter_recv_timedwait (handle, - timeout, - val) == -1) - return -1; - else - { - int bytes_read = ACE_OS::recvfrom (handle, - buf, - len, - flags, - addr, - addrlen); - ACE::leave_recv_timedwait (handle, - timeout, - val); - return bytes_read; - } -#endif /* ACE_HAS_RECVFROM_TIMEDWAIT */ -} - -ssize_t -ACE::recvmsg (ACE_HANDLE handle, - struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::recvmsg"); -#if defined (ACE_HAS_RECVMSG_TIMEDWAIT) - if (timeout == 0) - return ACE_OS::recvmsg (handle, msg, flags); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::recvmsg_timedwait (handle, msg, flags, &ts); - } -#else - int val; - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - int bytes_read = ACE_OS::recvmsg (handle, msg, flags); - ACE::leave_recv_timedwait (handle, timeout, val); - return bytes_read; - } -#endif /* ACE_HAS_RECVMSG_TIMEDWAIT */ -} - -ssize_t -ACE::recv (ACE_HANDLE handle, - void *buf, - size_t n, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::read"); -#if defined (ACE_HAS_READ_TIMEDWAIT) - if (timeout == 0) - return ACE::recv (handle, buf, n); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::read_timedwait (handle, buf, n, &ts); - } -#else - int val; - - if (ACE::enter_recv_timedwait (handle, timeout, val) == -1) - return -1; - else - { - ssize_t bytes_read = ACE::recv (handle, buf, n); - ACE::leave_recv_timedwait (handle, timeout, val); - return bytes_read; - } -#endif /* ACE_HAS_READ_TIMEDWAIT */ -} - -ssize_t -ACE::recv (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE::recv"); -#if defined (ACE_HAS_RECV_TIMEDWAIT) - if (timeout == 0) - return ACE::recv (handle, buf, len, flags); - else - { - ACE_Time_Value copy = *timeout; - copy += ACE_OS::gettimeofday (); - timespec_t ts = copy; - return ::recv_timedwait (handle, buf, len, flags, &ts); - } -#else - int val; - if (ACE::enter_recv_timedwait (handle, timeout, val)==-1) - return -1; - else - { - ssize_t bytes_recv = ACE::recv (handle, buf, len, flags); - ACE::leave_recv_timedwait (handle, timeout, val); - return bytes_recv; - } -#endif /* ACE_HAS_RECV_TIMEDWAIT */ -} - -ssize_t -ACE::recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout) -{ - size_t bytes_received; - - // Actual number of bytes read in each attempt. - ssize_t n; - - for (bytes_received = 0; - bytes_received < len; - bytes_received += n) - { - n = ACE::recv (handle, - (char *) buf + bytes_received, - len - bytes_received, - flags, - timeout); - if (n == -1 || n == 0) - break; - } - - return bytes_received; -} - -ssize_t -ACE::recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout) -{ - size_t bytes_received; - - // Actual number of bytes read in each attempt. - ssize_t n; - - for (bytes_received = 0; - bytes_received < len; - bytes_received += n) - { - n = ACE::recv (handle, - (char *) buf + bytes_received, - len - bytes_received, - timeout); - if (n == -1 || n == 0) - break; - } - - return bytes_received; -} - -u_long -ACE::is_prime (const u_long n, - const u_long min_factor, - const u_long max_factor) -{ - if (n > 3) - for (u_long factor = min_factor; - factor <= max_factor; - ++factor) - if (n / factor * factor == n) - return factor; - - return 0; -} - -const ASYS_TCHAR * -ACE::sock_error (int error) -{ -#if defined (ACE_WIN32) - switch (error) - { - case WSAVERNOTSUPPORTED: - return ASYS_TEXT ("version of WinSock not supported"); - /* NOTREACHED */ - case WSASYSNOTREADY: - return ASYS_TEXT ("WinSock not present or not responding"); - /* NOTREACHED */ - case WSAEINVAL: - return ASYS_TEXT ("app version not supported by DLL"); - /* NOTREACHED */ - case WSAHOST_NOT_FOUND: - return ASYS_TEXT ("Authoritive: Host not found"); - /* NOTREACHED */ - case WSATRY_AGAIN: - return ASYS_TEXT ("Non-authoritive: host not found or server failure"); - /* NOTREACHED */ - case WSANO_RECOVERY: - return ASYS_TEXT ("Non-recoverable: refused or not implemented"); - /* NOTREACHED */ - case WSANO_DATA: - return ASYS_TEXT ("Valid name, no data record for type"); - /* NOTREACHED */ - /* - case WSANO_ADDRESS: - return "Valid name, no MX record"; - */ - case WSANOTINITIALISED: - return ASYS_TEXT ("WSA Startup not initialized"); - /* NOTREACHED */ - case WSAENETDOWN: - return ASYS_TEXT ("Network subsystem failed"); - /* NOTREACHED */ - case WSAEINPROGRESS: - return ASYS_TEXT ("Blocking operation in progress"); - /* NOTREACHED */ - case WSAEINTR: - return ASYS_TEXT ("Blocking call cancelled"); - /* NOTREACHED */ - case WSAEAFNOSUPPORT: - return ASYS_TEXT ("address family not supported"); - /* NOTREACHED */ - case WSAEMFILE: - return ASYS_TEXT ("no file handles available"); - /* NOTREACHED */ - case WSAENOBUFS: - return ASYS_TEXT ("no buffer space available"); - /* NOTREACHED */ - case WSAEPROTONOSUPPORT: - return ASYS_TEXT ("specified protocol not supported"); - /* NOTREACHED */ - case WSAEPROTOTYPE: - return ASYS_TEXT ("protocol wrong type for this socket"); - /* NOTREACHED */ - case WSAESOCKTNOSUPPORT: - return ASYS_TEXT ("socket type not supported for address family"); - /* NOTREACHED */ - case WSAENOTSOCK: - return ASYS_TEXT ("handle is not a socket"); - /* NOTREACHED */ - case WSAEWOULDBLOCK: - return ASYS_TEXT ("socket marked as non-blocking and SO_LINGER set not 0"); - /* NOTREACHED */ - case WSAEADDRINUSE: - return ASYS_TEXT ("address already in use"); - /* NOTREACHED */ - case WSAECONNABORTED: - return ASYS_TEXT ("connection aborted"); - /* NOTREACHED */ - case WSAECONNRESET: - return ASYS_TEXT ("connection reset"); - /* NOTREACHED */ - case WSAENOTCONN: - return ASYS_TEXT ("not connected"); - /* NOTREACHED */ - case WSAETIMEDOUT: - return ASYS_TEXT ("connection timed out"); - /* NOTREACHED */ - case WSAECONNREFUSED: - return ASYS_TEXT ("connection refused"); - /* NOTREACHED */ - case WSAEHOSTDOWN: - return ASYS_TEXT ("host down"); - /* NOTREACHED */ - case WSAEHOSTUNREACH: - return ASYS_TEXT ("host unreachable"); - /* NOTREACHED */ - case WSAEADDRNOTAVAIL: - return ASYS_TEXT ("address not available"); - /* NOTREACHED */ - default: - return ASYS_TEXT ("unknown error"); - /* NOTREACHED */ - } -#else - ACE_UNUSED_ARG (error); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_WIN32 */ -} - -int -ACE::get_bcast_addr (ACE_UINT32 &bcast_addr, - const char *host_name, - ACE_UINT32 host_addr, - ACE_HANDLE handle) -{ - ACE_TRACE ("ACE::get_bcast_addr"); - -#if !defined(ACE_WIN32) - ACE_HANDLE s = handle; - - if (s == ACE_INVALID_HANDLE) - s = ACE_OS::socket (AF_INET, SOCK_STREAM, 0); - - if (s == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE_OS::socket")), - -1); - - struct ifconf ifc; - char buf[BUFSIZ]; - - ifc.ifc_len = sizeof buf; - ifc.ifc_buf = buf; - - // Get interface structure and initialize the addresses using UNIX - // techniques - if (ACE_OS::ioctl (s, SIOCGIFCONF, (char *) &ifc) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT ("ioctl (get interface configuration)")), - -1); - - struct ifreq *ifr = ifc.ifc_req; - - struct sockaddr_in ip_addr; - - // Get host ip address if necessary. - if (host_name) - { - hostent *hp = ACE_OS::gethostbyname (host_name); - - if (hp == 0) - return -1; - else - ACE_OS::memcpy ((char *) &ip_addr.sin_addr.s_addr, - (char *) hp->h_addr, - hp->h_length); - } - else - { - ACE_OS::memset ((void *) &ip_addr, 0, sizeof ip_addr); - ACE_OS::memcpy ((void *) &ip_addr.sin_addr, - (void*) &host_addr, - sizeof ip_addr.sin_addr); - } - - for (int n = ifc.ifc_len / sizeof (struct ifreq); - n > 0; - n--, ifr++) - { - struct sockaddr_in if_addr; - - // Compare host ip address with interface ip address. - ACE_OS::memcpy (&if_addr, - &ifr->ifr_addr, - sizeof if_addr); - - if (ip_addr.sin_addr.s_addr != if_addr.sin_addr.s_addr) - continue; - - if (ifr->ifr_addr.sa_family != AF_INET) - { - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT ("Not AF_INET"))); - continue; - } - - struct ifreq flags = *ifr; - struct ifreq if_req = *ifr; - - if (ACE_OS::ioctl (s, SIOCGIFFLAGS, (char *) &flags) == -1) - { - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT (" ioctl (get interface flags)"))); - continue; - } - - if (ACE_BIT_DISABLED (flags.ifr_flags, IFF_UP)) - { - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT ("Network interface is not up"))); - continue; - } - - if (ACE_BIT_ENABLED (flags.ifr_flags, IFF_LOOPBACK)) - continue; - - if (ACE_BIT_ENABLED (flags.ifr_flags, IFF_BROADCAST)) - { - if (ACE_OS::ioctl (s, - SIOCGIFBRDADDR, - (char *) &if_req) == -1) - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT ("ioctl (get broadaddr)"))); - else - { - ACE_OS::memcpy ((struct sockaddr_in *) &ip_addr, - (struct sockaddr_in *) &if_req.ifr_broadaddr, - sizeof if_req.ifr_broadaddr); - - ACE_OS::memcpy ((void *) &host_addr, - (void *) &ip_addr.sin_addr, - sizeof host_addr); - - if (handle == ACE_INVALID_HANDLE) - ACE_OS::close (s); - - bcast_addr = host_addr; - return 0; - } - } - else - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_bcast_addr:") - ASYS_TEXT ("Broadcast is not enable for this interface."))); - - if (handle == ACE_INVALID_HANDLE) - ACE_OS::close (s); - - bcast_addr = host_addr; - return 0; - } - - return 0; -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (host_addr); - ACE_UNUSED_ARG (host_name); - bcast_addr = (ACE_UINT32 (INADDR_BROADCAST)); - return 0; -#endif /* !ACE_WIN32 */ -} - -// Helper routine for get_ip_interfaces, differs by UNIX platform so -// put into own subroutine. perform some ioctls to retrieve ifconf -// list of ifreq structs. - -int -ACE::count_interfaces (ACE_HANDLE handle, - size_t &how_many) -{ -#if defined (sparc) && defined (SIOCGIFNUM) - if (ACE_OS::ioctl (handle, - SIOCGIFNUM, - (caddr_t) &how_many) == -1) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("ACE::get_ip_interfaces:") - ASYS_TEXT ("ioctl - SIOCGIFNUM failed")), - -1); - return 0; -#elif defined (__unix) || defined (__Lynx__) - // Note: DEC CXX doesn't define "unix". BSD compatible OS: HP UX, - // AIX, SunOS 4.x perform some ioctls to retrieve ifconf list of - // ifreq structs no SIOCGIFNUM on SunOS 4.x, so use guess and scan - // algorithm - - // Probably hard to put this many ifs in a unix box.. - const int MAX_IF = 50; - - // HACK - set to an unreasonable number - int num_ifs = MAX_IF; - - struct ifconf ifcfg; - size_t ifreq_size = num_ifs * sizeof (struct ifreq); - struct ifreq *p_ifs = - (struct ifreq *) ACE_OS::malloc (ifreq_size); - - if (!p_ifs) - { - errno = ENOMEM; - return -1; - } - - ACE_OS::memset (p_ifs, 0, ifreq_size); - ACE_OS::memset (&ifcfg, 0, sizeof (struct ifconf)); - - ifcfg.ifc_req = p_ifs; - ifcfg.ifc_len = ifreq_size; - - if (ACE_OS::ioctl (handle, - SIOCGIFCONF, - (caddr_t) &ifcfg) == -1) - { - ACE_OS::free (ifcfg.ifc_req); - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("count_interfaces:ioctl:") - ASYS_TEXT ("SIOCGIFCONF failed")), - -1); - } - - int if_count = 0, i; - - // get if address out of ifreq buffers. ioctl puts a blank-named - // interface to mark the end of the returned interfaces. - for (i = 0; - i < num_ifs; - i++) - { - if (p_ifs->ifr_name[0] == '\0') - break; - - if_count++; - p_ifs++; - } - - ACE_OS::free (ifcfg.ifc_req); - how_many = if_count; - return 0; -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (how_many); - ACE_NOTSUP_RETURN (-1);; // no implmentation -#endif /* sparc && SIOCGIFNUM */ -} - -// Routine to return a handle from which ioctl() requests can be made. - -ACE_HANDLE -ACE::get_handle (void) -{ -// Solaris 2.x - ACE_HANDLE handle = ACE_INVALID_HANDLE; -#if defined (sparc) - handle = ACE_OS::open ("/dev/udp", O_RDONLY); -#elif defined (__unix) || defined (__Lynx__) - // Note: DEC CXX doesn't define "unix" BSD compatible OS: HP UX, - // AIX, SunOS 4.x - - handle = ACE_OS::socket (PF_INET, SOCK_DGRAM, 0); -#endif /* sparc */ - return handle; -} - -#if defined (ACE_WIN32) -// Return value in buffer for a key/name pair from the Windows -// Registry up to buf_len size. - -static int -get_reg_value (const TCHAR *key, - const TCHAR *name, - TCHAR *buffer, - DWORD &buf_len) -{ - HKEY hk; - DWORD buf_type; - LONG rc = ::RegOpenKeyEx (HKEY_LOCAL_MACHINE, - key, - 0, - KEY_READ, - &hk); - // 1. open key that defines the interfaces used for TCP/IP? - if (rc != ERROR_SUCCESS) - // print_error_string(TEXT("RegOpenKeyEx"), rc); - return -1; - - rc = ::RegQueryValueEx (hk, - name, - 0, - &buf_type, - (u_char *) buffer, - &buf_len); - if (rc != ERROR_SUCCESS) - { - // print_error_string(TEXT("RegEnumKeyEx"), rc); - RegCloseKey (hk); - return -2; - } - - ::RegCloseKey (hk); - return 0; -} -#endif /* ACE_WIN32 */ - -// return an array of all configured IP interfaces on this host, count -// rc = 0 on success (count == number of interfaces else -1 caller is -// responsible for calling delete [] on parray - -int -ACE::get_ip_interfaces (size_t &count, - ACE_INET_Addr *&addrs) -{ - ACE_TRACE ("ACE::get_ip_interfaces"); - -#if defined (ACE_WIN32) - const TCHAR *SVCS_KEY1 = - __TEXT ("SYSTEM\\CurrentControlSet\\Services\\"); - const TCHAR *LINKAGE_KEY1 = - __TEXT ("SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Linkage"); - const TCHAR *TCP_PARAM_SUBKEY = __TEXT ("\\Parameters\\Tcpip"); - const TCHAR *BIND_NAME_ID = __TEXT ("Bind"); - const TCHAR *IPADDR_NAME_ID = __TEXT ("IPAddress"); - const TCHAR *INVALID_TCPIP_DEVICE_ADDR = __TEXT ("0.0.0.0"); - - TCHAR raw_buffer[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1]; - DWORD raw_buflen = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1; - TCHAR buffer[ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1]; - DWORD buf_len = ACE_MAX_FULLY_QUALIFIED_NAME_LEN + 1; - - if (::get_reg_value (LINKAGE_KEY1, - BIND_NAME_ID, - raw_buffer, - raw_buflen)) - return -1; - // return buffer contains NULL delimited strings - - ACE_Tokenizer dev_names (raw_buffer); - dev_names.delimiter (__TEXT('\0')); - int n_interfaces = 0; - - // Count the number of interfaces - while (dev_names.next () != NULL) - n_interfaces ++; - - // case 1. no interfaces present, empty string? OS version change? - if (n_interfaces == 0) - return 0; - - ACE_NEW_RETURN (addrs, - ACE_INET_Addr[n_interfaces], - -2); - count = 0; - for (int i = 0; i < n_interfaces; i++) - { - // a. construct name to access IPAddress for this interface - ACE_TEXT_STRING ifdevkey (SVCS_KEY1); - ACE_TEXT_STRING the_dev = dev_names.next (); - - // chop off the "\Device" and keep last name. - if (the_dev.length() < 8) - return -3; // Something's wrong - else - { - // rest of string from offset 8 - the_dev = the_dev.substring (8); - ifdevkey += the_dev; - ifdevkey += TCP_PARAM_SUBKEY; - - // b. extract value - // Gets overwritten on each call - buf_len = sizeof(buffer); - if (get_reg_value (ifdevkey.fast_rep (), - IPADDR_NAME_ID, - buffer, - buf_len)) - return -4; - - if (ACE_OS::strcmp (buffer, - INVALID_TCPIP_DEVICE_ADDR) == 0) - continue; // Don't count this device - - // c. store in hostinfo object array and up the counter - addrs[count++] = - ACE_INET_Addr ((u_short) 0, - ASYS_MULTIBYTE_STRING (buffer)); - } - } - return 0; -#elif defined (__unix) || defined (__Lynx__) - // COMMON (SVR4 and BSD) UNIX CODE - - size_t num_ifs; - - // Call specific routine as necessary. - ACE_HANDLE handle = get_handle(); - - if (handle == ACE_INVALID_HANDLE) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE::get_ip_interfaces:open")), - -1); - if (ACE::count_interfaces (handle, num_ifs)) - { - ACE_OS::close (handle); - return -1; - } - - // ioctl likes to have an extra ifreq structure to mark the end of - // what it returned, so increase the num_ifs by one. - ++num_ifs; - - struct ifreq *ifs; - ACE_NEW_RETURN (ifs, - struct ifreq[num_ifs], - -1); - ACE_OS::memset (ifs, 0, num_ifs * sizeof (struct ifreq)); - - ACE_Auto_Array_Ptr p_ifs (ifs); - - if (p_ifs.get() == 0) - { - ACE_OS::close (handle); - errno = ENOMEM; - return -1; - } - - struct ifconf ifcfg; - ACE_OS::memset (&ifcfg, 0, sizeof (struct ifconf)); - ifcfg.ifc_req = p_ifs.get (); - ifcfg.ifc_len = num_ifs * sizeof (struct ifreq); - - if (ACE_OS::ioctl (handle, - SIOCGIFCONF, - (caddr_t) &ifcfg) == -1) - { - ACE_OS::close (handle); - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("is_address_local:") - ASYS_TEXT ("ioctl - SIOCGIFCONF failed")), - -1); - } - - ACE_OS::close (handle); - - // Now create and initialize output array. - - ACE_NEW_RETURN (addrs, - ACE_INET_Addr[num_ifs], - -1); // caller must free - - struct ifreq *pcur = p_ifs.get (); - // Pull the address out of each INET interface. Not every interface - // is for IP, so be careful to count properly. When setting the - // INET_Addr, note that the 3rd arg (0) says to leave the byte order - // (already in net byte order from the interface structure) as is. - count = 0; - - for (size_t i = 0; - i < num_ifs; - i++) - { - if (pcur->ifr_addr.sa_family == AF_INET) - { - struct sockaddr_in *addr = - (struct sockaddr_in *) &pcur->ifr_addr; - addrs[count].set ((u_short) 0, - addr->sin_addr.s_addr, - 0); - count++; - } - - pcur++; - } - return 0; -#else - ACE_UNUSED_ARG (count); - ACE_UNUSED_ARG (addrs); - ACE_NOTSUP_RETURN (-1);; // no implementation -#endif /* ACE_WIN32 */ -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) && (defined (__unix) || defined (__Lynx__)) -template class ACE_Auto_Array_Ptr; -template class ACE_Auto_Basic_Array_Ptr; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Auto_Array_Ptr -#pragma instantiate ACE_Auto_Basic_Array_Ptr -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION && (__unix || __Lynx_) */ diff --git a/ace/ACE.h b/ace/ACE.h deleted file mode 100644 index 41b0b26fce5..00000000000 --- a/ace/ACE.h +++ /dev/null @@ -1,645 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// ACE.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#include "ace/OS.h" - -#if !defined (ACE_ACE_H) -#define ACE_ACE_H - -// Forward declarations. -class ACE_Time_Value; -class ACE_Thread_Manager; -class ACE_Reactor; -class ACE_Event_Handler; -class ACE_INET_Addr; - -class ACE_Export ACE -{ - // = TITLE - // Contains value added ACE methods that extend the behavior - // of the UNIX and Win32 OS calls. - // - // = DESCRIPTION - // This class consolidates all these ACE static methods in a - // single place in order to manage the namespace better. These - // methods are put here rather than in ACE_OS in order to - // separate concerns. - ACE_CLASS_IS_NAMESPACE (ACE); -public: - // = ACE version information. - static u_int major_version (void); - // E.g., the "4" in ACE 4.3.19. - - static u_int minor_version (void); - // E.g., the "3" in ACE 4.3.19. - - static u_int beta_version (void); - // E.g., the "19" in ACE 4.3.19. Returns 0 for "stable" (non-beta) releases. - - // = Recv operations that factor out differences between Win32 and UNIX. - static ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len, - int flags); - // Receive up to bytes into from (uses the - // call). - - static ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len); - // Receive up to bytes into from (uses the - // system call on UNIX and the call on - // Win32). - - // = Recv operations that receive exactly n bytes. - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int flags); - // Receive bytes into from (uses the - // call). If is set to non-blocking mode - // this call will poll until all bytes are received. - - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len); - // Receive bytes into from (uses the - // system call on UNIX and the call on - // Win32). If is set to non-blocking mode this call will - // poll until all bytes are received. - - // = Timed operations. - static ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout); - // Wait up to amount of time to receive up to bytes - // into from (uses the call). The - // indicates how long to blocking trying to receive. If - // == 0, the caller will block until action is possible, - // else will wait until the relative time specified in * - // elapses). If times out a -1 is returned with . If it succeeds the number of bytes received is returned. - - static ssize_t recv (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout); - // Wait up to amount of time to receive up to bytes - // into from (uses the call). The - // indicates how long to blocking trying to receive. If - // == 0, the caller will block until action is possible, - // else will wait until the relative time specified in * - // elapses). If times out a -1 is returned with . If it succeeds the number of bytes received is returned. - - static ssize_t recvmsg (ACE_HANDLE handle, - struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout); - // Wait up to amount of time to receive from - // (uses the call). The - // indicates how long to blocking trying to receive. If - // == 0, the caller will block until action is possible, else will - // wait until the relative time specified in * elapses). - // If times out a -1 is returned with . - // If it succeeds the number of bytes received is returned. - - static ssize_t recvfrom (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int *addrlen, - const ACE_Time_Value *timeout); - // Wait up to amount of time to recv up to bytes - // into from (uses the call). The - // indicates how long to blocking trying to recv. If - // == 0, the caller will block until action is possible, - // else will wait until the relative time specified in * - // elapses). If times out a -1 is returned with . If it succeeds the number of bytes received is - // returned. - - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout); - // Try to recv exactly bytes into from (uses - // the call). The indicates how long to - // blocking trying to receive. If == 0, the caller will - // block until action is possible, else will wait until the relative - // time specified in * elapses). If blocks for - // longer than the number of bytes actually read is - // returned with . If a timeout does not occur, - // return (i.e., the number of bytes requested to be - // read). - - static ssize_t recv_n (ACE_HANDLE handle, - void *buf, - size_t len, - const ACE_Time_Value *timeout); - // Try to recv exactly bytes into from (uses - // the call). The indicates how long to - // blocking trying to receive. If == 0, the caller will - // block until action is possible, else will wait until the relative - // time specified in * elapses). If blocks for - // longer than the number of bytes actually read is - // returned with . If a timeout does not occur, - // return (i.e., the number of bytes requested to be - // read). - - // = Send operations that factor out differences between Win32 and UNIX. - static ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags); - // Send up to bytes into from (uses the - // call). - - static ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len); - // Send up to bytes into from (uses the - // system call on UNIX and the call - // on Win32). - - // = Send operations that send exactly n bytes. - static ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags); - // Send bytes from to (uses the - // system call). If is set to non-blocking mode this call - // will poll until all bytes are sent. - - static ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len); - // Send bytes from to (uses the - // system call on UNIX and the call on Win32). If - // is set to non-blocking mode this call will poll until - // all bytes are sent. - - // = Timed operations. - static ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout); - // Wait up to amount of time to send up to bytes - // into from (uses the system call on - // UNIX and the call on Win32). The - // indicates how long to blocking trying to send. If == - // 0, the caller will block until action is possible, else will wait - // until the relative time specified in * elapses). If - // times out a -1 is returned with . If it - // succeeds the number of bytes sent is returned. - - static ssize_t send (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout); - // Wait up to amount of time to send up to bytes - // into from (uses the call). The - // indicates how long to blocking trying to send. If - // == 0, the caller will block until action is possible, - // else will wait until the relative time specified in * - // elapses). If times out a -1 is returned with . If it succeeds the number of bytes sent is returned. - - static ssize_t sendmsg (ACE_HANDLE handle, - const struct msghdr *msg, - int flags, - const ACE_Time_Value *timeout); - // Wait up to amount of time to send the to - // (uses the call). The indicates how - // long to blocking trying to send. If == 0, the caller - // will block until action is possible, else will wait until the - // relative time specified in * elapses). If - // times out a -1 is returned with . If it succeeds - // the number of bytes sent is returned. - - static ssize_t sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen, - const ACE_Time_Value *timeout); - // Wait up to amount of time to send up to bytes - // into from (uses the call). The - // indicates how long to blocking trying to send. If - // == 0, the caller will block until action is possible, - // else will wait until the relative time specified in * - // elapses). If times out a -1 is returned with . If it succeeds the number of bytes sent is returned. - - static ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - int flags, - const ACE_Time_Value *timeout); - // Try to send exactly bytes into from (uses - // the call). The indicates how long to - // blocking trying to send. If == 0, the caller will - // block until action is possible, else will wait until the relative - // time specified in * elapses). If blocks for - // longer than the number of bytes actually sent is - // returned with . If a timeout does not occur, - // return (i.e., the number of bytes requested to be - // sent). - - static ssize_t send_n (ACE_HANDLE handle, - const void *buf, - size_t len, - const ACE_Time_Value *timeout); - // Try to send exactly bytes into from (uses - // the call). The indicates how long to - // blocking trying to send. If == 0, the caller will - // block until action is possible, else will wait until the relative - // time specified in * elapses). If blocks for - // longer than the number of bytes actually sent is - // returned with . If a timeout does not occur, - // return (i.e., the number of bytes requested to be - // sent). - - // = Timed Scatter-read and gather-write functions. - - static ssize_t writev (ACE_HANDLE handle, - const struct iovec* iov, - int iovcnt, - const ACE_Time_Value *timeout); - static ssize_t writev (ACE_HANDLE handle, - const struct ACE_IO_Vector *iov, - int iovcnt, - const ACE_Time_Value *timeout); - // Send structs to (uses the - // call). If == 0, the caller will block - // until action is possible, else will wait until the relative time - // specified in * elapses). If times out a -1 is - // returned with . If it succeeds the number of - // bytes written is returned. - - static ssize_t readv (ACE_HANDLE handle, - struct iovec *iov, - int iovcnt, - const ACE_Time_Value *timeout); - static ssize_t readv (ACE_HANDLE handle, - struct ACE_IO_Vector *iov, - int iovcnt, - const ACE_Time_Value *timeout); - // Read structs from (uses the - // call). If == 0, the caller will block - // until action is possible, else will wait until the relative time - // specified in * elapses). If times out a -1 is - // returned with . If it succeeds the number of - // bytes receieved is returned. - - static ssize_t send (ACE_HANDLE handle, size_t n, ...); - // Send varargs messages to the using . - - static ssize_t recv (ACE_HANDLE handle, size_t n, ...); - // Recv varargs messages to the using . - - // = File system I/O functions. - - // These encapsulate differences between UNIX and Win32 and also - // send and recv exactly n bytes. - - static ssize_t read_n (ACE_HANDLE handle, - void *buf, - size_t len); - // Receive bytes into from (uses the - // call, which uses the system call on UNIX - // and the call on Win32). If is set to - // non-blocking mode this call will poll until all bytes are - // received. - - static ssize_t write_n (ACE_HANDLE handle, - const void *buf, - size_t len); - // Send bytes from to (uses the - // calls, which is uses the system call on UNIX and the - // call on Win32). If is set to non-blocking - // mode this call will poll until all bytes are sent. - - // = Socket connection establishment calls. - - static int bind_port (ACE_HANDLE handle, - ACE_UINT32 ip_addr = INADDR_ANY); - // Bind a new unused port to . - - static int get_bcast_addr (ACE_UINT32 &bcast_addr, - const char *hostname = 0, - ACE_UINT32 host_addr = 0, - ACE_HANDLE handle = ACE_INVALID_HANDLE); - // Get our broadcast address based on our . If - // is non-0 we'll use it to determine our IP address. If - // is not then we'll use this to - // determine our broadcast address, otherwise we'll have to create a - // socket internally (and free it). Returns -1 on failure and 0 on - // success. - - static int get_ip_interfaces (size_t &count, - ACE_INET_Addr *&addr_array); - // Return count and array of all configured IP interfaces on this - // host, rc = 0 on success (count == number of interfaces else -1). - // Caller is responsible for calling delete [] on . - - static int count_interfaces (ACE_HANDLE handle, - size_t &how_many); - // Helper routine for get_ip_interfaces, differs by UNIX platform so - // put into own subroutine. perform some ioctls to retrieve ifconf - // list of ifreq structs. - - static ACE_HANDLE get_handle (void); - // Routine to return a handle from which requests can be - // made. Caller must the handle. - - static int handle_timed_accept (ACE_HANDLE listener, - ACE_Time_Value *timeout, - int restart); - // Wait up to amount of time to passively establish a - // connection. This method doesn't perform the , it just - // does the timed wait... - - static ACE_HANDLE handle_timed_complete (ACE_HANDLE listener, - ACE_Time_Value *timeout, - int is_tli = 0); - // Wait up to amount of time to complete an actively - // established non-blocking connection. If is non-0 then - // we are being called by a TLI wrapper (which behaves slightly - // differently from a socket wrapper). - - // = Operations on HANDLEs. - - static ACE_HANDLE handle_timed_open (ACE_Time_Value *timeout, - LPCTSTR name, - int flags, - int perms); - // Wait up to amount of time to actively open a device. - // This method doesn't perform the , it just does the timed - // wait... - - // = Set/get/clear various flags related to I/O HANDLE. - static int set_flags (ACE_HANDLE handle, - int flags); - // Set flags associated with . - - static int clr_flags (ACE_HANDLE handle, - int flags); - // Clear flags associated with . - - static int get_flags (ACE_HANDLE handle); - // Return the current setting of flags associated with . - - static int set_handle_limit (int new_limit = -1); - // Reset the limit on the number of open handles. If == - // -1 set the limit to the maximum allowable. Otherwise, set it to - // be the value of . - - static int max_handles (void); - // Returns the maximum number of open handles currently permitted in - // this process. This maximum may be extended using - // . - - // = String functions -#if !defined (ACE_HAS_WINCE) - static char *strenvdup (const char *str); - // Return a dynamically allocated duplicate of , substituting - // the environment variable if . Note that the - // pointer is allocated with and must be freed by - // -#endif /* ACE_HAS_WINCE */ - - static char *strecpy (char *s, const char *t); - // Copies to , returning a pointer to the end of the copied - // region (rather than the beginning, a la . - - static char *strsplit_r (char *s, - const char *token, - char *&next_start); - // Splits string into pieces separated by the string . - // is an opaque cookie handed back by the call to store - // its state for the next invocation, thus making it re-entrant. - // This operates very similar to Perl's function except that - // it returns pieces one at a time instead of into an array. - - static size_t strrepl (char *s, char search, char replace); - // Replace all instances of in with . Returns - // the number of replacements made. - - static const char *execname (const char *pathname); - // On Win32 returns if it already ends in ".exe," - // otherwise returns a dynamically allocated buffer containing - // ".exe". Always returns on UNIX. - - static const char *basename (const char *pathname, - char delim); - // Returns the "basename" of a . - -#if defined (ACE_HAS_UNICODE) - // A collection of wide string functions. See above for details. - - static wchar_t *strecpy (wchar_t *s, const wchar_t *t); - - static wchar_t *strsplit_r (wchar_t *s, - const wchar_t *token, - wchar_t *&next_start); - - static size_t strrepl (wchar_t *s, wchar_t search, wchar_t replace); - - static const wchar_t *execname (const wchar_t *pathname); - - static const wchar_t *basename (const wchar_t *pathname, - wchar_t delim); - // Returns the "basename" of a . -#endif /* ACE_HAS_UNICODE */ - - static ASYS_TCHAR *timestamp (ASYS_TCHAR date_and_time[], - int time_len); - // 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. Returns - // 0 if unsuccessful, else returns pointer to beginning of the - // "time" portion of . - - static int daemonize (const char pathname[] = "/", - int close_all_handles = ACE_DEFAULT_CLOSE_ALL_HANDLES); - // Become a daemon process. If is non-zero then - // all open file handles are closed. - - // = Methods for searching and opening shared libraries. - - static int ldfind (const ASYS_TCHAR *filename, - ASYS_TCHAR *pathname, - size_t maxlen); - // Finds the file either using an absolute path or using - // a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g., - // $LD_LIBRARY_PATH on UNIX or $PATH on Win32). This function will - // add appropriate suffix (e.g., .dll on Win32 or .so on UNIX) - // according to the OS platform. In addition, this function will - // apply the appropriate prefix (e.g., "lib" on UNIX and "" on - // Win32) if the doesn't match directly. - - static FILE *ldopen (const ASYS_TCHAR *filename, - const ASYS_TCHAR *type); - // Uses to locate and open the appropriate and - // returns a pointer to the file, else it returns a NULL - // pointer. specifies how the file should be open. - - // = Shield us from Win32's inability to select on STDIN. - -#if !defined (ACE_HAS_WINCE) - static void *read_adapter (void *event_handler); - // Used to read from non-socket ACE_HANDLEs in our own thread to - // work around Win32 limitations that don't allow us to select() on - // non-sockets (such as ACE_STDIN). This is commonly used in - // situations where the Reactor is used to demultiplex read events - // on ACE_STDIN on UNIX. Note that must be a - // subclass of . If the method of - // this event handler returns we default to - // reading from ACE_STDIN. - - static int register_stdin_handler (ACE_Event_Handler *eh, - ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr, - int flags = THR_DETACHED); - // Abstracts away from the differences between Win32 and ACE with - // respect to reading from ACE_STDIN (which is non-select()'able on - // Win32. - - static int remove_stdin_handler (ACE_Reactor *reactor, - ACE_Thread_Manager *thr_mgr); - // Performs the inverse of the method. -#endif /* ACE_HAS_WINCE */ - - // = Miscelleous functions. - static size_t round_to_pagesize (off_t length); - // Rounds the request to a multiple of the page size. - - static int format_hexdump (const char *buffer, int size, - ASYS_TCHAR *obuf, int obuf_sz); - // Format buffer into printable format. This is useful for - // debugging. - - static u_long hash_pjw (const char *str); - // Computes the hash value of using the ``Hash PJW'' routine. - - static u_long hash_pjw (const char *str, size_t len); - // Computes the hash value of using the ``Hash PJW'' routine. - - static u_long hash_pjw (const ACE_USHORT16 *str); - // Computes the hash value of using the ``Hash PJW'' routine - // (works for UNICODE strings). - - static u_long hash_pjw (const ACE_USHORT16 *str, size_t len); - // Computes the hash value of using the ``Hash PJW'' routine - // (works for UNICODE strings). - - static u_long crc32 (const char* str); - // Computes the ISO 8802-3 standard 32 bits CRC for the string - // (not for a file). - - static u_long is_prime (const u_long n, - const u_long min_factor, - const u_long max_factor); - // Function that can burn up noticeable CPU time: brute-force - // determination of whether number "n" is prime. Returns 0 if - // it is prime, or the smallest factor if it is not prime. min_factor - // and max_factor can be used to partition the work among threads. - // For just one thread, typical values are 2 and n/2. - - static int map_errno (int error); - // Map troublesome win32 errno values to values that standard C - // strerr function understands. Thank you Microsoft. - - static const ASYS_TCHAR *sock_error (int error); - // Returns a string containing the error message corresponding to a - // WinSock error. This works around an omission in the Win32 API... - - static int process_active (pid_t pid); - // Checks if process with is still alive. Returns 1 if it is - // still alive, 0 if it isn't alive, and -1 if something weird - // happened. - - static int terminate_process (pid_t pid); - // Terminate the process with id . Note that this call is - // potentially dangerous to use since the process being terminated - // may not have a chance to cleanup before it shuts down. - - static void unique_name (const void *object, - LPTSTR name, - size_t length); - // This method uses process id and object pointer to come up with a - // machine wide unique name. The process ID will provide uniqueness - // between processes on the same machine. The "this" pointer of the - // will provide uniqueness between other "live" objects in - // the same process. The uniqueness of this name is therefore only - // valid for the life of . - - static u_long log2 (u_long num); - // Computes the base 2 logarithm of . - - static char nibble2hex (u_int n); - // Hex conversion utility. - - static u_char hex2byte (char c); - // Convert a hex character to its byte representation. - -private: - static int enter_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int &val); - // Wait for before proceeding to a operation. - // keeps track of whether we're in non-blocking mode or not. - - static void leave_recv_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int val); - // Cleanup after a operation (e.g., restore the appropriate - // non-blocking status of ). - - static int enter_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value* timeout, - int &val); - // Wait for before proceeding to a operation. - // keeps track of whether we're in non-blocking mode or not. - - static void leave_send_timedwait (ACE_HANDLE handle, - const ACE_Time_Value *timeout, - int val); - // Cleanup after the operation (e.g., restore the appropriate - // non-blocking status of ). - - static size_t pagesize_; - // Size of a VM page. - - static u_long crc_table_[]; - // CRC table. - - static const char hex_chars_[]; - // Hex characters. -}; - -#if !defined (ACE_LACKS_INLINE_FUNCTIONS) -#include "ace/ACE.i" -#endif - -#endif /* ACE_ACE_H */ diff --git a/ace/ACE.i b/ace/ACE.i deleted file mode 100644 index 79a7682d9e3..00000000000 --- a/ace/ACE.i +++ /dev/null @@ -1,118 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// Miscellaneous static methods used throughout ACE. - -ASYS_INLINE ssize_t -ACE::send (ACE_HANDLE handle, const void *buf, size_t len) -{ - ACE_TRACE ("ACE::send"); - -#if defined (ACE_WIN32) - return ACE_OS::send (handle, (const char *) buf, len); -#else - return ACE_OS::write (handle, (const char *) buf, len); -#endif /* ACE_WIN32 */ -} - -ASYS_INLINE ssize_t -ACE::send (ACE_HANDLE handle, const void *buf, size_t len, int flags) -{ - ACE_TRACE ("ACE::send"); - return ACE_OS::send (handle, (const char *) buf, len, flags); -} - -ASYS_INLINE ssize_t -ACE::recv (ACE_HANDLE handle, void *buf, size_t len) -{ - ACE_TRACE ("ACE::recv"); -#if defined (ACE_WIN32) - return ACE_OS::recv (handle, (char *) buf, len); -#else - return ACE_OS::read (handle, (char *) buf, len); -#endif /* ACE_WIN32 */ -} - -ASYS_INLINE ssize_t -ACE::recv (ACE_HANDLE handle, void *buf, size_t len, int flags) -{ - ACE_TRACE ("ACE::recv"); - - return ACE_OS::recv (handle, (char *) buf, len, flags); -} - -ASYS_INLINE char * -ACE::strecpy (char *s, const char *t) -{ - ACE_TRACE ("ACE::strecpy"); - register char *dscan = s; - register const char *sscan = t; - - while ((*dscan++ = *sscan++) != '\0') - continue; - - return dscan - 1; -} - -#if defined (ACE_HAS_UNICODE) -ASYS_INLINE wchar_t * -ACE::strecpy (wchar_t *s, const wchar_t *t) -{ - ACE_TRACE ("ACE::strecpy"); - register wchar_t *dscan = s; - register const wchar_t *sscan = t; - - while ((*dscan++ = *sscan++) != '\0') - continue; - - return dscan - 1; -} -#endif /* ACE_HAS_UNICODE */ - -// Return flags currently associated with handle. - -ASYS_INLINE int -ACE::get_flags (ACE_HANDLE handle) -{ - ACE_TRACE ("ACE::get_flags"); - -#if defined (ACE_LACKS_FCNTL) - // ACE_OS::fcntl is not supported, e.g., on VxWorks. It - // would be better to store ACE's notion of the flags - // associated with the handle, but this works for now. - ACE_UNUSED_ARG (handle); - return 0; -#else - return ACE_OS::fcntl (handle, F_GETFL, 0); -#endif /* ACE_LACKS_FCNTL */ -} - -ASYS_INLINE u_long -ACE::log2 (u_long num) -{ - u_long log = 0; - - for (; - num > 0; - log++) - num >>= 1; - - return log; -} - -ASYS_INLINE char -ACE::nibble2hex (u_int n) -{ - return ACE::hex_chars_[n & 0x0f]; -} - -ASYS_INLINE u_char -ACE::hex2byte (char c) -{ - if (isdigit (c)) - return (u_char) (c - '0'); - else if (islower (c)) - return (u_char) (10 + c - 'a'); - else - return (u_char) (10 + c - 'A'); -} diff --git a/ace/ACED.bpr b/ace/ACED.bpr deleted file mode 100644 index 93f88595e7b..00000000000 --- a/ace/ACED.bpr +++ /dev/null @@ -1,234 +0,0 @@ -# --------------------------------------------------------------------------- -!if !$d(BCB) -BCB = $(MAKEDIR)\.. -!endif - -# --------------------------------------------------------------------------- -# IDE SECTION -# --------------------------------------------------------------------------- -# The following section of the project makefile is managed by the BCB IDE. -# It is recommended to use the IDE to change any of the values in this -# section. -# --------------------------------------------------------------------------- - -VERSION = BCB.03 -# --------------------------------------------------------------------------- -PROJECT = ACED.dll -OBJFILES = obj\ACED.obj obj\ACE.obj obj\Activation_Queue.obj obj\Acceptor.obj obj\Addr.obj \ - obj\Arg_Shifter.obj obj\ARGV.obj obj\Array.obj obj\Asynch_Acceptor.obj \ - obj\Asynch_IO.obj obj\Auto_Ptr.obj obj\Basic_Types.obj obj\Connector.obj \ - obj\Containers.obj obj\CORBA_Handler.obj obj\CORBA_Ref.obj obj\Date_Time.obj \ - obj\DEV.obj obj\DEV_Addr.obj obj\DEV_Connector.obj obj\DEV_IO.obj obj\Dump.obj \ - obj\Dump_T.obj obj\Dynamic.obj obj\Dynamic_Service.obj obj\Env_Value_T.obj \ - obj\Event_Handler.obj obj\Event_Handler_T.obj obj\FIFO.obj obj\FIFO_Recv.obj \ - obj\FIFO_Recv_Msg.obj obj\FIFO_Send.obj obj\FIFO_Send_Msg.obj obj\FILE.obj \ - obj\FILE_Addr.obj obj\FILE_Connector.obj obj\FILE_IO.obj obj\Filecache.obj \ - obj\Free_List.obj obj\Future.obj obj\Get_Opt.obj obj\Handle_Set.obj \ - obj\Hash_Map_Manager.obj obj\High_Res_Timer.obj obj\INET_Addr.obj \ - obj\IO_Cntl_Msg.obj obj\IO_SAP.obj obj\IOStream.obj obj\IOStream_T.obj \ - obj\IPC_SAP.obj obj\Local_Name_Space.obj obj\Local_Name_Space_T.obj \ - obj\Local_Tokens.obj obj\LOCK_SOCK_Acceptor.obj obj\Log_Msg.obj \ - obj\Log_Record.obj obj\LSOCK.obj obj\LSOCK_Acceptor.obj obj\LSOCK_CODgram.obj \ - obj\LSOCK_Connector.obj obj\LSOCK_Dgram.obj obj\LSOCK_Stream.obj obj\Malloc.obj \ - obj\Malloc_T.obj obj\Managed_Object.obj obj\Map_Manager.obj obj\Mem_Map.obj \ - obj\Memory_Pool.obj obj\Message_Block.obj obj\Message_Queue.obj \ - obj\Method_Object.obj obj\Module.obj obj\Msg_WFMO_Reactor.obj \ - obj\Multiplexor.obj obj\Name_Proxy.obj obj\Name_Request_Reply.obj \ - obj\Name_Space.obj obj\Naming_Context.obj obj\Object_Manager.obj \ - obj\Obstack.obj obj\OS.obj obj\Parse_Node.obj obj\Pipe.obj \ - obj\Priority_Reactor.obj obj\Proactor.obj obj\Process.obj \ - obj\Process_Manager.obj obj\Profile_Timer.obj obj\Reactor.obj \ - obj\Read_Buffer.obj obj\Registry.obj obj\Registry_Name_Space.obj \ - obj\Remote_Name_Space.obj obj\Remote_Tokens.obj obj\Sched_Params.obj \ - obj\Select_Reactor.obj obj\Service_Config.obj obj\Service_Manager.obj \ - obj\Service_Object.obj obj\Service_Repository.obj obj\Service_Types.obj \ - obj\Shared_Memory.obj obj\Shared_Memory_MM.obj obj\Shared_Memory_SV.obj \ - obj\Shared_Object.obj obj\Signal.obj obj\Singleton.obj obj\SOCK.obj \ - obj\SOCK_Acceptor.obj obj\SOCK_CODgram.obj obj\SOCK_Connector.obj \ - obj\SOCK_Dgram.obj obj\SOCK_Dgram_Bcast.obj obj\SOCK_Dgram_Mcast.obj \ - obj\SOCK_IO.obj obj\SOCK_Stream.obj obj\SPIPE.obj obj\SPIPE_Acceptor.obj \ - obj\SPIPE_Addr.obj obj\SPIPE_Connector.obj obj\SPIPE_Stream.obj obj\SString.obj \ - obj\Strategies.obj obj\Strategies_T.obj obj\Stream.obj obj\Stream_Modules.obj \ - obj\SV_Message.obj obj\SV_Message_Queue.obj obj\SV_Semaphore_Complex.obj \ - obj\SV_Semaphore_Simple.obj obj\SV_Shared_Memory.obj obj\Svc_Conf_l.obj \ - obj\Svc_Conf_y.obj obj\Svc_Handler.obj obj\Synch.obj obj\Synch_Options.obj \ - obj\Synch_T.obj obj\System_Time.obj obj\Task.obj obj\Task_T.obj obj\Thread.obj \ - obj\Thread_Manager.obj obj\Time_Request_Reply.obj obj\Timer_Hash.obj \ - obj\Timer_Hash_T.obj obj\Timer_Heap.obj obj\Timer_Heap_T.obj obj\Timer_List.obj \ - obj\Timer_List_T.obj obj\Timer_Queue.obj obj\Timer_Queue_Adapters.obj \ - obj\Timer_Queue_T.obj obj\Timer_Wheel.obj obj\Timer_Wheel_T.obj obj\TLI.obj \ - obj\TLI_Acceptor.obj obj\TLI_Connector.obj obj\TLI_Stream.obj obj\Token.obj \ - obj\Token_Collection.obj obj\Token_Invariants.obj obj\Token_Manager.obj \ - obj\Token_Request_Reply.obj obj\Trace.obj obj\TTY_IO.obj \ - obj\Typed_SV_Message.obj obj\Typed_SV_Message_Queue.obj obj\UNIX_Addr.obj \ - obj\UPIPE_Acceptor.obj obj\UPIPE_Connector.obj obj\UPIPE_Stream.obj \ - obj\WFMO_Reactor.obj obj\XtReactor.obj -RESFILES = -DEFFILE = -RESDEPEN = $(RESFILES) -LIBFILES = -LIBRARIES = VCL35.lib -SPARELIBS = VCL35.lib -PACKAGES = VCLX35.bpi VCL35.bpi VCLDB35.bpi VCLDBX35.bpi bcbsmp35.bpi dclocx35.bpi \ - QRPT35.bpi TEEUI35.bpi TEEDB35.bpi TEE35.bpi ibsmp35.bpi NMFAST35.bpi \ - INETDB35.bpi INET35.bpi -# --------------------------------------------------------------------------- -PATHCPP = .; -PATHASM = .; -PATHPAS = .; -PATHRC = .; -DEBUGLIBPATH = $(BCB)\lib\debug -RELEASELIBPATH = $(BCB)\lib\release -# --------------------------------------------------------------------------- -CFLAG1 = -WD -Od -Hc -w-par -w-inl -Ve -r- -k -y -v -vi- -c -b- -Vx -CFLAG2 = -D_RTLDLL -Ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl \ - -H=ace.csm -CFLAG3 = -w-rvl -Tkh30000 -PFLAGS = -D_RTLDLL -N2obj -N0obj \ - -Uc:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib;$(DEBUGLIBPATH) \ - -Ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl -$Y -$W \ - -$O- -v -JPHN -M -RFLAGS = -D_RTLDLL -ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl -AFLAGS = /ic:\gonzo\ace-4.5.2\ACE_wrappers /i$(BCB)\include /i$(BCB)\include\vcl \ - /d_RTLDLL /mx /w2 /zi -LFLAGS = -Lc:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib;$(DEBUGLIBPATH) \ - -aa -Tpd -x -Gn -Gi -v -IFLAGS = -# --------------------------------------------------------------------------- -ALLOBJ = c0d32.obj sysinit.obj $(OBJFILES) -ALLRES = $(RESFILES) -ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib -# --------------------------------------------------------------------------- -!ifdef IDEOPTIONS - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[HistoryLists\hlIncludePath] -Count=1 -Item0=c:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl - -[HistoryLists\hlLibraryPath] -Count=1 -Item0=c:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib - -[HistoryLists\hlDebugSourcePath] -Count=1 -Item0=$(BCB)\source\vcl - -[HistoryLists\hlConditionals] -Count=2 -Item0=_RTLDLL -Item1=_RTLDLL;USEPACKAGES - -[HistoryLists\hlIntOutputDir] -Count=1 -Item0=obj - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -[Parameters] -RunParams= -HostApplication= - -!endif - -# --------------------------------------------------------------------------- -# MAKE SECTION -# --------------------------------------------------------------------------- -# This section of the project file is not used by the BCB IDE. It is for -# the benefit of building from the command-line using the MAKE utility. -# --------------------------------------------------------------------------- - -.autodepend -# --------------------------------------------------------------------------- -!if !$d(BCC32) -BCC32 = bcc32 -!endif - -!if !$d(DCC32) -DCC32 = dcc32 -!endif - -!if !$d(TASM32) -TASM32 = tasm32 -!endif - -!if !$d(LINKER) -LINKER = ilink32 -!endif - -!if !$d(BRCC32) -BRCC32 = brcc32 -!endif -# --------------------------------------------------------------------------- -!if $d(PATHCPP) -.PATH.CPP = $(PATHCPP) -.PATH.C = $(PATHCPP) -!endif - -!if $d(PATHPAS) -.PATH.PAS = $(PATHPAS) -!endif - -!if $d(PATHASM) -.PATH.ASM = $(PATHASM) -!endif - -!if $d(PATHRC) -.PATH.RC = $(PATHRC) -!endif -# --------------------------------------------------------------------------- -$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) - $(BCB)\BIN\$(LINKER) @&&! - $(LFLAGS) + - $(ALLOBJ), + - $(PROJECT),, + - $(ALLLIB), + - $(DEFFILE), + - $(ALLRES) -! -# --------------------------------------------------------------------------- -.pas.hpp: - $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } - -.pas.obj: - $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } - -.cpp.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< } - -.c.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< } - -.asm.obj: - $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ - -.rc.res: - $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< -# --------------------------------------------------------------------------- diff --git a/ace/ACED.cpp b/ace/ACED.cpp deleted file mode 100644 index 44c46a46193..00000000000 --- a/ace/ACED.cpp +++ /dev/null @@ -1,191 +0,0 @@ -// $Id$ - -// This is the main CPP file associated with the -// debug non-unicode version of ACE. - -#if defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 -#include - -int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) -{ - return 1; -} - -USEUNIT("ACE.cpp"); -USEUNIT("Activation_Queue.cpp"); -USEUNIT("Acceptor.cpp"); -USEUNIT("Addr.cpp"); -USEUNIT("Arg_Shifter.cpp"); -USEUNIT("ARGV.cpp"); -USEUNIT("Array.cpp"); -USEUNIT("Asynch_Acceptor.cpp"); -USEUNIT("Asynch_IO.cpp"); -USEUNIT("Auto_Ptr.cpp"); -USEUNIT("Basic_Types.cpp"); -USEUNIT("Connector.cpp"); -USEUNIT("Containers.cpp"); -USEUNIT("CORBA_Handler.cpp"); -USEUNIT("CORBA_Ref.cpp"); -USEUNIT("Date_Time.cpp"); -USEUNIT("DEV.cpp"); -USEUNIT("DEV_Addr.cpp"); -USEUNIT("DEV_Connector.cpp"); -USEUNIT("DEV_IO.cpp"); -USEUNIT("Dump.cpp"); -USEUNIT("Dump_T.cpp"); -USEUNIT("Dynamic.cpp"); -USEUNIT("Dynamic_Service.cpp"); -USEUNIT("Env_Value_T.cpp"); -USEUNIT("Event_Handler.cpp"); -USEUNIT("Event_Handler_T.cpp"); -USEUNIT("FIFO.cpp"); -USEUNIT("FIFO_Recv.cpp"); -USEUNIT("FIFO_Recv_Msg.cpp"); -USEUNIT("FIFO_Send.cpp"); -USEUNIT("FIFO_Send_Msg.cpp"); -USEUNIT("FILE.cpp"); -USEUNIT("FILE_Addr.cpp"); -USEUNIT("FILE_Connector.cpp"); -USEUNIT("FILE_IO.cpp"); -USEUNIT("Filecache.cpp"); -USEUNIT("Free_List.cpp"); -USEUNIT("Future.cpp"); -USEUNIT("Get_Opt.cpp"); -USEUNIT("Handle_Set.cpp"); -USEUNIT("Hash_Map_Manager.cpp"); -USEUNIT("High_Res_Timer.cpp"); -USEUNIT("INET_Addr.cpp"); -USEUNIT("IO_Cntl_Msg.cpp"); -USEUNIT("IO_SAP.cpp"); -USEUNIT("IOStream.cpp"); -USEUNIT("IOStream_T.cpp"); -USEUNIT("IPC_SAP.cpp"); -USEUNIT("Local_Name_Space.cpp"); -USEUNIT("Local_Name_Space_T.cpp"); -USEUNIT("Local_Tokens.cpp"); -USEUNIT("LOCK_SOCK_Acceptor.cpp"); -USEUNIT("Log_Msg.cpp"); -USEUNIT("Log_Record.cpp"); -USEUNIT("LSOCK.cpp"); -USEUNIT("LSOCK_Acceptor.cpp"); -USEUNIT("LSOCK_CODgram.cpp"); -USEUNIT("LSOCK_Connector.cpp"); -USEUNIT("LSOCK_Dgram.cpp"); -USEUNIT("LSOCK_Stream.cpp"); -USEUNIT("Malloc.cpp"); -USEUNIT("Malloc_T.cpp"); -USEUNIT("Managed_Object.cpp"); -USEUNIT("Map_Manager.cpp"); -USEUNIT("Mem_Map.cpp"); -USEUNIT("Memory_Pool.cpp"); -USEUNIT("Message_Block.cpp"); -USEUNIT("Message_Queue.cpp"); -USEUNIT("Method_Object.cpp"); -USEUNIT("Module.cpp"); -USEUNIT("Msg_WFMO_Reactor.cpp"); -USEUNIT("Multiplexor.cpp"); -USEUNIT("Name_Proxy.cpp"); -USEUNIT("Name_Request_Reply.cpp"); -USEUNIT("Name_Space.cpp"); -USEUNIT("Naming_Context.cpp"); -USEUNIT("Object_Manager.cpp"); -USEUNIT("Obstack.cpp"); -USEUNIT("OS.cpp"); -USEUNIT("Parse_Node.cpp"); -USEUNIT("Pipe.cpp"); -USEUNIT("Priority_Reactor.cpp"); -USEUNIT("Proactor.cpp"); -USEUNIT("Process.cpp"); -USEUNIT("Process_Manager.cpp"); -USEUNIT("Profile_Timer.cpp"); -USEUNIT("RB_Tree.cpp"); -USEUNIT("Reactor.cpp"); -USEUNIT("Read_Buffer.cpp"); -USEUNIT("Registry.cpp"); -USEUNIT("Registry_Name_Space.cpp"); -USEUNIT("Remote_Name_Space.cpp"); -USEUNIT("Remote_Tokens.cpp"); -USEUNIT("Sched_Params.cpp"); -USEUNIT("Select_Reactor.cpp"); -USEUNIT("Service_Config.cpp"); -USEUNIT("Service_Manager.cpp"); -USEUNIT("Service_Object.cpp"); -USEUNIT("Service_Repository.cpp"); -USEUNIT("Service_Types.cpp"); -USEUNIT("Shared_Memory.cpp"); -USEUNIT("Shared_Memory_MM.cpp"); -USEUNIT("Shared_Memory_SV.cpp"); -USEUNIT("Shared_Object.cpp"); -USEUNIT("Signal.cpp"); -USEUNIT("Singleton.cpp"); -USEUNIT("SOCK.cpp"); -USEUNIT("SOCK_Acceptor.cpp"); -USEUNIT("SOCK_CODgram.cpp"); -USEUNIT("SOCK_Connector.cpp"); -USEUNIT("SOCK_Dgram.cpp"); -USEUNIT("SOCK_Dgram_Bcast.cpp"); -USEUNIT("SOCK_Dgram_Mcast.cpp"); -USEUNIT("SOCK_IO.cpp"); -USEUNIT("SOCK_Stream.cpp"); -USEUNIT("SPIPE.cpp"); -USEUNIT("SPIPE_Acceptor.cpp"); -USEUNIT("SPIPE_Addr.cpp"); -USEUNIT("SPIPE_Connector.cpp"); -USEUNIT("SPIPE_Stream.cpp"); -USEUNIT("Stats.cpp"); -USEUNIT("SString.cpp"); -USEUNIT("Strategies.cpp"); -USEUNIT("Strategies_T.cpp"); -USEUNIT("Stream.cpp"); -USEUNIT("Stream_Modules.cpp"); -USEUNIT("SV_Message.cpp"); -USEUNIT("SV_Message_Queue.cpp"); -USEUNIT("SV_Semaphore_Complex.cpp"); -USEUNIT("SV_Semaphore_Simple.cpp"); -USEUNIT("SV_Shared_Memory.cpp"); -USEUNIT("Svc_Conf_l.cpp"); -USEUNIT("Svc_Conf_y.cpp"); -USEUNIT("Svc_Handler.cpp"); -USEUNIT("Synch.cpp"); -USEUNIT("Synch_Options.cpp"); -USEUNIT("Synch_T.cpp"); -USEUNIT("System_Time.cpp"); -USEUNIT("Task.cpp"); -USEUNIT("Task_T.cpp"); -USEUNIT("Thread.cpp"); -USEUNIT("Thread_Manager.cpp"); -USEUNIT("Timeprobe.cpp"); -USEUNIT("Timeprobe_T.cpp"); -USEUNIT("Time_Request_Reply.cpp"); -USEUNIT("Timer_Hash.cpp"); -USEUNIT("Timer_Hash_T.cpp"); -USEUNIT("Timer_Heap.cpp"); -USEUNIT("Timer_Heap_T.cpp"); -USEUNIT("Timer_List.cpp"); -USEUNIT("Timer_List_T.cpp"); -USEUNIT("Timer_Queue.cpp"); -USEUNIT("Timer_Queue_Adapters.cpp"); -USEUNIT("Timer_Queue_T.cpp"); -USEUNIT("Timer_Wheel.cpp"); -USEUNIT("Timer_Wheel_T.cpp"); -USEUNIT("TLI.cpp"); -USEUNIT("TLI_Acceptor.cpp"); -USEUNIT("TLI_Connector.cpp"); -USEUNIT("TLI_Stream.cpp"); -USEUNIT("Token.cpp"); -USEUNIT("Token_Collection.cpp"); -USEUNIT("Token_Invariants.cpp"); -USEUNIT("Token_Manager.cpp"); -USEUNIT("Token_Request_Reply.cpp"); -USEUNIT("Trace.cpp"); -USEUNIT("TTY_IO.cpp"); -USEUNIT("Typed_SV_Message.cpp"); -USEUNIT("Typed_SV_Message_Queue.cpp"); -USEUNIT("UNIX_Addr.cpp"); -USEUNIT("UPIPE_Acceptor.cpp"); -USEUNIT("UPIPE_Connector.cpp"); -USEUNIT("UPIPE_Stream.cpp"); -USEUNIT("WFMO_Reactor.cpp"); -USEUNIT("XtReactor.cpp"); -//--------------------------------------------------------------------------- -#endif diff --git a/ace/ACER.bpr b/ace/ACER.bpr deleted file mode 100644 index 3fe61886a42..00000000000 --- a/ace/ACER.bpr +++ /dev/null @@ -1,234 +0,0 @@ -# --------------------------------------------------------------------------- -!if !$d(BCB) -BCB = $(MAKEDIR)\.. -!endif - -# --------------------------------------------------------------------------- -# IDE SECTION -# --------------------------------------------------------------------------- -# The following section of the project makefile is managed by the BCB IDE. -# It is recommended to use the IDE to change any of the values in this -# section. -# --------------------------------------------------------------------------- - -VERSION = BCB.03 -# --------------------------------------------------------------------------- -PROJECT = ACER.dll -OBJFILES = obj\ACER.obj obj\ACE.obj obj\Activation_Queue.obj obj\Acceptor.obj obj\Addr.obj \ - obj\Arg_Shifter.obj obj\ARGV.obj obj\Array.obj obj\Asynch_Acceptor.obj \ - obj\Asynch_IO.obj obj\Auto_Ptr.obj obj\Basic_Types.obj obj\Connector.obj \ - obj\Containers.obj obj\CORBA_Handler.obj obj\CORBA_Ref.obj obj\Date_Time.obj \ - obj\DEV.obj obj\DEV_Addr.obj obj\DEV_Connector.obj obj\DEV_IO.obj obj\Dump.obj \ - obj\Dump_T.obj obj\Dynamic.obj obj\Dynamic_Service.obj obj\Env_Value_T.obj \ - obj\Event_Handler.obj obj\Event_Handler_T.obj obj\FIFO.obj obj\FIFO_Recv.obj \ - obj\FIFO_Recv_Msg.obj obj\FIFO_Send.obj obj\FIFO_Send_Msg.obj obj\FILE.obj \ - obj\FILE_Addr.obj obj\FILE_Connector.obj obj\FILE_IO.obj obj\Filecache.obj \ - obj\Free_List.obj obj\Future.obj obj\Get_Opt.obj obj\Handle_Set.obj \ - obj\Hash_Map_Manager.obj obj\High_Res_Timer.obj obj\INET_Addr.obj \ - obj\IO_Cntl_Msg.obj obj\IO_SAP.obj obj\IOStream.obj obj\IOStream_T.obj \ - obj\IPC_SAP.obj obj\Local_Name_Space.obj obj\Local_Name_Space_T.obj \ - obj\Local_Tokens.obj obj\LOCK_SOCK_Acceptor.obj obj\Log_Msg.obj \ - obj\Log_Record.obj obj\LSOCK.obj obj\LSOCK_Acceptor.obj obj\LSOCK_CODgram.obj \ - obj\LSOCK_Connector.obj obj\LSOCK_Dgram.obj obj\LSOCK_Stream.obj obj\Malloc.obj \ - obj\Malloc_T.obj obj\Managed_Object.obj obj\Map_Manager.obj obj\Mem_Map.obj \ - obj\Memory_Pool.obj obj\Message_Block.obj obj\Message_Queue.obj \ - obj\Method_Object.obj obj\Module.obj obj\Msg_WFMO_Reactor.obj \ - obj\Multiplexor.obj obj\Name_Proxy.obj obj\Name_Request_Reply.obj \ - obj\Name_Space.obj obj\Naming_Context.obj obj\Object_Manager.obj \ - obj\Obstack.obj obj\OS.obj obj\Parse_Node.obj obj\Pipe.obj \ - obj\Priority_Reactor.obj obj\Proactor.obj obj\Process.obj \ - obj\Process_Manager.obj obj\Profile_Timer.obj obj\Reactor.obj \ - obj\Read_Buffer.obj obj\Registry.obj obj\Registry_Name_Space.obj \ - obj\Remote_Name_Space.obj obj\Remote_Tokens.obj obj\Sched_Params.obj \ - obj\Select_Reactor.obj obj\Service_Config.obj obj\Service_Manager.obj \ - obj\Service_Object.obj obj\Service_Repository.obj obj\Service_Types.obj \ - obj\Shared_Memory.obj obj\Shared_Memory_MM.obj obj\Shared_Memory_SV.obj \ - obj\Shared_Object.obj obj\Signal.obj obj\Singleton.obj obj\SOCK.obj \ - obj\SOCK_Acceptor.obj obj\SOCK_CODgram.obj obj\SOCK_Connector.obj \ - obj\SOCK_Dgram.obj obj\SOCK_Dgram_Bcast.obj obj\SOCK_Dgram_Mcast.obj \ - obj\SOCK_IO.obj obj\SOCK_Stream.obj obj\SPIPE.obj obj\SPIPE_Acceptor.obj \ - obj\SPIPE_Addr.obj obj\SPIPE_Connector.obj obj\SPIPE_Stream.obj obj\SString.obj \ - obj\Strategies.obj obj\Strategies_T.obj obj\Stream.obj obj\Stream_Modules.obj \ - obj\SV_Message.obj obj\SV_Message_Queue.obj obj\SV_Semaphore_Complex.obj \ - obj\SV_Semaphore_Simple.obj obj\SV_Shared_Memory.obj obj\Svc_Conf_l.obj \ - obj\Svc_Conf_y.obj obj\Svc_Handler.obj obj\Synch.obj obj\Synch_Options.obj \ - obj\Synch_T.obj obj\System_Time.obj obj\Task.obj obj\Task_T.obj obj\Thread.obj \ - obj\Thread_Manager.obj obj\Time_Request_Reply.obj obj\Timer_Hash.obj \ - obj\Timer_Hash_T.obj obj\Timer_Heap.obj obj\Timer_Heap_T.obj obj\Timer_List.obj \ - obj\Timer_List_T.obj obj\Timer_Queue.obj obj\Timer_Queue_Adapters.obj \ - obj\Timer_Queue_T.obj obj\Timer_Wheel.obj obj\Timer_Wheel_T.obj obj\TLI.obj \ - obj\TLI_Acceptor.obj obj\TLI_Connector.obj obj\TLI_Stream.obj obj\Token.obj \ - obj\Token_Collection.obj obj\Token_Invariants.obj obj\Token_Manager.obj \ - obj\Token_Request_Reply.obj obj\Trace.obj obj\TTY_IO.obj \ - obj\Typed_SV_Message.obj obj\Typed_SV_Message_Queue.obj obj\UNIX_Addr.obj \ - obj\UPIPE_Acceptor.obj obj\UPIPE_Connector.obj obj\UPIPE_Stream.obj \ - obj\WFMO_Reactor.obj obj\XtReactor.obj -RESFILES = -DEFFILE = -RESDEPEN = $(RESFILES) -LIBFILES = -LIBRARIES = VCL35.lib -SPARELIBS = VCL35.lib -PACKAGES = VCLX35.bpi VCL35.bpi VCLDB35.bpi VCLDBX35.bpi bcbsmp35.bpi dclocx35.bpi \ - QRPT35.bpi TEEUI35.bpi TEEDB35.bpi TEE35.bpi ibsmp35.bpi NMFAST35.bpi \ - INETDB35.bpi INET35.bpi -# --------------------------------------------------------------------------- -PATHCPP = .; -PATHASM = .; -PATHPAS = .; -PATHRC = .; -DEBUGLIBPATH = $(BCB)\lib\debug -RELEASELIBPATH = $(BCB)\lib\release -# --------------------------------------------------------------------------- -CFLAG1 = -WD -O2 -Hc -w-par -w-inl -Ve -k- -vi -c -b- -Vx -CFLAG2 = -D_RTLDLL -Ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl \ - -H=obj\ace.csm -CFLAG3 = -w-rvl -Tkh30000 -PFLAGS = -D_RTLDLL -N2obj -N0obj \ - -Uc:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ - -Ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl -$L- -$D- \ - -v -JPHN -M -RFLAGS = -D_RTLDLL -ic:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl -AFLAGS = /ic:\gonzo\ace-4.5.2\ACE_wrappers /i$(BCB)\include /i$(BCB)\include\vcl \ - /d_RTLDLL /mx /w2 /zn -LFLAGS = -Lc:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ - -aa -Tpd -x -Gn -Gi -IFLAGS = -# --------------------------------------------------------------------------- -ALLOBJ = c0d32.obj sysinit.obj $(OBJFILES) -ALLRES = $(RESFILES) -ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib -# --------------------------------------------------------------------------- -!ifdef IDEOPTIONS - -[Version Info] -IncludeVerInfo=0 -AutoIncBuild=0 -MajorVer=1 -MinorVer=0 -Release=0 -Build=0 -Debug=0 -PreRelease=0 -Special=0 -Private=0 -DLL=0 -Locale=1033 -CodePage=1252 - -[Version Info Keys] -CompanyName= -FileDescription= -FileVersion=1.0.0.0 -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -Comments= - -[HistoryLists\hlIncludePath] -Count=1 -Item0=c:\gonzo\ace-4.5.2\ACE_wrappers;$(BCB)\include;$(BCB)\include\vcl - -[HistoryLists\hlLibraryPath] -Count=1 -Item0=c:\gonzo\ace-4.5.2\ACE_wrappers\ace;$(BCB)\lib\obj;$(BCB)\lib - -[HistoryLists\hlDebugSourcePath] -Count=1 -Item0=$(BCB)\source\vcl - -[HistoryLists\hlConditionals] -Count=2 -Item0=_RTLDLL -Item1=_RTLDLL;USEPACKAGES - -[HistoryLists\hlIntOutputDir] -Count=1 -Item0=obj - -[Debugging] -DebugSourceDirs=$(BCB)\source\vcl - -[Parameters] -RunParams= -HostApplication= - -!endif - -# --------------------------------------------------------------------------- -# MAKE SECTION -# --------------------------------------------------------------------------- -# This section of the project file is not used by the BCB IDE. It is for -# the benefit of building from the command-line using the MAKE utility. -# --------------------------------------------------------------------------- - -.autodepend -# --------------------------------------------------------------------------- -!if !$d(BCC32) -BCC32 = bcc32 -!endif - -!if !$d(DCC32) -DCC32 = dcc32 -!endif - -!if !$d(TASM32) -TASM32 = tasm32 -!endif - -!if !$d(LINKER) -LINKER = ilink32 -!endif - -!if !$d(BRCC32) -BRCC32 = brcc32 -!endif -# --------------------------------------------------------------------------- -!if $d(PATHCPP) -.PATH.CPP = $(PATHCPP) -.PATH.C = $(PATHCPP) -!endif - -!if $d(PATHPAS) -.PATH.PAS = $(PATHPAS) -!endif - -!if $d(PATHASM) -.PATH.ASM = $(PATHASM) -!endif - -!if $d(PATHRC) -.PATH.RC = $(PATHRC) -!endif -# --------------------------------------------------------------------------- -$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) - $(BCB)\BIN\$(LINKER) @&&! - $(LFLAGS) + - $(ALLOBJ), + - $(PROJECT),, + - $(ALLLIB), + - $(DEFFILE), + - $(ALLRES) -! -# --------------------------------------------------------------------------- -.pas.hpp: - $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } - -.pas.obj: - $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } - -.cpp.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< } - -.c.obj: - $(BCB)\BIN\$(BCC32) $(CFLAG1) $(CFLAG2) $(CFLAG3) -n$(@D) {$< } - -.asm.obj: - $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ - -.rc.res: - $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< -# --------------------------------------------------------------------------- diff --git a/ace/ACER.cpp b/ace/ACER.cpp deleted file mode 100644 index 39dcdf2801e..00000000000 --- a/ace/ACER.cpp +++ /dev/null @@ -1,187 +0,0 @@ -// $Id$ - -// This is the main CPP file associated with the -// release non-unicode version of ACE. - -#if defined(__BORLANDC__) && __BORLANDC__ >= 0x0530 -#include - -int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) -{ - return 1; -} - -USEUNIT("ACE.cpp"); -USEUNIT("Activation_Queue.cpp"); -USEUNIT("Acceptor.cpp"); -USEUNIT("Addr.cpp"); -USEUNIT("Arg_Shifter.cpp"); -USEUNIT("ARGV.cpp"); -USEUNIT("Array.cpp"); -USEUNIT("Asynch_Acceptor.cpp"); -USEUNIT("Asynch_IO.cpp"); -USEUNIT("Auto_Ptr.cpp"); -USEUNIT("Basic_Types.cpp"); -USEUNIT("Connector.cpp"); -USEUNIT("Containers.cpp"); -USEUNIT("CORBA_Handler.cpp"); -USEUNIT("CORBA_Ref.cpp"); -USEUNIT("Date_Time.cpp"); -USEUNIT("DEV.cpp"); -USEUNIT("DEV_Addr.cpp"); -USEUNIT("DEV_Connector.cpp"); -USEUNIT("DEV_IO.cpp"); -USEUNIT("Dump.cpp"); -USEUNIT("Dump_T.cpp"); -USEUNIT("Dynamic.cpp"); -USEUNIT("Dynamic_Service.cpp"); -USEUNIT("Env_Value_T.cpp"); -USEUNIT("Event_Handler.cpp"); -USEUNIT("Event_Handler_T.cpp"); -USEUNIT("FIFO.cpp"); -USEUNIT("FIFO_Recv.cpp"); -USEUNIT("FIFO_Recv_Msg.cpp"); -USEUNIT("FIFO_Send.cpp"); -USEUNIT("FIFO_Send_Msg.cpp"); -USEUNIT("FILE.cpp"); -USEUNIT("FILE_Addr.cpp"); -USEUNIT("FILE_Connector.cpp"); -USEUNIT("FILE_IO.cpp"); -USEUNIT("Filecache.cpp"); -USEUNIT("Free_List.cpp"); -USEUNIT("Future.cpp"); -USEUNIT("Get_Opt.cpp"); -USEUNIT("Handle_Set.cpp"); -USEUNIT("Hash_Map_Manager.cpp"); -USEUNIT("High_Res_Timer.cpp"); -USEUNIT("INET_Addr.cpp"); -USEUNIT("IO_Cntl_Msg.cpp"); -USEUNIT("IO_SAP.cpp"); -USEUNIT("IOStream.cpp"); -USEUNIT("IOStream_T.cpp"); -USEUNIT("IPC_SAP.cpp"); -USEUNIT("Local_Name_Space.cpp"); -USEUNIT("Local_Name_Space_T.cpp"); -USEUNIT("Local_Tokens.cpp"); -USEUNIT("LOCK_SOCK_Acceptor.cpp"); -USEUNIT("Log_Msg.cpp"); -USEUNIT("Log_Record.cpp"); -USEUNIT("LSOCK.cpp"); -USEUNIT("LSOCK_Acceptor.cpp"); -USEUNIT("LSOCK_CODgram.cpp"); -USEUNIT("LSOCK_Connector.cpp"); -USEUNIT("LSOCK_Dgram.cpp"); -USEUNIT("LSOCK_Stream.cpp"); -USEUNIT("Malloc.cpp"); -USEUNIT("Malloc_T.cpp"); -USEUNIT("Managed_Object.cpp"); -USEUNIT("Map_Manager.cpp"); -USEUNIT("Mem_Map.cpp"); -USEUNIT("Memory_Pool.cpp"); -USEUNIT("Message_Block.cpp"); -USEUNIT("Message_Queue.cpp"); -USEUNIT("Method_Object.cpp"); -USEUNIT("Module.cpp"); -USEUNIT("Msg_WFMO_Reactor.cpp"); -USEUNIT("Multiplexor.cpp"); -USEUNIT("Name_Proxy.cpp"); -USEUNIT("Name_Request_Reply.cpp"); -USEUNIT("Name_Space.cpp"); -USEUNIT("Naming_Context.cpp"); -USEUNIT("Object_Manager.cpp"); -USEUNIT("Obstack.cpp"); -USEUNIT("OS.cpp"); -USEUNIT("Parse_Node.cpp"); -USEUNIT("Pipe.cpp"); -USEUNIT("Priority_Reactor.cpp"); -USEUNIT("Proactor.cpp"); -USEUNIT("Process.cpp"); -USEUNIT("Process_Manager.cpp"); -USEUNIT("Profile_Timer.cpp"); -USEUNIT("Reactor.cpp"); -USEUNIT("Read_Buffer.cpp"); -USEUNIT("Registry.cpp"); -USEUNIT("Registry_Name_Space.cpp"); -USEUNIT("Remote_Name_Space.cpp"); -USEUNIT("Remote_Tokens.cpp"); -USEUNIT("Sched_Params.cpp"); -USEUNIT("Select_Reactor.cpp"); -USEUNIT("Service_Config.cpp"); -USEUNIT("Service_Manager.cpp"); -USEUNIT("Service_Object.cpp"); -USEUNIT("Service_Repository.cpp"); -USEUNIT("Service_Types.cpp"); -USEUNIT("Shared_Memory.cpp"); -USEUNIT("Shared_Memory_MM.cpp"); -USEUNIT("Shared_Memory_SV.cpp"); -USEUNIT("Shared_Object.cpp"); -USEUNIT("Signal.cpp"); -USEUNIT("Singleton.cpp"); -USEUNIT("SOCK.cpp"); -USEUNIT("SOCK_Acceptor.cpp"); -USEUNIT("SOCK_CODgram.cpp"); -USEUNIT("SOCK_Connector.cpp"); -USEUNIT("SOCK_Dgram.cpp"); -USEUNIT("SOCK_Dgram_Bcast.cpp"); -USEUNIT("SOCK_Dgram_Mcast.cpp"); -USEUNIT("SOCK_IO.cpp"); -USEUNIT("SOCK_Stream.cpp"); -USEUNIT("SPIPE.cpp"); -USEUNIT("SPIPE_Acceptor.cpp"); -USEUNIT("SPIPE_Addr.cpp"); -USEUNIT("SPIPE_Connector.cpp"); -USEUNIT("SPIPE_Stream.cpp"); -USEUNIT("SString.cpp"); -USEUNIT("Strategies.cpp"); -USEUNIT("Strategies_T.cpp"); -USEUNIT("Stream.cpp"); -USEUNIT("Stream_Modules.cpp"); -USEUNIT("SV_Message.cpp"); -USEUNIT("SV_Message_Queue.cpp"); -USEUNIT("SV_Semaphore_Complex.cpp"); -USEUNIT("SV_Semaphore_Simple.cpp"); -USEUNIT("SV_Shared_Memory.cpp"); -USEUNIT("Svc_Conf_l.cpp"); -USEUNIT("Svc_Conf_y.cpp"); -USEUNIT("Svc_Handler.cpp"); -USEUNIT("Synch.cpp"); -USEUNIT("Synch_Options.cpp"); -USEUNIT("Synch_T.cpp"); -USEUNIT("System_Time.cpp"); -USEUNIT("Task.cpp"); -USEUNIT("Task_T.cpp"); -USEUNIT("Thread.cpp"); -USEUNIT("Thread_Manager.cpp"); -USEUNIT("Time_Request_Reply.cpp"); -USEUNIT("Timer_Hash.cpp"); -USEUNIT("Timer_Hash_T.cpp"); -USEUNIT("Timer_Heap.cpp"); -USEUNIT("Timer_Heap_T.cpp"); -USEUNIT("Timer_List.cpp"); -USEUNIT("Timer_List_T.cpp"); -USEUNIT("Timer_Queue.cpp"); -USEUNIT("Timer_Queue_Adapters.cpp"); -USEUNIT("Timer_Queue_T.cpp"); -USEUNIT("Timer_Wheel.cpp"); -USEUNIT("Timer_Wheel_T.cpp"); -USEUNIT("TLI.cpp"); -USEUNIT("TLI_Acceptor.cpp"); -USEUNIT("TLI_Connector.cpp"); -USEUNIT("TLI_Stream.cpp"); -USEUNIT("Token.cpp"); -USEUNIT("Token_Collection.cpp"); -USEUNIT("Token_Invariants.cpp"); -USEUNIT("Token_Manager.cpp"); -USEUNIT("Token_Request_Reply.cpp"); -USEUNIT("Trace.cpp"); -USEUNIT("TTY_IO.cpp"); -USEUNIT("Typed_SV_Message.cpp"); -USEUNIT("Typed_SV_Message_Queue.cpp"); -USEUNIT("UNIX_Addr.cpp"); -USEUNIT("UPIPE_Acceptor.cpp"); -USEUNIT("UPIPE_Connector.cpp"); -USEUNIT("UPIPE_Stream.cpp"); -USEUNIT("WFMO_Reactor.cpp"); -USEUNIT("XtReactor.cpp"); -//--------------------------------------------------------------------------- -#endif diff --git a/ace/ACE_Library.mak b/ace/ACE_Library.mak deleted file mode 100644 index afc28546ead..00000000000 --- a/ace/ACE_Library.mak +++ /dev/null @@ -1,12466 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.20 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -!IF "$(CFG)" == "" -CFG=ACE dynamic library - Win32 Unicode Debug -!MESSAGE No configuration specified. Defaulting to ACE dynamic library - Win32\ - Unicode Debug. -!ENDIF - -!IF "$(CFG)" != "ACE dynamic library - Win32 Debug" && "$(CFG)" !=\ - "ACE static library - Win32 Release" && "$(CFG)" !=\ - "ACE static library - Win32 Debug" && "$(CFG)" !=\ - "ACE static library - Win32 Unicode Debug" && "$(CFG)" !=\ - "ACE static library - Win32 Unicode Release" && "$(CFG)" !=\ - "ACE dynamic library - Win32 Unicode Debug" && "$(CFG)" !=\ - "ACE dynamic library - Win32 Unicode Release" && "$(CFG)" !=\ - "ACE dynamic library - Win32 Release" -!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 "ACE_Library.mak"\ - CFG="ACE dynamic library - Win32 Unicode Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ACE dynamic library - Win32 Debug" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ACE static library - Win32 Release" (based on\ - "Win32 (x86) Static Library") -!MESSAGE "ACE static library - Win32 Debug" (based on\ - "Win32 (x86) Static Library") -!MESSAGE "ACE static library - Win32 Unicode Debug" (based on\ - "Win32 (x86) Static Library") -!MESSAGE "ACE static library - Win32 Unicode Release" (based on\ - "Win32 (x86) Static Library") -!MESSAGE "ACE dynamic library - Win32 Unicode Debug" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ACE dynamic library - Win32 Unicode Release" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ACE dynamic library - Win32 Release" (based on\ - "Win32 (x86) Dynamic-Link Library") -!MESSAGE -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF -################################################################################ -# Begin Project -# PROP Target_Last_Scanned "ACE dynamic library - Win32 Release" - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "ACE dynamic library\Debug" -# PROP BASE Intermediate_Dir "ACE dynamic library\Debug" -# PROP BASE Target_Dir "ACE dynamic library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "DLL\Debug" -# PROP Target_Dir "ACE dynamic library" -OUTDIR=. -INTDIR=.\DLL\Debug - -ALL : "$(OUTDIR)\aced.dll" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\aced.dll" - -@erase "$(OUTDIR)\aced.exp" - -@erase "$(OUTDIR)\aced.ilk" - -@erase "$(OUTDIR)\aced.lib" - -@erase "$(OUTDIR)\aced.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\STL" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\STL" /D "_DEBUG" /D\ - "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /Fo"$(INTDIR)/" /Fd"$(INTDIR)/" /c -CPP_OBJS=.\DLL\Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /win32 -MTL_PROJ=/nologo /D "_DEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE dynamic library.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"aced.dll" -LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll\ - /incremental:yes /pdb:"$(OUTDIR)/aced.pdb" /debug /machine:I386\ - /out:"$(OUTDIR)/aced.dll" /implib:"$(OUTDIR)/aced.lib" -LINK32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\aced.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ACE static library\Release" -# PROP BASE Intermediate_Dir "ACE static library\Release" -# PROP BASE Target_Dir "ACE static library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "LIB\Release" -# PROP Target_Dir "ACE static library" -OUTDIR=. -INTDIR=.\LIB\Release - -ALL : "$(OUTDIR)\aces.lib" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\aces.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MT /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MT /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "WIN32" /D\ - "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /Fo"$(INTDIR)/" /c -CPP_OBJS=.\LIB\Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE static library.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"aces.lib" -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/aces.lib" -LIB32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\aces.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "ACE static library\Debug" -# PROP BASE Intermediate_Dir "ACE static library\Debug" -# PROP BASE Target_Dir "ACE static library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "LIB\Debug" -# PROP Target_Dir "ACE static library" -OUTDIR=. -INTDIR=.\LIB\Debug - -ALL : "$(OUTDIR)\acesd.lib" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\acesd.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MTd /W3 /GX /Z7 /Od /I "..\STL" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MTd /W3 /GX /Z7 /Od /I "..\STL" /D "_DEBUG" /D "WIN32" /D\ - "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /Fo"$(INTDIR)/" /c -CPP_OBJS=.\LIB\Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE static library.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"acesd.lib" -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/acesd.lib" -LIB32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\acesd.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "ACE static library\Unicode Debug" -# PROP BASE Intermediate_Dir "ACE static library\Unicode Debug" -# PROP BASE Target_Dir "ACE static library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "LIB\Unicode_Debug" -# PROP Target_Dir "ACE static library" -OUTDIR=. -INTDIR=.\LIB\Unicode_Debug - -ALL : "$(OUTDIR)\acesud.lib" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\acesud.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MTd /W3 /GX /Z7 /Od /I "..\STL" /D "_DEBUG" /D "UNICODE" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MTd /W3 /GX /Z7 /Od /I "..\STL" /D "_DEBUG" /D "UNICODE"\ - /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /Fo"$(INTDIR)/"\ - /c -CPP_OBJS=.\LIB\Unicode_Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE static library.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"acesud.lib" -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/acesud.lib" -LIB32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\acesud.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ACE static library\Unicode Release" -# PROP BASE Intermediate_Dir "ACE static library\Unicode Release" -# PROP BASE Target_Dir "ACE static library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "LIB\Unicode_Release" -# PROP Target_Dir "ACE static library" -OUTDIR=. -INTDIR=.\LIB\Unicode_Release - -ALL : "$(OUTDIR)\acesu.lib" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\acesu.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MT /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "UNICODE" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MT /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "UNICODE" /D\ - "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=0 /D __ACE_INLINE__=0 /Fo"$(INTDIR)/" /c -CPP_OBJS=.\LIB\Unicode_Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE static library.bsc" -BSC32_SBRS= \ - -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"acesu.lib" -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/acesu.lib" -LIB32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\acesu.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "ACE dynamic library\Unicode Debug" -# PROP BASE Intermediate_Dir "ACE dynamic library\Unicode Debug" -# PROP BASE Target_Dir "ACE dynamic library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "" -# PROP Intermediate_Dir "DLL\Unicode_Debug" -# PROP Target_Dir "ACE dynamic library" -OUTDIR=. -INTDIR=.\DLL\Unicode_Debug - -ALL : "$(OUTDIR)\aceud.dll" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\vc40.idb" - -@erase "$(INTDIR)\vc40.pdb" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\aceud.dll" - -@erase "$(OUTDIR)\aceud.exp" - -@erase "$(OUTDIR)\aceud.ilk" - -@erase "$(OUTDIR)\aceud.lib" - -@erase "$(OUTDIR)\aceud.pdb" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\STL" /D "_DEBUG" /D "UNICODE" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MDd /W3 /Gm /GX /Zi /Od /I "..\STL" /D "_DEBUG" /D\ - "UNICODE" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /Fo"$(INTDIR)/"\ - /Fd"$(INTDIR)/" /c -CPP_OBJS=.\DLL\Unicode_Debug/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /win32 -MTL_PROJ=/nologo /D "_DEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE dynamic library.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 -# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"aceud.dll" -LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll\ - /incremental:yes /pdb:"$(OUTDIR)/aceud.pdb" /debug /machine:I386\ - /out:"$(OUTDIR)/aceud.dll" /implib:"$(OUTDIR)/aceud.lib" -LINK32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\aceud.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ACE dynamic library\Unicode Release" -# PROP BASE Intermediate_Dir "ACE dynamic library\Unicode Release" -# PROP BASE Target_Dir "ACE dynamic library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "DLL\Unicode_Release" -# PROP Target_Dir "ACE dynamic library" -OUTDIR=. -INTDIR=.\DLL\Unicode_Release - -ALL : "$(OUTDIR)\aceu.dll" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\aceu.dll" - -@erase "$(OUTDIR)\aceu.exp" - -@erase "$(OUTDIR)\aceu.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "UNICODE" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MD /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "UNICODE" /D\ - "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /Fo"$(INTDIR)/" /c -CPP_OBJS=.\DLL\Unicode_Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /win32 -MTL_PROJ=/nologo /D "NDEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE dynamic library.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"aceu.dll" -LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll\ - /incremental:no /pdb:"$(OUTDIR)/aceu.pdb" /machine:I386\ - /out:"$(OUTDIR)/aceu.dll" /implib:"$(OUTDIR)/aceu.lib" -LINK32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\aceu.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "ACE dynamic library\Release" -# PROP BASE Intermediate_Dir "ACE dynamic library\Release" -# PROP BASE Target_Dir "ACE dynamic library" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "" -# PROP Intermediate_Dir "DLL\Release" -# PROP Target_Dir "ACE dynamic library" -OUTDIR=. -INTDIR=.\DLL\Release - -ALL : "$(OUTDIR)\ace.dll" - -CLEAN : - -@erase "$(INTDIR)\ACE.obj" - -@erase "$(INTDIR)\Activation_Queue.obj" - -@erase "$(INTDIR)\Addr.obj" - -@erase "$(INTDIR)\Arg_Shifter.obj" - -@erase "$(INTDIR)\ARGV.obj" - -@erase "$(INTDIR)\Asynch_IO.obj" - -@erase "$(INTDIR)\Basic_Types.obj" - -@erase "$(INTDIR)\CORBA_Handler.obj" - -@erase "$(INTDIR)\Date_Time.obj" - -@erase "$(INTDIR)\DEV.obj" - -@erase "$(INTDIR)\DEV_Addr.obj" - -@erase "$(INTDIR)\DEV_Connector.obj" - -@erase "$(INTDIR)\DEV_IO.obj" - -@erase "$(INTDIR)\Dump.obj" - -@erase "$(INTDIR)\Dynamic.obj" - -@erase "$(INTDIR)\Event_Handler.obj" - -@erase "$(INTDIR)\FIFO.obj" - -@erase "$(INTDIR)\FIFO_Recv.obj" - -@erase "$(INTDIR)\FIFO_Recv_Msg.obj" - -@erase "$(INTDIR)\FIFO_Send.obj" - -@erase "$(INTDIR)\FIFO_Send_Msg.obj" - -@erase "$(INTDIR)\FILE.obj" - -@erase "$(INTDIR)\FILE_Addr.obj" - -@erase "$(INTDIR)\FILE_Connector.obj" - -@erase "$(INTDIR)\FILE_IO.obj" - -@erase "$(INTDIR)\Filecache.obj" - -@erase "$(INTDIR)\Get_Opt.obj" - -@erase "$(INTDIR)\Handle_Set.obj" - -@erase "$(INTDIR)\High_Res_Timer.obj" - -@erase "$(INTDIR)\INET_Addr.obj" - -@erase "$(INTDIR)\IO_Cntl_Msg.obj" - -@erase "$(INTDIR)\IO_SAP.obj" - -@erase "$(INTDIR)\IOStream.obj" - -@erase "$(INTDIR)\IPC_SAP.obj" - -@erase "$(INTDIR)\Local_Name_Space.obj" - -@erase "$(INTDIR)\Local_Tokens.obj" - -@erase "$(INTDIR)\Log_Msg.obj" - -@erase "$(INTDIR)\Log_Record.obj" - -@erase "$(INTDIR)\LSOCK.obj" - -@erase "$(INTDIR)\LSOCK_Acceptor.obj" - -@erase "$(INTDIR)\LSOCK_CODgram.obj" - -@erase "$(INTDIR)\LSOCK_Connector.obj" - -@erase "$(INTDIR)\LSOCK_Dgram.obj" - -@erase "$(INTDIR)\LSOCK_Stream.obj" - -@erase "$(INTDIR)\Malloc.obj" - -@erase "$(INTDIR)\Mem_Map.obj" - -@erase "$(INTDIR)\Memory_Pool.obj" - -@erase "$(INTDIR)\Message_Block.obj" - -@erase "$(INTDIR)\Method_Object.obj" - -@erase "$(INTDIR)\Msg_WFMO_Reactor.obj" - -@erase "$(INTDIR)\Multiplexor.obj" - -@erase "$(INTDIR)\Name_Proxy.obj" - -@erase "$(INTDIR)\Name_Request_Reply.obj" - -@erase "$(INTDIR)\Name_Space.obj" - -@erase "$(INTDIR)\Naming_Context.obj" - -@erase "$(INTDIR)\Object_Manager.obj" - -@erase "$(INTDIR)\Obstack.obj" - -@erase "$(INTDIR)\OS.obj" - -@erase "$(INTDIR)\Parse_Node.obj" - -@erase "$(INTDIR)\Pipe.obj" - -@erase "$(INTDIR)\Priority_Reactor.obj" - -@erase "$(INTDIR)\Proactor.obj" - -@erase "$(INTDIR)\Process.obj" - -@erase "$(INTDIR)\Process_Manager.obj" - -@erase "$(INTDIR)\Profile_Timer.obj" - -@erase "$(INTDIR)\Reactor.obj" - -@erase "$(INTDIR)\Read_Buffer.obj" - -@erase "$(INTDIR)\Registry.obj" - -@erase "$(INTDIR)\Registry_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Name_Space.obj" - -@erase "$(INTDIR)\Remote_Tokens.obj" - -@erase "$(INTDIR)\Sched_Params.obj" - -@erase "$(INTDIR)\Select_Reactor.obj" - -@erase "$(INTDIR)\Service_Config.obj" - -@erase "$(INTDIR)\Service_Manager.obj" - -@erase "$(INTDIR)\Service_Object.obj" - -@erase "$(INTDIR)\Service_Repository.obj" - -@erase "$(INTDIR)\Service_Types.obj" - -@erase "$(INTDIR)\Shared_Memory.obj" - -@erase "$(INTDIR)\Shared_Memory_MM.obj" - -@erase "$(INTDIR)\Shared_Memory_SV.obj" - -@erase "$(INTDIR)\Shared_Object.obj" - -@erase "$(INTDIR)\Signal.obj" - -@erase "$(INTDIR)\SOCK.obj" - -@erase "$(INTDIR)\SOCK_Acceptor.obj" - -@erase "$(INTDIR)\SOCK_CODgram.obj" - -@erase "$(INTDIR)\SOCK_Connector.obj" - -@erase "$(INTDIR)\SOCK_Dgram.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Bcast.obj" - -@erase "$(INTDIR)\SOCK_Dgram_Mcast.obj" - -@erase "$(INTDIR)\SOCK_IO.obj" - -@erase "$(INTDIR)\SOCK_Stream.obj" - -@erase "$(INTDIR)\SPIPE.obj" - -@erase "$(INTDIR)\SPIPE_Acceptor.obj" - -@erase "$(INTDIR)\SPIPE_Addr.obj" - -@erase "$(INTDIR)\SPIPE_Connector.obj" - -@erase "$(INTDIR)\SPIPE_Stream.obj" - -@erase "$(INTDIR)\SString.obj" - -@erase "$(INTDIR)\Stats.obj" - -@erase "$(INTDIR)\Strategies.obj" - -@erase "$(INTDIR)\SV_Message.obj" - -@erase "$(INTDIR)\SV_Message_Queue.obj" - -@erase "$(INTDIR)\SV_Semaphore_Complex.obj" - -@erase "$(INTDIR)\SV_Semaphore_Simple.obj" - -@erase "$(INTDIR)\SV_Shared_Memory.obj" - -@erase "$(INTDIR)\Svc_Conf_l.obj" - -@erase "$(INTDIR)\Svc_Conf_y.obj" - -@erase "$(INTDIR)\Synch.obj" - -@erase "$(INTDIR)\Synch_Options.obj" - -@erase "$(INTDIR)\System_Time.obj" - -@erase "$(INTDIR)\Task.obj" - -@erase "$(INTDIR)\Thread.obj" - -@erase "$(INTDIR)\Thread_Manager.obj" - -@erase "$(INTDIR)\Time_Request_Reply.obj" - -@erase "$(INTDIR)\Timer_Queue.obj" - -@erase "$(INTDIR)\TLI.obj" - -@erase "$(INTDIR)\TLI_Acceptor.obj" - -@erase "$(INTDIR)\TLI_Connector.obj" - -@erase "$(INTDIR)\TLI_Stream.obj" - -@erase "$(INTDIR)\Token.obj" - -@erase "$(INTDIR)\Token_Collection.obj" - -@erase "$(INTDIR)\Token_Invariants.obj" - -@erase "$(INTDIR)\Token_Manager.obj" - -@erase "$(INTDIR)\Token_Request_Reply.obj" - -@erase "$(INTDIR)\Trace.obj" - -@erase "$(INTDIR)\TTY_IO.obj" - -@erase "$(INTDIR)\UNIX_Addr.obj" - -@erase "$(INTDIR)\UPIPE_Acceptor.obj" - -@erase "$(INTDIR)\UPIPE_Connector.obj" - -@erase "$(INTDIR)\UPIPE_Stream.obj" - -@erase "$(INTDIR)\WFMO_Reactor.obj" - -@erase "$(OUTDIR)\ace.dll" - -@erase "$(OUTDIR)\ace.exp" - -@erase "$(OUTDIR)\ace.lib" - -"$(INTDIR)" : - if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" - -CPP=cl.exe -# ADD BASE CPP /nologo /G5 /MD /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /YX /c -# ADD CPP /nologo /G5 /MD /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D ACE_HAS_DLL=1 /c -# SUBTRACT CPP /YX -CPP_PROJ=/nologo /G5 /MD /W3 /GX /O2 /I "..\STL" /D "NDEBUG" /D "WIN32" /D\ - "_WINDOWS" /D ACE_HAS_DLL=1 /Fo"$(INTDIR)/" /c -CPP_OBJS=.\DLL\Release/ -CPP_SBRS=.\. - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -MTL=mktyplib.exe -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /win32 -MTL_PROJ=/nologo /D "NDEBUG" /win32 -RSC=rc.exe -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/ACE dynamic library.bsc" -BSC32_SBRS= \ - -LINK32=link.exe -# ADD BASE LINK32 advapi32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"ace.dll" -# ADD LINK32 advapi32.lib user32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"ace.dll" -LINK32_FLAGS=advapi32.lib user32.lib /nologo /subsystem:windows /dll\ - /incremental:no /pdb:"$(OUTDIR)/ace.pdb" /machine:I386 /out:"$(OUTDIR)/ace.dll"\ - /implib:"$(OUTDIR)/ace.lib" -LINK32_OBJS= \ - "$(INTDIR)\ACE.obj" \ - "$(INTDIR)\Activation_Queue.obj" \ - "$(INTDIR)\Addr.obj" \ - "$(INTDIR)\Arg_Shifter.obj" \ - "$(INTDIR)\ARGV.obj" \ - "$(INTDIR)\Asynch_IO.obj" \ - "$(INTDIR)\Basic_Types.obj" \ - "$(INTDIR)\CORBA_Handler.obj" \ - "$(INTDIR)\Date_Time.obj" \ - "$(INTDIR)\DEV.obj" \ - "$(INTDIR)\DEV_Addr.obj" \ - "$(INTDIR)\DEV_Connector.obj" \ - "$(INTDIR)\DEV_IO.obj" \ - "$(INTDIR)\Dump.obj" \ - "$(INTDIR)\Dynamic.obj" \ - "$(INTDIR)\Event_Handler.obj" \ - "$(INTDIR)\FIFO.obj" \ - "$(INTDIR)\FIFO_Recv.obj" \ - "$(INTDIR)\FIFO_Recv_Msg.obj" \ - "$(INTDIR)\FIFO_Send.obj" \ - "$(INTDIR)\FIFO_Send_Msg.obj" \ - "$(INTDIR)\FILE.obj" \ - "$(INTDIR)\FILE_Addr.obj" \ - "$(INTDIR)\FILE_Connector.obj" \ - "$(INTDIR)\FILE_IO.obj" \ - "$(INTDIR)\Filecache.obj" \ - "$(INTDIR)\Get_Opt.obj" \ - "$(INTDIR)\Handle_Set.obj" \ - "$(INTDIR)\High_Res_Timer.obj" \ - "$(INTDIR)\INET_Addr.obj" \ - "$(INTDIR)\IO_Cntl_Msg.obj" \ - "$(INTDIR)\IO_SAP.obj" \ - "$(INTDIR)\IOStream.obj" \ - "$(INTDIR)\IPC_SAP.obj" \ - "$(INTDIR)\Local_Name_Space.obj" \ - "$(INTDIR)\Local_Tokens.obj" \ - "$(INTDIR)\Log_Msg.obj" \ - "$(INTDIR)\Log_Record.obj" \ - "$(INTDIR)\LSOCK.obj" \ - "$(INTDIR)\LSOCK_Acceptor.obj" \ - "$(INTDIR)\LSOCK_CODgram.obj" \ - "$(INTDIR)\LSOCK_Connector.obj" \ - "$(INTDIR)\LSOCK_Dgram.obj" \ - "$(INTDIR)\LSOCK_Stream.obj" \ - "$(INTDIR)\Malloc.obj" \ - "$(INTDIR)\Mem_Map.obj" \ - "$(INTDIR)\Memory_Pool.obj" \ - "$(INTDIR)\Message_Block.obj" \ - "$(INTDIR)\Method_Object.obj" \ - "$(INTDIR)\Msg_WFMO_Reactor.obj" \ - "$(INTDIR)\Multiplexor.obj" \ - "$(INTDIR)\Name_Proxy.obj" \ - "$(INTDIR)\Name_Request_Reply.obj" \ - "$(INTDIR)\Name_Space.obj" \ - "$(INTDIR)\Naming_Context.obj" \ - "$(INTDIR)\Object_Manager.obj" \ - "$(INTDIR)\Obstack.obj" \ - "$(INTDIR)\OS.obj" \ - "$(INTDIR)\Parse_Node.obj" \ - "$(INTDIR)\Pipe.obj" \ - "$(INTDIR)\Priority_Reactor.obj" \ - "$(INTDIR)\Proactor.obj" \ - "$(INTDIR)\Process.obj" \ - "$(INTDIR)\Process_Manager.obj" \ - "$(INTDIR)\Profile_Timer.obj" \ - "$(INTDIR)\Reactor.obj" \ - "$(INTDIR)\Read_Buffer.obj" \ - "$(INTDIR)\Registry.obj" \ - "$(INTDIR)\Registry_Name_Space.obj" \ - "$(INTDIR)\Remote_Name_Space.obj" \ - "$(INTDIR)\Remote_Tokens.obj" \ - "$(INTDIR)\Sched_Params.obj" \ - "$(INTDIR)\Select_Reactor.obj" \ - "$(INTDIR)\Service_Config.obj" \ - "$(INTDIR)\Service_Manager.obj" \ - "$(INTDIR)\Service_Object.obj" \ - "$(INTDIR)\Service_Repository.obj" \ - "$(INTDIR)\Service_Types.obj" \ - "$(INTDIR)\Shared_Memory.obj" \ - "$(INTDIR)\Shared_Memory_MM.obj" \ - "$(INTDIR)\Shared_Memory_SV.obj" \ - "$(INTDIR)\Shared_Object.obj" \ - "$(INTDIR)\Signal.obj" \ - "$(INTDIR)\SOCK.obj" \ - "$(INTDIR)\SOCK_Acceptor.obj" \ - "$(INTDIR)\SOCK_CODgram.obj" \ - "$(INTDIR)\SOCK_Connector.obj" \ - "$(INTDIR)\SOCK_Dgram.obj" \ - "$(INTDIR)\SOCK_Dgram_Bcast.obj" \ - "$(INTDIR)\SOCK_Dgram_Mcast.obj" \ - "$(INTDIR)\SOCK_IO.obj" \ - "$(INTDIR)\SOCK_Stream.obj" \ - "$(INTDIR)\SPIPE.obj" \ - "$(INTDIR)\SPIPE_Acceptor.obj" \ - "$(INTDIR)\SPIPE_Addr.obj" \ - "$(INTDIR)\SPIPE_Connector.obj" \ - "$(INTDIR)\SPIPE_Stream.obj" \ - "$(INTDIR)\SString.obj" \ - "$(INTDIR)\Stats.obj" \ - "$(INTDIR)\Strategies.obj" \ - "$(INTDIR)\SV_Message.obj" \ - "$(INTDIR)\SV_Message_Queue.obj" \ - "$(INTDIR)\SV_Semaphore_Complex.obj" \ - "$(INTDIR)\SV_Semaphore_Simple.obj" \ - "$(INTDIR)\SV_Shared_Memory.obj" \ - "$(INTDIR)\Svc_Conf_l.obj" \ - "$(INTDIR)\Svc_Conf_y.obj" \ - "$(INTDIR)\Synch.obj" \ - "$(INTDIR)\Synch_Options.obj" \ - "$(INTDIR)\System_Time.obj" \ - "$(INTDIR)\Task.obj" \ - "$(INTDIR)\Thread.obj" \ - "$(INTDIR)\Thread_Manager.obj" \ - "$(INTDIR)\Time_Request_Reply.obj" \ - "$(INTDIR)\Timer_Queue.obj" \ - "$(INTDIR)\TLI.obj" \ - "$(INTDIR)\TLI_Acceptor.obj" \ - "$(INTDIR)\TLI_Connector.obj" \ - "$(INTDIR)\TLI_Stream.obj" \ - "$(INTDIR)\Token.obj" \ - "$(INTDIR)\Token_Collection.obj" \ - "$(INTDIR)\Token_Invariants.obj" \ - "$(INTDIR)\Token_Manager.obj" \ - "$(INTDIR)\Token_Request_Reply.obj" \ - "$(INTDIR)\Trace.obj" \ - "$(INTDIR)\TTY_IO.obj" \ - "$(INTDIR)\UNIX_Addr.obj" \ - "$(INTDIR)\UPIPE_Acceptor.obj" \ - "$(INTDIR)\UPIPE_Connector.obj" \ - "$(INTDIR)\UPIPE_Stream.obj" \ - "$(INTDIR)\WFMO_Reactor.obj" - -"$(OUTDIR)\ace.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) - $(LINK32) @<< - $(LINK32_FLAGS) $(LINK32_OBJS) -<< - -!ENDIF - -################################################################################ -# Begin Target - -# Name "ACE dynamic library - Win32 Debug" -# Name "ACE dynamic library - Win32 Unicode Debug" -# Name "ACE dynamic library - Win32 Unicode Release" -# Name "ACE dynamic library - Win32 Release" - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Stream.cpp -NODEP_CPP_UPIPE=\ - ".\ace\UPIPE_Stream.h"\ - ".\ace\UPIPE_Stream.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Connector.cpp -NODEP_CPP_UPIPE_=\ - ".\ace\UPIPE_Connector.h"\ - ".\ace\UPIPE_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Acceptor.cpp -NODEP_CPP_UPIPE_A=\ - ".\ace\UPIPE_Acceptor.h"\ - ".\ace\UPIPE_Acceptor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UNIX_Addr.cpp -NODEP_CPP_UNIX_=\ - ".\ace\UNIX_Addr.h"\ - ".\ace\UNIX_Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TTY_IO.cpp -NODEP_CPP_TTY_I=\ - ".\ace\TTY_IO.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Trace.cpp -NODEP_CPP_TRACE=\ - ".\ace\ACE.h"\ - ".\ace\inc_user_config.h"\ - ".\ace\Log_Msg.h"\ - ".\ace\Trace.h"\ - ".\ace\Trace.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Request_Reply.cpp -NODEP_CPP_TOKEN=\ - ".\ace\Token_Request_Reply.h"\ - ".\ace\Token_Request_Reply.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Manager.cpp -NODEP_CPP_TOKEN_=\ - ".\ace\Object_Manager.h"\ - ".\ace\Token_Manager.h"\ - ".\ace\Token_Manager.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Invariants.cpp -NODEP_CPP_TOKEN_I=\ - ".\ace\Object_Manager.h"\ - ".\ace\Token_Invariants.h"\ - ".\ace\Token_Invariants.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Collection.cpp -NODEP_CPP_TOKEN_C=\ - ".\ace\Token_Collection.h"\ - ".\ace\Token_Collection.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token.cpp -NODEP_CPP_TOKEN_CP=\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - ".\ace\Token.h"\ - ".\ace\Token.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Stream.cpp -NODEP_CPP_TLI_S=\ - ".\ace\TLI_Stream.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Connector.cpp -NODEP_CPP_TLI_C=\ - ".\ace\Handle_Set.h"\ - ".\ace\TLI_Connector.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Acceptor.cpp -NODEP_CPP_TLI_A=\ - ".\ace\TLI_Acceptor.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI.cpp -NODEP_CPP_TLI_CP=\ - ".\ace\TLI.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Timer_Queue.cpp -NODEP_CPP_TIMER=\ - ".\ace\Containers.h"\ - ".\ace\Timer_Hash.h"\ - ".\ace\Timer_Queue.h"\ - ".\ace\Timer_Queue_T.cpp"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Time_Request_Reply.cpp -NODEP_CPP_TIME_=\ - ".\ace\Time_Request_Reply.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Thread_Manager.cpp -NODEP_CPP_THREA=\ - ".\ace\Dynamic.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Singleton.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread_Manager.h"\ - ".\ace\Thread_Manager.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Thread.cpp -NODEP_CPP_THREAD=\ - ".\ace\Thread.h"\ - ".\ace\Thread.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Task.cpp -NODEP_CPP_TASK_=\ - ".\ace\Module.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Task.h"\ - ".\ace\Task.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\System_Time.cpp -NODEP_CPP_SYSTE=\ - ".\ace\System_Time.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Synch_Options.cpp -NODEP_CPP_SYNCH=\ - ".\ace\Synch_Options.h"\ - ".\ace\Synch_Options.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Synch.cpp -NODEP_CPP_SYNCH_=\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch.h"\ - ".\ace\Synch.i"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Svc_Conf_y.cpp -NODEP_CPP_SVC_C=\ - ".\ace\ARGV.h"\ - ".\ace\Module.h"\ - ".\ace\Stream.h"\ - ".\ace\Svc_Conf.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Svc_Conf_l.cpp -NODEP_CPP_SVC_CO=\ - ".\ace\OS.h"\ - ".\ace\Svc_Conf.h"\ - ".\ace\Svc_Conf_Tokens.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Shared_Memory.cpp -NODEP_CPP_SV_SH=\ - ".\ace\SV_Shared_Memory.h"\ - ".\ace\SV_Shared_Memory.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Semaphore_Simple.cpp -NODEP_CPP_SV_SE=\ - ".\ace\SV_Semaphore_Simple.h"\ - ".\ace\SV_Semaphore_Simple.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Semaphore_Complex.cpp -NODEP_CPP_SV_SEM=\ - ".\ace\SV_Semaphore_Complex.h"\ - ".\ace\SV_Semaphore_Complex.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Message_Queue.cpp -NODEP_CPP_SV_ME=\ - ".\ace\SV_Message_Queue.h"\ - ".\ace\SV_Message_Queue.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Message.cpp -NODEP_CPP_SV_MES=\ - ".\ace\SV_Message.h"\ - ".\ace\SV_Message.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Strategies.cpp -NODEP_CPP_STRAT=\ - ".\ace\Reactor.h"\ - ".\ace\Strategies.h"\ - ".\ace\Strategies.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SString.cpp -NODEP_CPP_SSTRI=\ - ".\ace\Malloc.h"\ - ".\ace\Service_Config.h"\ - ".\ace\SString.h"\ - ".\ace\SString.i"\ - ".\ace\streams.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Stream.cpp -NODEP_CPP_SPIPE=\ - ".\ace\SPIPE_Stream.h"\ - ".\ace\SPIPE_Stream.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Connector.cpp -NODEP_CPP_SPIPE_=\ - ".\ace\SPIPE_Connector.h"\ - ".\ace\SPIPE_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Addr.cpp -NODEP_CPP_SPIPE_A=\ - ".\ace\SPIPE_Addr.h"\ - ".\ace\SPIPE_Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Acceptor.cpp -NODEP_CPP_SPIPE_AC=\ - ".\ace\SPIPE_Acceptor.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE.cpp -NODEP_CPP_SPIPE_C=\ - ".\ace\SPIPE.h"\ - ".\ace\SPIPE.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Stream.cpp -NODEP_CPP_SOCK_=\ - ".\ace\SOCK_Stream.h"\ - ".\ace\SOCK_Stream.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_IO.cpp -NODEP_CPP_SOCK_I=\ - ".\ace\SOCK_IO.h"\ - ".\ace\SOCK_IO.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram_Mcast.cpp -NODEP_CPP_SOCK_D=\ - ".\ace\INET_Addr.h"\ - ".\ace\SOCK_Dgram_Mcast.h"\ - ".\ace\SOCK_Dgram_Mcast.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram_Bcast.cpp -NODEP_CPP_SOCK_DG=\ - ".\ace\SOCK_Dgram_Bcast.h"\ - ".\ace\SOCK_Dgram_Bcast.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram.cpp -NODEP_CPP_SOCK_DGR=\ - ".\ace\Handle_Set.h"\ - ".\ace\SOCK_Dgram.h"\ - ".\ace\SOCK_Dgram.i"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Connector.cpp -NODEP_CPP_SOCK_C=\ - ".\ace\Handle_Set.h"\ - ".\ace\INET_Addr.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\SOCK_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_CODgram.cpp -NODEP_CPP_SOCK_CO=\ - ".\ace\SOCK_CODgram.h"\ - ".\ace\SOCK_CODgram.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Acceptor.cpp -NODEP_CPP_SOCK_A=\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Acceptor.i"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK.cpp -NODEP_CPP_SOCK_CP=\ - ".\ace\SOCK.h"\ - ".\ace\SOCK.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Signal.cpp -NODEP_CPP_SIGNA=\ - ".\ace\Object_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\Signal.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Object.cpp -NODEP_CPP_SHARE=\ - ".\ace\Shared_Object.h"\ - ".\ace\Shared_Object.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory_SV.cpp -NODEP_CPP_SHARED=\ - ".\ace\Shared_Memory_SV.h"\ - ".\ace\Shared_Memory_SV.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory_MM.cpp -NODEP_CPP_SHARED_=\ - ".\ace\Shared_Memory_MM.h"\ - ".\ace\Shared_Memory_MM.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Repository.cpp -NODEP_CPP_SERVI=\ - ".\ace\Object_Manager.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Service_Repository.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Object.cpp -NODEP_CPP_SERVIC=\ - ".\ace\Service_Object.h"\ - ".\ace\Service_Object.i"\ - ".\ace\Service_Types.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Manager.cpp -NODEP_CPP_SERVICE=\ - ".\ace\Get_Opt.h"\ - ".\ace\Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Manager.h"\ - ".\ace\Service_Manager.i"\ - ".\ace\Service_Repository.h"\ - ".\ace\WFMO_Reactor.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Config.cpp -NODEP_CPP_SERVICE_=\ - ".\ace\ARGV.h"\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Containers.h"\ - ".\ace\Get_Opt.h"\ - ".\ace\Malloc.h"\ - ".\ace\Proactor.h"\ - ".\ace\Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Config.i"\ - ".\ace\Service_Manager.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Service_Types.h"\ - ".\ace\Svc_Conf.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Sched_Params.cpp -NODEP_CPP_SCHED=\ - ".\ace\ACE.h"\ - ".\ace\Sched_Params.h"\ - ".\ace\Sched_Params.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Remote_Tokens.cpp -NODEP_CPP_REMOT=\ - ".\ace\Remote_Tokens.h"\ - ".\ace\Remote_Tokens.i"\ - ".\ace\Singleton.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Remote_Name_Space.cpp -NODEP_CPP_REMOTE=\ - ".\ace\Remote_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Registry_Name_Space.cpp -NODEP_CPP_REGIS=\ - ".\ace\Registry_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Registry.cpp -NODEP_CPP_REGIST=\ - ".\ace\Registry.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Read_Buffer.cpp -NODEP_CPP_READ_=\ - ".\ace\Read_Buffer.h"\ - ".\ace\Read_Buffer.i"\ - ".\ace\Service_Config.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Reactor.cpp -NODEP_CPP_REACT=\ - ".\ace\Handle_Set.h"\ - ".\ace\Msg_WFMO_Reactor.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Reactor.h"\ - ".\ace\Reactor.i"\ - ".\ace\Reactor_Impl.h"\ - ".\ace\Select_Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\WFMO_Reactor.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Profile_Timer.cpp -NODEP_CPP_PROFI=\ - ".\ace\Profile_Timer.h"\ - ".\ace\Profile_Timer.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Process_Manager.cpp -NODEP_CPP_PROCE=\ - ".\ace\Process.h"\ - ".\ace\Process_Manager.h"\ - ".\ace\Process_Manager.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Process.cpp -NODEP_CPP_PROCES=\ - ".\ace\ARGV.h"\ - ".\ace\Process.h"\ - ".\ace\Process.i"\ - ".\ace\SString.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Proactor.cpp -NODEP_CPP_PROAC=\ - ".\ace\Log_Msg.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Proactor.h"\ - ".\ace\Proactor.i"\ - ".\ace\Task_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Pipe.cpp -NODEP_CPP_PIPE_=\ - ".\ace\Pipe.h"\ - ".\ace\Pipe.i"\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Connector.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Parse_Node.cpp -NODEP_CPP_PARSE=\ - ".\ace\Parse_Node.h"\ - ".\ace\Parse_Node.i"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Task.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\OS.cpp -NODEP_CPP_OS_CP=\ - ".\ace\ARGV.h"\ - ".\ace\Array.h"\ - ".\ace\Containers.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\OS.h"\ - ".\ace\OS.i"\ - ".\ace\Sched_Params.h"\ - ".\ace\SString.h"\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Task.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Obstack.cpp -NODEP_CPP_OBSTA=\ - ".\ace\Obstack.h"\ - ".\ace\Obstack.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Object_Manager.cpp -NODEP_CPP_OBJEC=\ - ".\ace\Array.h"\ - ".\ace\Containers.h"\ - ".\ace\Log_Msg.h"\ - ".\ace\Malloc.h"\ - ".\ace\Naming_Context.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Object_Manager.i"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\Synch.h"\ - ".\ace\Token_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Naming_Context.cpp -NODEP_CPP_NAMIN=\ - ".\ace\Get_Opt.h"\ - ".\ace\Local_Name_Space_T.h"\ - ".\ace\Memory_Pool.h"\ - ".\ace\Naming_Context.h"\ - ".\ace\Registry_Name_Space.h"\ - ".\ace\Remote_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Space.cpp -NODEP_CPP_NAME_=\ - ".\ace\Name_Space.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Request_Reply.cpp -NODEP_CPP_NAME_R=\ - ".\ace\Name_Request_Reply.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Proxy.cpp -NODEP_CPP_NAME_P=\ - ".\ace\Name_Proxy.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Multiplexor.cpp -NODEP_CPP_MULTI=\ - ".\ace\Multiplexor.h"\ - ".\ace\Multiplexor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Method_Object.cpp -NODEP_CPP_METHO=\ - ".\ace\Method_Object.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Message_Block.cpp -NODEP_CPP_MESSA=\ - ".\ace\Message_Block.h"\ - ".\ace\Message_Block.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Memory_Pool.cpp -NODEP_CPP_MEMOR=\ - ".\ace\Memory_Pool.h"\ - ".\ace\Memory_Pool.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Mem_Map.cpp -NODEP_CPP_MEM_M=\ - ".\ace\Mem_Map.h"\ - ".\ace\Mem_Map.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Malloc.cpp -NODEP_CPP_MALLO=\ - ".\ace\Malloc.h"\ - ".\ace\Malloc.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Stream.cpp -NODEP_CPP_LSOCK=\ - ".\ace\LSOCK_Stream.h"\ - ".\ace\LSOCK_Stream.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Dgram.cpp -NODEP_CPP_LSOCK_=\ - ".\ace\LSOCK_Dgram.h"\ - ".\ace\LSOCK_Dgram.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Connector.cpp -NODEP_CPP_LSOCK_C=\ - ".\ace\LSOCK_Connector.h"\ - ".\ace\LSOCK_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_CODgram.cpp -NODEP_CPP_LSOCK_CO=\ - ".\ace\LSOCK_CODgram.h"\ - ".\ace\LSOCK_CODgram.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Acceptor.cpp -NODEP_CPP_LSOCK_A=\ - ".\ace\LSOCK_Acceptor.h"\ - ".\ace\LSOCK_Acceptor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK.cpp -NODEP_CPP_LSOCK_CP=\ - ".\ace\LSOCK.h"\ - ".\ace\LSOCK.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Log_Record.cpp -NODEP_CPP_LOG_R=\ - ".\ace\Log_Record.h"\ - ".\ace\LOG_Record.i"\ - ".\ace\streams.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Log_Msg.cpp -NODEP_CPP_LOG_M=\ - ".\ace\ACE.h"\ - ".\ace\inc_user_config.h"\ - ".\ace\Managed_Object.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\SPIPE_Connector.h"\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Local_Tokens.cpp -NODEP_CPP_LOCAL=\ - ".\ace\Local_Tokens.h"\ - ".\ace\Local_Tokens.i"\ - ".\ace\Thread.h"\ - ".\ace\Token_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Local_Name_Space.cpp -NODEP_CPP_LOCAL_=\ - ".\ace\ACE.h"\ - ".\ace\Local_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IPC_SAP.cpp -NODEP_CPP_IPC_S=\ - ".\ace\IPC_SAP.h"\ - ".\ace\IPC_SAP.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IOStream.cpp -NODEP_CPP_IOSTR=\ - ".\ace\IOStream.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IO_SAP.cpp -NODEP_CPP_IO_SA=\ - ".\ace\IO_SAP.h"\ - ".\ace\IO_SAP.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IO_Cntl_Msg.cpp - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\INET_Addr.cpp -NODEP_CPP_INET_=\ - ".\ace\INET_Addr.h"\ - ".\ace\INET_Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\High_Res_Timer.cpp -NODEP_CPP_HIGH_=\ - ".\ace\High_Res_Timer.h"\ - ".\ace\High_Res_Timer.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Stats.h"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Handle_Set.cpp -NODEP_CPP_HANDL=\ - ".\ace\Handle_Set.h"\ - ".\ace\Handle_Set.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Get_Opt.cpp -NODEP_CPP_GET_O=\ - ".\ace\Get_Opt.h"\ - ".\ace\Get_Opt.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Filecache.cpp -NODEP_CPP_FILEC=\ - ".\ace\Filecache.h"\ - ".\ace\Object_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_IO.cpp -NODEP_CPP_FILE_=\ - ".\ace\FILE_IO.h"\ - ".\ace\FILE_IO.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_Connector.cpp -NODEP_CPP_FILE_C=\ - ".\ace\FILE_Connector.h"\ - ".\ace\FILE_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_Addr.cpp -NODEP_CPP_FILE_A=\ - ".\ace\FILE_Addr.h"\ - ".\ace\FILE_Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE.cpp -NODEP_CPP_FILE_CP=\ - ".\ace\FILE.h"\ - ".\ace\FILE.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Send_Msg.cpp -NODEP_CPP_FIFO_=\ - ".\ace\FIFO_Send_Msg.h"\ - ".\ace\FIFO_Send_Msg.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Send.cpp -NODEP_CPP_FIFO_S=\ - ".\ace\FIFO_Send.h"\ - ".\ace\FIFO_Send.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Recv_Msg.cpp -NODEP_CPP_FIFO_R=\ - ".\ace\FIFO_Recv_Msg.h"\ - ".\ace\FIFO_Recv_Msg.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Recv.cpp -NODEP_CPP_FIFO_RE=\ - ".\ace\FIFO_Recv.h"\ - ".\ace\FIFO_Recv.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO.cpp -NODEP_CPP_FIFO_C=\ - ".\ace\FIFO.h"\ - ".\ace\FIFO.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Event_Handler.cpp -NODEP_CPP_EVENT=\ - ".\ace\Event_Handler.h"\ - ".\ace\Event_Handler.i"\ - ".\ace\Message_Block.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Dynamic.cpp -NODEP_CPP_DYNAM=\ - ".\ace\Dynamic.h"\ - ".\ace\Dynamic.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Dump.cpp -NODEP_CPP_DUMP_=\ - ".\ace\Dump.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_IO.cpp -NODEP_CPP_DEV_I=\ - ".\ace\DEV_IO.h"\ - ".\ace\DEV_IO.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_Connector.cpp -NODEP_CPP_DEV_C=\ - ".\ace\DEV_Connector.h"\ - ".\ace\DEV_Connector.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_Addr.cpp -NODEP_CPP_DEV_A=\ - ".\ace\DEV_Addr.h"\ - ".\ace\DEV_Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV.cpp -NODEP_CPP_DEV_CP=\ - ".\ace\DEV.h"\ - ".\ace\DEV.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Date_Time.cpp -NODEP_CPP_DATE_=\ - ".\ace\Date_Time.h"\ - ".\ace\Date_Time.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\CORBA_Handler.cpp -NODEP_CPP_CORBA=\ - ".\ace\CORBA_Handler.h"\ - ".\ace\CORBA_Handler.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Asynch_IO.cpp -NODEP_CPP_ASYNC=\ - ".\ace\Asynch_IO.h"\ - ".\ace\Asynch_IO.i"\ - ".\ace\INET_Addr.h"\ - ".\ace\Message_Block.h"\ - ".\ace\Proactor.h"\ - ".\ace\Service_Config.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ARGV.cpp -NODEP_CPP_ARGV_=\ - ".\ace\ARGV.h"\ - ".\ace\ARGV.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Addr.cpp -NODEP_CPP_ADDR_=\ - ".\ace\Addr.h"\ - ".\ace\Addr.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Activation_Queue.cpp -NODEP_CPP_ACTIV=\ - ".\ace\Activation_Queue.h"\ - ".\ace\Activation_Queue.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ACE.cpp -NODEP_CPP_ACE_C=\ - ".\ace\ACE.h"\ - ".\ace\ACE.i"\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Handle_Set.h"\ - ".\ace\INET_Addr.h"\ - ".\ace\IPC_SAP.h"\ - ".\ace\Process.h"\ - ".\ace\Reactor.h"\ - ".\ace\SString.h"\ - ".\ace\Thread_Manager.h"\ - ".\ace\Version.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Types.cpp -NODEP_CPP_SERVICE_T=\ - ".\ace\Service_Types.h"\ - ".\ace\Service_Types.i"\ - ".\ace\Stream.h"\ - ".\ace\Stream_Modules.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Select_Reactor.cpp -NODEP_CPP_SELEC=\ - ".\ace\Reactor.h"\ - ".\ace\Select_Reactor.h"\ - ".\ace\Select_Reactor.i"\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - ".\ace\Timer_Heap.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\WFMO_Reactor.cpp -NODEP_CPP_WFMO_=\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Handle_Set.h"\ - ".\ace\Thread.h"\ - ".\ace\Timer_Heap.h"\ - ".\ace\WFMO_Reactor.h"\ - ".\ace\WFMO_Reactor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Priority_Reactor.cpp -NODEP_CPP_PRIOR=\ - ".\ace\Malloc_T.h"\ - ".\ace\Priority_Reactor.h"\ - ".\ace\Priority_Reactor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Basic_Types.cpp -NODEP_CPP_BASIC=\ - ".\ace\Basic_Types.i"\ - ".\ace\OS.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory.cpp -NODEP_CPP_SHARED_M=\ - ".\ace\Shared_Memory.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Msg_WFMO_Reactor.cpp -NODEP_CPP_MSG_W=\ - ".\ace\Msg_WFMO_Reactor.h"\ - ".\ace\Msg_WFMO_Reactor.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Arg_Shifter.cpp -DEP_CPP_ARG_S=\ - ".\Arg_Shifter.h"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Stats.cpp -NODEP_CPP_STATS=\ - ".\ace\Stats.h"\ - ".\ace\Stats.i"\ - - -!IF "$(CFG)" == "ACE dynamic library - Win32 Debug" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Debug" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Unicode Release" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE dynamic library - Win32 Release" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -# End Target -################################################################################ -# Begin Target - -# Name "ACE static library - Win32 Release" -# Name "ACE static library - Win32 Debug" -# Name "ACE static library - Win32 Unicode Debug" -# Name "ACE static library - Win32 Unicode Release" - -!IF "$(CFG)" == "ACE static library - Win32 Release" - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Stream.cpp -NODEP_CPP_UPIPE=\ - ".\ace\UPIPE_Stream.h"\ - ".\ace\UPIPE_Stream.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Connector.cpp -NODEP_CPP_UPIPE_=\ - ".\ace\UPIPE_Connector.h"\ - ".\ace\UPIPE_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UPIPE_Acceptor.cpp -NODEP_CPP_UPIPE_A=\ - ".\ace\UPIPE_Acceptor.h"\ - ".\ace\UPIPE_Acceptor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\UPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\UNIX_Addr.cpp -NODEP_CPP_UNIX_=\ - ".\ace\UNIX_Addr.h"\ - ".\ace\UNIX_Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\UNIX_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TTY_IO.cpp -NODEP_CPP_TTY_I=\ - ".\ace\TTY_IO.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\TTY_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Trace.cpp -NODEP_CPP_TRACE=\ - ".\ace\ACE.h"\ - ".\ace\inc_user_config.h"\ - ".\ace\Log_Msg.h"\ - ".\ace\Trace.h"\ - ".\ace\Trace.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Trace.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Request_Reply.cpp -NODEP_CPP_TOKEN=\ - ".\ace\Token_Request_Reply.h"\ - ".\ace\Token_Request_Reply.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Manager.cpp -NODEP_CPP_TOKEN_=\ - ".\ace\Object_Manager.h"\ - ".\ace\Token_Manager.h"\ - ".\ace\Token_Manager.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Invariants.cpp -NODEP_CPP_TOKEN_I=\ - ".\ace\Object_Manager.h"\ - ".\ace\Token_Invariants.h"\ - ".\ace\Token_Invariants.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Invariants.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token_Collection.cpp -NODEP_CPP_TOKEN_C=\ - ".\ace\Token_Collection.h"\ - ".\ace\Token_Collection.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Token_Collection.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Token.cpp -NODEP_CPP_TOKEN_CP=\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - ".\ace\Token.h"\ - ".\ace\Token.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Token.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Stream.cpp -NODEP_CPP_TLI_S=\ - ".\ace\TLI_Stream.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Connector.cpp -NODEP_CPP_TLI_C=\ - ".\ace\Handle_Set.h"\ - ".\ace\TLI_Connector.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI_Acceptor.cpp -NODEP_CPP_TLI_A=\ - ".\ace\TLI_Acceptor.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\TLI_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\TLI.cpp -NODEP_CPP_TLI_CP=\ - ".\ace\TLI.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\TLI.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Timer_Queue.cpp -NODEP_CPP_TIMER=\ - ".\ace\Containers.h"\ - ".\ace\Timer_Hash.h"\ - ".\ace\Timer_Queue.h"\ - ".\ace\Timer_Queue_T.cpp"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Timer_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Time_Request_Reply.cpp -NODEP_CPP_TIME_=\ - ".\ace\Time_Request_Reply.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Time_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Thread_Manager.cpp -NODEP_CPP_THREA=\ - ".\ace\Dynamic.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Singleton.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread_Manager.h"\ - ".\ace\Thread_Manager.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Thread_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Thread.cpp -NODEP_CPP_THREAD=\ - ".\ace\Thread.h"\ - ".\ace\Thread.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Task.cpp -NODEP_CPP_TASK_=\ - ".\ace\Module.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Task.h"\ - ".\ace\Task.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Task.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\System_Time.cpp -NODEP_CPP_SYSTE=\ - ".\ace\System_Time.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\System_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Synch_Options.cpp -NODEP_CPP_SYNCH=\ - ".\ace\Synch_Options.h"\ - ".\ace\Synch_Options.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Synch_Options.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Synch.cpp -NODEP_CPP_SYNCH_=\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch.h"\ - ".\ace\Synch.i"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Synch.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Svc_Conf_y.cpp -NODEP_CPP_SVC_C=\ - ".\ace\ARGV.h"\ - ".\ace\Module.h"\ - ".\ace\Stream.h"\ - ".\ace\Svc_Conf.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Svc_Conf_y.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Svc_Conf_l.cpp -NODEP_CPP_SVC_CO=\ - ".\ace\OS.h"\ - ".\ace\Svc_Conf.h"\ - ".\ace\Svc_Conf_Tokens.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Svc_Conf_l.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Shared_Memory.cpp -NODEP_CPP_SV_SH=\ - ".\ace\SV_Shared_Memory.h"\ - ".\ace\SV_Shared_Memory.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Semaphore_Simple.cpp -NODEP_CPP_SV_SE=\ - ".\ace\SV_Semaphore_Simple.h"\ - ".\ace\SV_Semaphore_Simple.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Semaphore_Simple.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Semaphore_Complex.cpp -NODEP_CPP_SV_SEM=\ - ".\ace\SV_Semaphore_Complex.h"\ - ".\ace\SV_Semaphore_Complex.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Semaphore_Complex.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Message_Queue.cpp -NODEP_CPP_SV_ME=\ - ".\ace\SV_Message_Queue.h"\ - ".\ace\SV_Message_Queue.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Message_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SV_Message.cpp -NODEP_CPP_SV_MES=\ - ".\ace\SV_Message.h"\ - ".\ace\SV_Message.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SV_Message.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Strategies.cpp -NODEP_CPP_STRAT=\ - ".\ace\Reactor.h"\ - ".\ace\Strategies.h"\ - ".\ace\Strategies.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Strategies.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SString.cpp -NODEP_CPP_SSTRI=\ - ".\ace\Malloc.h"\ - ".\ace\Service_Config.h"\ - ".\ace\SString.h"\ - ".\ace\SString.i"\ - ".\ace\streams.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SString.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Stream.cpp -NODEP_CPP_SPIPE=\ - ".\ace\SPIPE_Stream.h"\ - ".\ace\SPIPE_Stream.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Connector.cpp -NODEP_CPP_SPIPE_=\ - ".\ace\SPIPE_Connector.h"\ - ".\ace\SPIPE_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Addr.cpp -NODEP_CPP_SPIPE_A=\ - ".\ace\SPIPE_Addr.h"\ - ".\ace\SPIPE_Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE_Acceptor.cpp -NODEP_CPP_SPIPE_AC=\ - ".\ace\SPIPE_Acceptor.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SPIPE.cpp -NODEP_CPP_SPIPE_C=\ - ".\ace\SPIPE.h"\ - ".\ace\SPIPE.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SPIPE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Stream.cpp -NODEP_CPP_SOCK_=\ - ".\ace\SOCK_Stream.h"\ - ".\ace\SOCK_Stream.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_IO.cpp -NODEP_CPP_SOCK_I=\ - ".\ace\SOCK_IO.h"\ - ".\ace\SOCK_IO.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram_Mcast.cpp -NODEP_CPP_SOCK_D=\ - ".\ace\INET_Addr.h"\ - ".\ace\SOCK_Dgram_Mcast.h"\ - ".\ace\SOCK_Dgram_Mcast.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram_Mcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram_Bcast.cpp -NODEP_CPP_SOCK_DG=\ - ".\ace\SOCK_Dgram_Bcast.h"\ - ".\ace\SOCK_Dgram_Bcast.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram_Bcast.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Dgram.cpp -NODEP_CPP_SOCK_DGR=\ - ".\ace\Handle_Set.h"\ - ".\ace\SOCK_Dgram.h"\ - ".\ace\SOCK_Dgram.i"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Connector.cpp -NODEP_CPP_SOCK_C=\ - ".\ace\Handle_Set.h"\ - ".\ace\INET_Addr.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\SOCK_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_CODgram.cpp -NODEP_CPP_SOCK_CO=\ - ".\ace\SOCK_CODgram.h"\ - ".\ace\SOCK_CODgram.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK_Acceptor.cpp -NODEP_CPP_SOCK_A=\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Acceptor.i"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\SOCK.cpp -NODEP_CPP_SOCK_CP=\ - ".\ace\SOCK.h"\ - ".\ace\SOCK.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\SOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Signal.cpp -NODEP_CPP_SIGNA=\ - ".\ace\Object_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\Signal.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Signal.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Object.cpp -NODEP_CPP_SHARE=\ - ".\ace\Shared_Object.h"\ - ".\ace\Shared_Object.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory_SV.cpp -NODEP_CPP_SHARED=\ - ".\ace\Shared_Memory_SV.h"\ - ".\ace\Shared_Memory_SV.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory_SV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory_MM.cpp -NODEP_CPP_SHARED_=\ - ".\ace\Shared_Memory_MM.h"\ - ".\ace\Shared_Memory_MM.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory_MM.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Repository.cpp -NODEP_CPP_SERVI=\ - ".\ace\Object_Manager.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Service_Repository.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Repository.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Object.cpp -NODEP_CPP_SERVIC=\ - ".\ace\Service_Object.h"\ - ".\ace\Service_Object.i"\ - ".\ace\Service_Types.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Manager.cpp -NODEP_CPP_SERVICE=\ - ".\ace\Get_Opt.h"\ - ".\ace\Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Manager.h"\ - ".\ace\Service_Manager.i"\ - ".\ace\Service_Repository.h"\ - ".\ace\WFMO_Reactor.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Config.cpp -NODEP_CPP_SERVICE_=\ - ".\ace\ARGV.h"\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Containers.h"\ - ".\ace\Get_Opt.h"\ - ".\ace\Malloc.h"\ - ".\ace\Proactor.h"\ - ".\ace\Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Config.i"\ - ".\ace\Service_Manager.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Service_Types.h"\ - ".\ace\Svc_Conf.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Config.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Sched_Params.cpp -NODEP_CPP_SCHED=\ - ".\ace\ACE.h"\ - ".\ace\Sched_Params.h"\ - ".\ace\Sched_Params.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Sched_Params.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Remote_Tokens.cpp -NODEP_CPP_REMOT=\ - ".\ace\Remote_Tokens.h"\ - ".\ace\Remote_Tokens.i"\ - ".\ace\Singleton.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Remote_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Remote_Name_Space.cpp -NODEP_CPP_REMOTE=\ - ".\ace\Remote_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Remote_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Registry_Name_Space.cpp -NODEP_CPP_REGIS=\ - ".\ace\Registry_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Registry_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Registry.cpp -NODEP_CPP_REGIST=\ - ".\ace\Registry.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Registry.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Read_Buffer.cpp -NODEP_CPP_READ_=\ - ".\ace\Read_Buffer.h"\ - ".\ace\Read_Buffer.i"\ - ".\ace\Service_Config.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Read_Buffer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Reactor.cpp -NODEP_CPP_REACT=\ - ".\ace\Handle_Set.h"\ - ".\ace\Msg_WFMO_Reactor.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Reactor.h"\ - ".\ace\Reactor.i"\ - ".\ace\Reactor_Impl.h"\ - ".\ace\Select_Reactor.h"\ - ".\ace\Service_Config.h"\ - ".\ace\WFMO_Reactor.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Profile_Timer.cpp -NODEP_CPP_PROFI=\ - ".\ace\Profile_Timer.h"\ - ".\ace\Profile_Timer.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Profile_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Process_Manager.cpp -NODEP_CPP_PROCE=\ - ".\ace\Process.h"\ - ".\ace\Process_Manager.h"\ - ".\ace\Process_Manager.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Process_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Process.cpp -NODEP_CPP_PROCES=\ - ".\ace\ARGV.h"\ - ".\ace\Process.h"\ - ".\ace\Process.i"\ - ".\ace\SString.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Process.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Proactor.cpp -NODEP_CPP_PROAC=\ - ".\ace\Log_Msg.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Proactor.h"\ - ".\ace\Proactor.i"\ - ".\ace\Task_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Proactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Pipe.cpp -NODEP_CPP_PIPE_=\ - ".\ace\Pipe.h"\ - ".\ace\Pipe.i"\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Connector.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Pipe.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Parse_Node.cpp -NODEP_CPP_PARSE=\ - ".\ace\Parse_Node.h"\ - ".\ace\Parse_Node.i"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Repository.h"\ - ".\ace\Task.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Parse_Node.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\OS.cpp -NODEP_CPP_OS_CP=\ - ".\ace\ARGV.h"\ - ".\ace\Array.h"\ - ".\ace\Containers.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\OS.h"\ - ".\ace\OS.i"\ - ".\ace\Sched_Params.h"\ - ".\ace\SString.h"\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Task.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\OS.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Obstack.cpp -NODEP_CPP_OBSTA=\ - ".\ace\Obstack.h"\ - ".\ace\Obstack.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Obstack.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Object_Manager.cpp -NODEP_CPP_OBJEC=\ - ".\ace\Array.h"\ - ".\ace\Containers.h"\ - ".\ace\Log_Msg.h"\ - ".\ace\Malloc.h"\ - ".\ace\Naming_Context.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Object_Manager.i"\ - ".\ace\Service_Config.h"\ - ".\ace\Service_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\Synch.h"\ - ".\ace\Token_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Object_Manager.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Naming_Context.cpp -NODEP_CPP_NAMIN=\ - ".\ace\Get_Opt.h"\ - ".\ace\Local_Name_Space_T.h"\ - ".\ace\Memory_Pool.h"\ - ".\ace\Naming_Context.h"\ - ".\ace\Registry_Name_Space.h"\ - ".\ace\Remote_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Naming_Context.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Space.cpp -NODEP_CPP_NAME_=\ - ".\ace\Name_Space.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Request_Reply.cpp -NODEP_CPP_NAME_R=\ - ".\ace\Name_Request_Reply.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Request_Reply.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Name_Proxy.cpp -NODEP_CPP_NAME_P=\ - ".\ace\Name_Proxy.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Name_Proxy.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Multiplexor.cpp -NODEP_CPP_MULTI=\ - ".\ace\Multiplexor.h"\ - ".\ace\Multiplexor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Multiplexor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Method_Object.cpp -NODEP_CPP_METHO=\ - ".\ace\Method_Object.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Method_Object.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Message_Block.cpp -NODEP_CPP_MESSA=\ - ".\ace\Message_Block.h"\ - ".\ace\Message_Block.i"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Message_Block.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Memory_Pool.cpp -NODEP_CPP_MEMOR=\ - ".\ace\Memory_Pool.h"\ - ".\ace\Memory_Pool.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Memory_Pool.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Mem_Map.cpp -NODEP_CPP_MEM_M=\ - ".\ace\Mem_Map.h"\ - ".\ace\Mem_Map.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Mem_Map.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Malloc.cpp -NODEP_CPP_MALLO=\ - ".\ace\Malloc.h"\ - ".\ace\Malloc.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Malloc.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Stream.cpp -NODEP_CPP_LSOCK=\ - ".\ace\LSOCK_Stream.h"\ - ".\ace\LSOCK_Stream.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Stream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Dgram.cpp -NODEP_CPP_LSOCK_=\ - ".\ace\LSOCK_Dgram.h"\ - ".\ace\LSOCK_Dgram.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Dgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Connector.cpp -NODEP_CPP_LSOCK_C=\ - ".\ace\LSOCK_Connector.h"\ - ".\ace\LSOCK_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_CODgram.cpp -NODEP_CPP_LSOCK_CO=\ - ".\ace\LSOCK_CODgram.h"\ - ".\ace\LSOCK_CODgram.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_CODgram.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK_Acceptor.cpp -NODEP_CPP_LSOCK_A=\ - ".\ace\LSOCK_Acceptor.h"\ - ".\ace\LSOCK_Acceptor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK_Acceptor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\LSOCK.cpp -NODEP_CPP_LSOCK_CP=\ - ".\ace\LSOCK.h"\ - ".\ace\LSOCK.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\LSOCK.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Log_Record.cpp -NODEP_CPP_LOG_R=\ - ".\ace\Log_Record.h"\ - ".\ace\LOG_Record.i"\ - ".\ace\streams.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Log_Record.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Log_Msg.cpp -NODEP_CPP_LOG_M=\ - ".\ace\ACE.h"\ - ".\ace\inc_user_config.h"\ - ".\ace\Managed_Object.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Signal.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\SPIPE_Connector.h"\ - ".\ace\streams.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Log_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Local_Tokens.cpp -NODEP_CPP_LOCAL=\ - ".\ace\Local_Tokens.h"\ - ".\ace\Local_Tokens.i"\ - ".\ace\Thread.h"\ - ".\ace\Token_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Local_Tokens.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Local_Name_Space.cpp -NODEP_CPP_LOCAL_=\ - ".\ace\ACE.h"\ - ".\ace\Local_Name_Space.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Local_Name_Space.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IPC_SAP.cpp -NODEP_CPP_IPC_S=\ - ".\ace\IPC_SAP.h"\ - ".\ace\IPC_SAP.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\IPC_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IOStream.cpp -NODEP_CPP_IOSTR=\ - ".\ace\IOStream.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\IOStream.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IO_SAP.cpp -NODEP_CPP_IO_SA=\ - ".\ace\IO_SAP.h"\ - ".\ace\IO_SAP.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\IO_SAP.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\IO_Cntl_Msg.cpp - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\IO_Cntl_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\INET_Addr.cpp -NODEP_CPP_INET_=\ - ".\ace\INET_Addr.h"\ - ".\ace\INET_Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\INET_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\High_Res_Timer.cpp -NODEP_CPP_HIGH_=\ - ".\ace\High_Res_Timer.h"\ - ".\ace\High_Res_Timer.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Stats.h"\ - ".\ace\Synch.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\High_Res_Timer.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Handle_Set.cpp -NODEP_CPP_HANDL=\ - ".\ace\Handle_Set.h"\ - ".\ace\Handle_Set.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Handle_Set.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Get_Opt.cpp -NODEP_CPP_GET_O=\ - ".\ace\Get_Opt.h"\ - ".\ace\Get_Opt.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Get_Opt.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Filecache.cpp -NODEP_CPP_FILEC=\ - ".\ace\Filecache.h"\ - ".\ace\Object_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Filecache.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_IO.cpp -NODEP_CPP_FILE_=\ - ".\ace\FILE_IO.h"\ - ".\ace\FILE_IO.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_Connector.cpp -NODEP_CPP_FILE_C=\ - ".\ace\FILE_Connector.h"\ - ".\ace\FILE_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE_Addr.cpp -NODEP_CPP_FILE_A=\ - ".\ace\FILE_Addr.h"\ - ".\ace\FILE_Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FILE_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FILE.cpp -NODEP_CPP_FILE_CP=\ - ".\ace\FILE.h"\ - ".\ace\FILE.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FILE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Send_Msg.cpp -NODEP_CPP_FIFO_=\ - ".\ace\FIFO_Send_Msg.h"\ - ".\ace\FIFO_Send_Msg.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Send_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Send.cpp -NODEP_CPP_FIFO_S=\ - ".\ace\FIFO_Send.h"\ - ".\ace\FIFO_Send.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Send.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Recv_Msg.cpp -NODEP_CPP_FIFO_R=\ - ".\ace\FIFO_Recv_Msg.h"\ - ".\ace\FIFO_Recv_Msg.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Recv_Msg.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO_Recv.cpp -NODEP_CPP_FIFO_RE=\ - ".\ace\FIFO_Recv.h"\ - ".\ace\FIFO_Recv.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO_Recv.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\FIFO.cpp -NODEP_CPP_FIFO_C=\ - ".\ace\FIFO.h"\ - ".\ace\FIFO.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\FIFO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Event_Handler.cpp -NODEP_CPP_EVENT=\ - ".\ace\Event_Handler.h"\ - ".\ace\Event_Handler.i"\ - ".\ace\Message_Block.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Event_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Dynamic.cpp -NODEP_CPP_DYNAM=\ - ".\ace\Dynamic.h"\ - ".\ace\Dynamic.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Dynamic.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Dump.cpp -NODEP_CPP_DUMP_=\ - ".\ace\Dump.h"\ - ".\ace\Object_Manager.h"\ - ".\ace\Synch_T.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Dump.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_IO.cpp -NODEP_CPP_DEV_I=\ - ".\ace\DEV_IO.h"\ - ".\ace\DEV_IO.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_Connector.cpp -NODEP_CPP_DEV_C=\ - ".\ace\DEV_Connector.h"\ - ".\ace\DEV_Connector.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_Connector.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV_Addr.cpp -NODEP_CPP_DEV_A=\ - ".\ace\DEV_Addr.h"\ - ".\ace\DEV_Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\DEV_Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\DEV.cpp -NODEP_CPP_DEV_CP=\ - ".\ace\DEV.h"\ - ".\ace\DEV.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\DEV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Date_Time.cpp -NODEP_CPP_DATE_=\ - ".\ace\Date_Time.h"\ - ".\ace\Date_Time.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Date_Time.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\CORBA_Handler.cpp -NODEP_CPP_CORBA=\ - ".\ace\CORBA_Handler.h"\ - ".\ace\CORBA_Handler.i"\ - ".\ace\Object_Manager.h"\ - ".\ace\Thread_Manager.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\CORBA_Handler.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Asynch_IO.cpp -NODEP_CPP_ASYNC=\ - ".\ace\Asynch_IO.h"\ - ".\ace\Asynch_IO.i"\ - ".\ace\INET_Addr.h"\ - ".\ace\Message_Block.h"\ - ".\ace\Proactor.h"\ - ".\ace\Service_Config.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Asynch_IO.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ARGV.cpp -NODEP_CPP_ARGV_=\ - ".\ace\ARGV.h"\ - ".\ace\ARGV.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\ARGV.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Addr.cpp -NODEP_CPP_ADDR_=\ - ".\ace\Addr.h"\ - ".\ace\Addr.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Addr.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Activation_Queue.cpp -NODEP_CPP_ACTIV=\ - ".\ace\Activation_Queue.h"\ - ".\ace\Activation_Queue.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Activation_Queue.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\ACE.cpp -NODEP_CPP_ACE_C=\ - ".\ace\ACE.h"\ - ".\ace\ACE.i"\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Handle_Set.h"\ - ".\ace\INET_Addr.h"\ - ".\ace\IPC_SAP.h"\ - ".\ace\Process.h"\ - ".\ace\Reactor.h"\ - ".\ace\SString.h"\ - ".\ace\Thread_Manager.h"\ - ".\ace\Version.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\ACE.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Service_Types.cpp -NODEP_CPP_SERVICE_T=\ - ".\ace\Service_Types.h"\ - ".\ace\Service_Types.i"\ - ".\ace\Stream.h"\ - ".\ace\Stream_Modules.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Service_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\WFMO_Reactor.cpp -NODEP_CPP_WFMO_=\ - ".\ace\Auto_Ptr.h"\ - ".\ace\Handle_Set.h"\ - ".\ace\Thread.h"\ - ".\ace\Timer_Heap.h"\ - ".\ace\WFMO_Reactor.h"\ - ".\ace\WFMO_Reactor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Select_Reactor.cpp -NODEP_CPP_SELEC=\ - ".\ace\Reactor.h"\ - ".\ace\Select_Reactor.h"\ - ".\ace\Select_Reactor.i"\ - ".\ace\SOCK_Acceptor.h"\ - ".\ace\SOCK_Connector.h"\ - ".\ace\Synch_T.h"\ - ".\ace\Thread.h"\ - ".\ace\Timer_Heap.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Select_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Priority_Reactor.cpp -NODEP_CPP_PRIOR=\ - ".\ace\Malloc_T.h"\ - ".\ace\Priority_Reactor.h"\ - ".\ace\Priority_Reactor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Priority_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Basic_Types.cpp -NODEP_CPP_BASIC=\ - ".\ace\Basic_Types.i"\ - ".\ace\OS.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Basic_Types.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Shared_Memory.cpp -NODEP_CPP_SHARED_M=\ - ".\ace\Shared_Memory.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Shared_Memory.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Msg_WFMO_Reactor.cpp -NODEP_CPP_MSG_W=\ - ".\ace\Msg_WFMO_Reactor.h"\ - ".\ace\Msg_WFMO_Reactor.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Msg_WFMO_Reactor.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Arg_Shifter.cpp -DEP_CPP_ARG_S=\ - ".\Arg_Shifter.h"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Arg_Shifter.obj" : $(SOURCE) $(DEP_CPP_ARG_S) "$(INTDIR)" - - -!ENDIF - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Stats.cpp -NODEP_CPP_STATS=\ - ".\ace\Stats.h"\ - ".\ace\Stats.i"\ - - -!IF "$(CFG)" == "ACE static library - Win32 Release" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Debug" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Debug" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ELSEIF "$(CFG)" == "ACE static library - Win32 Unicode Release" - - -"$(INTDIR)\Stats.obj" : $(SOURCE) "$(INTDIR)" - - -!ENDIF - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/ace/ACE_Library.mdp b/ace/ACE_Library.mdp deleted file mode 100644 index 119496a3c4c..00000000000 Binary files a/ace/ACE_Library.mdp and /dev/null differ diff --git a/ace/ARGV.cpp b/ace/ARGV.cpp deleted file mode 100644 index 3e1a1425ede..00000000000 --- a/ace/ARGV.cpp +++ /dev/null @@ -1,347 +0,0 @@ -// ARGV.cpp -// $Id$ - -// Transforms a string BUF into an ARGV-style vector of strings. - -#define ACE_BUILD_DLL -#include "ace/ARGV.h" - -#if !defined (__ACE_INLINE__) -#include "ace/ARGV.i" -#endif /* __ACE_INLINE__ */ - -ACE_ALLOC_HOOK_DEFINE (ACE_ARGV) - -void -ACE_ARGV::dump (void) const -{ - ACE_TRACE ("ACE_ARGV::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("argc_ = %d"), this->argc_)); - - for (size_t i = 0; i < this->argc_; i++) - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nargv_[%i] = %s"), i, this->argv_[i])); - - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nbuf = %s\n"), this->buf_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -// Creates this->argv_ out of this->buf_. New memory is allocated for -// each element of the array. This is used by the array-to-string -// style constructor and for creating this->argv_ when in iterative -// mode. - -void -ACE_ARGV::string_to_array (void) -{ - ACE_TRACE ("ACE_ARGV::string_to_array"); - - // Reset the number of arguments - this->argc_ = 0; - - if (this->buf_ == 0) - return; - - ASYS_TCHAR *cp = this->buf_; - - // First pass: count arguments. - - // '#' is the start-comment token.. - while (*cp != '\0' && *cp != '#') - { - // Skip whitespace.. - while (ACE_OS::ace_isspace (*cp)) - cp++; - - // Increment count and move to next whitespace.. - if (*cp != '\0') - this->argc_++; - - // Grok quotes.... - if (*cp == '\'' || *cp == '"') - { - ASYS_TCHAR quote = *cp; - - // Scan past the string.. - for (cp++; *cp != '\0' && *cp != quote; cp++) - continue; - - // '\0' implies unmatched quote.. - if (*cp == '\0') - { - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("unmatched %c detected\n"), quote)); - this->argc_--; - break; - } - else - cp++; - } - else // Skip over non-whitespace.... - while (*cp != '\0' && !ACE_OS::ace_isspace (*cp)) - cp++; - } - - // Second pass: copy arguments.. - ASYS_TCHAR arg[BUFSIZ]; - - // Make a new argv vector of argc + 1 elements. - ACE_NEW (this->argv_, ASYS_TCHAR *[this->argc_ + 1]); - - ASYS_TCHAR *ptr = this->buf_; - - for (size_t i = 0; i < this->argc_; i++) - { - // Skip whitespace.. - while (ACE_OS::ace_isspace (*ptr)) - ptr++; - - // Copy next argument and move to next whitespace.. - if (*ptr == '\'' || *ptr == '"') - { - ASYS_TCHAR quote = *ptr++; - - for (cp = arg; - *ptr != '\0' && *ptr != quote; - ptr++, cp++) - if (unsigned (cp - arg) < sizeof arg) - *cp = *ptr; - - *cp = '\0'; - if (*ptr == quote) - ptr++; - } - else - { - for (cp = arg; - *ptr && !ACE_OS::ace_isspace (*ptr); - ptr++, cp++) - if (unsigned (cp - arg) < sizeof arg) - *cp = *ptr; - *cp = '\0'; - } - - // Check for environment variable substitution here. -#if !defined (ACE_HAS_WINCE) - // WinCE doesn't have environment variables so we just skip it. - if (this->substitute_env_args_) - ACE_ALLOCATOR (this->argv_[i], - ACE::strenvdup (arg)); - else -#endif /* !ACE_HAS_WINCE */ - ACE_ALLOCATOR (this->argv_[i], - ACE_OS::strdup (arg)); - } - - this->argv_[this->argc_] = 0; -} - - -ACE_ARGV::ACE_ARGV (const ASYS_TCHAR buf[], - int substitute_env_args) - : substitute_env_args_ (substitute_env_args), - state_ (TO_PTR_ARRAY), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0) -{ - ACE_TRACE ("ACE_ARGV::ACE_ARGV ASYS_TCHAR[] to ASYS_TCHAR *[]"); - - if (buf == 0 || buf[0] == 0) - return; - - // Make an internal copy of the string - ACE_NEW (this->buf_, ASYS_TCHAR[ACE_OS::strlen (buf) + 1]); - ACE_OS::strcpy (this->buf_, buf); - - // Create this->argv_ - this->string_to_array (); -} - -ACE_ARGV::ACE_ARGV (ASYS_TCHAR *argv[], - int substitute_env_args) - : substitute_env_args_ (substitute_env_args), - state_ (TO_STRING), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0) -{ - ACE_TRACE ("ACE_ARGV::ACE_ARGV ASYS_TCHAR*[] to ASYS_TCHAR[]"); - - if (argv == 0 || argv[0] == 0) - return; - - int buf_len = 0; - - // Determine the length of the buffer. - - for (int i = 0; argv[i] != 0; i++) - { - ASYS_TCHAR *temp; - - // Account for environment variables. - if (this->substitute_env_args_ - && (argv[i][0] == '$' - && (temp = ACE_OS::getenv (&argv[i][1])) != 0)) - buf_len += ACE_OS::strlen (temp); - else - buf_len += ACE_OS::strlen (argv[i]); - - // Add one for the extra space between each string. - buf_len++; - } - - // Step through all argv params and copy each one into buf; separate - // each param with white space. - - ACE_NEW (this->buf_, ASYS_TCHAR[buf_len + 1]); - - ASYS_TCHAR *end = this->buf_; - int j; - - for (j = 0; argv[j] != 0; j++) - { - ASYS_TCHAR *temp; - - // Account for environment variables. - if (this->substitute_env_args_ - && (argv[j][0] == '$' - && (temp = ACE_OS::getenv (&argv[j][1])) != 0)) - end = ACE::strecpy (end, temp); - else - end = ACE::strecpy (end, argv[j]); - - // Add white space and advance the pointer. - *end++ = ' '; - } - - // Remember how many arguments there are - this->argc_ = j; - - // Null terminate the string. - *end = '\0'; -} - -ACE_ARGV::ACE_ARGV (int substitute_env_args) - : substitute_env_args_ (substitute_env_args), - state_ (ITERATIVE), - argc_ (0), - argv_ (0), - buf_ (0), - length_ (0) -{ - ACE_TRACE ("ACE_ARGV::ACE_ARGV Iterative"); - - // Nothing to do yet -- the user puts in arguments via add () -} - -int -ACE_ARGV::add (const ASYS_TCHAR *next_arg) -{ - // Only allow this to work in the "iterative" verion -- the - // ACE_ARGVs created with the one argument constructor. - if (this->state_ != ITERATIVE) - return -1; - - // Put the new argument at the end of the queue - if (this->queue_.enqueue_tail ((ASYS_TCHAR *) next_arg) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("Can't add more to ARGV queue")), -1); - - this->length_ += ACE_OS::strlen (next_arg); - - this->argc_++; - - // Wipe argv_ and buf_ away so that they will be recreated if the - // user calls argv () or buf (). - if (this->argv_ != 0) - { - for (int i = 0; this->argv_[i] != 0; i++) - ACE_OS::free ((void *) this->argv_[i]); - - delete [] this->argv_; - this->argv_ = 0; - } - - delete [] this->buf_; - this->buf_ = 0; - - return 0; -} - -// Free up argv_ and buf_ - -ACE_ARGV::~ACE_ARGV (void) -{ - ACE_TRACE ("ACE_ARGV::~ACE_ARGV"); - - if (this->argv_ != 0) - for (int i = 0; this->argv_[i] != 0; i++) - ACE_OS::free ((void *) this->argv_[i]); - - delete [] this->argv_; - delete [] this->buf_; -} - -// Create buf_ out of the queue_. This is only used in the -// "iterative" mode. - -int -ACE_ARGV::create_buf_from_queue (void) -{ - ACE_TRACE ("ACE_ARGV::create_buf_from_queue"); - - // If the are no arguments, don't do anything - if (this->argc_ <= 0) - return -1; - - delete [] this->buf_; - - ACE_NEW_RETURN (this->buf_, ASYS_TCHAR[this->length_ + this->argc_], -1); - - // Get an iterator over the queue - ACE_Unbounded_Queue_Iterator iter (this->queue_); - - ASYS_TCHAR **arg; - ASYS_TCHAR *ptr = this->buf_; - size_t len; - int more = 0; - - while (!iter.done ()) - { - // Get next argument from the queue - iter.next (arg); - - more = iter.advance (); - - len = ACE_OS::strlen (*arg); - - // Copy the argument into buf_ - ACE_OS::memcpy ((void *) ptr, (const void *) (*arg), len); - - // Move the pointer down - ptr += len; - - // Put in an argument separating space - if (more != 0) - *ptr++ = ' '; - } - - // Put in the null terminator - *ptr = 0; - - return 0; -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Queue; -template class ACE_Unbounded_Queue_Iterator; -template class ACE_Node; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Unbounded_Queue -#pragma instantiate ACE_Unbounded_Queue_Iterator -#pragma instantiate ACE_Node -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ace/ARGV.h b/ace/ARGV.h deleted file mode 100644 index f7b1a854f52..00000000000 --- a/ace/ARGV.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// ARGV.h -// -// = AUTHOR -// Doug Schmidt, Everett Anderson -// -// ============================================================================ - -#if !defined (ACE_ARGUMENT_VECTOR_H) -#define ACE_ARGUMENT_VECTOR_H - -#include "ace/ACE.h" -#include "ace/Containers.h" - -class ACE_Export ACE_ARGV -{ - // = TITLE - // Transforms a string into an style vector of - // strings or an style vector of string , performing - // environment variable substitutions if necessary. -public: - // = Initialization and termination. - ACE_ARGV (const ASYS_TCHAR buf[], int substitute_env_args = 1); - // Converts into an -style vector of strings. If - // is enabled then we'll substitute the - // environment variables for each $ENV encountered in the string. - // The subscript and argv() operations are not allowed on an - // ACE_ARGV created this way. - - ACE_ARGV (ASYS_TCHAR *argv[], int substitute_env_args = 1); - // Converts into a linear string. If - // is enabled then we'll substitute the environment variables for - // each $ENV encountered in the string. - // The buf() operation is not allowed on an ACE_ARGV created - // this way. - - ACE_ARGV (int substitute_env_args = 1); - // Entry point for creating an ASYS_TCHAR *[] command line iteratively - // via the add() method. The argv() and buf() method calls are - // allowed, and the result is recreated when called multiple times. - // The subscript operator is not allowed. - - ~ACE_ARGV (void); - // Destructor. - - // = Accessor arguments. - const ASYS_TCHAR *operator[] (size_t index); - // Returns the th string in the ARGV array. - - ASYS_TCHAR **argv (void); - // Returns the array. Caller should not delete this memory - // since the destructor will delete it. If the caller modifies - // the array in the iterative mode, the changes are not saved to the - // queue. - - size_t argc (void) const; - // Returns . - - const ASYS_TCHAR *buf (void); - // Returns the . Caller should not delete this memory since - // the destructor will delete it. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - - int add (const ASYS_TCHAR *next_arg); - // Add another argument. This only works in the ITERATIVE state. - - int state (void) const; - // What state is this ACE_ARGV in? - - // These are the states possible via the different constructors. - enum States - { - TO_STRING = 1, - // ACE_ARGV converts buf[] to ASYS_TCHAR *argv[] - TO_PTR_ARRAY = 2, - // ACE_ARGV converts ASYS_TCHAR *argv[] to buf[] - ITERATIVE = 3 - // Builds buf[] or ASYS_TCHAR *argv[] iteratively with add() - }; - -private: - - int create_buf_from_queue (void); - // Creates buf_ from the queue, deletes previous buf_. - - void string_to_array (void); - // Converts buf_ into the ASYS_TCHAR *argv[] format. - - int substitute_env_args_; - // Replace args with environment variable values? - - int state_; - // Current state marker. - - size_t argc_; - // Number of arguments in the ARGV array. - - ASYS_TCHAR **argv_; - // The array of string arguments. - - ASYS_TCHAR *buf_; - // Buffer containing the contents. - - size_t length_; - // Total length of the arguments in the queue, not counting - // separating spaces - - ACE_Unbounded_Queue queue_; - // Queue which keeps user supplied arguments. This is only - // active in the "iterative" mode. -}; - -#if defined (__ACE_INLINE__) -#include "ace/ARGV.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_ARGUMENT_VECTOR_H */ diff --git a/ace/ARGV.i b/ace/ARGV.i deleted file mode 100644 index 9a6fd8670fa..00000000000 --- a/ace/ARGV.i +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ARGV.i - -// Return the number of args -ACE_INLINE size_t -ACE_ARGV::argc (void) const -{ - ACE_TRACE ("ACE_ARGV::argc"); - return this->argc_; -} - -// Return the state of this ACE_ARGV -ACE_INLINE int -ACE_ARGV::state(void) const -{ - ACE_TRACE ("ACE_ARGV::state"); - return this->state_; -} - -// Return the arguments in a space-separated string -ACE_INLINE const ASYS_TCHAR * -ACE_ARGV::buf (void) -{ - ACE_TRACE ("ACE_ARGV::buf"); - - if (this->buf_ == 0 && this->state_ == ITERATIVE) - this->create_buf_from_queue (); - - return (const ASYS_TCHAR *)this->buf_; -} - -// Return the arguments in an entry-per-argument array -ACE_INLINE ASYS_TCHAR ** -ACE_ARGV::argv (void) -{ - ACE_TRACE ("ACE_ARGV::argv"); - - // Try to create the argv_ if it isn't there - if (this->argv_ == 0) { - - if (this->state_ == ITERATIVE && this->buf_ == 0) - this->create_buf_from_queue(); - - // Convert buf_ to argv_ - this->string_to_array(); - } - - return this->argv_; -} - -// Subscript operator. -ACE_INLINE const ASYS_TCHAR * -ACE_ARGV::operator[] (size_t i) -{ - ACE_TRACE ("ACE_ARGV::operator[]"); - - // Don't go out of bounds - if (i >= this->argc_) - return 0; - - return (const ASYS_TCHAR *)(this->argv()[i]); -} - - - diff --git a/ace/Acceptor.cpp b/ace/Acceptor.cpp deleted file mode 100644 index 9ab36352a90..00000000000 --- a/ace/Acceptor.cpp +++ /dev/null @@ -1,1053 +0,0 @@ -// Acceptor.cpp -// $Id$ - -#if !defined (ACE_ACCEPTOR_C) -#define ACE_ACCEPTOR_C - -#define ACE_BUILD_DLL -#include "ace/ACE.h" -#include "ace/Acceptor.h" -#include "ace/Handle_Set.h" -#include "ace/WFMO_Reactor.h" - -ACE_ALLOC_HOOK_DEFINE(ACE_Acceptor) - -template void -ACE_Acceptor::dump (void) const -{ - ACE_TRACE ("ACE_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - this->peer_acceptor_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template -ACE_Acceptor::operator ACE_PEER_ACCEPTOR & () const -{ - ACE_TRACE ("ACE_Acceptor::operator ACE_PEER_ACCEPTOR &"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -template ACE_PEER_ACCEPTOR & -ACE_Acceptor::acceptor (void) const -{ - ACE_TRACE ("ACE_Acceptor::acceptor"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -// Returns ACE_HANDLE of the underlying Acceptor_Strategy. - -template ACE_HANDLE -ACE_Acceptor::get_handle (void) const -{ - ACE_TRACE ("ACE_Acceptor::get_handle"); - return this->peer_acceptor_.get_handle (); -} - -// Initialize the appropriate strategies for creation, passive -// connection acceptance, and concurrency, and then register -// with the Reactor and listen for connection requests at the -// designated . - -template int -ACE_Acceptor::open - (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - int flags, - int use_select) -{ - ACE_TRACE ("ACE_Acceptor::open"); - this->flags_ = flags; - this->use_select_ = use_select; - - // Must supply a valid Reactor to Acceptor::open()... - - if (reactor == 0) - { - errno = EINVAL; - return -1; - } - - if (this->peer_acceptor_.open (local_addr, 1) == -1) - return -1; - - int result = reactor->register_handler (this, ACE_Event_Handler::ACCEPT_MASK); - if (result == 0) - this->reactor (reactor); - - return result; -} - -// Simple constructor. - -template -ACE_Acceptor::ACE_Acceptor (ACE_Reactor *reactor, - int use_select) - : use_select_ (use_select) -{ - ACE_TRACE ("ACE_Acceptor::ACE_Acceptor"); - - this->reactor (reactor); -} - -template -ACE_Acceptor::ACE_Acceptor - (const ACE_PEER_ACCEPTOR_ADDR &addr, - ACE_Reactor *reactor, - int flags, - int use_select) -{ - ACE_TRACE ("ACE_Acceptor::ACE_Acceptor"); - - if (this->open (addr, reactor, flags, use_select) == -1) - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE_Acceptor::ACE_Acceptor"))); -} - -template -ACE_Acceptor::~ACE_Acceptor (void) -{ - ACE_TRACE ("ACE_Acceptor::~ACE_Acceptor"); - this->handle_close (); -} - -template int -ACE_Acceptor::fini (void) -{ - ACE_TRACE ("ACE_Acceptor::fini"); - return ACE_Acceptor::handle_close (); -} - -// Hook called by the explicit dynamic linking facility. - -template int -ACE_Acceptor::init (int, ASYS_TCHAR *[]) -{ - ACE_TRACE ("ACE_Acceptor::init"); - return -1; -} - -template int -ACE_Acceptor::info (ASYS_TCHAR **strp, - size_t length) const -{ - ACE_TRACE ("ACE_Acceptor::info"); - ASYS_TCHAR buf[BUFSIZ]; - ASYS_TCHAR addr_str[BUFSIZ]; - ACE_PEER_ACCEPTOR_ADDR addr; - - if (this->acceptor ().get_local_addr (addr) == -1) - return -1; - else if (addr.addr_to_string (addr_str, sizeof addr_str) == -1) - return -1; - - ACE_OS::sprintf (buf, ASYS_TEXT ("%s\t %s %s"), - ASYS_TEXT ("ACE_Acceptor"), - addr_str, - ASYS_TEXT ("# acceptor factory\n")); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strncpy (*strp, buf, length); - return ACE_OS::strlen (buf); -} - -template int -ACE_Acceptor::suspend (void) -{ - ACE_TRACE ("ACE_Acceptor::suspend"); - return this->reactor ()->suspend_handler (this); -} - -template int -ACE_Acceptor::resume (void) -{ - ACE_TRACE ("ACE_Acceptor::resume"); - return this->reactor ()->resume_handler (this); -} - -// Perform termination activities when is removed from the -// . - -template int -ACE_Acceptor::close (void) -{ - ACE_TRACE ("ACE_Acceptor::close"); - return this->handle_close (); -} - -template int -ACE_Acceptor::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Acceptor::handle_close"); - // Guard against multiple closes. - if (this->reactor () != 0) - { - ACE_HANDLE handle = this->get_handle (); - - this->reactor_->remove_handler - (handle, - ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - // Shut down the listen socket to recycle the handles. - if (this->peer_acceptor_.close () == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("close\n"))); - - // Set the Reactor to 0 so that we don't try to close down - // again. - this->reactor (0); - } - return 0; -} - -// Bridge method for creating a SVC_HANDLER. The strategy for -// creating a SVC_HANDLER are configured into the Acceptor via it's -// . The default is to create a new SVC_HANDLER. -// However, subclasses can override this strategy to perform -// SVC_HANDLER creation in any way that they like (such as creating -// subclass instances of SVC_HANDLER, using a singleton, dynamically -// linking the handler, etc.). - -template int -ACE_Acceptor::make_svc_handler (SVC_HANDLER *&sh) -{ - ACE_TRACE ("ACE_Acceptor::make_svc_handler"); - if (sh == 0) - ACE_NEW_RETURN (sh, SVC_HANDLER, -1); - return 0; -} - -// Bridge method for accepting the new connection into the -// . The default behavior delegates to the -// PEER_ACCEPTOR::accept() in the Acceptor_Strategy. - -template int -ACE_Acceptor::accept_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Acceptor::accept_svc_handler"); - - // Try to find out if the implementation of the reactor that we are - // using requires us 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. - int reset_new_handle = this->reactor ()->uses_event_associations (); - - if (this->peer_acceptor_.accept (svc_handler->peer (), // stream - 0, // remote address - 0, // timeout - 1, // restart - reset_new_handle // reset new handler - ) == -1) - { - // Close down handler to avoid memory leaks. - svc_handler->close (0); - return -1; - } - else - return 0; -} - -// Bridge method for activating a with the appropriate -// concurrency strategy. The default behavior of this method is to -// activate the SVC_HANDLER 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 (such as creating the SVC_HANDLER as an -// "active object" via multi-threading or multi-processing). - -template int -ACE_Acceptor::activate_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Acceptor::activate_svc_handler"); - - int result = 0; - - // See if we should enable non-blocking I/O on the 's - // peer. - if (ACE_BIT_ENABLED (this->flags_, ACE_NONBLOCK)) - { - if (svc_handler->peer ().enable (ACE_NONBLOCK) == -1) - result = -1; - } - // Otherwise, make sure it's disabled by default. - else if (svc_handler->peer ().disable (ACE_NONBLOCK) == -1) - result = -1; - - if (result == 0 && svc_handler->open ((void *) this) == -1) - result = -1; - - if (result == -1) - svc_handler->close (0); - - return result; -} - -// Template Method that makes a SVC_HANDLER (using the appropriate -// creation strategy), accept the connection into the SVC_HANDLER, and -// then activate the SVC_HANDLER. - -template int -ACE_Acceptor::handle_input (ACE_HANDLE listener) -{ - ACE_TRACE ("ACE_Acceptor::handle_input"); - ACE_Handle_Set conn_handle; - - // Default is "timeout (0, 0)," which means "poll." - ACE_Time_Value timeout; - - // Accept connections from clients. Note that a loop is used for two - // reasons: - // - // 1. It allows us to accept all pending connections without an - // extra trip through the ACE_Reactor and without having to use - // non-blocking I/O... - // - // 2. It allows the TLI_SAP::ACE_Acceptor class to work correctly (don't - // ask -- TLI is *horrible*...). - - // @@ What should we do if any of the substrategies fail? Right - // now, we just log an error message and return 0 (which means that - // the Acceptor remains registered with the Reactor)... - do - { - // Create a service handler, using the appropriate creation - // strategy. - - SVC_HANDLER *svc_handler = 0; - - if (this->make_svc_handler (svc_handler) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("make_svc_handler")), 0); - - // Accept connection into the Svc_Handler. - - else if (this->accept_svc_handler (svc_handler) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("accept_svc_handler")), 0); - - // Activate the using the designated concurrency - // strategy (note that this method becomes responsible for - // handling errors and freeing up the memory if things go - // awry...). - - else if (this->activate_svc_handler (svc_handler) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("activate_svc_handler")), 0); - - conn_handle.set_bit (listener); - } - - // Now, check to see if there is another connection pending and - // break out of the loop if there is none. - while (this->use_select_ - && ACE_OS::select (int (listener) + 1, - conn_handle, - 0, - 0, - &timeout) == 1); - return 0; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Strategy_Acceptor) - -template int -ACE_Strategy_Acceptor::suspend (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::suspend"); - - // First suspend the SVC_HANDLER's we've created. - if (this->scheduling_strategy_->suspend () == -1) - return -1; - else // Then suspend ourselves. - return ACE_Acceptor::suspend (); -} - -template int -ACE_Strategy_Acceptor::resume (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::resume"); - - // First resume ourselves. - if (ACE_Acceptor::suspend () == -1) - return -1; - else // Then resume the SVC_HANDLER's we've created. - return this->scheduling_strategy_->resume (); -} - -template void -ACE_Strategy_Acceptor::dump (void) const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_Acceptor::dump (); - this->creation_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("delete_creation_strategy_ = %d"), delete_creation_strategy_)); - this->accept_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("delete_accept_strategy_ = %d"), delete_accept_strategy_)); - this->concurrency_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("delete_concurrency_strategy_ = %d"), delete_concurrency_strategy_)); - this->scheduling_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("delete_scheduling_strategy_ = %d"), delete_scheduling_strategy_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nservice_name_ = %s"), this->service_name_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nservice_description_ = %s"), this->service_description_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nservice_port_ = %d"), this->service_port_)); - this->service_addr_.dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template ACE_PEER_ACCEPTOR & -ACE_Strategy_Acceptor::acceptor (void) const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::acceptor"); - return this->accept_strategy_->acceptor (); -} - -template -ACE_Strategy_Acceptor::operator ACE_PEER_ACCEPTOR & () const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::operator ACE_PEER_ACCEPTOR &"); - return this->accept_strategy_->acceptor (); -} - -// Returns ACE_HANDLE of the underlying Acceptor_Strategy. - -template ACE_HANDLE -ACE_Strategy_Acceptor::get_handle (void) const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::get_handle"); - return this->accept_strategy_->get_handle (); -} - -// Initialize the appropriate strategies for creation, passive -// connection acceptance, and concurrency, and then register -// with the Reactor and listen for connection requests at the -// designated . - -template int -ACE_Strategy_Acceptor::open - (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor *reactor, - ACE_Creation_Strategy *cre_s, - ACE_Accept_Strategy *acc_s, - ACE_Concurrency_Strategy *con_s, - ACE_Scheduling_Strategy *sch_s, - const ASYS_TCHAR *service_name, - const ASYS_TCHAR *service_description) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::open"); - - if (this->service_name_ == 0 && service_name != 0) - ACE_ALLOCATOR_RETURN (this->service_name_, - ACE_OS::strdup (service_name), - -1); - if (this->service_description_ == 0 && service_description != 0) - ACE_ALLOCATOR_RETURN (this->service_description_, - ACE_OS::strdup (service_description), - -1); - this->reactor (reactor); - - // Must supply a valid Reactor to Acceptor::open()... - if (reactor == 0) - { - errno = EINVAL; - return -1; - } - - // Initialize the creation strategy. - - if (cre_s == 0) - { - ACE_NEW_RETURN (cre_s, CREATION_STRATEGY, -1); - this->delete_creation_strategy_ = 1; - } - this->creation_strategy_ = cre_s; - - // Initialize the accept strategy. - - if (acc_s == 0) - { - ACE_NEW_RETURN (acc_s, ACCEPT_STRATEGY (this->reactor ()), -1); - this->delete_accept_strategy_ = 1; - } - this->accept_strategy_ = acc_s; - - if (this->accept_strategy_->open (local_addr, 1) == -1) - return -1; - - // Initialize the concurrency strategy. - - if (con_s == 0) - { - ACE_NEW_RETURN (con_s, CONCURRENCY_STRATEGY, -1); - this->delete_concurrency_strategy_ = 1; - } - this->concurrency_strategy_ = con_s; - - // Initialize the scheduling strategy. - - if (sch_s == 0) - { - ACE_NEW_RETURN (sch_s, SCHEDULING_STRATEGY, -1); - this->delete_scheduling_strategy_ = 1; - } - this->scheduling_strategy_ = sch_s; - - return this->reactor ()->register_handler - (this, ACE_Event_Handler::ACCEPT_MASK); -} - -// Simple constructor. - -template -ACE_Strategy_Acceptor::ACE_Strategy_Acceptor - (const ASYS_TCHAR service_name[], - const ASYS_TCHAR service_description[]) - : creation_strategy_ (0), - delete_creation_strategy_ (0), - accept_strategy_ (0), - delete_accept_strategy_ (0), - concurrency_strategy_ (0), - delete_concurrency_strategy_ (0), - scheduling_strategy_ (0), - delete_scheduling_strategy_ (0), - service_name_ (0), - service_description_ (0) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"); - - if (service_name != 0) - ACE_ALLOCATOR (this->service_name_, - ACE_OS::strdup (service_name)); - if (service_description != 0) - ACE_ALLOCATOR (this->service_description_, - ACE_OS::strdup (service_description)); -} - -template -ACE_Strategy_Acceptor::ACE_Strategy_Acceptor - (const ACE_PEER_ACCEPTOR_ADDR &addr, - ACE_Reactor *reactor, - ACE_Creation_Strategy *cre_s, - ACE_Accept_Strategy *acc_s, - ACE_Concurrency_Strategy *con_s, - ACE_Scheduling_Strategy *sch_s, - const ASYS_TCHAR service_name[], - const ASYS_TCHAR service_description[]) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"); - - if (this->open (addr, reactor, cre_s, acc_s, con_s, sch_s, - service_name, service_description) == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("ACE_Strategy_Acceptor::ACE_Strategy_Acceptor"))); -} - -// Perform termination activities when is removed from the -// . - -template int -ACE_Strategy_Acceptor::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::handle_close"); - // Guard against multiple closes. - if (this->reactor () != 0) - { - ACE_HANDLE handle = this->get_handle (); - - if (this->delete_creation_strategy_) - delete this->creation_strategy_; - this->delete_creation_strategy_ = 0; - this->creation_strategy_ = 0; - - if (this->delete_accept_strategy_) - delete this->accept_strategy_; - this->delete_accept_strategy_ = 0; - this->accept_strategy_ = 0; - - if (this->delete_concurrency_strategy_) - delete this->concurrency_strategy_; - this->delete_concurrency_strategy_ = 0; - this->concurrency_strategy_ = 0; - - if (this->delete_scheduling_strategy_) - delete this->scheduling_strategy_; - this->delete_scheduling_strategy_ = 0; - this->scheduling_strategy_ = 0; - - // We must use the obtained *before* we deleted the - // accept_strategy_... - - this->reactor ()->remove_handler - (handle, ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - // Set the Reactor to 0 so that we don't try to close down - // again. - this->reactor (0); - } - return 0; -} - -// Bridge method for creating a SVC_HANDLER. The strategy for -// creating a SVC_HANDLER are configured into the Acceptor via it's -// . The default is to create a new SVC_HANDLER. -// However, subclasses can override this strategy to perform -// SVC_HANDLER creation in any way that they like (such as creating -// subclass instances of SVC_HANDLER, using a singleton, dynamically -// linking the handler, etc.). - -template int -ACE_Strategy_Acceptor::make_svc_handler (SVC_HANDLER *&sh) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::make_svc_handler"); - return this->creation_strategy_->make_svc_handler (sh); -} - -// Bridge method for accepting the new connection into the -// . The default behavior delegates to the -// in the Acceptor_Strategy. - -template int -ACE_Strategy_Acceptor::accept_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::accept_svc_handler"); - return this->accept_strategy_->accept_svc_handler (svc_handler); -} - -// Bridge method for activating a with the appropriate -// concurrency strategy. The default behavior of this method is to -// activate the SVC_HANDLER 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 (such as creating the SVC_HANDLER as an -// "active object" via multi-threading or multi-processing). - -template int -ACE_Strategy_Acceptor::activate_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::activate_svc_handler"); - return this->concurrency_strategy_->activate_svc_handler - (svc_handler, (void *) this); -} - -template -ACE_Strategy_Acceptor::~ACE_Strategy_Acceptor (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::~ACE_Strategy_Acceptor"); - ACE_OS::free ((void *) this->service_name_); - ACE_OS::free ((void *) this->service_description_); - this->handle_close (); -} - -// Signal the server to shutdown gracefully. - -template int -ACE_Strategy_Acceptor::handle_signal (int, siginfo_t *, ucontext_t *) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::handle_signal"); - ACE_Reactor::end_event_loop (); - return 0; -} - -template int -ACE_Strategy_Acceptor::info (ASYS_TCHAR **strp, - size_t length) const -{ - ACE_TRACE ("ACE_Strategy_Acceptor::info"); - - ASYS_TCHAR buf[BUFSIZ]; - ASYS_TCHAR service_addr_str[BUFSIZ]; - ACE_PEER_ACCEPTOR_ADDR addr; - - if (this->acceptor ().get_local_addr (addr) == -1) - return -1; - else if (addr.addr_to_string (service_addr_str, sizeof service_addr_str) == -1) - return -1; - - // @@ Should add the protocol in... - ACE_OS::sprintf (buf, ASYS_TEXT ("%s\t %s #%s\n"), - this->service_name_, - service_addr_str, - this->service_description_); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strncpy (*strp, buf, length); - return ACE_OS::strlen (buf); -} - -template int -ACE_Strategy_Acceptor::fini (void) -{ - ACE_TRACE ("ACE_Strategy_Acceptor::fini"); - return this->ACE_Strategy_Acceptor::handle_close (); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Oneshot_Acceptor) - -template void -ACE_Oneshot_Acceptor::dump (void) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nsvc_handler_ = %x"), this->svc_handler_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nrestart_ = %d"), this->restart_)); - this->peer_acceptor_.dump (); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("delete_concurrency_strategy_ = %d"), - delete_concurrency_strategy_)); - this->concurrency_strategy_->dump (); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -template int -ACE_Oneshot_Acceptor::open - (const ACE_PEER_ACCEPTOR_ADDR &addr, - ACE_Reactor *reactor, - ACE_Concurrency_Strategy *con_s) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::open"); - this->reactor (reactor); - - // Initialize the concurrency strategy. - - if (con_s == 0) - { - ACE_NEW_RETURN (con_s, ACE_Concurrency_Strategy, -1); - this->delete_concurrency_strategy_ = 1; - } - this->concurrency_strategy_ = con_s; - - // Reuse the addr, even if it is already in use...! - return this->peer_acceptor_.open (addr, 1); -} - -template -ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor (void) - : delete_concurrency_strategy_ (0) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"); - this->reactor (0); -} - -template -ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor - (const ACE_PEER_ACCEPTOR_ADDR &addr, - ACE_Reactor *reactor, - ACE_Concurrency_Strategy *cs) - : delete_concurrency_strategy_ (0) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"); - if (this->open (addr, reactor, cs) == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("%p\n"), - ASYS_TEXT ("ACE_Oneshot_Acceptor::ACE_Oneshot_Acceptor"))); -} - -template -ACE_Oneshot_Acceptor::~ACE_Oneshot_Acceptor (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::~ACE_Oneshot_Acceptor"); - this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::close (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::close"); - return this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::handle_close (ACE_HANDLE, - ACE_Reactor_Mask) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_close"); - // Guard against multiple closes. - if (this->concurrency_strategy_ != 0) - { - if (this->delete_concurrency_strategy_) - delete this->concurrency_strategy_; - this->delete_concurrency_strategy_ = 0; - this->concurrency_strategy_ = 0; - - // Note that if we aren't actually registered with the - // ACE_Reactor then it's ok for this call to fail... - - if (this->reactor ()) - this->reactor ()->remove_handler - (this, ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL); - - if (this->peer_acceptor_.close () == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("close\n"))); - } - return 0; -} - -template int -ACE_Oneshot_Acceptor::handle_timeout - (const ACE_Time_Value &tv, - const void *arg) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_timeout"); - errno = ETIME; - - if (this->svc_handler_->handle_timeout (tv, arg) == -1) - this->svc_handler_->handle_close (this->svc_handler_->get_handle (), - ACE_Event_Handler::TIMER_MASK);; - - // Since we aren't necessarily registered with the Reactor, don't - // bother to check the return value here... - if (this->reactor ()) - this->reactor ()->remove_handler (this, ACE_Event_Handler::ACCEPT_MASK); - return 0; -} - -template int -ACE_Oneshot_Acceptor::cancel (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::cancel"); - return this->reactor () && this->reactor ()->cancel_timer (this); -} - -template int -ACE_Oneshot_Acceptor::register_handler - (SVC_HANDLER *svc_handler, - const ACE_Synch_Options &synch_options, - int restart) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::register_handler"); - // Can't do this if we don't have a Reactor. - if (this->reactor () == 0) - return -1; - else - { - this->svc_handler_ = svc_handler; - this->restart_ = restart; - ACE_Time_Value *tv = (ACE_Time_Value *) synch_options.time_value (); - - if (tv != 0 - && this->reactor ()->schedule_timer (this, synch_options.arg (), - *tv) == 0) - return -1; - else - return this->reactor ()->register_handler - (this, ACE_Event_Handler::ACCEPT_MASK); - } -} - -// Bridge method for activating a with the appropriate -// concurrency strategy. The default behavior of this method is to -// activate the SVC_HANDLER 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 (such as creating the SVC_HANDLER as an -// "active object" via multi-threading or multi-processing). - -template int -ACE_Oneshot_Acceptor::activate_svc_handler - (SVC_HANDLER *svc_handler) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::activate_svc_handler"); - return this->concurrency_strategy_->activate_svc_handler - (svc_handler, (void *) this); -} - -// Factors out the code shared between the and -// methods. - -template int -ACE_Oneshot_Acceptor::shared_accept - (SVC_HANDLER *svc_handler, - ACE_PEER_ACCEPTOR_ADDR *remote_addr, - ACE_Time_Value *timeout, - int restart, - int reset_new_handle) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::shared_accept"); - if (svc_handler == 0) - return -1; - - // Accept connection into the Svc_Handler. - else if (this->peer_acceptor_.accept (svc_handler->peer (), // stream - remote_addr, // remote address - timeout, // timeout - restart, // restart - reset_new_handle // reset new handle - ) == -1) - { - // Check whether we just timed out or whether we failed... - if (!(errno == EWOULDBLOCK || errno == ETIME)) - // Close down handler to avoid memory leaks. - svc_handler->close (0); - return -1; - } - // Activate the using the designated concurrency - // strategy (note that this method becomes responsible for - // handling errors and freeing up the memory if things go - // awry...) - else - return this->activate_svc_handler (svc_handler); -} - -// Make a SVC_HANDLER, accept the connection into the SVC_HANDLER, and -// then activate the SVC_HANDLER. Note that SVC_HANDLER::open() -// decides what type of concurrency strategy to use. - -template int -ACE_Oneshot_Acceptor::accept - (SVC_HANDLER *svc_handler, - ACE_PEER_ACCEPTOR_ADDR *remote_addr, - const ACE_Synch_Options &synch_options, - int restart, - int reset_new_handle) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::accept"); - // Note that if timeout == ACE_Time_Value (x, y) where (x > 0 || y > - // 0) then this->connector_.connect() will block synchronously. If - // is set then we don't want this to happen (since we - // want the ACE_Reactor to do the timeout asynchronously). - // Therefore, we'll force this->connector_ to use ACE_Time_Value (0, - // 0) in this case... - - ACE_Time_Value *timeout; - int use_reactor = synch_options[ACE_Synch_Options::USE_REACTOR]; - - if (use_reactor) - timeout = (ACE_Time_Value *) &ACE_Time_Value::zero; - else - timeout = (ACE_Time_Value *) synch_options.time_value (); - - if (this->shared_accept (svc_handler, // stream - remote_addr, // remote address - timeout, // timeout - restart, // restart - reset_new_handle // reset new handler - ) == -1) - { - if (use_reactor && errno == EWOULDBLOCK) - // We couldn't accept right away, so let's wait in the ACE_Reactor. - this->register_handler (svc_handler, synch_options, restart); - return -1; - } - return 0; -} - -// Accepts one pending connection from a client (since we're the -// "oneshot" Acceptor). - -template int -ACE_Oneshot_Acceptor::handle_input (ACE_HANDLE) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::handle_input"); - int result = 0; - - // Cancel any timer that might be pending. - this->cancel (); - - // Try to find out if the implementation of the reactor that we are - // using requires us 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. - int reset_new_handle = this->reactor ()->uses_event_associations (); - - if (this->shared_accept (this->svc_handler_, // stream - 0, // remote address - 0, // timeout - this->restart_, // restart - reset_new_handle // reset new handle - ) == -1) - result = -1; - if (this->reactor () && this->reactor ()->remove_handler - (this, ACE_Event_Handler::ACCEPT_MASK | ACE_Event_Handler::DONT_CALL) == -1) - result = -1; - return result; -} - -// Hook called by the explicit dynamic linking facility. - -template int -ACE_Oneshot_Acceptor::init (int, ASYS_TCHAR *[]) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::init"); - return -1; -} - -template int -ACE_Oneshot_Acceptor::fini (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::fini"); - return this->handle_close (); -} - -template int -ACE_Oneshot_Acceptor::info (ASYS_TCHAR **strp, - size_t length) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::info"); - ASYS_TCHAR buf[BUFSIZ]; - ASYS_TCHAR addr_str[BUFSIZ]; - ACE_PEER_ACCEPTOR_ADDR addr; - - if (this->peer_acceptor_.get_local_addr (addr) == -1) - return -1; - else if (addr.addr_to_string (addr_str, sizeof addr_str) == -1) - return -1; - - ACE_OS::sprintf (buf, ASYS_TEXT ("%s\t %s %s"), - ASYS_TEXT ("ACE_Oneshot_Acceptor"), - addr_str, - ASYS_TEXT ("#oneshot acceptor factory\n")); - - if (*strp == 0 && (*strp = ACE_OS::strdup (buf)) == 0) - return -1; - else - ACE_OS::strncpy (*strp, buf, length); - return ACE_OS::strlen (buf); -} - -template int -ACE_Oneshot_Acceptor::suspend (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::suspend"); - return this->reactor () && this->reactor ()->suspend_handler (this); -} - -template int -ACE_Oneshot_Acceptor::resume (void) -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::resume"); - return this->reactor () && this->reactor ()->resume_handler (this); -} - -// Returns ACE_HANDLE of the underlying peer_acceptor. - -template ACE_HANDLE -ACE_Oneshot_Acceptor::get_handle (void) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::get_handle"); - return this->peer_acceptor_.get_handle (); -} - -template ACE_PEER_ACCEPTOR & -ACE_Oneshot_Acceptor::acceptor (void) const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::acceptor"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -template -ACE_Oneshot_Acceptor::operator ACE_PEER_ACCEPTOR & () const -{ - ACE_TRACE ("ACE_Oneshot_Acceptor::operator ACE_PEER_ACCEPTOR &"); - return (ACE_PEER_ACCEPTOR &) this->peer_acceptor_; -} - -#endif /* ACE_ACCEPTOR_C */ diff --git a/ace/Acceptor.h b/ace/Acceptor.h deleted file mode 100644 index 5a9f5fa775f..00000000000 --- a/ace/Acceptor.h +++ /dev/null @@ -1,493 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Acceptor.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_ACCEPTOR_H) -#define ACE_ACCEPTOR_H - -#include "ace/Service_Config.h" -#include "ace/Service_Object.h" -#include "ace/Svc_Handler.h" -#include "ace/Strategies.h" - -template -class ACE_Acceptor : public ACE_Service_Object -{ - // = TITLE - // Abstract factory for creating a service handler - // (SVC_HANDLER), accepting into the SVC_HANDLER, and - // activating the SVC_HANDLER. - // - // = DESCRIPTION - // Implements the basic strategy for passively establishing - // connections with clients. An ACE_Acceptor is parameterized - // by concrete types that conform to the interfaces of - // PEER_ACCEPTOR and SVC_HANDLER. The PEER_ACCEPTOR is - // instantiated with a transport mechanism that passively - // establishes connections. The SVC_HANDLER is instantiated - // with a concrete type that performs the application-specific - // service. An ACE_Acceptor inherits from ACE_Service_Object, - // which in turn inherits from ACE_Event_Handler. This enables - // the ACE_Reactor to dispatch the ACE_Acceptor's handle_input - // method when connection events occur. The handle_input method - // performs the ACE_Acceptor's default creation, connection - // establishment, and service activation strategies. These - // strategies can be overridden by subclasses individually or as - // a group. -public: - // = Initialization and termination methods. - ACE_Acceptor (ACE_Reactor * = 0, - int use_select = 1); - // "Do-nothing" constructor. - - ACE_Acceptor (const ACE_PEER_ACCEPTOR_ADDR &local_addr, - ACE_Reactor * = ACE_Reactor::instance (), - int flags = 0, - int use_select = 1); - // Initialize and register with the Reactor and listen for - // connection requests at the designated . - // indicates how 's should be initialized prior to - // being activated. Right now, the only flag that is processed is - // , which enabled non-blocking I/O on the - // when it is opened. - - int open (const ACE_PEER_ACCEPTOR_ADDR &, - ACE_Reactor * = ACE_Reactor::instance (), - int flags = 0, - int use_select = 1); - // Initialize and register with the Reactor and listen for - // connection requests at the designated . - // indicates how 's should be initialized prior to - // being activated. Right now, the only flag that is processed is - // , which enabled non-blocking I/O on the - // when it is opened. - - virtual ~ACE_Acceptor (void); - // Close down the Acceptor's resources. - - virtual operator ACE_PEER_ACCEPTOR &() const; - // Return the underlying PEER_ACCEPTOR object. - - virtual ACE_PEER_ACCEPTOR &acceptor (void) const; - // Return the underlying PEER_ACCEPTOR object. - - virtual ACE_HANDLE get_handle (void) const; - // Returns the listening acceptor's . - - virtual int close (void); - // Close down the Acceptor - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - // = The following three methods define the Acceptor's strategies - // for creating, accepting, and activating SVC_HANDLER's, - // respectively. - - virtual int make_svc_handler (SVC_HANDLER *&sh); - // Bridge method for creating a SVC_HANDLER. The default is to - // create a new if == 0, else is unchanged. - // However, subclasses can override this policy to perform - // SVC_HANDLER creation in any way that they like (such as creating - // subclass instances of SVC_HANDLER, using a singleton, dynamically - // linking the handler, etc.). Returns -1 on failure, else 0. - - virtual int accept_svc_handler (SVC_HANDLER *svc_handler); - // Bridge method for accepting the new connection into the - // . The default behavior delegates to the - // PEER_ACCEPTOR::accept. - - virtual int activate_svc_handler (SVC_HANDLER *svc_handler); - // Bridge method for activating a with the appropriate - // concurrency strategy. The default behavior of this method is to - // activate the SVC_HANDLER 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 (such as making the - // SVC_HANDLER as an "active object" via multi-threading or - // multi-processing). - - // = Demultiplexing hooks. - virtual int handle_close (ACE_HANDLE = ACE_INVALID_HANDLE, - ACE_Reactor_Mask = ACE_Event_Handler::ALL_EVENTS_MASK); - // Perform termination activities when is removed from the - // . - - virtual int handle_input (ACE_HANDLE); - // Accepts all pending connections from clients, and creates and - // activates SVC_HANDLERs. - - // = Dynamic linking hooks. - virtual int init (int argc, ASYS_TCHAR *argv[]); - // Default version does no work and returns -1. Must be overloaded - // by application developer to do anything meaningful. - - virtual int fini (void); - // Calls . - - virtual int info (ASYS_TCHAR **buf, size_t) const; - // Default version returns address info in . - - // = Service management hooks. - virtual int suspend (void); - // This method calls . - - virtual int resume (void); - // This method calls . - -private: - ACE_PEER_ACCEPTOR peer_acceptor_; - // Concrete factory for accepting connections from clients... - - int flags_; - // Flags that indicate how 's should be initialized - // prior to being activated. Right now, the only flag that is - // processed is , which enabled non-blocking I/O on - // the when it is opened. - - int use_select_; - // Flag that indicates whether it shall use , , or - // . ACE_Time_Value help make the use of these - // mechanisms portable across OS platforms, -public: - // = Useful constants. - static const ACE_Time_Value zero; - // Constant "0". - - // = Initialization methods. - - ACE_Time_Value (void); - // Default Constructor. - - ACE_Time_Value (long sec, long usec = 0); - // Constructor. - - // = Methods for converting to/from various time formats. - ACE_Time_Value (const struct timeval &t); - // Construct the from a . - - ACE_Time_Value (const timespec_t &t); - // Initializes the object from a . - - ACE_Time_Value (const ACE_Time_Value &tv); - // Copy constructor. - -# if defined (ACE_WIN32) - ACE_Time_Value (const FILETIME &ft); - // Initializes the ACE_Time_Value object from a Win32 FILETIME -# endif /* ACE_WIN32 */ - - void set (long sec, long usec); - // Construct a from two s. - - void set (double d); - // Construct a from a , which is assumed to be - // in second format, with any remainder treated as microseconds. - - void set (const timeval &t); - // Construct a from a . - - void set (const timespec_t &t); - // Initializes the object from a . - -# if defined (ACE_WIN32) - void set (const FILETIME &ft); - // Initializes the object from a . -# endif /* ACE_WIN32 */ - - long msec (void) const; - // Converts from format into milli-seconds format. - - void msec (long); - // Converts from milli-seconds format into format. - - operator timespec_t () const; - // Returns the value of the object as a . - - operator timeval () const; - // Returns the value of the object as a . - - operator const timeval *() const; - // Returns a pointer to the object as a . - -# if defined (ACE_WIN32) - operator FILETIME () const; - // Returns the value of the object as a Win32 FILETIME. -# endif /* ACE_WIN32 */ - - // = The following are accessor/mutator methods. - - long sec (void) const; - // Get seconds. - - void sec (long sec); - // Set seconds. - - long usec (void) const; - // Get microseconds. - - void usec (long usec); - // Set microseconds. - - // = The following are arithmetic methods for operating on - // Time_Values. - - void operator += (const ACE_Time_Value &tv); - // Add to this. - - void operator -= (const ACE_Time_Value &tv); - // Subtract to this. - - friend ACE_Export ACE_Time_Value operator + (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // Adds two ACE_Time_Value objects together, returns the sum. - - friend ACE_Export ACE_Time_Value operator - (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // Subtracts two ACE_Time_Value objects, returns the difference. - - friend ACE_Export int operator < (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 < tv2. - - friend ACE_Export int operator > (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 > tv2. - - friend ACE_Export int operator <= (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 <= tv2. - - friend ACE_Export int operator >= (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 >= tv2. - - friend ACE_Export int operator == (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 == tv2. - - friend ACE_Export int operator != (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2); - // True if tv1 != tv2. - - void dump (void) const; - // Dump the state of an object. - -# if defined (ACE_WIN32) - static const DWORDLONG FILETIME_to_timval_skew; - // Const time difference between FILETIME and POSIX time. -# endif /* ACE_WIN32 */ - -private: - void normalize (void); - // Put the timevalue into a canonical form. - - timeval tv_; - // Store the values as a . -}; - -class ACE_Export ACE_Countdown_Time -{ - // = TITLE - // Keeps track of the amount of elapsed time. - // - // = DESCRIPTION - // This class has a side-effect on the -- every - // time the method is called the is - // updated. -public: - // = Initialization and termination methods. - ACE_Countdown_Time (ACE_Time_Value *max_wait_time); - // Cache the and call . - - ~ACE_Countdown_Time (void); - // Call . - - int start (void); - // Cache the current time and enter a start state. - - int stop (void); - // Subtract the elapsed time from max_wait_time_ and enter a stopped - // state. - - int update (void); - // Calls stop and then start. max_wait_time_ is modified by the - // call to stop. - -private: - ACE_Time_Value *max_wait_time_; - // Maximum time we were willing to wait. - - ACE_Time_Value start_time_; - // Beginning of the start time. - - int stopped_; - // Keeps track of whether we've already been stopped. -}; - -# if defined (ACE_HAS_USING_KEYWORD) -# define ACE_USING using -# else -# define ACE_USING -# endif /* ACE_HAS_USING_KEYWORD */ - -# if defined (ACE_HAS_TYPENAME_KEYWORD) -# define ACE_TYPENAME typename -# else -# define ACE_TYPENAME -# endif /* ACE_HAS_TYPENAME_KEYWORD */ - -// The following is necessary since many C++ compilers don't support -// typedef'd types inside of classes used as formal template -// arguments... ;-(. Luckily, using the C++ preprocessor I can hide -// most of this nastiness! - -# if defined (ACE_HAS_TEMPLATE_TYPEDEFS) - -// Handle ACE_Message_Queue. -# define ACE_SYNCH_DECL class _ACE_SYNCH -# define ACE_SYNCH_USE _ACE_SYNCH -# define ACE_SYNCH_MUTEX_T ACE_TYPENAME _ACE_SYNCH::MUTEX -# define ACE_SYNCH_CONDITION_T ACE_TYPENAME _ACE_SYNCH::CONDITION -# define ACE_SYNCH_SEMAPHORE_T ACE_TYPENAME _ACE_SYNCH::SEMAPHORE - -// Handle ACE_Malloc* -# define ACE_MEM_POOL_1 class _ACE_MEM_POOL -# define ACE_MEM_POOL_2 _ACE_MEM_POOL -# define ACE_MEM_POOL _ACE_MEM_POOL -# define ACE_MEM_POOL_OPTIONS ACE_TYPENAME _ACE_MEM_POOL::OPTIONS - -// Handle ACE_Svc_Handler -# define ACE_PEER_STREAM_1 class _ACE_PEER_STREAM -# define ACE_PEER_STREAM_2 _ACE_PEER_STREAM -# define ACE_PEER_STREAM _ACE_PEER_STREAM -# define ACE_PEER_STREAM_ADDR ACE_TYPENAME _ACE_PEER_STREAM::PEER_ADDR - -// Handle ACE_Acceptor -# define ACE_PEER_ACCEPTOR_1 class _ACE_PEER_ACCEPTOR -# define ACE_PEER_ACCEPTOR_2 _ACE_PEER_ACCEPTOR -# define ACE_PEER_ACCEPTOR _ACE_PEER_ACCEPTOR -# define ACE_PEER_ACCEPTOR_ADDR ACE_TYPENAME _ACE_PEER_ACCEPTOR::PEER_ADDR - -// Handle ACE_Connector -# define ACE_PEER_CONNECTOR_1 class _ACE_PEER_CONNECTOR -# define ACE_PEER_CONNECTOR_2 _ACE_PEER_CONNECTOR -# define ACE_PEER_CONNECTOR _ACE_PEER_CONNECTOR -# define ACE_PEER_CONNECTOR_ADDR ACE_TYPENAME _ACE_PEER_CONNECTOR::PEER_ADDR -# if !defined(ACE_HAS_TYPENAME_KEYWORD) -# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_CONNECTOR_ADDR::sap_any -# else - // - // 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: - // -# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_ADDR_TYPEDEF::sap_any -# endif /* ACE_HAS_TYPENAME_KEYWORD */ - -// Handle ACE_SOCK_* -# define ACE_SOCK_ACCEPTOR ACE_SOCK_Acceptor -# define ACE_SOCK_CONNECTOR ACE_SOCK_Connector -# define ACE_SOCK_STREAM ACE_SOCK_Stream - -// Handle ACE_LSOCK_* -# define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor -# define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector -# define ACE_LSOCK_STREAM ACE_LSOCK_Stream - -// Handle ACE_TLI_* -# define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor -# define ACE_TLI_CONNECTOR ACE_TLI_Connector -# define ACE_TLI_STREAM ACE_TLI_Stream - -// Handle ACE_SPIPE_* -# define ACE_SPIPE_ACCEPTOR ACE_SPIPE_Acceptor -# define ACE_SPIPE_CONNECTOR ACE_SPIPE_Connector -# define ACE_SPIPE_STREAM ACE_SPIPE_Stream - -// Handle ACE_UPIPE_* -# define ACE_UPIPE_ACCEPTOR ACE_UPIPE_Acceptor -# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector -# define ACE_UPIPE_STREAM ACE_UPIPE_Stream - -// Handle ACE_FILE_* -# define ACE_FILE_CONNECTOR ACE_FILE_Connector -# define ACE_FILE_STREAM ACE_FILE_IO - -// Handle ACE_*_Memory_Pool. -# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool -# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool -# define ACE_SBRK_MEMORY_POOL ACE_Sbrk_Memory_Pool -# define ACE_SHARED_MEMORY_POOL ACE_Shared_Memory_Pool -# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool - -# else /* TEMPLATES are broken in some form or another (i.e., most C++ compilers) */ - -// Handle ACE_Message_Queue. -# if defined (ACE_HAS_OPTIMIZED_MESSAGE_QUEUE) -# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T, class _ACE_SYNCH_SEMAPHORE_T -# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T, _ACE_SYNCH_SEMAPHORE_T -# else -# define ACE_SYNCH_DECL class _ACE_SYNCH_MUTEX_T, class _ACE_SYNCH_CONDITION_T -# define ACE_SYNCH_USE _ACE_SYNCH_MUTEX_T, _ACE_SYNCH_CONDITION_T -# endif /* ACE_HAS_OPTIMIZED_MESSAGE_QUEUE */ -# define ACE_SYNCH_MUTEX_T _ACE_SYNCH_MUTEX_T -# define ACE_SYNCH_CONDITION_T _ACE_SYNCH_CONDITION_T -# define ACE_SYNCH_SEMAPHORE_T _ACE_SYNCH_SEMAPHORE_T - -// Handle ACE_Malloc* -# define ACE_MEM_POOL_1 class _ACE_MEM_POOL, class _ACE_MEM_POOL_OPTIONS -# define ACE_MEM_POOL_2 _ACE_MEM_POOL, _ACE_MEM_POOL_OPTIONS -# define ACE_MEM_POOL _ACE_MEM_POOL -# define ACE_MEM_POOL_OPTIONS _ACE_MEM_POOL_OPTIONS - -// Handle ACE_Svc_Handler -# define ACE_PEER_STREAM_1 class _ACE_PEER_STREAM, class _ACE_PEER_ADDR -# define ACE_PEER_STREAM_2 _ACE_PEER_STREAM, _ACE_PEER_ADDR -# define ACE_PEER_STREAM _ACE_PEER_STREAM -# define ACE_PEER_STREAM_ADDR _ACE_PEER_ADDR - -// Handle ACE_Acceptor -# define ACE_PEER_ACCEPTOR_1 class _ACE_PEER_ACCEPTOR, class _ACE_PEER_ADDR -# define ACE_PEER_ACCEPTOR_2 _ACE_PEER_ACCEPTOR, _ACE_PEER_ADDR -# define ACE_PEER_ACCEPTOR _ACE_PEER_ACCEPTOR -# define ACE_PEER_ACCEPTOR_ADDR _ACE_PEER_ADDR - -// Handle ACE_Connector -# define ACE_PEER_CONNECTOR_1 class _ACE_PEER_CONNECTOR, class _ACE_PEER_ADDR -# define ACE_PEER_CONNECTOR_2 _ACE_PEER_CONNECTOR, _ACE_PEER_ADDR -# define ACE_PEER_CONNECTOR _ACE_PEER_CONNECTOR -# define ACE_PEER_CONNECTOR_ADDR _ACE_PEER_ADDR -# define ACE_PEER_CONNECTOR_ADDR_ANY ACE_PEER_CONNECTOR_ADDR::sap_any - -// Handle ACE_SOCK_* -# define ACE_SOCK_ACCEPTOR ACE_SOCK_Acceptor, ACE_INET_Addr -# define ACE_SOCK_CONNECTOR ACE_SOCK_Connector, ACE_INET_Addr -# define ACE_SOCK_STREAM ACE_SOCK_Stream, ACE_INET_Addr - -// Handle ACE_LSOCK_* -# define ACE_LSOCK_ACCEPTOR ACE_LSOCK_Acceptor, ACE_UNIX_Addr -# define ACE_LSOCK_CONNECTOR ACE_LSOCK_Connector, ACE_UNIX_Addr -# define ACE_LSOCK_STREAM ACE_LSOCK_Stream, ACE_UNIX_Addr - -// Handle ACE_TLI_* -# define ACE_TLI_ACCEPTOR ACE_TLI_Acceptor, ACE_INET_Addr -# define ACE_TLI_CONNECTOR ACE_TLI_Connector, ACE_INET_Addr -# define ACE_TLI_STREAM ACE_TLI_Stream, ACE_INET_Addr - -// Handle ACE_SPIPE_* -# define ACE_SPIPE_ACCEPTOR ACE_SPIPE_Acceptor, ACE_SPIPE_Addr -# define ACE_SPIPE_CONNECTOR ACE_SPIPE_Connector, ACE_SPIPE_Addr -# define ACE_SPIPE_STREAM ACE_SPIPE_Stream, ACE_SPIPE_Addr - -// Handle ACE_UPIPE_* -# define ACE_UPIPE_ACCEPTOR ACE_UPIPE_Acceptor, ACE_SPIPE_Addr -# define ACE_UPIPE_CONNECTOR ACE_UPIPE_Connector, ACE_SPIPE_Addr -# define ACE_UPIPE_STREAM ACE_UPIPE_Stream, ACE_SPIPE_Addr - -// Handle ACE_FILE_* -# define ACE_FILE_CONNECTOR ACE_FILE_Connector, ACE_FILE_Addr -# define ACE_FILE_STREAM ACE_FILE_IO, ACE_FILE_Addr - -// Handle ACE_*_Memory_Pool. -# define ACE_MMAP_MEMORY_POOL ACE_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options -# define ACE_LITE_MMAP_MEMORY_POOL ACE_Lite_MMAP_Memory_Pool, ACE_MMAP_Memory_Pool_Options -# define ACE_SBRK_MEMORY_POOL ACE_Sbrk_Memory_Pool, ACE_Sbrk_Memory_Pool_Options -# define ACE_SHARED_MEMORY_POOL ACE_Shared_Memory_Pool, ACE_Shared_Memory_Pool_Options -# define ACE_LOCAL_MEMORY_POOL ACE_Local_Memory_Pool, ACE_Local_Memory_Pool_Options - -# endif /* ACE_HAS_TEMPLATE_TYPEDEFS */ - -// For Win32 compatibility... -# if !defined (ACE_WSOCK_VERSION) -# define ACE_WSOCK_VERSION 0, 0 -# endif /* ACE_WSOCK_VERSION */ - -# if defined (ACE_HAS_BROKEN_CTIME) -# undef ctime -# endif /* ACE_HAS_BROKEN_CTIME */ - -extern "C" { -typedef void (*ACE_Service_Object_Exterminator)(void *); -} - -// Static service macros -# define ACE_STATIC_SVC_DECLARE(X) extern ACE_Static_Svc_Descriptor ace_svc_desc_##X ; -# define ACE_STATIC_SVC_DEFINE(X, NAME, TYPE, FN, FLAGS, ACTIVE) \ -ACE_Static_Svc_Descriptor ace_svc_desc_##X = { NAME, TYPE, FN, FLAGS, ACTIVE }; -# define ACE_STATIC_SVC_REQUIRE(X)\ -class ACE_Static_Svc_##X {\ -public:\ - ACE_Static_Svc_##X() { ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_##X); }\ -};\ -static ACE_Static_Svc_##X ace_static_svc_##X; - - -// More generic dynamic/static service macros. -# define ACE_FACTORY_DECLARE(CLS,X) extern "C" CLS##_Export ACE_Service_Object *_make_##X (ACE_Service_Object_Exterminator *); -# define ACE_FACTORY_DEFINE(CLS,X) \ -extern "C" void _gobble_##X (void *p) { X *_p = (X *) p; delete _p; } \ -extern "C" ACE_Service_Object *_make_##X (ACE_Service_Object_Exterminator *gobbler) \ -{ ACE_TRACE (#X); \ -if (gobbler != 0) *gobbler = (ACE_Service_Object_Exterminator) _gobble_##X; return new X; } - -// Dynamic/static service macros. -# define ACE_SVC_FACTORY_DECLARE(X) ACE_FACTORY_DECLARE (ACE_Svc, X) -# define ACE_SVC_INVOKE(X) _make_##X (0) -# define ACE_SVC_NAME(X) _make_##X -# define ACE_SVC_FACTORY_DEFINE(X) ACE_FACTORY_DEFINE (ACE_Svc, X) - -# if defined (ACE_HAS_THREADS) && (defined (ACE_HAS_THREAD_SPECIFIC_STORAGE) || defined (ACE_HAS_TSS_EMULATION)) -# define ACE_TSS_TYPE(T) ACE_TSS< T > -# if defined (ACE_HAS_BROKEN_CONVERSIONS) -# define ACE_TSS_GET(I, T) (*(I)) -# else -# define ACE_TSS_GET(I, T) ((I)->operator T * ()) -# endif /* ACE_HAS_BROKEN_CONVERSIONS */ -# else -# define ACE_TSS_TYPE(T) T -# define ACE_TSS_GET(I, T) (I) -# endif /* ACE_HAS_THREADS && (ACE_HAS_THREAD_SPECIFIC_STORAGE || ACE_HAS_TSS_EMULATIOND) */ - -# if defined (ACE_LACKS_MODE_MASKS) -// MODE MASKS - -// the following macros are for POSIX conformance. - -# define S_IRWXU 00700 /* read, write, execute: owner. */ -# define S_IRUSR 00400 /* read permission: owner. */ -# define S_IWUSR 00200 /* write permission: owner. */ -# define S_IXUSR 00100 /* execute permission: owner. */ -# define S_IRWXG 00070 /* read, write, execute: group. */ -# define S_IRGRP 00040 /* read permission: group. */ -# define S_IWGRP 00020 /* write permission: group. */ -# define S_IXGRP 00010 /* execute permission: group. */ -# define S_IRWXO 00007 /* read, write, execute: other. */ -# define S_IROTH 00004 /* read permission: other. */ -# define S_IWOTH 00002 /* write permission: other. */ -# define S_IXOTH 00001 /* execute permission: other. */ - -# endif /* ACE_LACKS_MODE_MASKS */ - -# if defined (ACE_LACKS_SEMBUF_T) -struct sembuf -{ - u_short sem_num; // semaphore # - short sem_op; // semaphore operation - short sem_flg; // operation flags -}; -# endif /* ACE_LACKS_SEMBUF_T */ - -# if defined (ACE_HAS_H_ERRNO) -void herror (const char *str); -# endif /* ACE_HAS_H_ERRNO */ - -# if defined (ACE_LACKS_UALARM_PROTOTYPE) -extern "C" u_int ualarm (u_int usecs, u_int interval); -# endif /* ACE_LACKS_UALARM_PROTOTYPE */ - -# if defined (ACE_LACKS_MSGBUF_T) -struct msgbuf {}; -# endif /* ACE_LACKS_MSGBUF_T */ - -# if defined (ACE_LACKS_STRRECVFD) -struct strrecvfd {}; -# endif /* ACE_LACKS_STRRECVFD */ - -# if defined (ACE_HAS_PROC_FS) -# include /**/ -# endif /* ACE_HAS_PROC_FD */ - -# if defined (ACE_HAS_UNICODE) -# if defined (ACE_HAS_STANDARD_CPP_LIBRARY) && (ACE_HAS_STANDARD_CPP_LIBRARY != 0) -# include /**/ -# elif !defined (__BORLANDC__) && !defined (ACE_HAS_WINCE) /* ACE_HAS_STANDARD_CPP_LIBRARY */ -# include /**/ -# endif /* ACE_HAS_STANDARD_CPP_LIBRARY */ -# elif defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) -# include /**/ -# elif defined (ACE_LACKS_WCHAR_T) -typedef ACE_UINT32 wchar_t; -# endif /* ACE_HAS_UNICODE */ - -# if defined (ACE_HAS_BROKEN_WRITEV) -typedef struct iovec ACE_WRITEV_TYPE; -# else -typedef const struct iovec ACE_WRITEV_TYPE; -# endif /* ACE_HAS_BROKEN_WRITEV */ - -# if defined (ACE_HAS_BROKEN_READV) -typedef const struct iovec ACE_READV_TYPE; -# else -typedef struct iovec ACE_READV_TYPE; -# endif /* ACE_HAS_BROKEN_READV */ - -# if defined (ACE_HAS_BROKEN_SETRLIMIT) -typedef struct rlimit ACE_SETRLIMIT_TYPE; -# else -typedef const struct rlimit ACE_SETRLIMIT_TYPE; -# endif /* ACE_HAS_BROKEN_SETRLIMIT */ - -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# define ACE_MT(X) X -# if !defined (_REENTRANT) -# define _REENTRANT -# endif /* _REENTRANT */ -# else -# define ACE_MT(X) -# endif /* ACE_MT_SAFE */ - -// These are the various states a thread managed by the -// can be in. -enum ACE_Thread_State -{ - ACE_THR_IDLE, - // Uninitialized. - - ACE_THR_SPAWNED, - // Created but not yet running. - - ACE_THR_RUNNING, - // Thread is active (naturally, we don't know if it's actually - // *running* because we aren't the scheduler...). - - ACE_THR_SUSPENDED, - // Thread is suspended. - - ACE_THR_CANCELLED, - // Thread has been cancelled (which is an indiction that it needs to - // terminate...). - - ACE_THR_TERMINATED - // Thread has shutdown, but the slot in the thread manager hasn't - // been reclaimed yet. -}; - -# if !defined (ACE_DEFAULT_THREAD_PRIORITY) -# define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL - 1L) -# endif /* ACE_DEFAULT_THREAD_PRIORITY */ - -// Convenient macro for testing for deadlock, as well as for detecting -// when mutexes fail. -# define ACE_GUARD(MUTEX,OBJ,LOCK) \ - ACE_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return; -# define ACE_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \ - ACE_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return RETURN; -# define ACE_WRITE_GUARD(MUTEX,OBJ,LOCK) \ - ACE_Write_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return; -# define ACE_WRITE_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \ - ACE_Write_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return RETURN; -# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \ - ACE_Read_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return; -# define ACE_READ_GUARD_RETURN(MUTEX,OBJ,LOCK,RETURN) \ - ACE_Read_Guard OBJ (LOCK); \ - if (OBJ.locked () == 0) return RETURN; - -# if defined (ACE_HAS_POSIX_SEM) -# include /**/ -typedef struct -{ - sem_t *sema_; - // Pointer to semaphore handle. This is allocated by ACE if we are - // working with an unnamed POSIX semaphore or by the OS if we are - // working with a named POSIX semaphore. - - char *name_; - // Name of the semaphore (if this is non-NULL then this is a named - // POSIX semaphore, else its an unnamed POSIX semaphore). -} ACE_sema_t; -# endif /* ACE_HAS_POSIX_SEM */ - -struct cancel_state -{ - int cancelstate; - // e.g., PTHREAD_CANCEL_ENABLE, PTHREAD_CANCEL_DISABLE, - // PTHREAD_CANCELED. - - int canceltype; - // e.g., PTHREAD_CANCEL_DEFERRED and PTHREAD_CANCEL_ASYNCHRONOUS. -}; - -# if defined (ACE_HAS_WINCE) -# include /**/ - -typedef DWORD nlink_t; - -// CE's add-on for c-style fstat/stat functionalities. -// This struct is by no mean complete compared to -// what you usually find in UNIX platforms. -// Only members that have direct conversion using Win32's -// BY_HANDLE_FILE_INFORMATION are defined so that users -// can discover non-supported members at compile time. -// Time values are of type ACE_Time_Value for easy comparison. - -struct stat { - // mode_t st_mode; /* UNIX styled file attribute */ - // nlink_t st_nlink; /* number of hard links */ - ACE_Time_Value st_atime; /* time of last access */ - ACE_Time_Value st_mtime; /* time of last data modification */ - off_t st_size; /* file size, in bytes */ - // u_long st_blksize; /* optimal blocksize for I/O */ - // u_long st_flags; /* user defined flags for file */ -}; - -# else /* ! ACE_HAS_WINCE */ -# if defined (ACE_LACKS_SYS_TYPES_H) - typedef unsigned char u_char; - typedef unsigned short u_short; - typedef unsigned int u_int; - typedef unsigned long u_long; - - typedef unsigned char uchar_t; - typedef unsigned short ushort_t; - typedef unsigned int uint_t; - typedef unsigned long ulong_t; -# else -# include /**/ -# endif /* ACE_LACKS_SYS_TYPES_H */ - -# include /**/ -# endif /* ACE_HAS_WINCE */ - -# if defined (ACE_NEW_THROWS_EXCEPTIONS) -// I know this works for HP aC++... if is used, it introduces other -// stuff that breaks things, like , which screws up auto_ptr. -# include /**/ -# endif /* ACE_NEW_THROWS_EXCEPTIONS */ - -# if defined (ACE_HAS_THREADS) - -# if defined (ACE_HAS_STHREADS) -# include /**/ -# include /**/ -# 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 */ - -# if ! (defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS)) -# define ACE_SCHED_OTHER 0 -# define ACE_SCHED_FIFO 1 -# define ACE_SCHED_RR 2 -# endif /* ! (ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS) */ - -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# define ACE_SCHED_OTHER SCHED_OTHER -# define ACE_SCHED_FIFO SCHED_FIFO -# define ACE_SCHED_RR SCHED_RR - -// Definitions for mapping POSIX pthreads onto Solaris threads. - -# if defined (ACE_HAS_FSU_PTHREADS) -# define PTHREAD_DETACHED 0x1 -# define PTHREAD_SCOPE_SYSTEM 0x2 -# define PTHREAD_INHERIT_SCHED 0x4 -# define PTHREAD_NOFLOAT 0x8 -# define PTHREAD_CREATE_UNDETACHED 0 -# define PTHREAD_CREATE_DETACHED PTHREAD_DETACHED -# define PTHREAD_CREATE_JOINABLE 0 -# define PTHREAD_SCOPE_PROCESS 0 -# define PTHREAD_EXPLICIT_SCHED 0 -# define PTHREAD_MIN_PRIORITY 0 -# define PTHREAD_MAX_PRIORITY 126 -# endif /* ACE_HAS_FSU_PTHREADS */ - -# if defined (ACE_HAS_DCETHREADS) && !defined (ACE_HAS_DCE_DRAFT4_THREADS) -# define PRIORITY_MAX PTHREAD_MAX_PRIORITY -# endif /* ACE_HAS_DCETHREADS */ - -// Definitions for THREAD- and PROCESS-LEVEL priorities...some -// implementations define these while others don't. In order to -// further complicate matters, we don't redefine the default (*_DEF) -// values if they've already been defined, which allows individual -// programs to have their own ACE-wide "default". - -// PROCESS-level values -# define ACE_PROC_PRI_FIFO_MIN (sched_get_priority_min(SCHED_FIFO)) -# define ACE_PROC_PRI_FIFO_MAX (sched_get_priority_max(SCHED_FIFO)) -# define ACE_PROC_PRI_RR_MIN (sched_get_priority_min(SCHED_RR)) -# define ACE_PROC_PRI_RR_MAX (sched_get_priority_max(SCHED_RR)) -# define ACE_PROC_PRI_OTHER_MIN (sched_get_priority_min(SCHED_OTHER)) -# define ACE_PROC_PRI_OTHER_MAX (sched_get_priority_max(SCHED_OTHER)) -# if !defined(ACE_PROC_PRI_FIFO_DEF) -# define ACE_PROC_PRI_FIFO_DEF (ACE_PROC_PRI_FIFO_MIN + (ACE_PROC_PRI_FIFO_MAX - ACE_PROC_PRI_FIFO_MIN)/2) -# endif -# if !defined(ACE_PROC_PRI_RR_DEF) -# define ACE_PROC_PRI_RR_DEF (ACE_PROC_PRI_RR_MIN + (ACE_PROC_PRI_RR_MAX - ACE_PROC_PRI_RR_MIN)/2) -# endif -# if !defined(ACE_PROC_PRI_OTHER_DEF) -# define ACE_PROC_PRI_OTHER_DEF (ACE_PROC_PRI_OTHER_MIN + (ACE_PROC_PRI_OTHER_MAX - ACE_PROC_PRI_OTHER_MIN)/2) -# endif - -// THREAD-level values -# if defined(PRI_FIFO_MIN) && defined(PRI_FIFO_MAX) && defined(PRI_RR_MIN) && defined(PRI_RR_MAX) && defined(PRI_OTHER_MIN) && defined(PRI_OTHER_MAX) -# define ACE_THR_PRI_FIFO_MIN PRI_FIFO_MIN -# define ACE_THR_PRI_FIFO_MAX PRI_FIFO_MAX -# define ACE_THR_PRI_RR_MIN PRI_RR_MIN -# define ACE_THR_PRI_RR_MAX PRI_RR_MAX -# define ACE_THR_PRI_OTHER_MIN PRI_OTHER_MIN -# define ACE_THR_PRI_OTHER_MAX PRI_OTHER_MAX -# else -# define ACE_THR_PRI_FIFO_MIN ACE_PROC_PRI_FIFO_MIN -# define ACE_THR_PRI_FIFO_MAX ACE_PROC_PRI_FIFO_MAX -# define ACE_THR_PRI_RR_MIN ACE_PROC_PRI_RR_MIN -# define ACE_THR_PRI_RR_MAX ACE_PROC_PRI_RR_MAX -# define ACE_THR_PRI_OTHER_MIN ACE_PROC_PRI_OTHER_MIN -# define ACE_THR_PRI_OTHER_MAX ACE_PROC_PRI_OTHER_MAX -# endif -# if !defined(ACE_THR_PRI_FIFO_DEF) -# define ACE_THR_PRI_FIFO_DEF (ACE_THR_PRI_FIFO_MIN + (ACE_THR_PRI_FIFO_MAX - ACE_THR_PRI_FIFO_MIN)/2) -# endif -# if !defined(ACE_THR_PRI_RR_DEF) -# define ACE_THR_PRI_RR_DEF (ACE_THR_PRI_RR_MIN + (ACE_THR_PRI_RR_MAX - ACE_THR_PRI_RR_MIN)/2) -# endif -# if !defined(ACE_THR_PRI_OTHER_DEF) -# define ACE_THR_PRI_OTHER_DEF (ACE_THR_PRI_OTHER_MIN + (ACE_THR_PRI_OTHER_MAX - ACE_THR_PRI_OTHER_MIN)/2) -# endif - -# if !defined (ACE_HAS_TID_T) -typedef pthread_t tid_t; -# endif /* ACE_HAS_TID_T */ - -// Typedefs to help compatibility with Windows NT and Pthreads. -# if defined (ACE_HAS_PTHREAD_T) -typedef pthread_t ACE_hthread_t; -# else /* ACE_HAS_PTHREAD_T */ -typedef tid_t ACE_hthread_t; -# endif /* ACE_HAS_PTHREAD_T */ - -// Make it easier to write portable thread code. -typedef pthread_t ACE_thread_t; -typedef pthread_key_t ACE_thread_key_t; -# if !defined (ACE_LACKS_COND_T) - typedef pthread_mutex_t ACE_mutex_t; - typedef pthread_cond_t ACE_cond_t; -# endif /* ! ACE_LACKS_COND_T */ -typedef pthread_mutex_t ACE_thread_mutex_t; - -# if !defined (PTHREAD_CANCEL_DISABLE) -# define PTHREAD_CANCEL_DISABLE 0 -# endif /* PTHREAD_CANCEL_DISABLE */ - -# if !defined (PTHREAD_CANCEL_ENABLE) -# define PTHREAD_CANCEL_ENABLE 0 -# endif /* PTHREAD_CANCEL_ENABLE */ - -# if !defined (PTHREAD_CANCEL_DEFERRED) -# define PTHREAD_CANCEL_DEFERRED 0 -# endif /* PTHREAD_CANCEL_DEFERRED */ - -# if !defined (PTHREAD_CANCEL_ASYNCHRONOUS) -# define PTHREAD_CANCEL_ASYNCHRONOUS 0 -# endif /* PTHREAD_CANCEL_ASYNCHRONOUS */ - -# define THR_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE -# define THR_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE -# define THR_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED -# define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS - -# if !defined (PTHREAD_CREATE_JOINABLE) -# if defined (PTHREAD_CREATE_UNDETACHED) -# define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED -# else -# define PTHREAD_CREATE_JOINABLE 0 -# endif /* PTHREAD_CREATE_UNDETACHED */ -# endif /* PTHREAD_CREATE_JOINABLE */ - -# if !defined (PTHREAD_CREATE_DETACHED) -# define PTHREAD_CREATE_DETACHED 1 -# endif /* PTHREAD_CREATE_DETACHED */ - -# if !defined (PTHREAD_PROCESS_PRIVATE) -# if defined (PTHREAD_MUTEXTYPE_FAST) -# define PTHREAD_PROCESS_PRIVATE PTHREAD_MUTEXTYPE_FAST -# else -# define PTHREAD_PROCESS_PRIVATE 0 -# endif /* PTHREAD_MUTEXTYPE_FAST */ -# endif /* PTHREAD_PROCESS_PRIVATE */ - -# if !defined (PTHREAD_PROCESS_SHARED) -# if defined (PTHREAD_MUTEXTYPE_FAST) -# define PTHREAD_PROCESS_SHARED PTHREAD_MUTEXTYPE_FAST -# else -# define PTHREAD_PROCESS_SHARED 0 -# endif /* PTHREAD_MUTEXTYPE_FAST */ -# endif /* PTHREAD_PROCESS_SHARED */ - -# if defined (ACE_HAS_DCETHREADS) -# if defined (PTHREAD_PROCESS_PRIVATE) -# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE -# else -# define USYNC_THREAD MUTEX_NONRECURSIVE_NP -# endif /* PTHREAD_PROCESS_PRIVATE */ - -# if defined (PTHREAD_PROCESS_SHARED) -# define USYNC_PROCESS PTHREAD_PROCESS_SHARED -# else -# define USYNC_PROCESS MUTEX_NONRECURSIVE_NP -# endif /* PTHREAD_PROCESS_SHARED */ -# elif !defined (ACE_HAS_STHREADS) -# define USYNC_THREAD PTHREAD_PROCESS_PRIVATE -# define USYNC_PROCESS PTHREAD_PROCESS_SHARED -# endif /* ACE_HAS_DCETHREADS */ - -# define THR_BOUND 0x00000001 -# if defined (CHORUS) -# define THR_NEW_LWP 0x00000000 -# else -# define THR_NEW_LWP 0x00000002 -# endif /* CHORUS */ -# define THR_DETACHED 0x00000040 -# define THR_SUSPENDED 0x00000080 -# define THR_DAEMON 0x00000100 -# define THR_JOINABLE 0x00010000 -# define THR_SCHED_FIFO 0x00020000 -# define THR_SCHED_RR 0x00040000 -# define THR_SCHED_DEFAULT 0x00080000 -# if defined (ACE_HAS_IRIX62_THREADS) -# define THR_SCOPE_SYSTEM 0x00100000 -# else -# define THR_SCOPE_SYSTEM THR_BOUND -# endif /* ACE_HAS_IRIX62_THREADS */ -# define THR_SCOPE_PROCESS 0x00200000 -# define THR_INHERIT_SCHED 0x00400000 -# define THR_EXPLICIT_SCHED 0x00800000 -# define THR_SCHED_IO 0x01000000 - -# if !defined (ACE_HAS_STHREADS) -# if !defined (ACE_HAS_POSIX_SEM) -// This is used to implement semaphores for POSIX pthreads, but -// without POSIX semaphores. It is different than the POSIX sem_t. -class ACE_Export ACE_sema_t -{ -friend class ACE_OS; -protected: - ACE_mutex_t lock_; - // Serialize access to internal state. - - ACE_cond_t count_nonzero_; - // Block until there are no waiters. - - u_long count_; - // Count of the semaphore. - - u_long waiters_; - // Number of threads that have called . -}; -# endif /* !ACE_HAS_POSIX_SEM */ - -# if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) -# if defined (USYNC_THREAD) -# undef USYNC_THREAD -# endif /* USYNC_THREAD */ -# if defined (USYNC_PROCESS) -# undef USYNC_PROCESS -# endif /* USYNC_PROCESS */ -// If we are on Solaris we can just reuse the existing implementations -// of these synchronization types. -# if !defined (ACE_LACKS_RWLOCK_T) -# include /**/ -typedef rwlock_t ACE_rwlock_t; -# endif /* !ACE_LACKS_RWLOCK_T */ -# include /**/ -# endif /* defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */ - -# else -# if !defined (ACE_HAS_POSIX_SEM) -typedef sema_t ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ -# endif /* !ACE_HAS_STHREADS */ -# elif defined (ACE_HAS_STHREADS) -// Solaris threads, without PTHREADS. -// Typedefs to help compatibility with Windows NT and Pthreads. -typedef thread_t ACE_thread_t; -typedef thread_key_t ACE_thread_key_t; -typedef mutex_t ACE_mutex_t; -# if !defined (ACE_LACKS_RWLOCK_T) -typedef rwlock_t ACE_rwlock_t; -# endif /* !ACE_LACKS_RWLOCK_T */ -# if !defined (ACE_HAS_POSIX_SEM) -typedef sema_t ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ -typedef cond_t ACE_cond_t; -typedef ACE_thread_t ACE_hthread_t; -typedef ACE_mutex_t ACE_thread_mutex_t; - -# define THR_CANCEL_DISABLE 0 -# define THR_CANCEL_ENABLE 0 -# define THR_CANCEL_DEFERRED 0 -# define THR_CANCEL_ASYNCHRONOUS 0 -# define THR_JOINABLE 0 -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 - -# elif defined (ACE_PSOS) - -// implement ACE_thread_mutex_t and ACE_mutex_t using pSOS semaphores -typedef u_long ACE_mutex_t; -typedef u_long ACE_thread_mutex_t; -typedef long pid_t; - -typedef char *ACE_thread_t; -typedef int ACE_hthread_t; - - -// Key type: the ACE TSS emulation requires the key type be unsigned, -// for efficiency. (Current POSIX and Solaris TSS implementations also -// use unsigned int, so the ACE TSS emulation is compatible with them.) -typedef u_int ACE_thread_key_t; - -/* CDG - TBD - revisit these: compare pthreads and pSOS threads */ -# define THR_CANCEL_DISABLE 0 /* thread can never be cancelled */ -# define THR_CANCEL_ENABLE 0 /* thread can be cancelled */ -# define THR_CANCEL_DEFERRED 0 /* cancellation deferred to cancellation point */ -# define THR_CANCEL_ASYNCHRONOUS 0 /* cancellation occurs immediately */ - -# define THR_BOUND 0 -# define THR_NEW_LWP 0 -# define THR_DETACHED 0 -# define THR_SUSPENDED 0 -# define THR_DAEMON 0 -# define THR_JOINABLE 0 - -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 -# define USYNC_THREAD T_LOCAL -# define USYNC_PROCESS T_GLOBAL - -/* from psos.h */ -/* #define T_NOPREEMPT 0x00000001 Not preemptible bit */ -/* #define T_PREEMPT 0x00000000 Preemptible */ -/* #define T_TSLICE 0x00000002 Time-slicing enabled bit */ -/* #define T_NOTSLICE 0x00000000 No Time-slicing */ -/* #define T_NOASR 0x00000004 ASRs disabled bit */ -/* #define T_ASR 0x00000000 ASRs enabled */ - -/* #define SM_GLOBAL 0x00000001 1 = Global */ -/* #define SM_LOCAL 0x00000000 0 = Local */ -/* #define SM_PRIOR 0x00000002 Queue by priority */ -/* #define SM_FIFO 0x00000000 Queue by FIFO order */ - -/* #define T_NOFPU 0x00000000 Not using FPU */ -/* #define T_FPU 0x00000002 Using FPU bit */ - -// pSOS signals are sent via as_send(u_long tid, u_long signals) -typedef u_long sigset_t; - -// Wrapper for NT events on pSOS. -class ACE_Export ACE_event_t -{ - friend class ACE_OS; -protected: - ACE_mutex_t lock_; - // Protect critical section. - - ACE_cond_t condition_; - // Keeps track of waiters. - - int manual_reset_; - // Specifies if this is an auto- or manual-reset event. - - int is_signaled_; - // "True" if signaled. - - u_long waiting_threads_; - // Number of waiting threads. -}; - - -# elif defined (VXWORKS) -// For mutex implementation using mutual-exclusion semaphores (which -// can be taken recursively). -# include /**/ - -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ - -extern "C" -struct sockaddr_un { - short sun_family; // AF_UNIX. - char sun_path[108]; // path name. -}; - -# define MAXPATHLEN 1024 -# define MAXNAMLEN 255 -# define NSIG (_NSIGS + 1) - -// task options: the other options are either obsolete, internal, or for -// Fortran or Ada support -# define VX_UNBREAKABLE 0x0002 /* breakpoints ignored */ -# define VX_FP_TASK 0x0008 /* floating point coprocessor */ -# define VX_PRIVATE_ENV 0x0080 /* private environment support */ -# define VX_NO_STACK_FILL 0x0100 /* do not stack fill for checkstack () */ - -# define THR_CANCEL_DISABLE 0 -# define THR_CANCEL_ENABLE 0 -# define THR_CANCEL_DEFERRED 0 -# define THR_CANCEL_ASYNCHRONOUS 0 -# define THR_BOUND 0 -# define THR_NEW_LWP 0 -# define THR_DETACHED 0 -# define THR_SUSPENDED 0 -# define THR_DAEMON 0 -# define THR_JOINABLE 0 -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 -# define USYNC_THREAD 0 -# define USYNC_PROCESS 1 /* it's all global on VxWorks (without MMU - option) */ - -# if !defined (ACE_DEFAULT_SYNCH_TYPE) - // Types include these options: SEM_Q_PRIORITY, SEM_Q_FIFO, - // SEM_DELETE_SAFE, and SEM_INVERSION_SAFE. SEM_Q_FIFO is - // used as the default because that is VxWorks' default. -# define ACE_DEFAULT_SYNCH_TYPE SEM_Q_FIFO -# endif /* ! ACE_DEFAULT_SYNCH_TYPE */ - -typedef SEM_ID ACE_mutex_t; -// implement ACE_thread_mutex_t with ACE_mutex_t sinces there's just one process . . . -typedef ACE_mutex_t ACE_thread_mutex_t; -# if !defined (ACE_HAS_POSIX_SEM) -// Use VxWorks semaphores, wrapped . . . -typedef struct -{ - SEM_ID sema_; - // Semaphore handle. This is allocated by VxWorks. - - char *name_; - // Name of the semaphore: always NULL with VxWorks. -} ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ -typedef char * ACE_thread_t; -typedef int ACE_hthread_t; -// Key type: the ACE TSS emulation requires the key type be unsigned, -// for efficiency. (Current POSIX and Solaris TSS implementations also -// use u_int, so the ACE TSS emulation is compatible with them.) -typedef u_int ACE_thread_key_t; - -# elif defined (ACE_HAS_WTHREADS) - -typedef CRITICAL_SECTION ACE_thread_mutex_t; -typedef struct -{ - int type_; // Either USYNC_THREAD or USYNC_PROCESS - union - { - HANDLE proc_mutex_; - CRITICAL_SECTION thr_mutex_; - }; -} ACE_mutex_t; - -// Wrapper for NT Events. -typedef HANDLE ACE_event_t; - -//@@ ACE_USES_WINCE_SEMA_SIMULATION is used to debug -// semaphore simulation on WinNT. It should be -// changed to ACE_USES_HAS_WINCE at some later point. -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) -typedef HANDLE ACE_sema_t; -# else - -class ACE_Export ACE_sema_t -{ - // = TITLE - // Semaphore simulation for Windows CE. -public: - ACE_thread_mutex_t lock_; - // Serializes access to . - - ACE_event_t count_nonzero_; - // This event is signaled whenever the count becomes non-zero. - - u_int count_; - // Current count of the semaphore. -}; - -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ - -// These need to be different values, neither of which can be 0... -# define USYNC_THREAD 1 -# define USYNC_PROCESS 2 - -# define THR_CANCEL_DISABLE 0 -# define THR_CANCEL_ENABLE 0 -# define THR_CANCEL_DEFERRED 0 -# define THR_CANCEL_ASYNCHRONOUS 0 -# define THR_DETACHED 0x02000000 /* ?? ignore in most places */ -# define THR_BOUND 0 /* ?? ignore in most places */ -# define THR_NEW_LWP 0 /* ?? ignore in most places */ -# define THR_DAEMON 0 /* ?? ignore in most places */ -# define THR_JOINABLE 0 /* ?? ignore in most places */ -# define THR_SUSPENDED CREATE_SUSPENDED -# define THR_USE_AFX 0x01000000 -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ - -# if defined (ACE_LACKS_COND_T) -class ACE_Export ACE_cond_t -{ - // = TITLE - // This structure is used to implement condition variables on - // VxWorks and Win32. - // - // = DESCRIPTION - // At the current time, this stuff only works for threads - // within the same process. -public: - friend class ACE_OS; - - long waiters (void) const; - // Returns the number of waiters. - -protected: - long waiters_; - // Number of waiting threads. - - ACE_thread_mutex_t waiters_lock_; - // Serialize access to the waiters count. - - ACE_sema_t sema_; - // Queue up threads waiting for the condition to become signaled. - -# if defined (VXWORKS) || defined (ACE_PSOS) - ACE_sema_t waiters_done_; - // A semaphore used by the broadcast/signal thread to wait for all - // the waiting thread(s) to wake up and be released from the - // semaphore. -# elif defined (ACE_WIN32) - HANDLE waiters_done_; - // An auto reset event used by the broadcast/signal thread to wait - // for the waiting thread(s) to wake up and get a chance at the - // semaphore. -# else -# error "SOMEONE FIX ME!" -# endif /* VXWORKS || ACE_PSOS */ - - size_t was_broadcast_; - // Keeps track of whether we were broadcasting or just signaling. -}; -# endif /* ACE_LACKS_COND_T */ - -# if defined (ACE_LACKS_RWLOCK_T) -struct ACE_Export ACE_rwlock_t -{ - // = TITLE - // This is used to implement readers/writer locks on NT, - // VxWorks, and POSIX pthreads. - // - // = DESCRIPTION - // At the current time, this stuff only works for threads - // within the same process. -protected: - friend class ACE_OS; - - ACE_mutex_t lock_; - // Serialize access to internal state. - - ACE_cond_t waiting_readers_; - // Reader threads waiting to acquire the lock. - - int num_waiting_readers_; - // Number of waiting readers. - - ACE_cond_t waiting_writers_; - // Writer threads waiting to acquire the lock. - - int num_waiting_writers_; - // Number of waiting writers. - - int ref_count_; - // Value is -1 if writer has the lock, else this keeps track of the - // number of readers holding the lock. - - int important_writer_; - // indicate that a reader is trying to upgrade - - ACE_cond_t waiting_important_writer_; - // condition for the upgrading reader -}; -# elif defined (ACE_HAS_STHREADS) -# include /**/ -typedef rwlock_t ACE_rwlock_t; -# endif /* ACE_LACKS_RWLOCK_T */ - -// #define ACE_THR_PRI_FIFO_DEF on all threaded platforms, if not defined -// above or in the individual platform config file. It should be used by -// applications for a default real-time thread priority. -# if !defined(ACE_THR_PRI_FIFO_DEF) -# if defined (ACE_WTHREADS) - // It would be more in spirit to use THREAD_PRIORITY_NORMAL. But, - // using THREAD_PRIORITY_ABOVE_NORMAL should give preference to the - // threads in this process, even if the process is not in the - // REALTIME_PRIORITY_CLASS. -# define ACE_THR_PRI_FIFO_DEF THREAD_PRIORITY_ABOVE_NORMAL -# else /* ! ACE_WTHREADS */ -# define ACE_THR_PRI_FIFO_DEF 0 -# endif /* ! ACE_WTHREADS */ -# endif /* ! ACE_THR_PRI_FIFO_DEF */ - -# else /* !ACE_HAS_THREADS, i.e., the OS/platform doesn't support threading. */ - -// Give these things some reasonable value... -# define ACE_SCOPE_PROCESS 0 -# define ACE_SCOPE_LWP 1 -# define ACE_SCOPE_THREAD 2 -# define ACE_SCHED_OTHER 0 -# define ACE_SCHED_FIFO 1 -# define ACE_SCHED_RR 2 -# define THR_CANCEL_DISABLE 0 -# define THR_CANCEL_ENABLE 0 -# define THR_CANCEL_DEFERRED 0 -# define THR_CANCEL_ASYNCHRONOUS 0 -# define THR_JOINABLE 0 /* ?? ignore in most places */ -# define THR_DETACHED 0 /* ?? ignore in most places */ -# define THR_DAEMON 0 /* ?? ignore in most places */ -# define THR_BOUND 0 /* ?? ignore in most places */ -# define THR_NEW_LWP 0 /* ?? ignore in most places */ -# define THR_SUSPENDED 0 /* ?? ignore in most places */ -# define THR_SCHED_FIFO 0 -# define THR_SCHED_RR 0 -# define THR_SCHED_DEFAULT 0 -# define USYNC_THREAD 0 -# define USYNC_PROCESS 0 -// These are dummies needed for class OS.h -typedef int ACE_cond_t; -typedef int ACE_mutex_t; -typedef int ACE_thread_mutex_t; -# if !defined (ACE_HAS_POSIX_SEM) && !defined (ACE_PSOS) -typedef int ACE_sema_t; -# endif /* !ACE_HAS_POSIX_SEM */ -typedef int ACE_rwlock_t; -typedef int ACE_thread_t; -typedef int ACE_hthread_t; -typedef u_int ACE_thread_key_t; - -# if defined (ACE_PSOS) - -// Wrapper for NT events on pSOS. -class ACE_Export ACE_event_t -{ - friend class ACE_OS; -protected: - ACE_mutex_t lock_; - // Protect critical section. - - ACE_cond_t condition_; - // Keeps track of waiters. - - int manual_reset_; - // Specifies if this is an auto- or manual-reset event. - - int is_signaled_; - // "True" if signaled. - - u_long waiting_threads_; - // Number of waiting threads. -}; - -# endif /* ACE_PSOS */ - -# endif /* ACE_HAS_THREADS */ - -// Standard C Library includes -// NOTE: stdarg.h must be #included before stdio.h on LynxOS. -# include /**/ -# if !defined (ACE_HAS_WINCE) -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# endif /* ACE_HAS_WINCE */ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ - -# if defined (ACE_NEEDS_SCHED_H) -# include /**/ -# endif /* ACE_NEEDS_SCHED_H */ - -# if defined (ACE_HAS_WINCE) -# define islower iswlower -# define isdigit iswdigit -# endif /* ACE_HAS_WINCE */ - -// If the user wants minimum IOStream inclusion, we will just include -// the forward declarations -# if defined (ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION) -// Forward declaration for streams -# include "ace/iosfwd.h" -# else /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */ -// Else they will get all the stream header files -# include "ace/streams.h" -# endif /* ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION */ - -# if !defined (ACE_HAS_WINCE) -# include /**/ -# endif /* ACE_HAS_WINCE */ - -// This must come after signal.h is #included. -# if defined (SCO) -# define SIGIO SIGPOLL -# include /**/ -# endif /* SCO */ - -# if defined ACE_HAS_BYTESEX_H -# include /**/ -# endif /* ACE_HAS_BYTESEX_H */ -# include "ace/Basic_Types.h" - -# if defined (ACE_HAS_SIG_MACROS) -# undef sigemptyset -# undef sigfillset -# undef sigaddset -# undef sigdelset -# undef sigismember -# endif /* ACE_HAS_SIG_MACROS */ - -// This must come after signal.h is #included. It's to counteract -// the sigemptyset and sigfillset #defines, which only happen -// when __OPTIMIZE__ is #defined (really!) on Linux. -# if defined (linux) && defined (__OPTIMIZE__) -# undef sigemptyset -# undef sigfillset -# endif /* linux && __OPTIMIZE__ */ - -# if defined (ACE_HAS_BROKEN_SENDMSG) -typedef struct msghdr ACE_SENDMSG_TYPE; -# else -typedef const struct msghdr ACE_SENDMSG_TYPE; -# endif /* ACE_HAS_BROKEN_SENDMSG */ - -# if defined (ACE_HAS_BROKEN_RANDR) -// The SunOS 5.x version of rand_r is inconsistent with the header files... -typedef u_int ACE_RANDR_TYPE; -extern "C" int rand_r (ACE_RANDR_TYPE seed); -# else -# if defined (HPUX_10) -// HP-UX 10.x's stdlib.h (long *) doesn't match that man page (u_int *) -typedef long *ACE_RANDR_TYPE; -# else -typedef u_int *ACE_RANDR_TYPE; -# endif /* HPUX_10 */ -# endif /* ACE_HAS_BROKEN_RANDR */ - -# if defined (ACE_HAS_UTIME) -# include /**/ -# endif /* ACE_HAS_UTIME */ - -# if !defined (ACE_HAS_MSG) && !defined (SCO) -struct msghdr {}; -# endif /* ACE_HAS_MSG */ - -# if !defined (ACE_HAS_SIG_ATOMIC_T) -typedef int sig_atomic_t; -# endif /* !ACE_HAS_SIG_ATOMIC_T */ - -# if !defined (ACE_HAS_SSIZE_T) -typedef int ssize_t; -# endif /* ACE_HAS_SSIZE_T */ - -# if defined (ACE_HAS_OLD_MALLOC) -typedef char *ACE_MALLOC_T; -# else -typedef void *ACE_MALLOC_T; -# endif /* ACE_HAS_OLD_MALLOC */ - -# if defined (ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES) -// Prototypes for both signal() and struct sigaction are consistent.. -# if defined (ACE_HAS_SIG_C_FUNC) -extern "C" { -# endif /* ACE_HAS_SIG_C_FUNC */ -typedef void (*ACE_SignalHandler)(int); -typedef void (*ACE_SignalHandlerV)(int); -# if defined (ACE_HAS_SIG_C_FUNC) -} -# endif /* ACE_HAS_SIG_C_FUNC */ -# elif defined (ACE_HAS_LYNXOS_SIGNALS) -typedef void (*ACE_SignalHandler)(...); -typedef void (*ACE_SignalHandlerV)(...); -# elif defined (ACE_HAS_TANDEM_SIGNALS) -typedef void (*ACE_SignalHandler)(...); -typedef void (*ACE_SignalHandlerV)(...); -# elif defined (ACE_HAS_IRIX_53_SIGNALS) -typedef void (*ACE_SignalHandler)(...); -typedef void (*ACE_SignalHandlerV)(...); -# elif defined (ACE_HAS_SPARCWORKS_401_SIGNALS) -typedef void (*ACE_SignalHandler)(int, ...); -typedef void (*ACE_SignalHandlerV)(int,...); -# elif defined (ACE_HAS_SUNOS4_SIGNAL_T) -typedef void (*ACE_SignalHandler)(...); -typedef void (*ACE_SignalHandlerV)(...); -# elif defined (ACE_HAS_SVR4_SIGNAL_T) -// SVR4 Signals are inconsistent (e.g., see struct sigaction).. -typedef void (*ACE_SignalHandler)(int); -# if !defined (m88k) /* with SVR4_SIGNAL_T */ -typedef void (*ACE_SignalHandlerV)(void); -# else -typedef void (*ACE_SignalHandlerV)(int); -# endif // m88k /* with SVR4_SIGNAL_T */ -# elif defined (ACE_WIN32) -typedef void (__cdecl *ACE_SignalHandler)(int); -typedef void (__cdecl *ACE_SignalHandlerV)(int); -# elif defined (ACE_HAS_UNIXWARE_SVR4_SIGNAL_T) -typedef void (*ACE_SignalHandler)(int); -typedef void (*ACE_SignalHandlerV)(...); -# else /* This is necessary for some older broken version of cfront */ -# if defined (SIG_PF) -# define ACE_SignalHandler SIG_PF -# else -typedef void (*ACE_SignalHandler)(int); -# endif /* SIG_PF */ -typedef void (*ACE_SignalHandlerV)(...); -# endif /* ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES */ - -# if defined (BUFSIZ) -# define ACE_STREAMBUF_SIZE BUFSIZ -# else -# define ACE_STREAMBUF_SIZE 1024 -# endif /* BUFSIZ */ - -# if defined (ACE_WIN32) -// Turn off warnings for /W4 -// To resume any of these warning: #pragma warning(default: 4xxx) -// which should be placed after these defines -# ifndef ALL_WARNINGS -// #pragma warning(disable: 4101) // unreferenced local variable -# pragma warning(disable: 4127) /* constant expression for TRACE/ASSERT */ -# pragma warning(disable: 4134) /* message map member fxn casts */ -# pragma warning(disable: 4511) /* private copy constructors are good to have */ -# pragma warning(disable: 4512) /* private operator= are good to have */ -# pragma warning(disable: 4514) /* unreferenced inlines are common */ -# pragma warning(disable: 4710) /* private constructors are disallowed */ -# pragma warning(disable: 4705) /* statement has no effect in optimized code */ -// #pragma warning(disable: 4701) // local variable *may* be used without init -// #pragma warning(disable: 4702) // unreachable code caused by optimizations -# pragma warning(disable: 4791) /* loss of debugging info in retail version */ -// #pragma warning(disable: 4204) // non-constant aggregate initializer -# pragma warning(disable: 4275) /* deriving exported class from non-exported */ -# pragma warning(disable: 4251) /* using non-exported as public in exported */ -# pragma warning(disable: 4786) /* identifier was truncated to '255' characters in the browser information */ -# pragma warning(disable: 4097) /* typedef-name used as synonym for class-name */ -# endif /*!ALL_WARNINGS */ - -// 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 we only use this if we -# if defined (ACE_HAS_STRICT) && (ACE_HAS_STRICT != 0) -# if !defined (STRICT) /* may already be defined */ -# define STRICT -# endif /* !STRICT */ -# endif /* ACE_HAS_STRICT */ - -# if !defined (ACE_HAS_WINCE) -# include /**/ -# endif /* ACE_HAS_WINCE */ - -// The following defines are used by the ACE Name Server... -# if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) -# define ACE_DEFAULT_NAMESPACE_DIR_W L"C:\\temp" -# endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ - -# if !defined (ACE_DEFAULT_NAMESPACE_DIR_A) -# define ACE_DEFAULT_NAMESPACE_DIR_A "C:\\temp" -# endif /* ACE_DEFAULT_NAMESPACE_DIR_A */ - -# if !defined (ACE_DEFAULT_LOCALNAME_A) -# define ACE_DEFAULT_LOCALNAME_A "localnames" -# endif /* ACE_DEFAULT_LOCALNAME_A */ - -# if !defined (ACE_DEFAULT_LOCALNAME_W) -# define ACE_DEFAULT_LOCALNAME_W L"localnames" -# endif /* ACE_DEFAULT_LOCALNAME_W */ - -# if !defined (ACE_DEFAULT_GLOBALNAME_A) -# define ACE_DEFAULT_GLOBALNAME_A "globalnames" -# endif /* ACE_DEFAULT_GLOBALNAME_A */ - -# if !defined (ACE_DEFAULT_GLOBALNAME_W) -# define ACE_DEFAULT_GLOBALNAME_W L"globalnames" -# endif /* ACE_DEFAULT_GLOBALNAME_W */ - -// Need to work around odd glitches with NT. -# if !defined (ACE_MAX_DEFAULT_PORT) -# define ACE_MAX_DEFAULT_PORT 0 -# endif /* ACE_MAX_DEFAULT_PORT */ - -// We're on WinNT or Win95 -# define ACE_PLATFORM_A "Win32" -# define ACE_PLATFORM_EXE_SUFFIX_A ".exe" -# define ACE_PLATFORM_W L"Win32" -# define ACE_PLATFORM_EXE_SUFFIX_W L".exe" - -// Used for ACE_MMAP_Memory_Pool -# if !defined (ACE_DEFAULT_BACKING_STORE) -# define ACE_DEFAULT_BACKING_STORE __TEXT ("C:\\temp\\ace-malloc-XXXXXX") -# endif /* ACE_DEFAULT_BACKING_STORE */ - -// Used for logging -# if !defined (ACE_DEFAULT_LOGFILE) -# define ACE_DEFAULT_LOGFILE "C:\\temp\\logfile" -# endif /* ACE_DEFAULT_LOGFILE */ - -// Used for dynamic linking -# if !defined (ACE_DEFAULT_SVC_CONF) -# define ACE_DEFAULT_SVC_CONF ".\\svc.conf" -# endif /* ACE_DEFAULT_SVC_CONF */ - -// The following are #defines and #includes that are specific to -// WIN32. -# define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE) -# define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE) -# define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE) - -// Default semaphore key and mutex name -# if !defined (ACE_DEFAULT_SEM_KEY) -# define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY" -# endif /* ACE_DEFAULT_SEM_KEY */ - -# define ACE_INVALID_SEM_KEY 0 - -# if defined (ACE_HAS_WINCE) -// @@ WinCE probably doesn't have structural exception support -// But I need to double check to find this out -# define ACE_SEH_TRY if (1) -# define ACE_SEH_EXCEPT(X) while (0) -# define ACE_SEH_FINALLY if (1) -# else -# if defined(__BORLANDC__) -# if (__BORLANDC__ >= 0x0530) /* Borland C++ Builder 3.0 */ -# define ACE_SEH_TRY try -# define ACE_SEH_FINALLY __finally -# else -# define ACE_SEH_TRY try -# define ACE_SEH_FINALLY catch(...) -# endif -# else -# define ACE_SEH_TRY __try -# define ACE_SEH_FINALLY __finally -# endif /* __BORLANDC__ */ -# define ACE_SEH_EXCEPT(X) __except(X) -typedef int (*ACE_SEH_EXCEPT_HANDLER)(void *); -// Prototype of win32 structured exception handler functions. -// They are used to get the exception handling expression or -// as exception handlers. -# endif /* ACE_HAS_WINCE */ - -// The "null" device on Win32. -# define ACE_DEV_NULL "nul" - -// Define the pathname separator characters for Win32 (ugh). -# define ACE_DIRECTORY_SEPARATOR_STR_A "\\" -# define ACE_DIRECTORY_SEPARATOR_STR_W L"\\" -# define ACE_DIRECTORY_SEPARATOR_CHAR_A '\\' -# define ACE_DIRECTORY_SEPARATOR_CHAR_W L'\\' -# define ACE_LD_SEARCH_PATH "PATH" -# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ";" -# define ACE_DLL_SUFFIX ".dll" -# define ACE_DLL_PREFIX "" - -// This will help until we figure out everything: -# define NFDBITS 32 /* only used in unused functions... */ -// These two may be used for internal flags soon: -# define MAP_PRIVATE 1 -# define MAP_SHARED 2 -# define MAP_FIXED 4 - -# define RUSAGE_SELF 1 - -struct shmaddr { }; -struct msqid_ds {}; - -// Fake the UNIX rusage structure. Perhaps we can add more to this -// later on? -struct rusage -{ - FILETIME ru_utime; - FILETIME ru_stime; -}; - -// MMAP flags -# define PROT_READ PAGE_READONLY -# define PROT_WRITE PAGE_READWRITE -# define PROT_RDWR PAGE_READWRITE -/* If we can find suitable use for these flags, here they are: -PAGE_WRITECOPY -PAGE_EXECUTE -PAGE_EXECUTE_READ -PAGE_EXECUTE_READWRITE -PAGE_EXECUTE_WRITECOPY -PAGE_GUARD -PAGE_NOACCESS -PAGE_NOCACHE */ - -# if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) -# include "ace/ws2tcpip.h" -# endif /* ACE_HAS_WINSOCK2 */ - -# define MAXHOSTNAMELEN 256 - -// error code mapping -# define ETIME ERROR_SEM_TIMEOUT -# define EWOULDBLOCK WSAEWOULDBLOCK -# define EINPROGRESS WSAEINPROGRESS -# define EALREADY WSAEALREADY -# define ENOTSOCK WSAENOTSOCK -# define EDESTADDRREQ WSAEDESTADDRREQ -# define EMSGSIZE WSAEMSGSIZE -# define EPROTOTYPE WSAEPROTOTYPE -# define ENOPROTOOPT WSAENOPROTOOPT -# define EPROTONOSUPPORT WSAEPROTONOSUPPORT -# define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT -# define EOPNOTSUPP WSAEOPNOTSUPP -# define EPFNOSUPPORT WSAEPFNOSUPPORT -# define EAFNOSUPPORT WSAEAFNOSUPPORT -# define EADDRINUSE WSAEADDRINUSE -# define EADDRNOTAVAIL WSAEADDRNOTAVAIL -# define ENETDOWN WSAENETDOWN -# define ENETUNREACH WSAENETUNREACH -# define ENETRESET WSAENETRESET -# define ECONNABORTED WSAECONNABORTED -# define ECONNRESET WSAECONNRESET -# define ENOBUFS WSAENOBUFS -# define EISCONN WSAEISCONN -# define ENOTCONN WSAENOTCONN -# define ESHUTDOWN WSAESHUTDOWN -# define ETOOMANYREFS WSAETOOMANYREFS -# define ETIMEDOUT WSAETIMEDOUT -# define ECONNREFUSED WSAECONNREFUSED -# define ELOOP WSAELOOP -# define EHOSTDOWN WSAEHOSTDOWN -# define EHOSTUNREACH WSAEHOSTUNREACH -# define EPROCLIM WSAEPROCLIM -# define EUSERS WSAEUSERS -# define EDQUOT WSAEDQUOT -# define ESTALE WSAESTALE -# define EREMOTE WSAEREMOTE -// Grrr! These two are already defined by the horrible 'standard' -// library. -// #define ENAMETOOLONG WSAENAMETOOLONG -// #define ENOTEMPTY WSAENOTEMPTY - -# if !defined (ACE_HAS_WINCE) -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# endif /* ACE_HAS_WINCE */ - -# if defined (__BORLANDC__) -# include /**/ -# define _chdir chdir -# define _ftime ftime -# define _access access -# define _getcwd getcwd -# define _isatty isatty -# define _umask umask -# define _fstat fstat -# define _stat stat -# define _stricmp stricmp -# define _strnicmp strnicmp - -# define _timeb timeb - -# define _O_CREAT O_CREAT -# define _O_EXCL O_EXCL -# define _O_TRUNC O_TRUNC -# define _O_TEMPORARY 0x0800 // see fcntl.h -# endif /* __BORLANDC__ */ - -typedef OVERLAPPED ACE_OVERLAPPED; -typedef DWORD ACE_thread_t; -typedef HANDLE ACE_hthread_t; -typedef long pid_t; -typedef DWORD ACE_thread_key_t; -# if !defined (__BORLANDC__) -typedef DWORD nlink_t; -# endif /* __BORLANDC__ */ - -// 64-bit quad-word definitions. -typedef unsigned __int64 ACE_QWORD; -typedef unsigned __int64 ACE_hrtime_t; -inline ACE_QWORD ACE_MAKE_QWORD (DWORD lo, DWORD hi) { return ACE_QWORD (lo) | (ACE_QWORD (hi) << 32); } -inline DWORD ACE_LOW_DWORD (ACE_QWORD q) { return (DWORD) q; } -inline DWORD ACE_HIGH_DWORD (ACE_QWORD q) { return (DWORD) (q >> 32); } - -// Win32 dummies to help compilation. - -# if !defined (__BORLANDC__) -typedef int mode_t; -typedef int uid_t; -typedef int gid_t; -# endif /* __BORLANDC__ */ -typedef char *caddr_t; -struct rlimit { }; -struct t_call { }; -struct t_bind { }; -struct t_info { }; -struct t_optmgmt { }; -struct t_discon { }; -struct t_unitdata { }; -struct t_uderr { }; -struct netbuf { }; - -// This is for file descriptors. -typedef HANDLE ACE_HANDLE; - -// For Win32 compatibility. -typedef SOCKET ACE_SOCKET; - -# define ACE_INVALID_HANDLE INVALID_HANDLE_VALUE -# define ACE_SYSCALL_FAILED 0xFFFFFFFF - -// Needed to map calls to NT transparently. -# define MS_ASYNC 0 -# define MS_INVALIDATE 0 - -// Reliance on CRT - I don't really like this. - -# define O_NDELAY 0 -# if !defined (MAXPATHLEN) -# define MAXPATHLEN _MAX_PATH -# endif /* !MAXPATHLEN */ -# define MAXNAMLEN _MAX_FNAME -# define EADDRINUSE WSAEADDRINUSE - -struct iovec -{ - char *iov_base; // data to be read/written - size_t iov_len; // byte count to read/write -}; - -typedef int ACE_idtype_t; -typedef DWORD ACE_id_t; -# define ACE_SELF (-1) -typedef int ACE_pri_t; - -// Dynamic loading-related types - used for dlopen and family. -# if !defined(RTLD_LAZY) -# define RTLD_LAZY 1 -# endif /* !RTLD_LAZY */ -typedef HINSTANCE ACE_SHLIB_HANDLE; -const int ACE_DEFAULT_SHLIB_MODE = 0; - - -# elif defined (ACE_PSOS) - -typedef ACE_UINT64 ACE_hrtime_t; - -# else /* !defined (ACE_WIN32) && !defined (ACE_PSOS) */ - -typedef const char *LPCTSTR; -typedef char *LPTSTR; -typedef char TCHAR; - -# if !defined (__TEXT) -# if (defined (ACE_HAS_UNICODE) && (defined (UNICODE))) -# define __TEXT(STRING) L##STRING -# else -# define __TEXT(STRING) STRING -# endif /* UNICODE && ACE_HAS_UNICODE */ -# endif /* !defined __TEXT */ - -# if defined (m88k) -# define RUSAGE_SELF 1 -# endif /* m88k */ - -// Default port is MAX_SHORT. -# define ACE_MAX_DEFAULT_PORT 65535 - -// Default semaphore key -# if !defined (ACE_DEFAULT_SEM_KEY) -# define ACE_DEFAULT_SEM_KEY 1234 -# endif /* ACE_DEFAULT_SEM_KEY */ - -# define ACE_INVALID_SEM_KEY -1 - -// Define the pathname separator characters for UNIX. -# define ACE_DIRECTORY_SEPARATOR_STR_A "/" -# define ACE_DIRECTORY_SEPARATOR_CHAR_A '/' - -// We're some kind of UNIX... -# define ACE_PLATFORM_A "UNIX" -# define ACE_PLATFORM_EXE_SUFFIX_A "" - -# if defined (ACE_HAS_UNICODE) -# define ACE_DIRECTORY_SEPARATOR_STR_W L"/" -# define ACE_DIRECTORY_SEPARATOR_CHAR_W L'/' -# define ACE_PLATFORM_W L"UNIX" -# define ACE_PLATFORM_EXE_SUFFIX_W L"" -# else -# define ACE_DIRECTORY_SEPARATOR_STR_W "/" -# define ACE_DIRECTORY_SEPARATOR_CHAR_W '/' -# define ACE_PLATFORM_W "UNIX" -# define ACE_PLATFORM_EXE_SUFFIX_W "" -# endif /* ACE_HAS_UNICODE */ - -# if !defined (ACE_LD_SEARCH_PATH) -# define ACE_LD_SEARCH_PATH "LD_LIBRARY_PATH" -# endif /* ACE_LD_SEARCH_PATH */ -# if !defined (ACE_LD_SEARCH_PATH_SEPARATOR_STR) -# define ACE_LD_SEARCH_PATH_SEPARATOR_STR ":" -# endif /* ACE_LD_SEARCH_PATH_SEPARATOR_STR */ - -# if !defined (ACE_DLL_SUFFIX) -# define ACE_DLL_SUFFIX ".so" -# endif /* ACE_DLL_SUFFIX */ -# if !defined (ACE_DLL_PREFIX) -# define ACE_DLL_PREFIX "lib" -# endif /* ACE_DLL_PREFIX */ - -// The following 3 defines are used by the ACE Name Server... -# if !defined (ACE_DEFAULT_NAMESPACE_DIR_A) -# define ACE_DEFAULT_NAMESPACE_DIR_A "/tmp" -# endif /* ACE_DEFAULT_NAMESPACE_DIR_A */ - -# if !defined (ACE_DEFAULT_LOCALNAME_A) -# define ACE_DEFAULT_LOCALNAME_A "localnames" -# endif /* ACE_DEFAULT_LOCALNAME_A */ - -# if !defined (ACE_DEFAULT_GLOBALNAME_A) -# define ACE_DEFAULT_GLOBALNAME_A "globalnames" -# endif /* ACE_DEFAULT_GLOBALNAME_A */ - -# if defined (ACE_HAS_UNICODE) -# if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) -# define ACE_DEFAULT_NAMESPACE_DIR_W L"/tmp" -# endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ -# if !defined (ACE_DEFAULT_LOCALNAME_W) -# define ACE_DEFAULT_LOCALNAME_W L"localnames" -# endif /* ACE_DEFAULT_LOCALNAME_W */ -# if !defined (ACE_DEFAULT_GLOBALNAME_W) -# define ACE_DEFAULT_GLOBALNAME_W L"globalnames" -# endif /* ACE_DEFAULT_GLOBALNAME_W */ -# else -# if !defined (ACE_DEFAULT_NAMESPACE_DIR_W) -# define ACE_DEFAULT_NAMESPACE_DIR_W "/tmp" -# endif /* ACE_DEFAULT_NAMESPACE_DIR_W */ -# if !defined (ACE_DEFAULT_LOCALNAME_W) -# define ACE_DEFAULT_LOCALNAME_W "localnames" -# endif /* ACE_DEFAULT_LOCALNAME_W */ -# if !defined (ACE_DEFAULT_GLOBALNAME_W) -# define ACE_DEFAULT_GLOBALNAME_W "globalnames" -# endif /* ACE_DEFAULT_GLOBALNAME_W */ -# endif /* ACE_HAS_UNICODE */ - -// Used for ACE_MMAP_Memory_Pool -# if !defined (ACE_DEFAULT_BACKING_STORE) -# define ACE_DEFAULT_BACKING_STORE "/tmp/ace-malloc-XXXXXX" -# endif /* ACE_DEFAULT_BACKING_STORE */ - -// Used for logging -# if !defined (ACE_DEFAULT_LOGFILE) -# define ACE_DEFAULT_LOGFILE "/tmp/logfile" -# endif /* ACE_DEFAULT_LOGFILE */ - -// Used for dynamic linking. -# if !defined (ACE_DEFAULT_SVC_CONF) -# define ACE_DEFAULT_SVC_CONF "./svc.conf" -# endif /* ACE_DEFAULT_SVC_CONF */ - -// The following are #defines and #includes that are specific to UNIX. - -# define ACE_STDIN 0 -# define ACE_STDOUT 1 -# define ACE_STDERR 2 - -// Be consistent with Winsock naming -# define ACE_INVALID_HANDLE -1 -# define ACE_SYSCALL_FAILED -1 - -# define ACE_SEH_TRY if (1) -# define ACE_SEH_EXCEPT(X) while (0) -# define ACE_SEH_FINALLY if (1) - -// The "null" device on UNIX. -# define ACE_DEV_NULL "/dev/null" - - -// Wrapper for NT events on UNIX. -class ACE_Export ACE_event_t -{ - friend class ACE_OS; -protected: - ACE_mutex_t lock_; - // Protect critical section. - - ACE_cond_t condition_; - // Keeps track of waiters. - - int manual_reset_; - // Specifies if this is an auto- or manual-reset event. - - int is_signaled_; - // "True" if signaled. - - u_long waiting_threads_; - // Number of waiting threads. -}; - -// Provide compatibility with Windows NT. -typedef int ACE_HANDLE; -// For Win32 compatibility. -typedef ACE_HANDLE ACE_SOCKET; - -struct ACE_OVERLAPPED -{ - u_long Internal; - u_long InternalHigh; - u_long Offset; - u_long OffsetHigh; - ACE_HANDLE hEvent; -}; - -// Add some typedefs and macros to enhance Win32 conformance... -# if !defined (LPSECURITY_ATTRIBUTES) -# define LPSECURITY_ATTRIBUTES int -# endif /* !defined LPSECURITY_ATTRIBUTES */ -# if !defined (GENERIC_READ) -# define GENERIC_READ 0 -# endif /* !defined GENERIC_READ */ -# if !defined (FILE_SHARE_READ) -# define FILE_SHARE_READ 0 -# endif /* !defined FILE_SHARE_READ */ -# if !defined (OPEN_EXISTING) -# define OPEN_EXISTING 0 -# endif /* !defined OPEN_EXISTING */ -# if !defined (FILE_ATTRIBUTE_NORMAL) -# define FILE_ATTRIBUTE_NORMAL 0 -# endif /* !defined FILE_ATTRIBUTE_NORMAL */ -# if !defined (MAXIMUM_WAIT_OBJECTS) -# define MAXIMUM_WAIT_OBJECTS 0 -# endif /* !defined MAXIMUM_WAIT_OBJECTS */ -# if !defined (FILE_FLAG_OVERLAPPED) -# define FILE_FLAG_OVERLAPPED 0 -# endif /* !defined FILE_FLAG_OVERLAPPED */ - -# if defined (ACE_HAS_BROKEN_IF_HEADER) -struct ifafilt; -# endif /* ACE_HAS_BROKEN_IF_HEADER */ - -# if defined (ACE_HAS_AIX_BROKEN_SOCKET_HEADER) -# undef __cplusplus -# include /**/ -# define __cplusplus -# else -# include /**/ -# endif /* ACE_HAS_AIX_BROKEN_SOCKET_HEADER */ - -extern "C" -{ -# if defined (VXWORKS) - struct hostent { - char *h_name; /* official name of host */ - char **h_aliases; /* aliases: not used on VxWorks */ - int h_addrtype; /* host address type */ - int h_length; /* address length */ - char **h_addr_list; /* (first, only) address from name server */ -# define h_addr h_addr_list[0] /* the first address */ - }; -# else -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# define queue _Queue_ -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -# include /**/ -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# undef queue -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -# include /**/ -# endif /* VXWORKS */ - -// This part if to avoid STL name conflict with the map structure -// in net/if.h. -# if defined (ACE_HAS_STL_MAP_CONFLICT) -# define map _Resource_Allocation_Map_ -# endif /* ACE_HAS_STL_MAP_CONFLICT */ -# include /**/ -# if defined (ACE_HAS_STL_MAP_CONFLICT) -# undef map -# endif /* ACE_HAS_STL_MAP_CONFLICT */ - -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# define queue _Queue_ -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -# include /**/ -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# undef queue -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ - -# if defined(VXWORKS) && defined(ghs) -// Works around a lack of proper prototypes for these functions on VxWorks -unsigned long inet_addr(const char *); -char *inet_ntoa(const struct in_addr); -struct in_addr inet_makeaddr(const int, const int); -unsigned long inet_network(const char *); -# else -# include /**/ -# endif /* VXWORKS && ghs */ -} -# if !defined (ACE_LACKS_TCP_H) -# include /**/ -# endif /* ACE_LACKS_TCP_H */ - -# if defined (__Lynx__) -# ifndef howmany -# define howmany(x, y) (((x)+((y)-1))/(y)) -# endif /* howmany */ -# endif /* __Lynx__ */ - -# if defined (CHORUS) -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -extern_C int getgid __((void)); -extern_C int getuid __((void)); -extern_C char* getcwd __((char* buf, size_t size)); -extern_C int pipe __((int* fildes)); -extern_C int gethostname __((char*, size_t)); - -// This must come after limits.h is included -# define MAXPATHLEN _POSIX_PATH_MAX - -typedef cx_fd_mask fd_mask; -# ifndef howmany -# define howmany(x, y) (((x)+((y)-1))/(y)) -# endif /* howmany */ -typedef void (*__sighandler_t)(int); // keep Signal compilation happy -# elif ! defined (VXWORKS) -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# include /**/ -# endif /* ! VXWORKS */ -# include /**/ -# include /**/ - -// IRIX5 defines bzero() in this odd file... -# if defined (ACE_HAS_BSTRING) -# include /**/ -# endif /* ACE_HAS_BSTRING */ - -// AIX defines bzero() in this odd file... -# if defined (ACE_HAS_STRINGS) -# include /**/ -# endif /* ACE_HAS_STRINGS */ - -# if defined (ACE_HAS_TERM_IOCTLS) -# include /**/ -# endif /* ACE_HAS_TERM_IOCTLS */ - -# if !defined (ACE_LACKS_UNISTD_H) -# include /**/ -# endif /* ACE_LACKS_UNISTD_H */ - -# if defined (ACE_HAS_AIO_CALLS) -# include /**/ -# endif /* ACE_HAS_AIO_CALLS */ - -# if !defined (ACE_LACKS_PARAM_H) -# include /**/ -# endif /* ACE_LACKS_PARAM_H */ - -# if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) && !defined (VXWORKS) -# include /**/ -# endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ - -# if defined (ACE_HAS_SIGINFO_T) -# if !defined (ACE_LACKS_SIGINFO_H) -# include /**/ -# endif /* ACE_LACKS_SIGINFO_H */ -# if !defined (ACE_LACKS_UCONTEXT_H) -# include /**/ -# endif /* ACE_LACKS_UCONTEXT_H */ -# endif /* ACE_HAS_SIGINFO_T */ - -# if defined (ACE_HAS_POLL) -# include /**/ -# endif /* ACE_HAS_POLL */ - -# if defined (ACE_HAS_STREAMS) -# if defined (AIX) -# if !defined (_XOPEN_EXTENDED_SOURCE) -# define _XOPEN_EXTENDED_SOURCE -# endif /* !_XOPEN_EXTENDED_SOURCE */ -# include /**/ -# undef _XOPEN_EXTENDED_SOURCE -# else -# include /**/ -# endif /* AIX */ -# endif /* ACE_HAS_STREAMS */ - -# if defined (ACE_LACKS_T_ERRNO) -extern int t_errno; -# endif /* ACE_LACKS_T_ERRNO */ - -# if defined (DIGITAL_UNIX) - // sigwait is yet another macro on Digital UNIX 4.0, just causing - // trouble when introducing member functions with the same name. - // Thanks to Thilo Kielmann" for - // this fix. -# undef sigwait -# if defined (__DECCXX_VER) - // cxx on Digital Unix 4.0 needs this declaration. With it, - // ::_Psigwait () works with cxx -pthread. g++ does _not_ need it. - extern "C" int _Psigwait __((const sigset_t *set, int *sig)); -# endif /* __DECCXX_VER */ -# elif !defined (ACE_HAS_SIGWAIT) - extern "C" int sigwait (sigset_t *set); -# endif /* ! DIGITAL_UNIX && ! ACE_HAS_SIGWAIT */ - -# if defined (ACE_HAS_SELECT_H) -# include /**/ -# endif /* ACE_HAS_SELECT_H */ - -# if defined (ACE_HAS_ALLOCA_H) -# include /**/ -# endif /* ACE_HAS_ALLOCA_H */ - -# if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI) -# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C) -extern "C" { -# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */ -# if defined (ACE_HAS_TIUSER_H) -# include /**/ -# else -# include /**/ -# endif /* ACE_HAS_TIUSER_H */ -# if defined (ACE_HAS_TIUSER_H_BROKEN_EXTERN_C) -} -# endif /* ACE_HAS_TIUSER_H_BROKEN_EXTERN_C */ -# endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */ - -/* Set the proper handle type for dynamically-loaded libraries. */ -/* Also define a default 'mode' for loading a library - the names and values */ -/* differ between OSes, so if you write code that uses the mode, be careful */ -/* of the platform differences. */ -# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING) -# if defined (ACE_HAS_DLFCN_H_BROKEN_EXTERN_C) -extern "C" { -# endif /* ACE_HAS_DLFCN_H_BROKEN_EXTERN_C */ -# include /**/ -# if defined (ACE_HAS_DLFCN_H_BROKEN_EXTERN_C) -} -# endif /* ACE_HAS_DLFCN_H_BROKEN_EXTERN_C */ - typedef void *ACE_SHLIB_HANDLE; -# if !defined (RTLD_LAZY) -# define RTLD_LAZY 1 -# endif /* !RTLD_LAZY */ - const int ACE_DEFAULT_SHLIB_MODE = RTLD_LAZY; -# elif defined (__hpux) -# if defined(__GNUC__) || __cplusplus >= 199707L -# include /**/ -# else -# include /**/ -# endif /* (g++ || HP aC++) vs. HP C++ */ - typedef shl_t ACE_SHLIB_HANDLE; - const int ACE_DEFAULT_SHLIB_MODE = BIND_DEFERRED; -# else -# if !defined(RTLD_LAZY) -# define RTLD_LAZY 1 -# endif /* !RTLD_LAZY */ - typedef void *ACE_SHLIB_HANDLE; - const int ACE_DEFAULT_SHLIB_MODE = RTLD_LAZY; -# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */ - -# if defined (ACE_HAS_SOCKIO_H) -# include /**/ -# endif /* ACE_HAS_SOCKIO_ */ - -// There must be a better way to do this... -# if !defined (RLIMIT_NOFILE) -# if defined (linux) || defined (AIX) || defined (SCO) -# if defined (RLIMIT_OFILE) -# define RLIMIT_NOFILE RLIMIT_OFILE -# else -# define RLIMIT_NOFILE 200 -# endif /* RLIMIT_OFILE */ -# endif /* defined (linux) || defined (AIX) || defined (SCO) */ -# endif /* RLIMIT_NOFILE */ - -# if !defined (ACE_HAS_TLI_PROTOTYPES) -// Define ACE_TLI headers for systems that don't prototype them.... -extern "C" -{ - int t_accept(int fildes, int resfd, struct t_call *call); - char *t_alloc(int fildes, int struct_type, int fields); - int t_bind(int fildes, struct t_bind *req, struct t_bind *ret); - int t_close(int fildes); - int t_connect(int fildes, struct t_call *sndcall, - struct t_call *rcvcall); - void t_error(char *errmsg); - int t_free(char *ptr, int struct_type); - int t_getinfo(int fildes, struct t_info *info); - int t_getname (int fildes, struct netbuf *namep, int type); - int t_getstate(int fildes); - int t_listen(int fildes, struct t_call *call); - int t_look(int fildes); - int t_open(char *path, int oflag, struct t_info *info); - int t_optmgmt(int fildes, struct t_optmgmt *req, - struct t_optmgmt *ret); - int t_rcv(int fildes, char *buf, u_int nbytes, int *flags); - int t_rcvconnect(int fildes, struct t_call *call); - int t_rcvdis(int fildes, struct t_discon *discon); - int t_rcvrel(int fildes); - int t_rcvudata(int fildes, struct t_unitdata *unitdata, int *flags); - int t_rcvuderr(int fildes, struct t_uderr *uderr); - int t_snd(int fildes, char *buf, u_int nbytes, int flags); - int t_snddis(int fildes, struct t_call *call); - int t_sndrel(int fildes); - int t_sndudata(int fildes, struct t_unitdata *unitdata); - int t_sync(int fildes); - int t_unbind(int fildes); -} -# endif /* !ACE_HAS_TLI_PROTOTYPES */ - -# if defined (ACE_LACKS_MMAP) -# define PROT_READ 0 -# define PROT_WRITE 0 -# define PROT_EXEC 0 -# define PROT_NONE 0 -# define PROT_RDWR 0 -# define MAP_PRIVATE 0 -# define MAP_SHARED 0 -# define MAP_FIXED 0 -# endif /* ACE_LACKS_MMAP */ - -// Fixes a problem with HP/UX. -# if defined (ACE_HAS_BROKEN_MMAP_H) -extern "C" -{ -# include /**/ -} -# elif !defined (ACE_LACKS_MMAP) -# include /**/ -# endif /* ACE_HAS_BROKEN_MMAP_H */ - -// OSF1 has problems with sys/msg.h and C++... -# if defined (ACE_HAS_BROKEN_MSG_H) -# define _KERNEL -# endif /* ACE_HAS_BROKEN_MSG_H */ -# if !defined (ACE_LACKS_SYSV_MSG_H) -# include /**/ -# endif /* ACE_LACKS_SYSV_MSG_H */ -# if defined (ACE_HAS_BROKEN_MSG_H) -# undef _KERNEL -# endif /* ACE_HAS_BROKEN_MSG_H */ - -# if defined (ACE_LACKS_SYSV_MSQ_PROTOS) -extern "C" -{ - int msgget (key_t, int); - int msgrcv (int, void *, size_t, long, int); - int msgsnd (int, const void *, size_t, int); - int msgctl (int, int, struct msqid_ds *); -} -# endif /* ACE_LACKS_SYSV_MSQ_PROTOS */ - -# if defined (ACE_HAS_PRIOCNTL) -# include /**/ -# endif /* ACE_HAS_PRIOCNTL */ - -# if defined (ACE_HAS_IDTYPE_T) - typedef idtype_t ACE_idtype_t; -# else - typedef int ACE_idtype_t; -# endif /* ACE_HAS_IDTYPE_T */ - -# if defined (ACE_HAS_STHREADS) || defined (DIGITAL_UNIX) -# if defined (ACE_LACKS_PRI_T) - typedef int pri_t; -# endif /* ACE_LACKS_PRI_T */ - typedef id_t ACE_id_t; -# define ACE_SELF P_MYID - typedef pri_t ACE_pri_t; -# else /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */ - typedef long ACE_id_t; -# define ACE_SELF (-1) - typedef short ACE_pri_t; -# endif /* ! ACE_HAS_STHREADS && ! DIGITAL_UNIX */ - -# if defined (ACE_HAS_HI_RES_TIMER) - /* hrtime_t is defined on systems (Suns) with ACE_HAS_HI_RES_TIMER */ - typedef hrtime_t ACE_hrtime_t; -# else - typedef ACE_UINT64 ACE_hrtime_t; -# endif /* ACE_HAS_HI_RES_TIMER */ - -# endif /* !defined (ACE_WIN32) && !defined (ACE_PSOS) */ - -# if !defined (ACE_DEFAULT_SYNCH_TYPE) -# define ACE_DEFAULT_SYNCH_TYPE USYNC_THREAD -# endif /* ! ACE_DEFAULT_SYNCH_TYPE */ - -# if !defined (ACE_MAP_PRIVATE) -# define ACE_MAP_PRIVATE MAP_PRIVATE -# endif /* ! ACE_MAP_PRIVATE */ - -# if !defined (ACE_MAP_SHARED) -# define ACE_MAP_SHARED MAP_SHARED -# endif /* ! ACE_MAP_SHARED */ - -# if !defined (ACE_MAP_FIXED) -# define ACE_MAP_FIXED MAP_FIXED -# endif /* ! ACE_MAP_FIXED */ - -# if defined (ACE_LACKS_UTSNAME_T) -# define _SYS_NMLN 257 -struct utsname -{ - TCHAR sysname[_SYS_NMLN]; - TCHAR nodename[_SYS_NMLN]; - TCHAR release[_SYS_NMLN]; - TCHAR version[_SYS_NMLN]; - TCHAR machine[_SYS_NMLN]; -}; -# else -# include /**/ -# endif /* ACE_LACKS_UTSNAME_T */ - -// Increase the range of "address families". Please note that this -// must appear _after_ the include of sys/socket.h, for the AF_FILE -// definition on Linux/glibc2. -# define AF_ANY (-1) -# define AF_SPIPE (AF_MAX + 1) -# if !defined (AF_FILE) -# define AF_FILE (AF_MAX + 2) -# endif /* ! AF_FILE */ -# define AF_DEV (AF_MAX + 3) -# define AF_UPIPE (AF_SPIPE) - -# if defined (ACE_SELECT_USES_INT) -typedef int ACE_FD_SET_TYPE; -# else -typedef fd_set ACE_FD_SET_TYPE; -# endif /* ACE_SELECT_USES_INT */ - -# if !defined (MAXNAMELEN) -# if defined (FILENAME_MAX) -# define MAXNAMELEN FILENAME_MAX -# else -# define MAXNAMELEN 256 -# endif /* FILENAME_MAX */ -# endif /* MAXNAMELEN */ - -# if defined (ACE_LACKS_SIGSET) -typedef u_int sigset_t; -# endif /* ACE_LACKS_SIGSET */ - -# if defined (ACE_LACKS_SIGACTION) -struct sigaction -{ - int sa_flags; - ACE_SignalHandlerV sa_handler; - sigset_t sa_mask; -}; -# endif /* ACE_LACKS_SIGACTION */ - -# if !defined (SIGHUP) -# define SIGHUP 0 -# endif /* SIGHUP */ - -# if !defined (SIGINT) -# define SIGINT 0 -# endif /* SIGINT */ - -# if !defined (SIGSEGV) -# define SIGSEGV 0 -# endif /* SIGSEGV */ - -# if !defined (SIGIO) -# define SIGIO 0 -# endif /* SIGSEGV */ - -# if !defined (SIGUSR1) -# define SIGUSR1 0 -# endif /* SIGUSR1 */ - -# if !defined (SIGUSR2) -# define SIGUSR2 0 -# endif /* SIGUSR2 */ - -# if !defined (SIGCHLD) -# define SIGCHLD 0 -# endif /* SIGCHLD */ - -# if !defined (SIGCLD) -# define SIGCLD SIGCHLD -# endif /* SIGCLD */ - -# if !defined (SIGQUIT) -# define SIGQUIT 0 -# endif /* SIGQUIT */ - -# if !defined (SIGPIPE) -# define SIGPIPE 0 -# endif /* SIGPIPE */ - -# if !defined (SIGALRM) -# define SIGALRM 0 -# endif /* SIGALRM */ - -# if !defined (SIG_DFL) -# define SIG_DFL ((__sighandler_t) 0) -# endif /* SIG_DFL */ - -# if !defined (SIG_IGN) -# define SIG_IGN ((__sighandler_t) 1) /* ignore signal */ -# endif /* SIG_IGN */ - -# if !defined (SIG_ERR) -# define SIG_ERR ((__sighandler_t) -1) /* error return from signal */ -# endif /* SIG_ERR */ - -# if !defined (O_NONBLOCK) -# define O_NONBLOCK 1 -# endif /* O_NONBLOCK */ - -# if !defined (SIG_BLOCK) -# define SIG_BLOCK 1 -# endif /* SIG_BLOCK */ - -# if !defined (SIG_UNBLOCK) -# define SIG_UNBLOCK 2 -# endif /* SIG_UNBLOCK */ - -# if !defined (SIG_SETMASK) -# define SIG_SETMASK 3 -# endif /* SIG_SETMASK */ - -# if !defined (IPC_CREAT) -# define IPC_CREAT 0 -# endif /* IPC_CREAT */ - -# if !defined (IPC_NOWAIT) -# define IPC_NOWAIT 0 -# endif /* IPC_NOWAIT */ - -# if !defined (IPC_RMID) -# define IPC_RMID 0 -# endif /* IPC_RMID */ - -# if !defined (IPC_EXCL) -# define IPC_EXCL 0 -# endif /* IPC_EXCL */ - -# if !defined (IP_DROP_MEMBERSHIP) -# define IP_DROP_MEMBERSHIP 0 -# endif /* IP_DROP_MEMBERSHIP */ - -# if !defined (IP_ADD_MEMBERSHIP) -# define IP_ADD_MEMBERSHIP 0 -# endif /* IP_ADD_MEMBERSHIP */ - -# if !defined (SIOCGIFADDR) -# define SIOCGIFADDR 0 -# endif /* SIOCGIFADDR */ - -# if !defined (IPC_PRIVATE) -# define IPC_PRIVATE ACE_INVALID_SEM_KEY -# endif /* IPC_PRIVATE */ - -# if !defined (IPC_STAT) -# define IPC_STAT 0 -# endif /* IPC_STAT */ - -# if !defined (GETVAL) -# define GETVAL 0 -# endif /* GETVAL */ - -# if !defined (F_GETFL) -# define F_GETFL 0 -# endif /* F_GETFL */ - -# if !defined (SETVAL) -# define SETVAL 0 -# endif /* SETVAL */ - -# if !defined (GETALL) -# define GETALL 0 -# endif /* GETALL */ - -# if !defined (SETALL) -# define SETALL 0 -# endif /* SETALL */ - -# if !defined (SEM_UNDO) -# define SEM_UNDO 0 -# endif /* SEM_UNDO */ - -# if defined (__Lynx__) - // LynxOS sets NSIG to the highest-numbered signal. -# define ACE_NSIG (NSIG + 1) -# else - // All other platforms set NSIG to one greater than the - // highest-numbered signal. -# define ACE_NSIG NSIG -# endif /* __Lynx__ */ - -# if !defined (R_OK) -# define R_OK 04 /* Test for Read permission. */ -# endif /* R_OK */ - -# if !defined (W_OK) -# define W_OK 02 /* Test for Write permission. */ -# endif /* W_OK */ - -# if !defined (X_OK) -# define X_OK 01 /* Test for eXecute permission. */ -# endif /* X_OK */ - -# if !defined (F_OK) -# define F_OK 0 /* Test for existence of File. */ -# endif /* F_OK */ - -# if !defined (EIDRM) -# define EIDRM 0 -# endif /* !EIDRM */ - -# 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 */ - -# if !defined (WNOHANG) -# define WNOHANG 42 -# endif /* !WNOHANG */ - -# if !defined (EDEADLK) -# define EDEADLK 1000 /* Some large number.... */ -# endif /* !ENOTSUP */ - -# if !defined (MS_SYNC) -# define MS_SYNC 0x0 -# endif /* !MS_SYNC */ - -# if !defined (PIPE_BUF) -# define PIPE_BUF 5120 -# endif /* PIPE_BUF */ - -# if !defined (PROT_RDWR) -# define PROT_RDWR (PROT_READ|PROT_WRITE) -# endif /* PROT_RDWR */ - -# if !defined (WNOHANG) -# define WNOHANG 0 -# endif /* WNOHANG */ - -# if defined (ACE_HAS_POSIX_NONBLOCK) -# define ACE_NONBLOCK O_NONBLOCK -# else -# define ACE_NONBLOCK O_NDELAY -# endif /* ACE_HAS_POSIX_NONBLOCK */ - -# define LOCALNAME 0 -# define REMOTENAME 1 - -# if !defined (ETIMEDOUT) && defined (ETIME) -# define ETIMEDOUT ETIME -# endif /* ETIMEDOUT */ - -# if !defined (ETIME) && defined (ETIMEDOUT) -# define ETIME ETIMEDOUT -# endif /* ETIMED */ - -# if !defined (EBUSY) -# define EBUSY ETIME -# endif /* EBUSY */ - -# if !defined (_SC_TIMER_MAX) -# define _SC_TIMER_MAX 44 -# endif /* _SC_TIMER_MAX */ - -// Default number of s supported by -// . -# if !defined (ACE_DEFAULT_TIMERS) -# define ACE_DEFAULT_TIMERS _SC_TIMER_MAX -# endif /* ACE_DEFAULT_TIMERS */ - -# if defined (ACE_HAS_STRUCT_NETDB_DATA) -typedef char ACE_HOSTENT_DATA[sizeof(struct hostent_data)]; -typedef char ACE_SERVENT_DATA[sizeof(struct servent_data)]; -typedef char ACE_PROTOENT_DATA[sizeof(struct protoent_data)]; -# else -# if !defined ACE_HOSTENT_DATA_SIZE -# define ACE_HOSTENT_DATA_SIZE (4*1024) -# endif /*ACE_HOSTENT_DATA_SIZE */ -# if !defined ACE_SERVENT_DATA_SIZE -# define ACE_SERVENT_DATA_SIZE (4*1024) -# endif /*ACE_SERVENT_DATA_SIZE */ -# if !defined ACE_PROTOENT_DATA_SIZE -# define ACE_PROTOENT_DATA_SIZE (2*1024) -# endif /*ACE_PROTOENT_DATA_SIZE */ -typedef char ACE_HOSTENT_DATA[ACE_HOSTENT_DATA_SIZE]; -typedef char ACE_SERVENT_DATA[ACE_SERVENT_DATA_SIZE]; -typedef char ACE_PROTOENT_DATA[ACE_PROTOENT_DATA_SIZE]; -# endif /* ACE_HAS_STRUCT_NETDB_DATA */ - -# if !defined (ACE_HAS_SEMUN) -union semun -{ - int val; // value for SETVAL - struct semid_ds *buf; // buffer for IPC_STAT & IPC_SET - u_short *array; // array for GETALL & SETALL -}; -# endif /* !ACE_HAS_SEMUN */ - -// Max size of an ACE Log Record data buffer. This can be reset in -// the config.h file if you'd like to increase or decrease the size. -# if !defined (ACE_MAXLOGMSGLEN) -# define ACE_MAXLOGMSGLEN 4 * 1024 -# endif /* ACE_MAXLOGMSGLEN */ - -// Max size of an ACE Token. -# define ACE_MAXTOKENNAMELEN 40 - -// Max size of an ACE Token client ID. -# define ACE_MAXCLIENTIDLEN MAXHOSTNAMELEN + 20 - -// Create some useful typedefs. -typedef const char **SYS_SIGLIST; -// This is for C++ static methods. -# if defined (VXWORKS) -typedef FUNCPTR ACE_THR_FUNC; // where typedef int (*FUNCPTR) (...) -# else -typedef void *(*ACE_THR_FUNC)(void *); -# endif /* VXWORKS */ - -extern "C" { -typedef void (*ACE_THR_C_DEST)(void *); -} -typedef void (*ACE_THR_DEST)(void *); - -extern "C" -{ -# if defined (VXWORKS) -typedef FUNCPTR ACE_THR_C_FUNC; // where typedef int (*FUNCPTR) (...) -# else -typedef void *(*ACE_THR_C_FUNC)(void *); -# endif /* VXWORKS */ -} - -# if !defined (MAP_FAILED) -# define MAP_FAILED ((void *) -1) -# elif defined (ACE_HAS_LONG_MAP_FAILED) -# undef MAP_FAILED -# define MAP_FAILED ((void *) -1L) -# endif /* MAP_FAILED */ - -# if defined (ACE_HAS_CHARPTR_DL) -typedef char * ACE_DL_TYPE; -# if defined (ACE_HAS_UNICODE) -typedef wchar_t * ACE_WIDE_DL_TYPE; -# endif /* ACE_HAS_UNICODE */ -# else -typedef const char * ACE_DL_TYPE; -# if defined (ACE_HAS_UNICODE) -typedef const wchar_t * ACE_WIDE_DL_TYPE; -# endif /* ACE_HAS_UNICODE */ -# endif /* ACE_HAS_CHARPTR_DL */ - -# if !defined (ACE_HAS_SIGINFO_T) -struct ACE_Export siginfo_t -{ - siginfo_t (ACE_HANDLE handle); - siginfo_t (ACE_HANDLE *handles); // JCEJ 12/23/96 - - ACE_HANDLE si_handle_; - // Win32 HANDLE that has become signaled. - - ACE_HANDLE *si_handles_; - // Array of Win32 HANDLEs all of which have become signaled. -}; -# endif /* ACE_HAS_SIGINFO_T */ - -# if !defined (ACE_HAS_UCONTEXT_T) -typedef int ucontext_t; -# endif /* ACE_HAS_UCONTEXT_T */ - -# if !defined (SA_SIGINFO) -# define SA_SIGINFO 0 -# endif /* SA_SIGINFO */ - -# if !defined (SA_RESTART) -# define SA_RESTART 0 -# endif /* SA_RESTART */ - -# if defined (ACE_HAS_TIMOD_H) -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# define queue _Queue_ -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -# include /**/ -# if defined (ACE_HAS_STL_QUEUE_CONFLICT) -# undef queue -# endif /* ACE_HAS_STL_QUEUE_CONFLICT */ -# elif defined (ACE_HAS_OSF_TIMOD_H) -# include /**/ -# endif /* ACE_HAS_TIMOD_H */ - -# if defined (ACE_HAS_BROKEN_T_ERRNO) -# undef t_errno -# endif /* ACE_HAS_BROKEN_T_ERRNO */ - -class ACE_Export ACE_Thread_ID -{ - // = TITLE - // Defines a platform-independent thread ID. -public: - // = Initialization method. - ACE_Thread_ID (ACE_thread_t, ACE_hthread_t); - - // = Set/Get the Thread ID. - ACE_thread_t id (void); - void id (ACE_thread_t); - - // = Set/Get the Thread handle. - ACE_hthread_t handle (void); - void handle (ACE_hthread_t); - - // != Comparison operator. - int operator == (const ACE_Thread_ID &); - int operator != (const ACE_Thread_ID &); - -private: - ACE_thread_t thread_id_; - // Identify the thread. - - ACE_hthread_t thread_handle_; - // Handle to the thread (typically used to "wait" on Win32). -}; - -// Type of the extended signal handler. -typedef void (*ACE_Sig_Handler_Ex) (int, siginfo_t *siginfo, ucontext_t *ucontext); - -// If the xti.h file redefines the function names, do it now, else -// when the function definitions are encountered, they won't match the -// declaration here. - -# if defined (ACE_REDEFINES_XTI_FUNCTIONS) -# include /**/ -# if defined (UNIXWARE_2_0) /* They apparantly forgot one... */ -extern "C" int _xti_error(char *); -# endif /* UNIXWARE */ -# endif /* ACE_REDEFINES_XTI_FUNCTIONS */ - -// = The ACE_Sched_Priority type should be used for platform- -// independent thread and process priorities, by convention. -// int should be used for OS-specific priorities. -typedef int ACE_Sched_Priority; - -// forward declaration -class ACE_Sched_Params; - -# if defined (ACE_LACKS_FILELOCKS) -# if ! defined (VXWORKS) -// VxWorks defines struct flock in sys/fcntlcom.h. But it doesn't -// appear to support flock (). -struct flock -{ - short l_type; - short l_whence; - off_t l_start; - off_t l_len; /* len == 0 means until end of file */ - long l_sysid; - pid_t l_pid; - long l_pad[4]; /* reserve area */ -}; -# endif /* ! VXWORKS */ -# endif /* ACE_LACKS_FILELOCKS */ - -# if !defined (ACE_HAS_IP_MULTICAST) -struct ip_mreq -{ - struct in_addr imr_multiaddr; - // IP multicast address of group - struct in_addr imr_interface; - // local IP address of interface -}; -# endif /* ACE_HAS_IP_MULTICAST */ - -# if !defined (ACE_HAS_STRBUF_T) -struct strbuf -{ - int maxlen; // no. of bytes in buffer. - int len; // no. of bytes returned. - void *buf; // pointer to data. -}; -# endif /* ACE_HAS_STRBUF_T */ - -class ACE_Export ACE_Str_Buf : public strbuf -{ - // = TITLE - // Simple wrapper for STREAM pipes strbuf. -public: - // = Initialization method - ACE_Str_Buf (void *b = 0, int l = 0, int max = 0); - // Constructor. - - ACE_Str_Buf (strbuf &); - // Constructor. -}; - -# if defined (ACE_HAS_BROKEN_BITSHIFT) - // This might not be necessary any more: it was added prior to the - // (fd_mask) cast being added to the version below. Maybe that cast - // will fix the problem on tandems. Fri Dec 12 1997 David L. Levine -# define ACE_MSB_MASK (~(ACE_UINT32 (1) << ACE_UINT32 (NFDBITS - 1))) -# else - // This needs to go here to avoid overflow problems on some compilers. -# if defined (ACE_WIN32) - // Does ACE_WIN32 have an fd_mask? -# define ACE_MSB_MASK (~(1 << (NFDBITS - 1))) -# else /* ! ACE_WIN32 */ -# define ACE_MSB_MASK (~((fd_mask) 1 << (NFDBITS - 1))) -# endif /* ! ACE_WIN32 */ -# endif /* ACE_HAS_BROKEN_BITSHIFT */ - -// Signature for registering a cleanup function that is used by the -// and the . -# if defined (ACE_HAS_SIG_C_FUNC) -extern "C" { -# endif /* ACE_HAS_SIG_C_FUNC */ -typedef void (*ACE_CLEANUP_FUNC)(void *object, void *param) /* throw () */; -# if defined (ACE_HAS_SIG_C_FUNC) -} -# endif /* ACE_HAS_SIG_C_FUNC */ - -# if defined (ACE_WIN32) -// Default WIN32 structured exception handler. -int ACE_SEH_Default_Exception_Selector (void *); -int ACE_SEH_Default_Exception_Handler (void *); -# endif /* ACE_WIN32 */ - -class ACE_Export ACE_Cleanup -{ - // = TITLE - // Base class for objects that are cleaned by ACE_Object_Manager. -public: - ACE_Cleanup (void); - // No-op constructor. - - virtual ~ACE_Cleanup (void); - // Destructor. - - virtual void cleanup (void *param = 0); - // Cleanup method that, by default, simply deletes itself. -}; - -// Adapter for cleanup, used by ACE_Object_Manager. -extern "C" ACE_Export -void ace_cleanup_destroyer (ACE_Cleanup *, void *param = 0); - -class ACE_Export ACE_Cleanup_Info -{ - // = TITLE - // Hold cleanup information for thread/process -public: - ACE_Cleanup_Info (void); - // Default constructor. - - int operator== (const ACE_Cleanup_Info &o) const; - // Equality operator. - - int operator!= (const ACE_Cleanup_Info &o) const; - // Inequality operator. - - void *object_; - // Point to object that gets passed into the . - - ACE_CLEANUP_FUNC cleanup_hook_; - // Cleanup hook that gets called back. - - void *param_; - // Parameter passed to the . -}; - -// Run the thread entry point for the . This must -// be an extern "C" to make certain compilers happy... -extern "C" ACE_Export void *ace_thread_adapter (void *args); - -// Forward decl. -class ACE_Thread_Manager; -class ACE_Thread_Descriptor; - -class ACE_Export ACE_Thread_Adapter -{ - // = TITLE - // Converts a C++ function into a function - // function that can be called from a thread creation routine - // (e.g., or <_beginthreadex>) that expects an - // extern "C" entry point. This class also makes it possible to - // transparently provide hooks to register a thread with an - // . - // - // = DESCRIPTION - // This class is used in . In general, the - // thread that creates an object of this class is different from - // the thread that calls on this object. Therefore, - // the method is responsible for deleting itself. -public: - ACE_Thread_Adapter (ACE_THR_FUNC user_func, - void *arg, - ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ace_thread_adapter, - ACE_Thread_Manager *thr_mgr = 0, - ACE_Thread_Descriptor *td = 0 -# if defined (ACE_WIN32) - , ACE_SEH_EXCEPT_HANDLER selector = 0, - ACE_SEH_EXCEPT_HANDLER handler = 0 -# endif /* ACE_WIN32 */ - ); - // Constructor. - - void *invoke (void); - // Execute the with the . This function deletes - // , thereby rendering the object useless after the call - // returns. - - ACE_Thread_Manager *thr_mgr (void); - // Accessor for the optional . - - ACE_THR_C_FUNC entry_point (void); - // Accessor for the C entry point function to the OS thread creation - // routine. - -private: - ~ACE_Thread_Adapter (void); - // Ensure that this object must be allocated on the heap. - - void inherit_log_msg (void); - // Inherit the logging features if the parent thread has an - // . - - ACE_THR_FUNC user_func_; - // Thread startup function passed in by the user (C++ linkage). - - void *arg_; - // Argument to thread startup function. - - ACE_THR_C_FUNC entry_point_; - // Entry point to the underlying OS thread creation call (C - // linkage). - - ACE_Thread_Manager *thr_mgr_; - // Optional thread manager. - - ACE_Thread_Descriptor *thr_desc_; - // Optional thread descriptor. Passing this pointer in will force - // the spawned thread to cache this location in and wait - // until fills in all information in thread - // descriptor. - -# if !defined (ACE_THREADS_DONT_INHERIT_LOG_MSG) - ostream *ostream_; - // Ostream where the new TSS Log_Msg will use. - - u_long priority_mask_; - // Priority_mask to be used in new TSS Log_Msg. - - int tracing_enabled_; - // Are we allowing tracing in this thread? - - int restart_; - // Indicates whether we should restart system calls that are - // interrupted. - - int trace_depth_; - // Depth of the nesting for printing traces. - -# if defined (ACE_WIN32) - ACE_SEH_EXCEPT_HANDLER seh_except_selector_; - ACE_SEH_EXCEPT_HANDLER seh_except_handler_; -# endif /* ACE_WIN32 */ -# endif /* ACE_THREADS_DONT_INHERIT_LOG_MSG */ - - friend class ACE_Thread_Adapter_Has_Private_Destructor; - // Friend declaration to avoid compiler warning: only defines a private - // destructor and has no friends. -}; - -class ACE_Export ACE_OS -{ - // = TITLE - // This class defines an operating system independent - // programming API that shields developers from non-portable - // aspects of writing efficient system programs on Win32, POSIX, - // and other versions of UNIX. If you are porting ACE to a new - // platform, this is the place to focus your attention. Please - // see the README file in this directory for complete - // information on the meaning of the various macros. - // - // = DESCRIPTION - // This class encapsulates all the differences between various - // versions of UNIX and WIN32! The other components in - // ACE are programmed to use only the methods in this class, - // which makes it *much* easier to move ACE to a new platform. - // The methods in this class also automatically restart when - // interrupts occur during system calls (assuming that the - // flag is enabled). - ACE_CLASS_IS_NAMESPACE (ACE_OS); - -public: - - enum ACE_HRTimer_Op - { -# if defined (CHORUS) - ACE_HRTIMER_START = K_BSTART, - ACE_HRTIMER_INCR = K_BPOINT, - ACE_HRTIMER_STOP = K_BSTOP, - ACE_HRTIMER_GETTIME = 0xFFFF -# else /* ! CHORUS */ - ACE_HRTIMER_START = 0x0, // Only use these if you can stand - ACE_HRTIMER_INCR = 0x1, // for interrupts to be disabled during - ACE_HRTIMER_STOP = 0x2, // the timed interval!!!! - ACE_HRTIMER_GETTIME = 0xFFFF -# endif /* ! CHORUS */ - }; - - class ace_flock_t - { - // = TITLE - // OS file locking structure. - public: - void dump (void) const; - // Dump state of the object. - -# if defined (ACE_WIN32) - ACE_OVERLAPPED overlapped_; -# else - struct flock lock_; -# endif /* ACE_WIN32 */ - - LPCTSTR lockname_; - // Name of this filelock. - - ACE_HANDLE handle_; - // Handle to the underlying file. - }; - - // = A set of wrappers for miscellaneous operations. - static int atoi (const char *s); - static char *getenv (const char *symbol); - static int putenv (const char *string); - static int getopt (int argc, - char *const *argv, - const char *optstring); - static long sysconf (int); - - // = A set of wrappers for condition variables. - static int cond_broadcast (ACE_cond_t *cv); - static int cond_destroy (ACE_cond_t *cv); - static int cond_init (ACE_cond_t *cv, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0); - static int cond_signal (ACE_cond_t *cv); - static int cond_timedwait (ACE_cond_t *cv, - ACE_mutex_t *m, - ACE_Time_Value *); - static int cond_wait (ACE_cond_t *cv, - ACE_mutex_t *m); -# if defined (ACE_WIN32) && defined (ACE_HAS_WTHREADS) - static int cond_timedwait (ACE_cond_t *cv, - ACE_thread_mutex_t *m, - ACE_Time_Value *); - static int cond_wait (ACE_cond_t *cv, - ACE_thread_mutex_t *m); -# endif /* ACE_WIN32 && ACE_HAS_WTHREADS */ - - // = A set of wrappers for determining config info. - static LPTSTR cuserid (LPTSTR user, - size_t maxlen = 32); - static int uname (struct utsname *name); - static long sysinfo (int cmd, - char *buf, - long count); - static int hostname (char *name, - size_t maxnamelen); - - // = A set of wrappers for explicit dynamic linking. - static int dlclose (ACE_SHLIB_HANDLE handle); - // WinCE only supports UNICODE, so we don't need these functions. -# if !defined (ACE_HAS_WINCE) - static char *dlerror (void); - static ACE_SHLIB_HANDLE dlopen (ACE_DL_TYPE filename, - int mode = ACE_DEFAULT_SHLIB_MODE); - static void *dlsym (ACE_SHLIB_HANDLE handle, ACE_DL_TYPE symbol); -# endif /* ! ACE_HAS_WINCE */ - - // = A set of wrappers for stdio file operations. - static int last_error (void); - static void last_error (int); - static int fclose (FILE *fp); - static int fcntl (ACE_HANDLE handle, - int cmd, - int val = 0); - static int fdetach (const char *file); - -# if !defined (ACE_HAS_WINCE) - // CE doesn't support these char version functions. - // However, we should provide UNICODE version of them. - static FILE *fopen (const char *filename, - const char *mode); - static FILE *fdopen (ACE_HANDLE handle, - const char *mode); - static char *fgets (char *buf, - int size, - FILE *fp); - static int stat (const char *file, - struct stat *); - static int fprintf (FILE *fp, - const char *format, - ...); - static int sprintf (char *buf, - const char *format, - ...); - static int vsprintf (char *buffer, - const char *format, - va_list argptr); - static void perror (const char *s); - - // CE doesn't support these function at all. (And it doesn't - // mean anything to provide these interfaces at all.) - static int printf (const char *format, ...); -# if !defined (ACE_LACKS_GETS) - static char *gets (char *str); -# else - // A better gets (). - // If n == 0, input is swallowed, but NULL is returned. - // Otherwise, reads up to n-1 bytes (not including the newline), - // then swallows rest up to newline - // then swallows newline - static char *gets (char *str, int n = 0); -# endif /* ACE_LACKS_GETS */ - static int puts (const char *s); -# endif /* ! ACE_HAS_WINCE */ - - static int fflush (FILE *fp); - static size_t fread (void *ptr, - size_t size, - size_t nelems, - FILE *fp); - static int fstat (ACE_HANDLE, - struct stat *); - static int ftruncate (ACE_HANDLE, - off_t); - static size_t fwrite (const void *ptr, - size_t size, - size_t nitems, - FILE *fp); - static void rewind (FILE *fp); - - // = A set of wrappers for file locks. - static int flock_init (ACE_OS::ace_flock_t *lock, - int flags = 0, - LPCTSTR name = 0, - mode_t perms = 0); - static int flock_destroy (ACE_OS::ace_flock_t *lock); - static int flock_rdlock (ACE_OS::ace_flock_t *lock, - short whence = 0, - off_t start = 0, - off_t len = 0); - static int flock_tryrdlock (ACE_OS::ace_flock_t *lock, - short whence = 0, - off_t start = 0, - off_t len = 0); - static int flock_trywrlock (ACE_OS::ace_flock_t *lock, - short whence = 0, - off_t start = 0, - off_t len = 0); - static int flock_unlock (ACE_OS::ace_flock_t *lock, - short whence = 0, - off_t start = 0, - off_t len = 0); - static int flock_wrlock (ACE_OS::ace_flock_t *lock, - short whence = 0, - off_t start = 0, - off_t len = 0); - - // = A set of wrappers for low-level process operations. - static int execl (const char *path, - const char *arg0, ...); - static int execle (const char *path, - const char *arg0, ...); - static int execlp (const char *file, - const char *arg0, ...); - static int execv (const char *path, - char *const argv[]); - static int execvp (const char *file, - char *const argv[]); - static int execve (const char *path, - char *const argv[], - char *const envp[]); - static void _exit (int status = 0); - static void exit (int status = 0); - static pid_t fork (void); - static pid_t fork (const char *program_name); - static pid_t fork_exec (ASYS_TCHAR *argv[]); - // Forks and exec's a process in a manner that works on Solaris and - // NT. argv[0] must be the full path name to the executable. - - static int getpagesize (void); - static gid_t getgid (void); - static pid_t getpid (void); - static pid_t getpgid (pid_t pid); - static uid_t getuid (void); - static pid_t setsid (void); - static int system (const char *s); - static pid_t wait (int * = 0); - static pid_t waitpid (pid_t, - int * = 0, - int = 0); - - // = A set of wrappers for timers and resource stats. - static u_int alarm (u_int secs); - static u_int ualarm (u_int usecs, - u_int interval = 0); - static u_int ualarm (const ACE_Time_Value &tv, - const ACE_Time_Value &tv_interval = ACE_Time_Value::zero); - static ACE_hrtime_t gethrtime (const ACE_HRTimer_Op = ACE_HRTIMER_GETTIME); -# if defined (ACE_HAS_POWERPC) && defined (ghs) - static void readPPCTimeBase (u_long &most, - u_long &least); -# endif /* ACE_HAS_POWERPC && ghs */ - static int clock_gettime (clockid_t, - struct timespec *); - static ACE_Time_Value gettimeofday (void); - static int getrusage (int who, - struct rusage *rusage); - static int getrlimit (int resource, - struct rlimit *rl); - static int setrlimit (int resource, - ACE_SETRLIMIT_TYPE *rl); - static int sleep (u_int seconds); - static int sleep (const ACE_Time_Value &tv); - static int nanosleep (const struct timespec *requested, - struct timespec *remaining = 0); - -# if defined (ACE_HAS_BROKEN_R_ROUTINES) -# undef ctime_r -# undef asctime_r -# undef rand_r -# undef getpwnam_r -# endif /* ACE_HAS_BROKEN_R_ROUTINES */ - -# if defined (difftime) -# define ACE_DIFFTIME(t1, t0) difftime(t1,t0) -# undef difftime -# endif /* difftime */ - - // = A set of wrappers for operations on time. -# if !defined (ACE_HAS_WINCE) - static time_t mktime (struct tm *timeptr); -# endif /* !ACE_HAS_WINCE */ - static double difftime (time_t t1, - time_t t0); - static time_t time (time_t *tloc = 0); - static struct tm *localtime (const time_t *clock); - static struct tm *localtime_r (const time_t *clock, - struct tm *res); - static struct tm *gmtime (const time_t *clock); - static struct tm *gmtime_r (const time_t *clock, - struct tm *res); - static char *asctime (const struct tm *tm); - static char *asctime_r (const struct tm *tm, - char *buf, int buflen); -# if !defined (ACE_HAS_WINCE) - static char *ctime (const time_t *t); - static char *ctime_r (const time_t *clock, - char *buf, - int buflen); -# else - static wchar_t *ctime (const time_t *t); - static wchar_t *ctime_r (const time_t *clock, - wchar_t *buf, - int buflen); -# endif /* !ACE_HAS_WINCE */ - static size_t strftime (char *s, - size_t maxsize, - const char *format, - const struct tm *timeptr); - - // = A set of wrappers for memory managment. - static void *sbrk (int brk); - static void *calloc (size_t elements, - size_t sizeof_elements); - static void *malloc (size_t); - static void *realloc (void *, - size_t); - static void free (void *); - - // = A set of wrappers for memory copying operations. - static int memcmp (const void *t, - const void *s, - size_t len); - static void *memcpy (void *t, - const void *s, - size_t len); - static void *memmove (void *t, - const void *s, - size_t len); - static void *memset (void *s, - int c, - size_t len); - - // = A set of wrappers for System V message queues. - static int msgctl (int msqid, - int cmd, - struct msqid_ds *); - static int msgget (key_t key, - int msgflg); - static int msgrcv (int int_id, - void *buf, - size_t len, - long type, - int flags); - static int msgsnd (int int_id, - const void *buf, - size_t len, - int flags); - - // = A set of wrappers for memory mapped files. - static int madvise (caddr_t addr, - size_t len, - int advice); - static void *mmap (void *addr, - size_t len, - int prot, - int flags, - ACE_HANDLE handle, - off_t off = 0, - ACE_HANDLE *file_mapping = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int mprotect (void *addr, - size_t len, - int prot); - static int msync (void *addr, - size_t len, - int sync); - static int munmap (void *addr, - size_t len); - - // = A set of wrappers for mutex locks. - static int mutex_init (ACE_mutex_t *m, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int mutex_destroy (ACE_mutex_t *m); - - static int mutex_lock (ACE_mutex_t *m); - // Win32 note: Abandoned mutexes are not treated differently. 0 is - // returned since the calling thread does get the ownership. - - static int mutex_lock (ACE_mutex_t *m, - int &abandoned); - // This method is only implemented for Win32. For abandoned - // mutexes, is set to 1 and 0 is returned. - - static int mutex_trylock (ACE_mutex_t *m); - // Win32 note: Abandoned mutexes are not treated differently. 0 is - // returned since the calling thread does get the ownership. - - static int mutex_trylock (ACE_mutex_t *m, - int &abandoned); - // This method is only implemented for Win32. For abandoned - // mutexes, is set to 1 and 0 is returned. - - static int mutex_unlock (ACE_mutex_t *m); - - // = A set of wrappers for mutex locks that only work within a - // single process. - static int thread_mutex_init (ACE_thread_mutex_t *m, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0); - static int thread_mutex_destroy (ACE_thread_mutex_t *m); - static int thread_mutex_lock (ACE_thread_mutex_t *m); - static int thread_mutex_trylock (ACE_thread_mutex_t *m); - static int thread_mutex_unlock (ACE_thread_mutex_t *m); - - // = A set of wrappers for low-level file operations. - static int access (const char *path, - int amode); - static int close (ACE_HANDLE handle); - static ACE_HANDLE creat (LPCTSTR filename, - mode_t mode); - static ACE_HANDLE dup (ACE_HANDLE handle); - static int dup2 (ACE_HANDLE oldfd, - ACE_HANDLE newfd); - static int fattach (int handle, - const char *path); - static long filesize (ACE_HANDLE handle); - static int getmsg (ACE_HANDLE handle, - struct strbuf *ctl, - struct strbuf - *data, int *flags); - static int getpmsg (ACE_HANDLE handle, - struct strbuf *ctl, - struct strbuf - *data, - int *band, - int *flags); - static int ioctl (ACE_HANDLE handle, - int cmd, - void * = 0); - static int isastream (ACE_HANDLE handle); - static int isatty (ACE_HANDLE handle); - static off_t lseek (ACE_HANDLE handle, - off_t offset, - int whence); - static ACE_HANDLE open (const char *filename, - int mode, - int perms = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int putmsg (ACE_HANDLE handle, - const struct strbuf *ctl, - const struct strbuf *data, - int flags); - static int putpmsg (ACE_HANDLE handle, - const struct strbuf *ctl, - const struct strbuf *data, - int band, - int flags); - static ssize_t read (ACE_HANDLE handle, - void *buf, - size_t len); - static ssize_t read (ACE_HANDLE handle, - void *buf, - size_t len, - ACE_OVERLAPPED *); - static ssize_t pread (ACE_HANDLE handle, - void *buf, - size_t nbyte, - off_t offset); - static int recvmsg (ACE_HANDLE handle, - struct msghdr *msg, - int flags); - static int sendmsg (ACE_HANDLE handle, - const struct msghdr *msg, - int flags); - static ssize_t write (ACE_HANDLE handle, - const void *buf, - size_t nbyte); - static ssize_t write (ACE_HANDLE handle, - const void *buf, - size_t nbyte, - ACE_OVERLAPPED *); - static ssize_t pwrite (ACE_HANDLE handle, - const void *buf, - size_t nbyte, - off_t offset); - static ssize_t readv (ACE_HANDLE handle, - struct iovec *iov, - int iovlen); - static ssize_t writev (ACE_HANDLE handle, - const struct iovec *iov, - int iovcnt); - -# if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - static ssize_t writev (ACE_HANDLE handle, - const WSABUF *buffers, - int n); - static ssize_t readv (ACE_HANDLE handle, - WSABUF *buffers, - int n); -# endif /* ACE_HAS_WINSOCK2 */ - - // = A set of wrappers for event demultiplexing and IPC. - static int select (int width, - fd_set *rfds, - fd_set *wfds, - fd_set *efds, - const ACE_Time_Value *tv = 0); - static int select (int width, - fd_set *rfds, - fd_set *wfds, - fd_set *efds, - const ACE_Time_Value &tv); - static int poll (struct pollfd *pollfds, - u_long len, - ACE_Time_Value *tv = 0); - static int poll (struct pollfd *pollfds, - u_long len, - const ACE_Time_Value &tv); - static int pipe (ACE_HANDLE handles[]); - - static ACE_HANDLE shm_open (const char *filename, - int mode, - int perms = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int shm_unlink (const char *path); - - // = A set of wrappers for directory operations. - static mode_t umask (mode_t cmask); -# if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) - static int chdir (const char *path); - static int mkdir (const char *path, - mode_t mode = ACE_DEFAULT_DIR_PERMS); - static int mkfifo (const char *file, - mode_t mode = ACE_DEFAULT_FILE_PERMS); - static char *mktemp (char *t); - static char *getcwd (char *, - size_t); - static int rename (const char *old_name, - const char *new_name); - static int unlink (const char *path); - static char *tempnam (const char *dir, - const char *pfx); -# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - - // = A set of wrappers for random number operations. - static int rand (void); - static int rand_r (ACE_RANDR_TYPE seed); - static void srand (u_int seed); - - // = A set of wrappers for readers/writer locks. - static int rwlock_init (ACE_rwlock_t *rw, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0); - static int rwlock_destroy (ACE_rwlock_t *rw); - static int rw_rdlock (ACE_rwlock_t *rw); - static int rw_wrlock (ACE_rwlock_t *rw); - static int rw_tryrdlock (ACE_rwlock_t *rw); - static int rw_trywrlock (ACE_rwlock_t *rw); - static int rw_trywrlock_upgrade (ACE_rwlock_t *rw); - static int rw_unlock (ACE_rwlock_t *rw); - - // = A set of wrappers for auto-reset and manuaevents. - static int event_init (ACE_event_t *event, - int manual_reset = 0, - int initial_state = 0, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int event_destroy (ACE_event_t *event); - static int event_wait (ACE_event_t *event); - static int event_timedwait (ACE_event_t *event, - ACE_Time_Value *timeout); - static int event_signal (ACE_event_t *event); - static int event_pulse (ACE_event_t *event); - static int event_reset (ACE_event_t *event); - - // = A set of wrappers for semaphores. - static int sema_destroy (ACE_sema_t *s); - static int sema_init (ACE_sema_t *s, - u_int count, - int type = ACE_DEFAULT_SYNCH_TYPE, - LPCTSTR name = 0, - void *arg = 0, - int max = 0x7fffffff, - LPSECURITY_ATTRIBUTES sa = 0); - static int sema_post (ACE_sema_t *s); - static int sema_post (ACE_sema_t *s, - size_t release_count); - static int sema_trywait (ACE_sema_t *s); - static int sema_wait (ACE_sema_t *s); - static int sema_wait (ACE_sema_t *s, - ACE_Time_Value &tv); - - // = A set of wrappers for System V semaphores. - static int semctl (int int_id, - int semnum, - int cmd, - semun); - static int semget (key_t key, - int nsems, - int flags); - static int semop (int int_id, - struct sembuf *sops, - size_t nsops); - - // = Thread scheduler interface. - static int sched_params (const ACE_Sched_Params &, ACE_id_t id = ACE_SELF); - // Set scheduling parameters. An id of ACE_SELF indicates, e.g., - // set the parameters on the calling thread. - - // = A set of wrappers for System V shared memory. - static void *shmat (int int_id, - void *shmaddr, - int shmflg); - static int shmctl (int int_id, - int cmd, - struct shmid_ds *buf); - static int shmdt (void *shmaddr); - static int shmget (key_t key, - int size, - int flags); - - // = A set of wrappers for Signals. - static int kill (pid_t pid, - int signum); - static int sigaction (int signum, - const struct sigaction *nsa, - struct sigaction *osa); - static int sigaddset (sigset_t *s, - int signum); - static int sigdelset (sigset_t *s, - int signum); - static int sigemptyset (sigset_t *s); - static int sigfillset (sigset_t *s); - static int sigismember (sigset_t *s, - int signum); - static ACE_SignalHandler signal (int signum, - ACE_SignalHandler); - static int sigprocmask (int how, - const sigset_t *nsp, - sigset_t *osp); - - // = A set of wrappers for sockets. - static ACE_HANDLE accept (ACE_HANDLE handle, - struct sockaddr *addr, - int *addrlen); - static int bind (ACE_HANDLE s, - struct sockaddr *name, - int namelen); - static int connect (ACE_HANDLE handle, - struct sockaddr *addr, - int addrlen); - static int closesocket (ACE_HANDLE s); - static struct passwd *getpwnam (const char *user); - static struct passwd *getpwnam_r (const char *name, - struct passwd *pwent, - char *buffer, - int buflen); - static struct hostent *gethostbyaddr (const char *addr, - int length, - int type); - static struct hostent *gethostbyname (const char *name); - static struct hostent *gethostbyaddr_r (const char *addr, - int length, - int type, - struct hostent *result, - ACE_HOSTENT_DATA buffer, - int *h_errnop); - static struct hostent *gethostbyname_r (const char *name, - struct hostent *result, - ACE_HOSTENT_DATA buffer, - int *h_errnop); - static int getpeername (ACE_HANDLE handle, - struct sockaddr *addr, - int *addrlen); - static struct protoent *getprotobyname (const char *name); - static struct protoent *getprotobyname_r (const char *name, - struct protoent *result, - ACE_PROTOENT_DATA buffer); - static struct protoent *getprotobynumber (int proto); - static struct protoent *getprotobynumber_r (int proto, - struct protoent *result, - ACE_PROTOENT_DATA buffer); - static struct servent *getservbyname (const char *svc, - const char *proto); - static struct servent *getservbyname_r (const char *svc, - const char *proto, - struct servent *result, - ACE_SERVENT_DATA buf); - static int getsockname (ACE_HANDLE handle, - struct sockaddr *addr, - int *addrlen); - static int getsockopt (ACE_HANDLE handle, - int level, - int optname, - char *optval, - int *optlen); - static long inet_addr (const char *name); - static char *inet_ntoa (const struct in_addr addr); - static int inet_aton (const char *strptr, - struct in_addr *addr); - - static int listen (ACE_HANDLE handle, - int backlog); - static int recv (ACE_HANDLE handle, - char *buf, - int len, - int flags = 0); - static int recvfrom (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int *addrlen); - static int send (ACE_HANDLE handle, - const char *buf, - int len, int - flags = 0); - static int sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen); - static int setsockopt (ACE_HANDLE handle, - int level, - int optname, - const char *optval, - int optlen); - static int shutdown (ACE_HANDLE handle, - int how); - static ACE_HANDLE socket (int domain, - int type, - int proto); - static int socketpair (int domain, - int type, - int protocol, - ACE_HANDLE sv[2]); - static int socket_init (int version_high = 1, - int version_low = 1); - // Initialize WinSock before first use (e.g., when a DLL is first - // loaded or the first use of a socket() call. - - static int socket_fini (void); - // Finalize WinSock after last use (e.g., when a DLL is unloaded). - - // = A set of wrappers for regular expressions. - static char *compile (const char *instring, - char *expbuf, - char *endbuf); - static int step (const char *str, - char *expbuf); - - // = A set of wrappers for non-UNICODE string operations. - static int to_lower (int c); - static int strcasecmp (const char *s, - const char *t); - static int strncasecmp (const char *s, - const char *t, - size_t len); - static char *strcat (char *s, - const char *t); - static char *strchr (char *s, - int c); - static const char *strchr (const char *s, - int c); - static char *strrchr (char *s, - int c); - static const char *strrchr (const char *s, - int c); - static char *strnchr (char *s, - int c, - size_t len); - static const char *strnchr (const char *s, - int c, - size_t len); - static int strcmp (const char *s, - const char *t); - static int strncmp (const char *s, - const char *t, - size_t len); - static char *strcpy (char *s, - const char *t); - static char *strpbrk (char *s1, - const char *s2); - static const char *strpbrk (const char *s1, - const char *s2); - static size_t strcspn (const char *s, - const char *reject); - static size_t strspn(const char *s1, - const char *s2); - static char *strstr (char *s, - const char *t); - static const char *strstr (const char *s, - const char *t); - static char *strnstr (char *s, - const char *t, - size_t len); - static const char *strnstr (const char *s, - const char *t, - size_t len); - static char *strdup (const char *s); - static size_t strlen (const char *s); - static char *strncpy (char *s, - const char *t, - size_t len); - static char *strncat (char *s, - const char *t, - size_t len); - static char *strtok (char *s, - const char *tokens); - static char *strtok_r (char *s, - const char *tokens, - char **lasts); - static long strtol (const char *s, - char **ptr, - int base); - static u_long strtoul (const char *s, - char **ptr, - int base); - static double strtod (const char *s, - char **endptr); - static int ace_isspace (const char s); - -# if !defined (ACE_HAS_WCHAR_TYPEDEFS_CHAR) - static size_t strlen (const wchar_t *s); - static wchar_t *strcpy (wchar_t *s, - const wchar_t *t); -# endif /* ! ACE_HAS_WCHAR_TYPEDEFS_CHAR */ - - // The following WChar typedef and functions are used by TAO. TAO - // does not use wchar_t because the size of wchar_t is - // platform-dependent. - typedef ACE_UINT32 WChar; - static u_int wslen (const WChar *); - static WChar *wscpy (WChar *, const WChar *); - -# if defined (ACE_HAS_UNICODE) - // = A set of wrappers for UNICODE string operations. - static int atoi (const wchar_t *s); - static wint_t to_lower (wint_t c); - static wchar_t *strcat (wchar_t *s, - const wchar_t *t); - static wchar_t *strchr (wchar_t *s, - wint_t c); - static const wchar_t *strchr (const wchar_t *s, - wint_t c); - static wchar_t *strrchr (wchar_t *s, - wint_t c); - static const wchar_t *strrchr (const wchar_t *s, - wint_t c); - static wchar_t *strnchr (wchar_t *s, - wint_t c, - size_t len); - static const wchar_t *strnchr (const wchar_t *s, - wint_t c, - size_t len); - static int strcmp (const wchar_t *s, - const wchar_t *t); - static int strncmp (const wchar_t *s, - const wchar_t *t, - size_t len); - static int strcasecmp (const wchar_t *s, - const wchar_t *t); - static int strncasecmp (const wchar_t *s, - const wchar_t *t, - size_t len); - static wchar_t *strpbrk (const wchar_t *s1, - const wchar_t *s2); - static wchar_t *strncpy (wchar_t *s, - const wchar_t *t, - size_t len); - static wchar_t *strncat (wchar_t *s, - const wchar_t *t, - size_t len); - static wchar_t *strtok (wchar_t *s, - const wchar_t *tokens); - static long strtol (const wchar_t *s, - wchar_t **ptr, - int base); - static int ace_isspace (wchar_t c); - -# if defined (ACE_WIN32) - static wchar_t *strstr (wchar_t *s, - const wchar_t *t); - static const wchar_t *strstr (const wchar_t *s, - const wchar_t *t); - static wchar_t *strnstr (wchar_t *s, - const wchar_t *t, - size_t len); - static const wchar_t *strnstr (const wchar_t *s, - const wchar_t *t, - size_t len); - static wchar_t *strdup (const wchar_t *s); - static int sprintf (wchar_t *buf, - const wchar_t *format, - ...); -# if 0 - static int sprintf (wchar_t *buf, - const char *format, - ...); -# endif /* 0 */ - // the following three are newly added for CE. - // but they can also be use on Win32. -// static char *fgets (wchar_t *buf, -// int size, -// FILE *fp); - static int fprintf (FILE *fp, - const wchar_t *format, - ...); - static void perror (const wchar_t *s); - - static int vsprintf (wchar_t *buffer, - const wchar_t *format, - va_list argptr); - - static int access (const wchar_t *path, - int amode); - static FILE *fopen (const wchar_t *filename, - const wchar_t *mode); - static FILE *fdopen (ACE_HANDLE handle, - const wchar_t *mode); - static int stat (const wchar_t *file, - struct stat *); - static wchar_t *getenv (const wchar_t *symbol); - static int system (const wchar_t *s); - static int hostname (wchar_t *name, - size_t maxnamelen); - static ACE_HANDLE open (const wchar_t *filename, - int mode, - int perms = 0, - LPSECURITY_ATTRIBUTES sa = 0); - static int rename (const wchar_t *oldname, - const wchar_t *newname); - static int unlink (const wchar_t *path); -# if defined (ACE_HAS_WINCE) - static wchar_t *dlerror (void); -# endif /* !ACE_HAS_WINCE */ - static ACE_SHLIB_HANDLE dlopen (ACE_WIDE_DL_TYPE filename, - - int mode = ACE_DEFAULT_SHLIB_MODE); - static void *dlsym (ACE_SHLIB_HANDLE handle, ACE_WIDE_DL_TYPE symbol); - static wchar_t *mktemp (wchar_t *t); - static int mkdir (const wchar_t *path, - mode_t mode = ACE_DEFAULT_DIR_PERMS); - static int chdir (const wchar_t *path); - static wchar_t *getcwd (wchar_t *, - size_t); -# endif /* ACE_WIN32 */ -# endif /* ACE_HAS_UNICODE */ - - // = A set of wrappers for TLI. - static int t_accept (ACE_HANDLE fildes, - int resfd, - struct t_call - *call); - static char *t_alloc (ACE_HANDLE fildes, - int struct_type, - int - fields); - static int t_bind (ACE_HANDLE fildes, - struct t_bind *req, - struct - t_bind *ret); - static int t_close (ACE_HANDLE fildes); - static int t_connect(int fildes, - struct t_call *sndcall, - struct t_call *rcvcall); - static void t_error (char *errmsg); - static int t_free (char *ptr, - int struct_type); - static int t_getinfo (ACE_HANDLE fildes, - struct t_info *info); - static int t_getname (ACE_HANDLE fildes, - struct netbuf *namep, - int type); - static int t_getstate (ACE_HANDLE fildes); - static int t_listen (ACE_HANDLE fildes, - struct t_call *call); - static int t_look (ACE_HANDLE fildes); - static int t_open (char *path, - int oflag, - struct t_info *info); - static int t_optmgmt (ACE_HANDLE fildes, - struct t_optmgmt *req, - struct t_optmgmt *ret); - static int t_rcv (ACE_HANDLE fildes, - char *buf, - u_int nbytes, - int *flags); - static int t_rcvdis (ACE_HANDLE fildes, - struct t_discon *discon); - static int t_rcvrel (ACE_HANDLE fildes); - static int t_rcvudata (ACE_HANDLE fildes, - struct t_unitdata *unitdata, - int *flags); - static int t_rcvuderr (ACE_HANDLE fildes, - struct t_uderr *uderr); - static int t_snd (ACE_HANDLE fildes, - char *buf, - u_int nbytes, - int flags); - static int t_snddis (ACE_HANDLE fildes, - struct t_call *call); - static int t_sndrel (ACE_HANDLE fildes); - static int t_sync (ACE_HANDLE fildes); - static int t_unbind (ACE_HANDLE fildes); - -# if 0 - // = A set of wrappers for threads (these are portable since they use the ACE_Thread_ID). - static int thr_continue (const ACE_Thread_ID &thread); - static int thr_create (ACE_THR_FUNC, - void *args, - long flags, - ACE_Thread_ID *, - long priority = ACE_DEFAULT_THREAD_PRIORITY, - void *stack = 0, - size_t stacksize = 0); - static int thr_getprio (ACE_Thread_ID thr_id, - int &prio, - int *policy = 0); - static int thr_join (ACE_Thread_ID waiter_id, - void **status); - static int thr_kill (ACE_Thread_ID thr_id, - int signum); - static ACE_Thread_ID thr_self (void); - static int thr_setprio (ACE_Thread_ID thr_id, - int prio); - static int thr_setprio (const ACE_Sched_Priority prio); - static int thr_suspend (ACE_Thread_ID target_thread); - static int thr_cancel (ACE_Thread_ID t_id); -# endif /* 0 */ - - // = A set of wrappers for threads - - // These are non-portable since they use ACE_thread_t and - // ACE_hthread_t and will go away in a future release. - static int thr_continue (ACE_hthread_t target_thread); - static int thr_create (ACE_THR_FUNC func, - void *args, - long flags, - ACE_thread_t *thr_id, - ACE_hthread_t *t_handle = 0, - long priority = ACE_DEFAULT_THREAD_PRIORITY, - void *stack = 0, - size_t stacksize = 0, - ACE_Thread_Adapter *thread_adapter = 0); - // Creates a new thread having attributes and running - // with (if is non-0 then and - // are ignored and are obtained from ). - // and are set to the thread's ID and handle (?), - // respectively. The thread runs at priority (see - // below). - // - // The are a bitwise-OR of the following: - // = BEGIN - // THR_CANCEL_DISABLE, THR_CANCEL_ENABLE, THR_CANCEL_DEFERRED, - // THR_CANCEL_ASYNCHRONOUS, THR_BOUND, THR_NEW_LWP, THR_DETACHED, - // THR_SUSPENDED, THR_DAEMON, THR_JOINABLE, THR_SCHED_FIFO, - // THR_SCHED_RR, THR_SCHED_DEFAULT - // = END - // - // By default, or if is set to - // ACE_DEFAULT_THREAD_PRIORITY, an "appropriate" priority value for - // the given scheduling policy (specified in , e.g., - // ) is used. This value is calculated - // dynamically, and is the median value between the minimum and - // maximum priority values for the given policy. If an explicit - // value is given, it is used. Note that actual priority values are - // EXTREMEMLY implementation-dependent, and are probably best - // avoided. - // - // Note that is always deleted by , - // therefore it must be allocated with global operator new. - - static int thr_getprio (ACE_hthread_t thr_id, - int &prio); - static int thr_join (ACE_hthread_t waiter_id, - void **status); - static int thr_join (ACE_thread_t waiter_id, - ACE_thread_t *thr_id, - void **status); - static int thr_kill (ACE_thread_t thr_id, - int signum); - static ACE_thread_t thr_self (void); - static void thr_self (ACE_hthread_t &); - static int thr_setprio (ACE_hthread_t thr_id, - int prio); - static int thr_setprio (const ACE_Sched_Priority prio); - static int thr_suspend (ACE_hthread_t target_thread); - static int thr_cancel (ACE_thread_t t_id); - - static int thr_cmp (ACE_hthread_t t1, - ACE_hthread_t t2); - static int thr_equal (ACE_thread_t t1, - ACE_thread_t t2); - static void thr_exit (void *status = 0); - static int thr_getconcurrency (void); - static int lwp_getparams (ACE_Sched_Params &); - static int thr_getspecific (ACE_thread_key_t key, - void **data); - static int thr_keyfree (ACE_thread_key_t key); - static int thr_key_detach (void *inst); -# if defined (ACE_HAS_THR_C_DEST) - static int thr_keycreate (ACE_thread_key_t *key, - ACE_THR_C_DEST, - void *inst = 0); -# else - static int thr_keycreate (ACE_thread_key_t *key, - ACE_THR_DEST, - void *inst = 0); -# endif /* ACE_HAS_THR_C_DEST */ - static int thr_key_used (ACE_thread_key_t key); - static size_t thr_min_stack (void); - static int thr_setconcurrency (int hint); - static int lwp_setparams (const ACE_Sched_Params &); - static int thr_setspecific (ACE_thread_key_t key, - void *data); - static int thr_sigsetmask (int how, - const sigset_t *nsm, - sigset_t *osm); - static int thr_setcancelstate (int new_state, - int *old_state); - static int thr_setcanceltype (int new_type, - int *old_type); - static int sigwait (sigset_t *set, - int *sig = 0); - static void thr_testcancel (void); - static void thr_yield (void); - - static ACE_thread_t NULL_thread; - // This is necessary to deal with POSIX pthreads and their use of - // structures for thread ids. - - static ACE_hthread_t NULL_hthread; - // This is necessary to deal with POSIX pthreads and their use of - // structures for thread handles. - - static ACE_thread_key_t NULL_key; - // This is necessary to deal with POSIX pthreads and their use of - // structures for TSS keys. - -# if defined (ACE_WIN32) - static int socket_initialized_; - // Keeps track of whether we've already initialized WinSock... -# endif /* ACE_WIN32 */ - - static void mutex_lock_cleanup (void *mutex); - // Handle asynchronous thread cancellation cleanup. - - static void cleanup_tss (const u_int main_thread); - // Call TSS destructors for the current thread. If the current - // thread is the main thread, then the argument must be 1. - // For private use of ACE_Object_Manager and ACE_Thread_Adapter only. - -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) && defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - static int netdb_acquire (void); - static int netdb_release (void); -# endif /* defined (ACE_MT_SAFE) && ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ - - static int scheduling_class (const char *class_name, ACE_id_t &); - // Find the schedling class ID that corresponds to the class name. - - static int set_scheduling_params (const ACE_Sched_Params &, - ACE_id_t id = ACE_SELF); - // Friendly interface to priocntl (2). - - // Can't call the following priocntl, because that's a macro on Solaris. - static int priority_control (ACE_idtype_t, ACE_id_t, int, void *); - // Low-level interface to priocntl (2). - -# if defined (ACE_HAS_WINCE) -private: - static const wchar_t *day_of_week_name[7]; - static const wchar_t *month_name[12]; - // Supporting data for ctime and ctime_r functions on WinCE. -# endif /* ACE_HAS_WINCE */ -}; - -# if defined (ACE_HAS_WINCE) -// **** Warning **** -// You should not use the following functions under CE at all. -// **** Warning **** -size_t fwrite (void *buf, size_t sz, size_t count, FILE *fp); -size_t fread (void *buf, size_t sz, size_t count, FILE *fp); -int getc (FILE *fp); -int ferror (FILE *fp); -int isatty (ACE_HANDLE h); -ACE_HANDLE fileno (FILE *fp); -int fflush (FILE *fp); -void exit (int status); -int fprintf (FILE *fp, char *format, const char *msg); // not a general purpose - // fprintf at all. -int printf (const char *format, ...); -int putchar (int c); -# endif /* ACE_HAS_WINCE */ - -# if defined (ACE_LACKS_TIMEDWAIT_PROTOTYPES) -extern "C" ssize_t send_timedwait (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - struct timespec *timeout); -extern "C" ssize_t recv_timedwait (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct timespec *timeout); -extern "C" ssize_t recvfrom_timedwait (ACE_HANDLE handle, - char *buf, - int len, - int flags, - struct sockaddr *addr, - int - *addrlen, - struct timespec *timeout); -extern "C" ssize_t recvmsg_timedwait (ACE_HANDLE handle, - struct msghdr *msg, - int flags, - struct timespec *timeout); -extern "C" ssize_t read_timedwait (ACE_HANDLE handle, - void *buf, - size_t len, - struct timespec *timeout); -extern "C" ssize_t sendto_timedwait (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen, - struct timespec *timeout); -extern "C" ssize_t sendmsg_timedwait (ACE_HANDLE handle, - ACE_SENDMSG_TYPE *msg, - int flags, - struct timespec *timeout); -extern "C" ssize_t write_timedwait (ACE_HANDLE handle, - const void *buf, - size_t n, - struct timespec *timeout); -extern "C" ssize_t readv_timedwait (ACE_HANDLE handle, - struct iovec *iov, - int iovcnt, - struct timespec* timeout); -extern "C" ssize_t writev_timedwait (ACE_HANDLE handle, - ACE_WRITEV_TYPE *iov, - int iovcnt, - struct timespec *timeout); -# endif /* ACE_LACKS_TIMEDWAIT_PROTOTYPES */ - -# if defined (ACE_HAS_TSS_EMULATION) - // Allow config.h to set the default number of thread keys. -# if !defined (ACE_DEFAULT_THREAD_KEYS) -# define ACE_DEFAULT_THREAD_KEYS 64 -# endif /* ! ACE_DEFAULT_THREAD_KEYS */ - -class ACE_Export ACE_TSS_Emulation -{ - // = TITLE - // Thread-specific storage emulation. - // - // = DESCRIPTION - // This provides a thread-specific storage implementation. - // It is intended for use on platforms that don't have a - // native TSS, or have a TSS with limitations such as the - // number of keys or lack of support for removing keys. -public: - typedef void (*ACE_TSS_DESTRUCTOR)(void *value) /* throw () */; - - enum { ACE_TSS_THREAD_KEYS_MAX = ACE_DEFAULT_THREAD_KEYS }; - // Maximum number of TSS keys allowed over the life of the program. - - static u_int total_keys (); - // Returns the total number of keys allocated so far. - - static int next_key (ACE_thread_key_t &key); - // Sets the argument to the next available key. Returns 0 on success, - // -1 if no keys are available. - - static ACE_TSS_DESTRUCTOR tss_destructor (const ACE_thread_key_t key); - // Returns the exit hook associated with the key. Does _not_ check - // for a valid key. - - static void tss_destructor (const ACE_thread_key_t key, - ACE_TSS_DESTRUCTOR destructor); - // Associates the TSS destructor with the key. Does _not_ check - // for a valid key. - - static void *&ts_object (const ACE_thread_key_t key); - // Accesses the object referenced by key in the current thread's TSS array. - // Does _not_ check for a valid key. - - static void *tss_open (void *ts_storage[ACE_TSS_THREAD_KEYS_MAX]); - // Setup an array to be used for local TSS. Returns the array address on - // success. Returns 0 if local TSS had already been setup for this thread. - // There is no corresponding tss_close () because it is not needed. - -private: - // Global TSS structures. - static u_int total_keys_; - // Always contains the value of the next key to be allocated. - - static ACE_TSS_DESTRUCTOR tss_destructor_ [ACE_TSS_THREAD_KEYS_MAX]; - // Array of thread exit hooks (TSS destructors) that are called for each - // key (that has one) when the thread exits. - - static void **&tss_base (); - // Location of current thread's TSS array. - -# if ! defined (VXWORKS) -public: - // This implementation only works if ::thr_self () returns a small - // integer. It is intended for use in testing on Solaris only. - enum { ACE_TSS_THREADS_MAX = 1024 }; - - static void **tss_collection_ [ACE_TSS_THREADS_MAX]; - // Array, indexed by thread handle, of TSS object arrays. Those - // are indexed by key. This is for testing only. -private: - -# if 0 // not implemented yet . . . - // Rely on native thread specific storage for the implementation, - // but just use one key. - - static ACE_thread_key_t native_tss_key_; -# endif /* 0 */ -# endif /* ! VXWORKS */ -}; - -# else /* ! ACE_HAS_TSS_EMULATION */ -# if defined (TLS_MINIMUM_AVAILABLE) - // WIN32 platforms define TLS_MINIMUM_AVAILABLE natively. -# define ACE_DEFAULT_THREAD_KEYS TLS_MINIMUM_AVAILABLE -# endif /* TSL_MINIMUM_AVAILABLE */ - -# endif /* ACE_HAS_TSS_EMULATION */ - -// Support non-scalar thread keys, such as with some POSIX -// implementations, e.g., MVS. -# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T) -# define ACE_KEY_INDEX(OBJ,KEY) \ - u_int OBJ; \ - ACE_OS::memcpy (&OBJ, &KEY, sizeof (u_int)) -# else -# define ACE_KEY_INDEX(OBJ,KEY) u_int OBJ = KEY -# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */ - -// 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). - -# if defined(ACE_NEW_THROWS_EXCEPTIONS) -# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \ - do { try { POINTER = new CONSTRUCTOR; } \ - catch (bad_alloc) { errno = ENOMEM; return RET_VAL; } \ - } while (0) - -# define ACE_NEW(POINTER,CONSTRUCTOR) \ - do { try { POINTER = new CONSTRUCTOR; } \ - catch (bad_alloc) { errno = ENOMEM; return; } \ - } while (0) -# else -# define ACE_NEW_RETURN(POINTER,CONSTRUCTOR,RET_VAL) \ - do { POINTER = new CONSTRUCTOR; \ - if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \ - } while (0) -# define ACE_NEW(POINTER,CONSTRUCTOR) \ - do { POINTER = new CONSTRUCTOR; \ - if (POINTER == 0) { errno = ENOMEM; return; } \ - } while (0) -# endif /* ACE_NEW_THROWS_EXCEPTIONS */ - -// Some useful abstration for expressions involving -// ACE_Allocator.malloc (). The difference between ACE_NEW_MALLOC* -// with ACE_ALLOCATOR* is that they call constructors also. - -# define ACE_ALLOCATOR_RETURN(POINTER,ALLOCATOR,RET_VAL) \ - do { POINTER = ALLOCATOR; \ - if (POINTER == 0) { errno = ENOMEM; return RET_VAL; } \ - } while (0) -# define ACE_ALLOCATOR(POINTER,ALLOCATOR) \ - do { POINTER = ALLOCATOR; \ - if (POINTER == 0) { errno = ENOMEM; return; } \ - } while (0) - -# define ACE_NEW_MALLOC_RETURN(POINTER,ALLOCATOR,CONSTRUCTOR,RET_VAL) \ - do { POINTER = ALLOCATOR; \ - if (POINTER == 0) { errno = ENOMEM; return RET_VAL;} \ - else { new (POINTER) CONSTRUCTOR; } \ - } while (0) -# define ACE_NEW_MALLOC(POINTER,ALLOCATOR,CONSTRUCTOR) \ - do { POINTER = ALLOCATOR; \ - if (POINTER == 0) { errno = ENOMEM; return;} \ - else { new (POINTER) CONSTRUCTOR; } \ - } while (0) - -# define ACE_DES_NOFREE (POINTER,CLASS) POINTER->CLASS::~CLASS () -# define ACE_DES_FREE(POINTER,DEALLOCATOR,CLASS) \ - do { POINTER->CLASS::~CLASS (); DEALLOCATOR (POINTER); } while (0) -# define ACE_DES_NOFREE_TEMPLATE (POINTER,T_CLASS,T_PARAMETER) \ - POINTER-> T_CLASS T_PARAMETER ::~ T_CLASS () -# if defined (__Lynx__) && __LYNXOS_SDK_VERSION == 199701L - // LynxOS 3.0.0's g++ has trouble with the real versions of these. -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) -# else -# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \ - do { POINTER-> T_CLASS T_PARAMETER ::~ T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } while (0) -# define ACE_DES_FREE_TEMPLATE2(POINTER,DEALLOCATOR,T_CLASS,T_PARAM1,T_PARAM2) \ - do { POINTER-> T_CLASS ::~ T_CLASS (); \ - DEALLOCATOR (POINTER); \ - } while (0) -# endif - -# if defined (ACE_HAS_SIGNAL_SAFE_OS_CALLS) -// The following two macros ensure that system calls are properly -// restarted (if necessary) when interrupts occur. -# define ACE_OSCALL(OP,TYPE,FAILVALUE,RESULT) \ - do \ - RESULT = (TYPE) OP; \ - while (RESULT == FAILVALUE && errno == EINTR && ACE_LOG_MSG->restart ()) -# define ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) \ - do { \ - TYPE ace_result_; \ - do \ - ace_result_ = (TYPE) OP; \ - while (ace_result_ == FAILVALUE && errno == EINTR && ACE_LOG_MSG->restart ()); \ - return ace_result_; \ - } while (0) -# elif defined (ACE_WIN32) -# define ACE_OSCALL_RETURN(X,TYPE,FAILVALUE) \ - do \ - return (TYPE) X; \ - while (0) -# define ACE_OSCALL(X,TYPE,FAILVALUE,RESULT) \ - do \ - RESULT = (TYPE) X; \ - while (0) -# define ACE_WIN32CALL_RETURN(X,TYPE,FAILVALUE) \ - do { \ - TYPE ace_result_ = (TYPE) X; \ - if (ace_result_ == FAILVALUE) \ - errno = ::GetLastError (); \ - return ace_result_; \ - } while (0) -# define ACE_WIN32CALL(X,TYPE,FAILVALUE,RESULT) \ - do { \ - RESULT = (TYPE) X; \ - if (RESULT == FAILVALUE) \ - errno = ::GetLastError (); \ - } while (0) -# else -# define ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) do { TYPE ace_result_ = FAILVALUE; ace_result_ = ace_result_; return OP; } while (0) -# define ACE_OSCALL(OP,TYPE,FAILVALUE,RESULT) do { RESULT = (TYPE) OP; } while (0) -# endif /* ACE_HAS_SIGNAL_SAFE_OS_CALLS */ - -# if defined (ACE_HAS_THR_C_FUNC) -// This is necessary to work around nasty problems with MVS C++. -extern "C" ACE_Export void ace_mutex_lock_cleanup_adapter (void *args); -# define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ace_mutex_lock_cleanup_adapter, (void *) A); -# define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A) -# elif defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CLEANUP) -# define ACE_PTHREAD_CLEANUP_PUSH(A) pthread_cleanup_push (ACE_OS::mutex_lock_cleanup, (void *) A); -# define ACE_PTHREAD_CLEANUP_POP(A) pthread_cleanup_pop(A) -# else -# define ACE_PTHREAD_CLEANUP_PUSH(A) -# define ACE_PTHREAD_CLEANUP_POP(A) -# endif /* ACE_HAS_THR_C_FUNC */ - -# if !defined (ACE_DEFAULT_MUTEX_A) -# define ACE_DEFAULT_MUTEX_A "ACE_MUTEX" -# endif /* ACE_DEFAULT_MUTEX_A */ - -# if !defined (ACE_MAIN) -# define ACE_MAIN main -# endif /* ! ACE_MAIN */ - -# if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) && !defined (ACE_HAS_WINCE) -// Rename "main ()" on platforms that don't allow it to be called "main ()". -// Also, create an ACE_Object_Manager static instance in "main ()". -# include "ace/Object_Manager.h" - -# if defined (ACE_PSOSIM) -// PSOSIM root lacks the standard argc, argv command line parameters, -// create dummy argc and argv in the "real" main and pass to "user" main. -// NOTE: ACE_MAIN must be defined to give the return type as well as the -// name of the entry point. -# define main \ -ace_main_i (int, char *[]); /* forward declaration */ \ -ACE_MAIN () /* user's entry point, e.g., "main" w/out argc, argv */ \ -{ \ - int argc = 1; /* dummy arg count */ \ - char *argv[] = {"psosim"}; /* dummy arg list */ \ - ACE_Object_Manager ace_object_manager; /* has program lifetime */ \ - int ret_val = -1; /* assume the worst */ \ - if (ACE_PSOS_Time_t::init_simulator_time ()) /* init simulator time */ \ - { \ - ACE_ERROR((LM_ERROR, "init_simulator_time failed\n")); /* report */ \ - } \ - else \ - { \ - ret_val = ace_main_i (argc, argv); /* call user main, save result */ \ - } \ - ACE_OS::exit (ret_val); /* pass code to simulator exit */ \ -} \ -int \ -ace_main_i -# elif defined (ACE_PSOS) -// PSOS root lacks the standard argc, argv command line parameters, -// create dummy argc and argv in the "real" main and pass to "user" main. -// Ignore return value from user main as well. NOTE: ACE_MAIN must be -// defined to give the return type as well as the name of the entry point -# define main \ -ace_main_i (int, char *[]); /* forward declaration */ \ -ACE_MAIN () /* user's entry point, e.g., "main" w/out argc, argv */ \ -{ \ - int argc = 1; /* dummy arg count */ \ - char *argv[] = {""}; /* dummy arg list */ \ - ACE_Object_Manager ace_object_manager; /* has program lifetime */ \ - ace_main_i (argc, argv); /* call user main, ignore result */ \ -} \ -int \ -ace_main_i -# else -# define main \ -ace_main_i (int, char *[]); /* forward declaration */ \ -int \ -ACE_MAIN (int argc, char *argv[]) /* user's entry point, e.g., "main" */ \ -{ \ - ACE_Object_Manager ace_object_manager; /* has program lifetime */ \ - return ace_main_i (argc, argv); /* what the user calls "main" */ \ -} \ -int \ -ace_main_i -# endif /* ACE_PSOSIM */ -# endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */ - -# if defined (ACE_HAS_WINCE) -# include "ace/Object_Manager.h" -// We need to rename program entry name "main" with ace_ce_main here -// so that we can call it from CE's bridge class. - -// I'll assume there'll only be DLL version of ACE on CE for now. -# define main \ -ace_main_i (int, ASYS_TCHAR *[]); /* forward declaration */ \ -int \ -ace_ce_main (int argc, ASYS_TCHAR *argv[]) /* user's entry point, e.g., "main" */ \ -{ \ - return ace_main_i (argc, argv); /* what the user calls "main" */ \ -} \ -int \ -ace_main_i - -class ACE_Export ACE_CE_Bridge -{ - // = TITLE - // This class bridges between ACE's default text output windows - // and the original ACE program. - // - // = DESCRIPTION - // As there is no such thing as text-based programs on Windows - // CE. We need to create a windows to read the command prompt - // and bridge the output windows with the original ACE program - // entry point. You'll need to link your program with - // "ace-windows.lib" for this to work. You can refer to - // $ACE_ROOT/WindowsCE/Main for how I use a dialog box to run - // the original ACE programs. This is certainly not the only - // way to use ACE in Windows programs. -public: - ACE_CE_Bridge (void); - // Default ctor. - - ACE_CE_Bridge (CWnd *, int notification, int idc); - // Construct and set the default windows. - - ~ACE_CE_Bridge (void); - // Default dtor. - - void set_window (CWnd *, int notification, int idc); - // Specify which window to use. - - void set_self_default (void); - // Set the default window. - - int notification (void); - int idc (void); - CWnd *window (void); - // Access functions. - - static ACE_CE_Bridge *get_default_winbridge (void); - // Get the reference of default ACE_CE_BRIDGE. - - int write_msg (LPCTSTR str); - // Write a string to windows. - - int write_msg (CString *cs); - // Write a CString to windows. Notice that the CString object will - // be freed by windows. -private: - // @@ We should use a allocator here. - - CWinThread *control_; - // The ace program that tied to this windows. - - CWnd *text_output_; - // A pointer to the window that knows how to - // handle ACE related messages. - - int notification_; - // Notification of the window that receives WM_COMMAND when - // outputing strings. - - int idc_; - // IDC code of the window that receives WM_COMMAND when - // outputing strings. - - ASYS_TCHAR *cmdline_; - - static ACE_CE_Bridge *default_text_bridge_; - // A pointer to the default ACE_CE_BRIDGE obj. -}; -# endif /* ACE_HAS_WINCE */ - -// This is used to indicate that a platform doesn't support a -// particular feature. -# if defined ACE_HAS_VERBOSE_NOTSUP - // Print a console message with the file and line number of the - // unsupported function. -# define ACE_NOTSUP_RETURN(FAILVALUE) do { errno = ENOTSUP; ACE_OS::fprintf (stderr, __TEXT ("ACE_NOTSUP: %s, line %d\n"), __FILE__, __LINE__); return FAILVALUE; } while (0) -# else /* ! ACE_HAS_VERBOSE_NOTSUP */ -# define ACE_NOTSUP_RETURN(FAILVALUE) do { errno = ENOTSUP ; return FAILVALUE; } while (0) -# endif /* ! ACE_HAS_VERBOSE_NOTSUP */ - -# if defined (ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS) -# define ACE_INLINE_FOR_GNUC ACE_INLINE -# else -# define ACE_INLINE_FOR_GNUC -# endif /* ACE_HAS_GNUC_BROKEN_TEMPLATE_INLINE_FUNCTIONS */ - -struct ACE_Export ACE_IO_Vector : -# if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - public WSABUF -# else - public iovec -# endif /* ACE_HAS_WINSOCK2 */ -{ - ssize_t length (void) const; - void length (ssize_t new_length); - - void *buffer (void) const; - void buffer (void *new_buffer); -}; - -# if defined (ACE_WIN32) -typedef TRANSMIT_FILE_BUFFERS ACE_TRANSMIT_FILE_BUFFERS; -typedef LPTRANSMIT_FILE_BUFFERS ACE_LPTRANSMIT_FILE_BUFFERS; -typedef PTRANSMIT_FILE_BUFFERS ACE_PTRANSMIT_FILE_BUFFERS; - -# define ACE_INFINITE INFINITE -# define ACE_STATUS_TIMEOUT STATUS_TIMEOUT -# define ACE_WAIT_FAILED WAIT_FAILED -# define ACE_WAIT_TIMEOUT WAIT_TIMEOUT -# else /* ACE_WIN32 */ -struct ACE_TRANSMIT_FILE_BUFFERS -{ - void *Head; - size_t HeadLength; - void *Tail; - size_t TailLength; -}; -typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_PTRANSMIT_FILE_BUFFERS; -typedef ACE_TRANSMIT_FILE_BUFFERS* ACE_LPTRANSMIT_FILE_BUFFERS; - -# define ACE_INFINITE LONG_MAX -# define ACE_STATUS_TIMEOUT LONG_MAX -# define ACE_WAIT_FAILED LONG_MAX -# define ACE_WAIT_TIMEOUT LONG_MAX -# endif /* ACE_WIN32 */ - -# if defined (UNICODE) - -# if !defined (ACE_DEFAULT_NAMESPACE_DIR) -# define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_W -# endif /* ACE_DEFAULT_NAMESPACE_DIR */ -# if !defined (ACE_DEFAULT_LOCALNAME) -# define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_W -# endif /* ACE_DEFAULT_LOCALNAME */ -# if !defined (ACE_DEFAULT_GLOBALNAME) -# define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_W -# endif /* ACE_DEFAULT_GLOBALNAME */ -# if !defined (ACE_DIRECTORY_SEPARATOR_STR) -# define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_W -# endif /* ACE_DIRECTORY_SEPARATOR_STR */ -# if !defined (ACE_DIRECTORY_SEPARATOR_CHAR) -# define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_W -# endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ -# if !defined (ACE_PLATFORM) -# define ACE_PLATFORM ACE_PLATFORM_W -# endif /* ACE_PLATFORM */ -# if !defined (ACE_PLATFORM_EXE_SUFFIX) -# define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_W -# endif /* ACE_PLATFORM_EXE_SUFFIX */ -# if !defined (ACE_DEFAULT_MUTEX_W) -# define ACE_DEFAULT_MUTEX_W L"ACE_MUTEX" -# endif /* ACE_DEFAULT_MUTEX_W */ -# if !defined (ACE_DEFAULT_MUTEX) -# define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_W -# endif /* ACE_DEFAULT_MUTEX */ - -# else - -# if !defined (ACE_DEFAULT_NAMESPACE_DIR) -# define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_A -# endif /* ACE_DEFAULT_NAMESPACE_DIR */ -# if !defined (ACE_DEFAULT_LOCALNAME) -# define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_A -# endif /* ACE_DEFAULT_LOCALNAME */ -# if !defined (ACE_DEFAULT_GLOBALNAME) -# define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_A -# endif /* ACE_DEFAULT_GLOBALNAME */ -# if !defined (ACE_DIRECTORY_SEPARATOR_STR) -# define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_A -# endif /* ACE_DIRECTORY_SEPARATOR_STR */ -# if !defined (ACE_DIRECTORY_SEPARATOR_CHAR) -# define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_A -# endif /* ACE_DIRECTORY_SEPARATOR_CHAR */ -# if !defined (ACE_PLATFORM) -# define ACE_PLATFORM ACE_PLATFORM_A -# endif /* ACE_PLATFORM */ -# if !defined (ACE_PLATFORM_EXE_SUFFIX) -# define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_A -# endif /* ACE_PLATFORM_EXE_SUFFIX */ -# if !defined (ACE_DEFAULT_MUTEX_W) -# define ACE_DEFAULT_MUTEX_W "ACE_MUTEX" -# endif /* ACE_DEFAULT_MUTEX_W */ -# if !defined (ACE_DEFAULT_MUTEX) -# define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_A -# endif /* ACE_DEFAULT_MUTEX */ -# endif /* UNICODE */ - -// Some ACE classes always use inline functions to maintain high -// performance, but some platforms have buggy inline function support. -// In this case, we don't use inline with them. -# if defined (ACE_LACKS_INLINE_FUNCTIONS) -# if defined (ASYS_INLINE) -# undef ASYS_INLINE -# endif /* ASYS_INLINE */ -# define ASYS_INLINE -# if defined (ACE_HAS_INLINED_OSCALLS) -# undef ACE_HAS_INLINED_OSCALLS -# endif /* ACE_HAS_INLINED_OSCALLS */ -# else -# define ASYS_INLINE inline -# endif /* ACE_LACKS_INLINE_FUNCTIONS */ - -# if defined (ACE_HAS_INLINED_OSCALLS) -# if defined (ACE_INLINE) -# undef ACE_INLINE -# endif /* ACE_INLINE */ -# define ACE_INLINE inline -# include "ace/OS.i" -# endif /* ACE_HAS_INLINED_OSCALLS */ - -# include "ace/Trace.h" - -// These need to come here to avoid problems with circular dependencies. -# include "ace/Log_Msg.h" - -// The following are some insane macros that are useful in cases when -// one has to have a string in a certain format. Both of these macros -// allow the user to create a temporary copy. If the user needs to -// keep this temporary string around, they must do some sort of strdup -// on the temporary string. -// -// The ACE_WIDE_STRING macro allows the user to create a temporary -// representation of an ASCII string as a WIDE string. -// -// The ACE_MULTIBYTE_STRING macro allows the user to create a -// temporary representation of a WIDE string as an ASCII string. Note -// that some data may be lost in this conversion. - -# if defined (UNICODE) -# include "ace/Auto_Ptr.h" -# include "ace/SString.h" -# define ACE_WIDE_STRING(ASCII_STRING) \ -ACE_WString (ASCII_STRING).fast_rep () -# define ACE_MULTIBYTE_STRING(WIDE_STRING) \ -ACE_Auto_Basic_Array_Ptr (ACE_WString (WIDE_STRING).char_rep ()).get () -# define ACE_TEXT_STRING ACE_WString -# if defined (ACE_HAS_MOSTLY_UNICODE_APIS) -# define ASYS_MULTIBYTE_STRING(WIDE_STRING) WIDE_STRING -# define ASYS_ONLY_MULTIBYTE_STRING(WIDE_STRING) \ -ACE_Auto_Basic_Array_Ptr (ACE_WString (WIDE_STRING).char_rep ()).get () -# else -# define ASYS_MULTIBYTE_STRING(WIDE_STRING) \ -ACE_Auto_Basic_Array_Ptr (ACE_WString (WIDE_STRING).char_rep ()).get () -# define ASYS_ONLY_MULTIBYTE_STRING(WIDE_STRING) WIDE_STRING -# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ -# else -# define ACE_WIDE_STRING(ASCII_STRING) ASCII_STRING -# define ACE_MULTIBYTE_STRING(WIDE_STRING) WIDE_STRING -# define ACE_TEXT_STRING ACE_CString -# define ASYS_MULTIBYTE_STRING(WIDE_STRING) WIDE_STRING -# define ASYS_ONLY_MULTIBYTE_STRING(WIDE_STRING) WIDE_STRING -# endif /* UNICODE */ - -# if defined (ACE_HAS_MOSTLY_UNICODE_APIS) -# define ASYS_WIDE_STRING(ASCII_STRING) ACE_WString (ASCII_STRING).fast_rep () -# else -# define ASYS_WIDE_STRING(ASCII_STRING) ASCII_STRING -# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - -// Byte swapping macros to deal with differences between little endian and big -// endian machines. -# define ACE_SWAP_LONG(L) ((ACE_SWAP_WORD ((L) & 0xFFFF) << 16) \ - | ACE_SWAP_WORD(((L) >> 16) & 0xFFFF)) -# define ACE_SWAP_WORD(L) ((((L) & 0x00FF) << 8) | (((L) & 0xFF00) >> 8)) - -# if defined (ACE_LITTLE_ENDIAN) -# define ACE_HTONL(X) ACE_SWAP_LONG (X) -# define ACE_NTOHL(X) ACE_SWAP_LONG (X) -# else -# define ACE_HTONL(X) X -# define ACE_NTOHL(X) X -# endif /* ACE_LITTLE_ENDIAN */ - -#endif /* ACE_OS_H */ diff --git a/ace/OS.i b/ace/OS.i deleted file mode 100644 index 41baf9af97b..00000000000 --- a/ace/OS.i +++ /dev/null @@ -1,9598 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -#if !defined (ACE_HAS_INLINED_OSCALLS) -# undef ACE_INLINE -# define ACE_INLINE -#endif /* ACE_HAS_INLINED_OSCALLS */ - -#if defined (ACE_LACKS_RLIMIT_PROTOTYPE) -int getrlimit (int resource, struct rlimit *rlp); -int setrlimit (int resource, const struct rlimit *rlp); -#endif /* ACE_LACKS_RLIMIT_PROTOTYPE */ - -#if !defined (ACE_HAS_STRERROR) -# if defined (ACE_HAS_SYS_ERRLIST) -extern char *sys_errlist[]; -# define strerror(err) sys_errlist[err] -# else -# define strerror(err) "strerror is unsupported" -# endif /* ACE_HAS_SYS_ERRLIST */ -#endif /* !ACE_HAS_STERROR */ - -#if defined (ACE_HAS_SYS_SIGLIST) -# if !defined (_sys_siglist) -# define _sys_siglist sys_siglist -# endif /* !defined (sys_siglist) */ -//extern char **_sys_siglist; -#endif /* ACE_HAS_SYS_SIGLIST */ - -#if defined (ACE_HAS_SOCKLEN_T) -typedef socklen_t ACE_SOCKET_LEN; -#elif defined (ACE_HAS_SIZET_SOCKET_LEN) -typedef size_t ACE_SOCKET_LEN; -#else -typedef int ACE_SOCKET_LEN; -#endif /* ACE_HAS_SIZET_SOCKET_LEN */ - -#if defined (ACE_LACKS_CONST_STRBUF_PTR) -typedef struct strbuf *ACE_STRBUF_TYPE; -#else -typedef const struct strbuf *ACE_STRBUF_TYPE; -#endif /* ACE_LACKS_CONST_STRBUF_PTR */ - -#if defined (ACE_HAS_VOIDPTR_SOCKOPT) -typedef void *ACE_SOCKOPT_TYPE1; -#elif defined (ACE_HAS_CHARPTR_SOCKOPT) -typedef char *ACE_SOCKOPT_TYPE1; -#else -typedef const char *ACE_SOCKOPT_TYPE1; -#endif /* ACE_HAS_VOIDPTR_SOCKOPT */ - -#if defined (ACE_NEEDS_WRITEV) -extern "C" ACE_Export int writev (ACE_HANDLE handle, ACE_WRITEV_TYPE *iov, int iovcnt); -#endif /* ACE_NEEDS_WRITEV */ - -#if defined (ACE_NEEDS_READV) -extern "C" ACE_Export ssize_t readv (ACE_HANDLE handle, ACE_READV_TYPE *iov, int iovcnt); -#endif /* ACE_NEEDS_READV */ - -#if defined (ACE_NEEDS_FTRUNCATE) -extern "C" ACE_Export int ftruncate (ACE_HANDLE handle, long len); -#endif /* ACE_NEEDS_FTRUNCATE */ - -#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 */ - -#if defined (ACE_HAS_XLI) -# include /**/ -#endif /* ACE_HAS_XLI */ - -#if !defined (ACE_HAS_CPLUSPLUS_HEADERS) -# include /**/ -# include /**/ -#endif /* ACE_HAS_CPLUSPLUS_HEADERS */ - -#if defined (ACE_HAS_SYSENT_H) -# include /**/ -#endif /* ACE_HAS_SYSENT_H_*/ - -#if defined (ACE_HAS_SYS_FILIO_H) -# include /**/ -#endif /* ACE_HAS_SYS_FILIO_H */ - -#if defined (ACE_HAS_SVR4_GETTIMEOFDAY) -# if !defined (m88k) && !defined (SCO) -extern "C" int gettimeofday (struct timeval *tp, void * = 0); -# else -extern "C" int gettimeofday (struct timeval *tp); -# endif /* !m88k && !SCO */ -#elif defined (ACE_HAS_OSF1_GETTIMEOFDAY) -extern "C" int gettimeofday (struct timeval *tp, struct timezone * = 0); -#elif defined (ACE_HAS_SUNOS4_GETTIMEOFDAY) -# define ACE_HAS_SVR4_GETTIMEOFDAY -/* -#elif defined (ACE_HAS_IRIX_GETTIMEOFDAY) -extern "C" int gettimeofday (struct timeval *tp, ...); -#else -extern "C" int gettimeofday (struct timeval *tp); -*/ -#endif /* ACE_HAS_SVR4_GETTIMEOFDAY */ - -#if defined (ACE_LACKS_CONST_TIMESPEC_PTR) -typedef struct timespec * ACE_TIMESPEC_PTR; -#else -typedef const struct timespec * ACE_TIMESPEC_PTR; -#endif /* HPUX */ - -#if !defined (ACE_LACKS_MALLOC_H) -# include /**/ -#endif /* ACE_LACKS_MALLOC_H */ - -ACE_INLINE ssize_t -ACE_IO_Vector::length (void) const -{ -#if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - return this->len; -#else - return this->iov_len; -#endif /* ACE_HAS_WINSOCK2 */ -} - -ACE_INLINE void -ACE_IO_Vector::length (ssize_t new_length) -{ -#if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - this->len = new_length; -#else - this->iov_len = new_length; -#endif /* ACE_HAS_WINSOCK2 */ -} - -ACE_INLINE void * -ACE_IO_Vector::buffer (void) const -{ -#if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - return this->buf; -#else - return this->iov_base; -#endif /* ACE_HAS_WINSOCK2 */ -} - -ACE_INLINE void -ACE_IO_Vector::buffer (void *new_buffer) -{ -#if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - this->buf = (char *) new_buffer; -#else - this->iov_base = ACE_static_cast (char *, new_buffer); -#endif /* ACE_HAS_WINSOCK2 */ -} - -// Returns the value of the object as a timeval. - -ACE_INLINE -ACE_Time_Value::operator timeval () const -{ - // ACE_TRACE ("ACE_Time_Value::operator timeval"); - return this->tv_; -} - -// Returns a pointer to the object as a timeval. - -ACE_INLINE -ACE_Time_Value::operator const timeval * () const -{ - // ACE_TRACE ("ACE_Time_Value::operator timeval"); - return (const timeval *) &this->tv_; -} - -ACE_INLINE void -ACE_Time_Value::set (long sec, long usec) -{ - // ACE_TRACE ("ACE_Time_Value::set"); - this->tv_.tv_sec = sec; - this->tv_.tv_usec = usec; -} - -ACE_INLINE void -ACE_Time_Value::set (double d) -{ - // ACE_TRACE ("ACE_Time_Value::set"); - long l = (long) d; - this->tv_.tv_sec = l; - this->tv_.tv_usec = (long) ((d - (double) l) * ACE_ONE_SECOND_IN_USECS); - this->normalize (); -} - -// Initializes a timespec_t. Note that this approach loses precision -// since it converts the nano-seconds into micro-seconds. But then -// again, do any real systems have nano-second timer precision -// anyway?! - -ACE_INLINE void -ACE_Time_Value::set (const timespec_t &tv) -{ - // ACE_TRACE ("ACE_Time_Value::set"); -#if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS) - this->tv_.tv_sec = tv.tv_sec; - // Convert nanoseconds into microseconds. - this->tv_.tv_usec = tv.tv_nsec / 1000; -#else - this->tv_.tv_sec = tv.ts_sec; - // Convert nanoseconds into microseconds. - this->tv_.tv_usec = tv.ts_nsec / 1000; -#endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */ - - this->normalize (); -} - -ACE_INLINE void -ACE_Time_Value::set (const timeval &tv) -{ - // ACE_TRACE ("ACE_Time_Value::set"); - this->tv_.tv_sec = tv.tv_sec; - this->tv_.tv_usec = tv.tv_usec; - - this->normalize (); -} - -ACE_INLINE -ACE_Time_Value::ACE_Time_Value (const timeval &tv) -{ - // ACE_TRACE ("ACE_Time_Value::ACE_Time_Value"); - this->set (tv); -} - -ACE_INLINE -ACE_Time_Value::ACE_Time_Value (void) -{ - // ACE_TRACE ("ACE_Time_Value::ACE_Time_Value"); - this->set (0, 0); - - // Don't need to normalize time value of (0, 0). -} - -ACE_INLINE -ACE_Time_Value::ACE_Time_Value (long sec, long usec) -{ - // ACE_TRACE ("ACE_Time_Value::ACE_Time_Value"); - this->set (sec, usec); - this->normalize (); -} - -// True if tv1 > tv2. - -ACE_INLINE int -operator > (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator >"); - if (tv1.tv_.tv_sec > tv2.tv_.tv_sec) - return 1; - else if (tv1.tv_.tv_sec == tv2.tv_.tv_sec - && tv1.tv_.tv_usec > tv2.tv_.tv_usec) - return 1; - else - return 0; -} - -// True if tv1 >= tv2. - -ACE_INLINE int -operator >= (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator >="); - if (tv1.tv_.tv_sec > tv2.tv_.tv_sec) - return 1; - else if (tv1.tv_.tv_sec == tv2.tv_.tv_sec - && tv1.tv_.tv_usec >= tv2.tv_.tv_usec) - return 1; - else - return 0; -} - -// Returns the value of the object as a timespec_t. - -ACE_INLINE -ACE_Time_Value::operator timespec_t () const -{ - // ACE_TRACE ("ACE_Time_Value::operator timespec_t"); - timespec_t tv; -#if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS) - tv.tv_sec = this->tv_.tv_sec; - // Convert microseconds into nanoseconds. - tv.tv_nsec = this->tv_.tv_usec * 1000; -#else - tv.ts_sec = this->tv_.tv_sec; - // Convert microseconds into nanoseconds. - tv.ts_nsec = this->tv_.tv_usec * 1000; -#endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */ - return tv; -} - -// Initializes the ACE_Time_Value object from a timespec_t. - -ACE_INLINE -ACE_Time_Value::ACE_Time_Value (const timespec_t &tv) -{ - // ACE_TRACE ("ACE_Time_Value::ACE_Time_Value"); - this->set (tv); -} - -// Initializes the ACE_Time_Value object from another ACE_Time_Value - -ACE_INLINE -ACE_Time_Value::ACE_Time_Value (const ACE_Time_Value &tv) - : tv_ (tv.tv_) -{ - // ACE_TRACE ("ACE_Time_Value::ACE_Time_Value"); -} - -// Returns number of seconds. - -ACE_INLINE long -ACE_Time_Value::sec (void) const -{ - // ACE_TRACE ("ACE_Time_Value::sec"); - return this->tv_.tv_sec; -} - -// Sets the number of seconds. - -ACE_INLINE void -ACE_Time_Value::sec (long sec) -{ - // ACE_TRACE ("ACE_Time_Value::sec"); - this->tv_.tv_sec = sec; -} - -// Converts from Time_Value format into milli-seconds format. - -ACE_INLINE long -ACE_Time_Value::msec (void) const -{ - // ACE_TRACE ("ACE_Time_Value::msec"); - return this->tv_.tv_sec * 1000 + this->tv_.tv_usec / 1000; -} - -// Converts from milli-seconds format into Time_Value format. - -ACE_INLINE void -ACE_Time_Value::msec (long milliseconds) -{ - // ACE_TRACE ("ACE_Time_Value::msec"); - // Convert millisecond units to seconds; - this->tv_.tv_sec = milliseconds / 1000; - // Convert remainder to microseconds; - this->tv_.tv_usec = (milliseconds - (this->tv_.tv_sec * 1000)) * 1000; -} - -// Returns number of micro-seconds. - -ACE_INLINE long -ACE_Time_Value::usec (void) const -{ - // ACE_TRACE ("ACE_Time_Value::usec"); - return this->tv_.tv_usec; -} - -// Sets the number of micro-seconds. - -ACE_INLINE void -ACE_Time_Value::usec (long usec) -{ - // ACE_TRACE ("ACE_Time_Value::usec"); - this->tv_.tv_usec = usec; -} - -// True if tv1 < tv2. - -ACE_INLINE int -operator < (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator <"); - return tv2 > tv1; -} - -// True if tv1 >= tv2. - -ACE_INLINE int -operator <= (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator <="); - return tv2 >= tv1; -} - -// True if tv1 == tv2. - -ACE_INLINE int -operator == (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator =="); - return tv1.tv_.tv_sec == tv2.tv_.tv_sec - && tv1.tv_.tv_usec == tv2.tv_.tv_usec; -} - -// True if tv1 != tv2. - -ACE_INLINE int -operator != (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator !="); - return !(tv1 == tv2); -} - -// Add TV to this. - -ACE_INLINE void -ACE_Time_Value::operator+= (const ACE_Time_Value &tv) -{ - // ACE_TRACE ("ACE_Time_Value::operator+="); - this->tv_.tv_sec += tv.tv_.tv_sec; - this->tv_.tv_usec += tv.tv_.tv_usec; - this->normalize (); -} - -// Subtract TV to this. - -ACE_INLINE void -ACE_Time_Value::operator-= (const ACE_Time_Value &tv) -{ - // ACE_TRACE ("ACE_Time_Value::operator-="); - this->tv_.tv_sec -= tv.tv_.tv_sec; - this->tv_.tv_usec -= tv.tv_.tv_usec; - this->normalize (); -} - -// Adds two ACE_Time_Value objects together, returns the sum. - -ACE_INLINE ACE_Time_Value -operator + (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator +"); - ACE_Time_Value sum (tv1.tv_.tv_sec + tv2.tv_.tv_sec, - tv1.tv_.tv_usec + tv2.tv_.tv_usec); - - sum.normalize (); - return sum; -} - -// Subtracts two ACE_Time_Value objects, returns the difference. - -ACE_INLINE ACE_Time_Value -operator - (const ACE_Time_Value &tv1, - const ACE_Time_Value &tv2) -{ - // ACE_TRACE ("operator -"); - ACE_Time_Value delta (tv1.tv_.tv_sec - tv2.tv_.tv_sec, - tv1.tv_.tv_usec - tv2.tv_.tv_usec); - delta.normalize (); - return delta; -} - -#if !defined (ACE_WIN32) - -# if !defined (ACE_LACKS_RPC_H) -# include /**/ -# endif /* ACE_LACKS_RPC_H */ - -// Matthew Stevens 7-10-95 Fix GNU GCC 2.7 for memchr() problem. -# if defined (ACE_HAS_GNU_CSTRING_H) -// Define this file to keep /usr/include/memory.h from being included. -# include /**/ -# else -# if defined (ACE_LACKS_MEMORY_H) -# include /**/ -# else -# include /**/ -# endif /* VXWORKS */ -# endif /* ACE_HAS_GNU_CSTRING_H */ - -// These prototypes are chronically lacking from many versions of -// UNIX. -extern "C" int t_getname (int, struct netbuf *, int); -extern "C" int isastream (int); -# if !defined (ACE_HAS_GETRUSAGE_PROTO) -extern "C" int getrusage (int who, struct rusage *rusage); -# endif /* ! ACE_HAS_GETRUSAGE_PROTO */ - -# if defined (ACE_LACKS_SYSCALL) -extern "C" int syscall (int, ACE_HANDLE, struct rusage *); -# endif /* ACE_LACKS_SYSCALL */ - -# if defined (ACE_LACKS_MKTEMP) -extern "C" char *mktemp (char *); -# endif /* ACE_LACKS_MKTEMP */ - -// The following are #defines and #includes that must be visible for -// ACE to compile it's OS wrapper class implementation correctly. We -// put them inside of here to reduce compiler overhead if we're not -// inlining... - -# if defined (ACE_HAS_REGEX) -# include /**/ -# endif /* ACE_HAS_REGEX */ - -# if defined (ACE_HAS_SYSINFO) -# include /**/ -# endif /* ACE_HAS_SYS_INFO */ - -# if defined (ACE_HAS_SYSCALL_H) -# include /**/ -# endif /* ACE_HAS_SYSCALL_H */ - -# if defined (UNIXWARE) /* See strcasecmp, below */ -# include /**/ -# endif /* UNIXWARE */ - -// Adapt the weird threading and synchronization routines (which don't -// return -1 normally) so that they return -1 and work correctly with -// the ACE_OSCALL macros. -# if defined (VXWORKS) -# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != OK ? (errno = RESULT, -1) : 0) -# else -# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) != 0 ? (errno = RESULT, -1) : 0) -# endif /* VXWORKS */ - -# if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::chdir (const char *path) -{ - // ACE_TRACE ("ACE_OS::chdir"); -# if defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::chdir ((char *) path), ace_result_), - int, -1); -# else - ACE_OSCALL_RETURN (::chdir (path), int, -1); -# endif /* VXWORKS */ -} -# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE int -ACE_OS::fcntl (ACE_HANDLE handle, int cmd, int value) -{ - // ACE_TRACE ("ACE_OS::fcntl"); -# if defined (ACE_LACKS_FCNTL) - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (value); - ACE_NOTSUP_RETURN (-1); -# else - ACE_OSCALL_RETURN (::fcntl (handle, cmd, value), int, -1); -# endif /* ACE_LACKS_FCNTL */ -} - -ACE_INLINE int -ACE_OS::fstat (ACE_HANDLE handle, struct stat *stp) -{ - // ACE_TRACE ("ACE_OS::fstat"); - ACE_OSCALL_RETURN (::fstat (handle, stp), int, -1); -} - -ACE_INLINE gid_t -ACE_OS::getgid (void) -{ - // ACE_TRACE ("ACE_OS::getgid"); -# if defined (VXWORKS) - // getgid() is not supported: just one group anyways - return 0; -# else - ACE_OSCALL_RETURN (::getgid (), gid_t, (gid_t) -1); -# endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::getopt (int argc, char *const *argv, const char *optstring) -{ - // ACE_TRACE ("ACE_OS::getopt"); -# if defined (VXWORKS) - ACE_UNUSED_ARG (argc); - ACE_UNUSED_ARG (argv); - ACE_UNUSED_ARG (optstring); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_LACKS_GETOPT_PROTO) - ACE_OSCALL_RETURN (::getopt (argc, (char**) argv, optstring), int, -1); -# elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::getopt (argc, (const char* const *) argv, optstring), int, -1); -# else - ACE_OSCALL_RETURN (::getopt (argc, argv, optstring), int, -1); -# endif /* VXWORKS */ -} - -ACE_INLINE uid_t -ACE_OS::getuid (void) -{ - // ACE_TRACE ("ACE_OS::getuid"); -# if defined (VXWORKS) - // getuid() is not supported: just one user anyways - return 0; -# else - ACE_OSCALL_RETURN (::getuid (), uid_t, (uid_t) -1); -# endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::isatty (ACE_HANDLE fd) -{ - // ACE_TRACE ("ACE_OS::isatty"); - ACE_OSCALL_RETURN (::isatty (fd), int, -1); -} - -# if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::mkfifo (const char *file, mode_t mode) -{ - // ACE_TRACE ("ACE_OS::mkfifo"); -# if defined (VXWORKS) || defined (CHORUS) - ACE_UNUSED_ARG (file); - ACE_UNUSED_ARG (mode); - ACE_NOTSUP_RETURN (-1); -# else - ACE_OSCALL_RETURN (::mkfifo (file, mode), int, -1); -# endif /* VXWORKS */ -} - -# if !defined (ACE_LACKS_MKTEMP) -ACE_INLINE char * -ACE_OS::mktemp (char *s) -{ - return ::mktemp (s); -} -# endif /* !ACE_LACKS_MKTEMP */ -# endif /* !ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE int -ACE_OS::pipe (ACE_HANDLE fds[]) -{ - // ACE_TRACE ("ACE_OS::pipe"); -# if defined (VXWORKS) - ACE_UNUSED_ARG (fds); - ACE_NOTSUP_RETURN (-1); -# else - ACE_OSCALL_RETURN (::pipe (fds), int, -1); -# endif /* VXWORKS */ -} - -# if defined (DIGITAL_UNIX) -extern "C" { - extern char *_Pctime_r (const time_t *, char *); - extern struct tm *_Plocaltime_r (const time_t *, struct tm *); - extern struct tm *_Pgmtime_r (const time_t *, struct tm *); - extern char *_Pasctime_r (const struct tm *, char *); - extern int _Prand_r (unsigned int *seedptr); - extern int _Pgetpwnam_r (const char *, struct passwd *, - char *, size_t, struct passwd **); -} -# endif /* DIGITAL_UNIX */ - -ACE_INLINE int -ACE_OS::rand_r (ACE_RANDR_TYPE seed) -{ - // ACE_TRACE ("ACE_OS::rand_r"); -# if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if defined (DIGITAL_UNIX) - ACE_OSCALL_RETURN (::_Prand_r (seed), int, -1); -# elif defined (HPUX_10) - // rand() is thread-safe on HP-UX 10. rand_r's signature is not consistent - // with latest POSIX and will change in a future HP-UX release so that it - // is consistent. At that point, this #elif section can be changed or - // removed, and just call rand_r. - ACE_UNUSED_ARG (seed); - ACE_OSCALL_RETURN (::rand(), int, -1); -# else - ACE_OSCALL_RETURN (::rand_r (seed), int, -1); -# endif /* DIGITAL_UNIX */ -# else - ACE_UNUSED_ARG (seed); - ACE_OSCALL_RETURN (::rand (), int, -1); -# endif /* ACE_HAS_REENTRANT_FUNCTIONS */ -} - -ACE_INLINE pid_t -ACE_OS::setsid (void) -{ - // ACE_TRACE ("ACE_OS::setsid"); -# if defined (VXWORKS) || defined (CHORUS) - ACE_NOTSUP_RETURN (-1); -# else - ACE_OSCALL_RETURN (::setsid (), int, -1); -# endif /* VXWORKS */ -} - -ACE_INLINE mode_t -ACE_OS::umask (mode_t cmask) -{ - // ACE_TRACE ("ACE_OS::umask"); -# if defined (VXWORKS) - ACE_UNUSED_ARG (cmask); - ACE_NOTSUP_RETURN (-1); -# else - return ::umask (cmask); // This call shouldn't fail... -# endif /* VXWORKS */ -} - -#else /* ACE_WIN32 */ - -// This is for Win32 exclusively! - -// Adapt the Win32 System Calls (which return BOOLEAN values of TRUE -// and FALSE) into int values expected by the ACE_OSCALL macros. -# define ACE_ADAPT_RETVAL(OP,RESULT) ((RESULT = (OP)) == FALSE ? -1 : 0) - -// Perform a mapping of Win32 error numbers into POSIX errnos. -# define ACE_FAIL_RETURN(RESULT) do { \ - switch (errno = ::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) - -# if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::chdir (const char *path) -{ - // ACE_TRACE ("ACE_OS::chdir"); - ACE_OSCALL_RETURN (::_chdir (path), int, -1); -} - -# if !defined (ACE_LACKS_MKTEMP) -ACE_INLINE char * -ACE_OS::mktemp (char *s) -{ - return ::mktemp (s); -} -# endif /* !ACE_LACKS_MKTEMP */ -# endif /* !ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE int -ACE_OS::fcntl (ACE_HANDLE handle, int cmd, int value) -{ - // ACE_TRACE ("ACE_OS::fcntl"); - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (value); - - ACE_NOTSUP_RETURN (-1); // We should be able to map this stuff -} - -ACE_INLINE uid_t -ACE_OS::getgid (void) -{ - // ACE_TRACE ("ACE_OS::getgid"); - ACE_NOTSUP_RETURN (-1); -} - -ACE_INLINE int -ACE_OS::getopt (int argc, char *const *argv, const char *optstring) -{ - ACE_UNUSED_ARG (argc); - ACE_UNUSED_ARG (argv); - ACE_UNUSED_ARG (optstring); - - // ACE_TRACE ("ACE_OS::getopt"); - ACE_NOTSUP_RETURN (-1); -} - -ACE_INLINE uid_t -ACE_OS::getuid (void) -{ - // ACE_TRACE ("ACE_OS::getuid"); - ACE_NOTSUP_RETURN (-1); -} - -ACE_INLINE int -ACE_OS::isatty (ACE_HANDLE handle) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::isatty"); - int fd = ::_open_osfhandle ((long) handle, 0); - ACE_OSCALL_RETURN (::_isatty ((int) fd), int, -1); -# else - ACE_UNUSED_ARG (handle); - return 0; -# endif /* ACE_HAS_WINCE */ -} - -# if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::mkfifo (const char *file, mode_t mode) -{ - ACE_UNUSED_ARG (file); - ACE_UNUSED_ARG (mode); - - // ACE_TRACE ("ACE_OS::mkfifo"); - ACE_NOTSUP_RETURN (-1); -} -# endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE int -ACE_OS::pipe (ACE_HANDLE fds[]) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::pipe"); - ACE_OSCALL_RETURN (::_pipe ((int *) fds, PIPE_BUF, 0), int, -1); // Use default mode -# else - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::rand_r (ACE_RANDR_TYPE seed) -{ - ACE_UNUSED_ARG (seed); - - // ACE_TRACE ("ACE_OS::rand_r"); - ACE_NOTSUP_RETURN (-1); -} - -ACE_INLINE pid_t -ACE_OS::setsid (void) -{ - // ACE_TRACE ("ACE_OS::setsid"); - ACE_NOTSUP_RETURN (-1); -} - -ACE_INLINE mode_t -ACE_OS::umask (mode_t cmask) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::umask"); - ACE_OSCALL_RETURN (::_umask (cmask), int, -1); -# else - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::fstat (ACE_HANDLE handle, struct stat *stp) -{ - // ACE_TRACE ("ACE_OS::fstat"); -# if defined (ACE_HAS_WINCE) - BY_HANDLE_FILE_INFORMATION fdata; - - if (::GetFileInformationByHandle (handle, &fdata) == FALSE) - { - errno = ::GetLastError (); - return -1; - } - else if (fdata.nFileSizeHigh != 0) - { - errno = EINVAL; - return -1; - } - else - { - stp->st_size = fdata.nFileSizeLow; - stp->st_atime = ACE_Time_Value (fdata.ftLastAccessTime); - stp->st_mtime = ACE_Time_Value (fdata.ftLastWriteTime); - } - return 0; -# else - int fd = ::_open_osfhandle ((long) handle, 0); - ACE_OSCALL_RETURN (::_fstat (fd, (struct _stat *) stp), int, -1); -# endif /* ACE_HAS_WINCE */ -} - -#endif /* WIN32 */ - -ACE_INLINE int -ACE_OS::clock_gettime (clockid_t clockid, struct timespec *ts) -{ - // ACE_TRACE ("ACE_OS::clock_gettime"); -#if defined (ACE_HAS_CLOCK_GETTIME) - ACE_OSCALL_RETURN (::clock_gettime (clockid, ts), int, -1); -#elif defined (ACE_PSOS) - ACE_UNUSED_ARG (clockid); - ACE_PSOS_Time_t pt; - int result = ACE_PSOS_Time_t::get_system_time(pt); - *ts = ACE_static_cast (struct timespec, pt); - return result; -#else - ACE_UNUSED_ARG (clockid); - ACE_UNUSED_ARG (ts); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_CLOCK_GETTIME */ -} - -ACE_INLINE ACE_Time_Value -ACE_OS::gettimeofday (void) -{ - // ACE_TRACE ("ACE_OS::gettimeofday"); - timeval tv; - int result = 0; -#if defined (ACE_HAS_WINCE) - SYSTEMTIME tsys; - FILETIME tfile; - ::GetSystemTime (&tsys); - ::SystemTimeToFileTime (&tsys, &tfile); - return ACE_Time_Value (tfile); -#elif defined (ACE_WIN32) - // From Todd Montgomery... - struct _timeb tb; - ::_ftime (&tb); - tv.tv_sec = tb.time; - tv.tv_usec = 1000 * tb.millitm; -#elif defined (ACE_HAS_AIX_HI_RES_TIMER) - timebasestruct_t tb; - - ::read_real_time (&tb, TIMEBASE_SZ); - ::time_base_to_time (&tb, TIMEBASE_SZ); - - tv.tv_sec = tb.tb_high; - tv.tv_usec = tb.tb_low / 1000L; -#else -# if defined (ACE_HAS_TIMEZONE_GETTIMEOFDAY) || \ - (defined (ACE_HAS_SVR4_GETTIMEOFDAY) && !defined (m88k) && !defined (SCO)) - ACE_OSCALL (::gettimeofday (&tv, 0), int, -1, result); -# elif defined (VXWORKS) || defined (CHORUS) || defined (ACE_PSOS) - // Assumes that struct timespec is same size as struct timeval, - // which assumes that time_t is a long: it currently (VxWorks 5.2/5.3) is. - struct timespec ts; - - ACE_OSCALL (ACE_OS::clock_gettime (CLOCK_REALTIME, &ts), int, -1, result); - tv.tv_sec = ts.tv_sec; - tv.tv_usec = ts.tv_nsec / 1000L; // timespec has nsec, but timeval has usec -# else - ACE_OSCALL (::gettimeofday (&tv), int, -1, result); -# endif /* ACE_HAS_SVR4_GETTIMEOFDAY */ -#endif /* ACE_WIN32 */ - if (result == -1) - return -1; - else - return ACE_Time_Value (tv); -} - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE int -ACE_OS::stat (const char *file, struct stat *stp) -{ - // ACE_TRACE ("ACE_OS::stat"); -# if defined (VXWORKS) - ACE_OSCALL_RETURN (::stat ((char *) file, stp), int, -1); -# else - ACE_OSCALL_RETURN (::stat (file, stp), int, -1); -# endif /* VXWORKS */ -} -#endif /* ACE_HAS_WINCE */ - -ACE_INLINE time_t -ACE_OS::time (time_t *tloc) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::time"); - ACE_OSCALL_RETURN (::time (tloc), time_t, (time_t) -1); -#else - time_t retv = ACE_OS::gettimeofday ().sec (); - if (tloc) - *tloc = retv; - return retv; -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE void -ACE_OS::srand (u_int seed) -{ - // ACE_TRACE ("ACE_OS::srand"); - ::srand (seed); -} - -ACE_INLINE int -ACE_OS::rand (void) -{ - // ACE_TRACE ("ACE_OS::rand"); - ACE_OSCALL_RETURN (::rand (), int, -1); -} - -#if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::unlink (const char *path) -{ - // ACE_TRACE ("ACE_OS::unlink"); -# if defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::unlink ((char *) path), ace_result_), - int, -1); -# else - ACE_OSCALL_RETURN (::unlink (path), int, -1); -# endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::rename (const char *old_name, const char *new_name) -{ -# if 0 - ACE_OSCALL_RETURN (::rename (old_name, new_name), int, -1); -# else - ACE_UNUSED_ARG (old_name); - ACE_UNUSED_ARG (new_name); - ACE_NOTSUP_RETURN (-1); -# endif /* 0 */ -} - -ACE_INLINE char * -ACE_OS::tempnam (const char *dir, const char *pfx) -{ - // ACE_TRACE ("ACE_OS::tempnam"); -# if defined (VXWORKS) || defined (ACE_LACKS_TEMPNAM) - ACE_UNUSED_ARG (dir); - ACE_UNUSED_ARG (pfx); - ACE_NOTSUP_RETURN (0); -# else -# if defined (ACE_WIN32) -# if defined (__BORLANDC__) - ACE_OSCALL_RETURN (::_tempnam ((char *) dir, (char *) pfx), char *, 0); -# else - ACE_OSCALL_RETURN (::_tempnam (dir, pfx), char *, 0); -# endif /* __BORLANDC__ */ -# else - ACE_OSCALL_RETURN (::tempnam (dir, pfx), char *, 0); -# endif /* WIN32 */ -# endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::shm_unlink (const char *path) -{ - // ACE_TRACE ("ACE_OS::shm_unlink"); -# if defined (ACE_HAS_SHM_OPEN) - ACE_OSCALL_RETURN (::shm_unlink (path), int, -1); -# else /* ! ACE_HAS_SHM_OPEN */ - // Just used ::unlink. - return ACE_OS::unlink (path); -# endif /* ! ACE_HAS_SHM_OPEN */ -} -#endif /* !ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE LPTSTR -ACE_OS::cuserid (LPTSTR user, size_t maxlen) -{ - // ACE_TRACE ("ACE_OS::cuserid"); -#if defined (VXWORKS) - ACE_UNUSED_ARG (maxlen); - if (user == 0) - { - // Require that the user field be non-null, i.e., don't - // allocate or use static storage. - ACE_NOTSUP_RETURN (0); - } - else - { - ::remCurIdGet (user, 0); - return user; - } -#elif defined (CHORUS) || defined (ACE_HAS_WINCE) - // @@ WinCE doesn't support GetUserName. But there should be a way - // to get around this. - ACE_UNUSED_ARG (user); - ACE_UNUSED_ARG (maxlen); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_WIN32) - BOOL result = ::GetUserName (user, (u_long *) &maxlen); - if (result == FALSE) - ACE_FAIL_RETURN (0); - else - return user; -#else - // Hackish because of missing buffer size! - ACE_UNUSED_ARG (maxlen); - ACE_OSCALL_RETURN (::cuserid (user), char *, 0); -#endif /* VXWORKS */ -} - -// Doesn't need a macro since it *never* returns! - -ACE_INLINE void -ACE_OS::_exit (int status) -{ - // ACE_TRACE ("ACE_OS::_exit"); -#if defined (VXWORKS) - ::exit (status); -#elif defined (ACE_PSOSIM) - ::u_exit (status); -#elif !defined (ACE_HAS_WINCE) - ::_exit (status); -#else - ::TerminateProcess (::GetCurrentProcess (), status); -#endif /* VXWORKS */ -} - -ACE_INLINE void * -ACE_OS::malloc (size_t nbytes) -{ - // ACE_TRACE ("ACE_OS::malloc"); - return ::malloc (nbytes); -} - -ACE_INLINE void * -ACE_OS::calloc (size_t elements, size_t sizeof_elements) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::calloc"); - return ::calloc (elements, sizeof_elements); -#else - // @@ This will probably not work since it doesn't consider - // alignment properly. - return ::malloc (elements * sizeof_elements); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE void * -ACE_OS::realloc (void *ptr, size_t nbytes) -{ - // ACE_TRACE ("ACE_OS::realloc"); - return ::realloc (ACE_MALLOC_T (ptr), nbytes); -} - -ACE_INLINE void -ACE_OS::free (void *ptr) -{ - // ACE_TRACE ("ACE_OS::free"); - ::free (ACE_MALLOC_T (ptr)); -} - -ACE_INLINE int -ACE_OS::memcmp (const void *t, const void *s, size_t len) -{ - // ACE_TRACE ("ACE_OS::memcmp"); - return ::memcmp (t, s, len); -} - -ACE_INLINE void * -ACE_OS::memcpy (void *t, const void *s, size_t len) -{ - // ACE_TRACE ("ACE_OS::memcpy"); - return ::memcpy (t, s, len); -} - -ACE_INLINE void * -ACE_OS::memmove (void *t, const void *s, size_t len) -{ - // ACE_TRACE ("ACE_OS::memcpy"); - return ::memmove (t, s, len); -} - -ACE_INLINE void * -ACE_OS::memset (void *s, int c, size_t len) -{ - // ACE_TRACE ("ACE_OS::memset"); - return ::memset (s, c, len); -} - -ACE_INLINE char * -ACE_OS::strcat (char *s, const char *t) -{ - // ACE_TRACE ("ACE_OS::strcat"); - return ::strcat (s, t); -} - -ACE_INLINE size_t -ACE_OS::strcspn (const char *s, const char *reject) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strcspn"); - return ::strcspn (s, reject); -#else - const char *scan; - const char *rej_scan; - int count = 0; - - for (scan = s; *scan; scan++) - { - - for (rej_scan = reject; *rej_scan; rej_scan++) - if (*scan == *rej_scan) - return count; - - count++; - } - - return count; -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE size_t -ACE_OS::strspn (const char *s, const char *t) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strspn"); - return ::strspn (s, t); -#else - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (t); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE char * -ACE_OS::strchr (char *s, int c) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strchr"); - return ::strchr (s, c); -#else - for (;;++s) - { - if (*s == c) - return s; - if (*s == 0) - return 0; - } -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE const char * -ACE_OS::strchr (const char *s, int c) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strchr"); - return (const char *) ::strchr (s, c); -#else - for (;;++s) - { - if (*s == c) - return s; - if (*s == 0) - return 0; - } -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE const char * -ACE_OS::strnchr (const char *s, int c, size_t len) -{ - for (size_t i = 0; i < len; i++) - if (s[i] == c) - return s + i; - - return 0; -} - -ACE_INLINE char * -ACE_OS::strnchr (char *s, int c, size_t len) -{ - return (char *) ACE_OS::strnchr ((const char *) s, c, len); -} - -ACE_INLINE const char * -ACE_OS::strstr (const char *s, const char *t) -{ - // ACE_TRACE ("ACE_OS::strstr"); - return (const char *) ::strstr (s, t); -} - -ACE_INLINE char * -ACE_OS::strstr (char *s, const char *t) -{ - // ACE_TRACE ("ACE_OS::strstr"); - return ::strstr (s, t); -} - -ACE_INLINE const char * -ACE_OS::strnstr (const char *s, const char *t, size_t len) -{ - size_t t_len = ::strlen (t); - for (size_t i = 0; i < len - t_len; i++) - if (::memcmp (s + i, t, t_len) == 0) - return s + i; - - return 0; -} - -ACE_INLINE char * -ACE_OS::strnstr (char *s, const char *t, size_t len) -{ - return (char *) ACE_OS::strnstr ((const char *) s, t, len); -} - -ACE_INLINE char * -ACE_OS::strrchr (char *s, int c) -{ - // ACE_TRACE ("ACE_OS::strrchr"); -#if !defined (ACE_LACKS_STRRCHR) - return ::strrchr (s, c); -#else - char *p = s + ::strlen (s); - - while (*p != c) - if (p == s) - return 0; - else - p--; - - return p; -#endif /* ACE_LACKS_STRRCHR */ -} - -ACE_INLINE const char * -ACE_OS::strrchr (const char *s, int c) -{ - // ACE_TRACE ("ACE_OS::strrchr"); -#if !defined (ACE_LACKS_STRRCHR) - return (const char *) ::strrchr (s, c); -#else - const char *p = s + ::strlen (s); - - while (*p != c) - if (p == s) - return 0; - else - p--; - - return p; -#endif /* ACE_LACKS_STRRCHR */ -} - -ACE_INLINE int -ACE_OS::strcmp (const char *s, const char *t) -{ - // ACE_TRACE ("ACE_OS::strcmp"); - return ::strcmp (s, t); -} - -ACE_INLINE char * -ACE_OS::strcpy (char *s, const char *t) -{ - // ACE_TRACE ("ACE_OS::strcpy"); - return ::strcpy (s, t); -} - -ACE_INLINE int -ACE_OS::to_lower (int c) -{ - // ACE_TRACE ("ACE_OS::to_lower"); - return tolower (c); -} - -ACE_INLINE char * -ACE_OS::strpbrk (char *s1, const char *s2) -{ -#if !defined (ACE_HAS_WINCE) - return ::strpbrk (s1, s2); -#else - ACE_UNUSED_ARG (s1); - ACE_UNUSED_ARG (s2); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE const char * -ACE_OS::strpbrk (const char *s1, const char *s2) -{ -#if !defined (ACE_HAS_WINCE) - return (const char *) ::strpbrk (s1, s2); -#else - ACE_UNUSED_ARG (s1); - ACE_UNUSED_ARG (s2); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE char * -ACE_OS::strdup (const char *s) -{ - // ACE_TRACE ("ACE_OS::strdup"); - // @@ Should we provide this function on WinCE? -#if defined (VXWORKS) || defined (CHORUS) || defined (ACE_HAS_WINCE) - char *t = (char *) ::malloc (::strlen (s) + 1); - if (t == 0) - return 0; - else - return ACE_OS::strcpy (t, s); -#else - return ::strdup (s); -#endif /* VXWORKS */ -} - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE int -ACE_OS::vsprintf (char *buffer, const char *format, va_list argptr) -{ - return ACE_SPRINTF_ADAPTER (::vsprintf (buffer, format, argptr)); -} -#endif /* ACE_HAS_WINCE */ - -ACE_INLINE size_t -ACE_OS::strlen (const char *s) -{ - // ACE_TRACE ("ACE_OS::strlen"); - return ::strlen (s); -} - -ACE_INLINE int -ACE_OS::strcasecmp (const char *s, const char *t) -{ -#if !defined (ACE_WIN32) || defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strcasecmp"); -# if defined (ACE_LACKS_STRCASECMP) - // Handles most of what the BSD version does, but does not indicate - // lexicographic ordering if the strings are unequal. Just - // indicates equal (ignoring case) by return value == 0, else not - // equal. - int result = 0; - - do - { - int a = ACE_OS::to_lower (*s); - int b = ACE_OS::to_lower (*t); - result = ((a < b) ? -1 : (a > b)); - if (result != 0) - break; - } while (*s++ != '\0' && *t++ != '\0'); - // paranoid termination condition - - return result; // == 0 for match, else 1 -# else - return ::strcasecmp (s, t); -# endif /* ACE_LACKS_STRCASECMP */ -#else /* ACE_WIN32 */ - return ::_stricmp (s, t); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::strncasecmp (const char *s, const char *t, size_t len) -{ -#if !defined (ACE_WIN32) || defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strcasecmp"); -# if defined (ACE_LACKS_STRCASECMP) - // Handles most of what the BSD version does, but does not indicate - // lexicographic ordering if the strings are unequal. Just - // indicates equal (ignoring case) by return value == 0, else not - // equal. - int result = 0; - - while (*s != '\0' && *t != '\0' && len != 0) - { - if (ACE_OS::to_lower (*s) != ACE_OS::to_lower (*t)) - { - result = ((ACE_OS::to_lower (*s) < ACE_OS::to_lower (*t)) ? -1 : 1); - break; - } - - ++s; ++t; --len; - } - - return result; // == 0 for match, else 1 -# else - return ::strncasecmp (s, t, len); -# endif /* ACE_LACKS_STRCASECMP */ -#else /* ACE_WIN32 */ - return ::_strnicmp (s, t, len); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::strncmp (const char *s, const char *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncmp"); - return ::strncmp (s, t, len); -} - -ACE_INLINE char * -ACE_OS::strncpy (char *s, const char *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncpy"); - return ::strncpy (s, t, len); -} - -ACE_INLINE char * -ACE_OS::strncat (char *s, const char *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncat"); - return ::strncat (s, t, len); -} - -ACE_INLINE char * -ACE_OS::strtok (char *s, const char *tokens) -{ - // ACE_TRACE ("ACE_OS::strtok"); - return ::strtok (s, tokens); -} - -ACE_INLINE char * -ACE_OS::strtok_r (char *s, const char *tokens, char **lasts) -{ - // ACE_TRACE ("ACE_OS::strtok_r"); -#if defined (ACE_HAS_REENTRANT_FUNCTIONS) - return ::strtok_r (s, tokens, lasts); -#else - if (s == 0) - s = *lasts; - else - *lasts = s; - if (*s == 0) // We have reached the end - return 0; - int l_org = ACE_OS::strlen (s); - int l_sub = ACE_OS::strlen (s = ::strtok (s, tokens)); - *lasts = s + l_sub; - if (l_sub != l_org) - *lasts += 1; - return s ; -#endif /* (ACE_HAS_REENTRANT_FUNCTIONS) */ -} - -ACE_INLINE long -ACE_OS::strtol (const char *s, char **ptr, int base) -{ - // @@ We must implement this function for WinCE also. - // Notice WinCE support wcstol. -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strtol"); - return ::strtol (s, ptr, base); -#else - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (ptr); - ACE_UNUSED_ARG (base); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE unsigned long -ACE_OS::strtoul (const char *s, char **ptr, int base) -{ - // @@ We must implement this function for WinCE also. - // Notice WinCE support wcstoul. -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strtoul"); -# if defined (linux) && defined (__GLIBC__) - // ::strtoul () appears to be broken on Linux 2.0.30/Alpha w/glibc: - // it returns 0 for a negative number. - return (unsigned long) ::strtol (s, ptr, base); -# else /* ! linux || ! __GLIBC__ */ - return ::strtoul (s, ptr, base); -# endif /* ! linux || ! __GLIBC__ */ -#else /* ACE_HAS_WINCE */ - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (ptr); - ACE_UNUSED_ARG (base); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE double -ACE_OS::strtod (const char *s, char **endptr) -{ - // @@ WinCE only support wcstod -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::strtod"); - return ::strtod (s, endptr); -#else /* ACE_HAS_WINCE */ - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (endptr); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::ace_isspace (const char s) -{ -#if !defined (ACE_HAS_WINCE) - return isspace (s); -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE long -ACE_OS::sysconf (int name) -{ - // ACE_TRACE ("ACE_OS::sysconf"); -#if defined (ACE_WIN32) || defined (VXWORKS) - ACE_UNUSED_ARG (name); - ACE_NOTSUP_RETURN (-1); -#else - ACE_OSCALL_RETURN (::sysconf (name), long, -1); -#endif /* ACE_WIN32 || VXWORKS */ -} - -ACE_INLINE int -ACE_OS::mutex_init (ACE_mutex_t *m, - int type, - LPCTSTR name, - void *arg, - LPSECURITY_ATTRIBUTES sa) -{ - // ACE_TRACE ("ACE_OS::mutex_init"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined(ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (sa); - - pthread_mutexattr_t attributes; - int result = -1; - -# if defined (ACE_HAS_DCETHREADS) - if (::pthread_mutexattr_create (&attributes) == 0 -# if !defined (ACE_DOES_NOT_HAVE_SETKIND_NP) - && ::pthread_mutexattr_setkind_np (&attributes, type) == 0 -# endif /* ACE_HAS_DCETHREADS */ - && ::pthread_mutex_init (m, attributes) == 0) -# elif defined (ACE_HAS_PTHREADS_1003_DOT_1C) || defined (AIX) - if (ACE_ADAPT_RETVAL(::pthread_mutexattr_init (&attributes), result) == 0 - && ACE_ADAPT_RETVAL(::pthread_mutex_init (m, &attributes), result)== 0) -# else - if (::pthread_mutexattr_init (&attributes) == 0 -# if !defined (ACE_LACKS_MUTEXATTR_PSHARED) - && ::pthread_mutexattr_setpshared (&attributes, type) == 0 -# endif /* ACE_LACKS_MUTEXATTR_PSHARED */ -# if defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP) - && ::pthread_mutexattr_setkind_np (&attributes, type) == 0 -# endif /* ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */ - && ::pthread_mutex_init (m, &attributes) == 0) -# endif /* ACE_HAS_DCETHREADS */ - result = 0; - else - result = -1; // ACE_ADAPT_RETVAL used it for intermediate status - -# if !defined (ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP) - ACE_UNUSED_ARG (type); -# endif /* ! ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP */ - -# if defined (ACE_HAS_DCETHREADS) - ::pthread_mutexattr_delete (&attributes); -# else - ::pthread_mutexattr_destroy (&attributes); -# endif /* ACE_HAS_DCETHREADS */ - - return result; -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (sa); - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_init (m, type, arg), - ace_result_), - int, -1); -# elif defined (ACE_HAS_WTHREADS) - m->type_ = type; - - switch (type) - { - case USYNC_PROCESS: - m->proc_mutex_ = ::CreateMutex (sa, FALSE, name); - if (m->proc_mutex_ == 0) - ACE_FAIL_RETURN (-1); - else - return 0; - case USYNC_THREAD: - return ACE_OS::thread_mutex_init (&m->thr_mutex_, type, name, arg); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -# elif defined (VXWORKS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (sa); - - return (*m = ::semMCreate (type)) == 0 ? -1 : 0; -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (sa); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_destroy (ACE_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::mutex_destroy"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_mutex_destroy (m), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_mutex_destroy (m), ace_result_), int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_destroy (m), ace_result_), int, -1); -# elif defined (ACE_HAS_WTHREADS) - switch (m->type_) - { - case USYNC_PROCESS: - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (m->proc_mutex_), - ace_result_), - int, -1); - case USYNC_THREAD: - return ACE_OS::thread_mutex_destroy (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -# elif defined (VXWORKS) - return ::semDelete (*m) == OK ? 0 : -1; -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_lock (ACE_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::mutex_lock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - // Note, don't use "::" here since the following call is often a macro. -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (pthread_mutex_lock (m), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_lock (m), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_lock (m), ace_result_), int, -1); -# elif defined (ACE_HAS_WTHREADS) - switch (m->type_) - { - case USYNC_PROCESS: - // Timeout can't occur, so don't bother checking... - - switch (::WaitForSingleObject (m->proc_mutex_, INFINITE)) - { - case WAIT_OBJECT_0: - case WAIT_ABANDONED: - // We will ignore abandonments in this method - // Note that we still hold the lock - return 0; - default: - // This is a hack, we need to find an appropriate mapping... - errno = ::GetLastError (); - return -1; - } - case USYNC_THREAD: - return ACE_OS::thread_mutex_lock (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -# elif defined (VXWORKS) - return ::semTake (*m, WAIT_FOREVER) == OK ? 0 : -1; -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_lock (ACE_mutex_t *m, int &abandoned) -{ - // ACE_TRACE ("ACE_OS::mutex_lock"); -#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_WTHREADS) - abandoned = 0; - switch (m->type_) - { - case USYNC_PROCESS: - // Timeout can't occur, so don't bother checking... - - switch (::WaitForSingleObject (m->proc_mutex_, INFINITE)) - { - case WAIT_OBJECT_0: - return 0; - case WAIT_ABANDONED: - abandoned = 1; - return 0; // something goofed, but we hold the lock ... - default: - // This is a hack, we need to find an appropriate mapping... - errno = ::GetLastError (); - return -1; - } - case USYNC_THREAD: - return ACE_OS::thread_mutex_lock (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -#else - ACE_UNUSED_ARG (m); - ACE_UNUSED_ARG (abandoned); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS and ACE_HAS_WTHREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_trylock (ACE_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::mutex_trylock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - // Note, don't use "::" here since the following call is often a macro. -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - int status = pthread_mutex_trylock (m); - if (status == 1) - status = 0; - else if (status == 0) { - status = -1; - errno = EBUSY; - } - return status; -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_trylock (m), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_trylock (m), ace_result_), int, -1); -# elif defined (ACE_HAS_WTHREADS) - switch (m->type_) - { - case USYNC_PROCESS: - { - // Try for 0 milliseconds - i.e. nonblocking. - switch (::WaitForSingleObject (m->proc_mutex_, 0)) - { - case WAIT_OBJECT_0: - return 0; - case WAIT_ABANDONED: - // We will ignore abandonments in this method - // Note that we still hold the lock - return 0; - case WAIT_TIMEOUT: - errno = EBUSY; - return -1; - default: - errno = ::GetLastError (); - return -1; - } - } - case USYNC_THREAD: - return ACE_OS::thread_mutex_trylock (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -# elif defined (VXWORKS) - if (::semTake (*m, NO_WAIT) == ERROR) - if (errno == S_objLib_OBJ_TIMEOUT) - { - // couldn't get the semaphore - errno = EBUSY; - return -1; - } - else - // error - return -1; - else - // got the semaphore - return 0; -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_trylock (ACE_mutex_t *m, int &abandoned) -{ -#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_WTHREADS) - abandoned = 0; - switch (m->type_) - { - case USYNC_PROCESS: - { - // Try for 0 milliseconds - i.e. nonblocking. - switch (::WaitForSingleObject (m->proc_mutex_, 0)) - { - case WAIT_OBJECT_0: - return 0; - case WAIT_ABANDONED: - abandoned = 1; - return 0; // something goofed, but we hold the lock ... - case WAIT_TIMEOUT: - errno = EBUSY; - return -1; - default: - errno = ::GetLastError (); - return -1; - } - } - case USYNC_THREAD: - return ACE_OS::thread_mutex_trylock (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -#else - ACE_UNUSED_ARG (m); - ACE_UNUSED_ARG (abandoned); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS and ACE_HAS_WTHREADS */ -} - -ACE_INLINE int -ACE_OS::mutex_unlock (ACE_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::mutex_unlock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - // Note, don't use "::" here since the following call is often a macro. -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (pthread_mutex_unlock (m), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (pthread_mutex_unlock (m), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::mutex_unlock (m), ace_result_), int, -1); -# elif defined (ACE_HAS_WTHREADS) - switch (m->type_) - { - case USYNC_PROCESS: - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseMutex (m->proc_mutex_), - ace_result_), - int, -1); - case USYNC_THREAD: - return ACE_OS::thread_mutex_unlock (&m->thr_mutex_); - default: - errno = EINVAL; - return -1; - } - /* NOTREACHED */ -# elif defined (VXWORKS) - return ::semGive (*m) == OK ? 0 : -1; -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thread_mutex_init (ACE_thread_mutex_t *m, - int type, - LPCTSTR name, - void *arg) -{ - // ACE_TRACE ("ACE_OS::thread_mutex_init"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (type); - // Force the use of USYNC_THREAD! - return ACE_OS::mutex_init (m, USYNC_THREAD, name, arg); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - - ::InitializeCriticalSection (m); - return 0; -# elif defined (VXWORKS) - return mutex_init (m, type, name, arg); -# endif /* ACE_HAS_STHREADS || ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thread_mutex_destroy (ACE_thread_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::thread_mutex_destroy"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - return ACE_OS::mutex_destroy (m); -# elif defined (ACE_HAS_WTHREADS) - ::DeleteCriticalSection (m); - return 0; -# elif defined (VXWORKS) - return mutex_destroy (m); -# endif /* ACE_HAS_STHREADS || ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thread_mutex_lock (ACE_thread_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::thread_mutex_lock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - return ACE_OS::mutex_lock (m); -# elif defined (ACE_HAS_WTHREADS) - ::EnterCriticalSection (m); - return 0; -# elif defined (VXWORKS) - return mutex_lock (m); -# endif /* ACE_HAS_STHREADS || ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thread_mutex_trylock (ACE_thread_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::thread_mutex_trylock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - return ACE_OS::mutex_trylock (m); -# elif defined (ACE_HAS_WTHREADS) -# if defined (ACE_HAS_WIN32_TRYLOCK) - BOOL result = ::TryEnterCriticalSection (m); - if (result == TRUE) - return 0; - else - { - errno = EBUSY; - return -1; - } -# else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WIN32_TRYLOCK */ -# elif defined (VXWORKS) - return ACE_OS::mutex_trylock (m); -# endif /* ACE_HAS_STHREADS || ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thread_mutex_unlock (ACE_thread_mutex_t *m) -{ - // ACE_TRACE ("ACE_OS::thread_mutex_unlock"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) || defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - return ACE_OS::mutex_unlock (m); -# elif defined (ACE_HAS_WTHREADS) - ::LeaveCriticalSection (m); - return 0; -# elif defined (VXWORKS) - return ACE_OS::mutex_unlock (m); -# endif /* ACE_HAS_STHREADS || ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -#else - ACE_UNUSED_ARG (m); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -#if !defined (ACE_LACKS_COND_T) -// NOTE: The ACE_OS::cond_* functions for Unix platforms are defined -// here because the ACE_OS::sema_* functions below need them. -// However, ACE_WIN32 and VXWORKS define the ACE_OS::cond_* functions -// using the ACE_OS::sema_* functions. So, they appear after the -// ACE_OS::sema_* functions. -ACE_INLINE int -ACE_OS::cond_destroy (ACE_cond_t *cv) -{ - // ACE_TRACE ("ACE_OS::cond_destroy"); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_cond_destroy (cv), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_destroy (cv), ace_result_), int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_destroy (cv), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_init (ACE_cond_t *cv, int type, LPCTSTR name, void *arg) -{ -// ACE_TRACE ("ACE_OS::cond_init"); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - pthread_condattr_t attributes; - int result = -1; - -# if defined (ACE_HAS_DCETHREADS) - if (::pthread_condattr_create (&attributes) == 0 - && ::pthread_cond_init (cv, attributes) == 0 -# elif defined (ACE_HAS_PTHREADS_1003_DOT_1C) || defined (AIX) - if (ACE_ADAPT_RETVAL(::pthread_condattr_init (&attributes), result) == 0 - && ACE_ADAPT_RETVAL(::pthread_cond_init (cv, &attributes), result) == 0 -# else - if (::pthread_condattr_init (&attributes) == 0 -# if !defined (ACE_LACKS_CONDATTR_PSHARED) - && ::pthread_condattr_setpshared (&attributes, type) == 0 -# endif /* ACE_LACKS_CONDATTR_PSHARED */ -# if defined (ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP) - && ::pthread_condattr_setkind_np (&attributes, type) == 0 -# endif /* ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP */ - && ::pthread_cond_init (cv, &attributes) == 0 -# endif /* ACE_HAS_DCETHREADS */ - ) - result = 0; - else - result = -1; // ACE_ADAPT_RETVAL used it for intermediate status -# if defined (ACE_HAS_DCETHREADS) - ::pthread_condattr_delete (&attributes); -# else - ::pthread_condattr_destroy (&attributes); -# endif /* ACE_HAS_DCETHREADS */ - - return result; -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_init (cv, type, arg), - ace_result_), - int, -1); -# endif /* ACE_HAS_DCETHREADS && ACE_HAS_STHREADS */ -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_signal (ACE_cond_t *cv) -{ -// ACE_TRACE ("ACE_OS::cond_signal"); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_cond_signal (cv), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_signal (cv),ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_signal (cv), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_broadcast (ACE_cond_t *cv) -{ -// ACE_TRACE ("ACE_OS::cond_broadcast"); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_cond_broadcast (cv), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_broadcast (cv), - ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_broadcast (cv), - ace_result_), - int, -1); -# endif /* ACE_HAS_STHREADS */ -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_wait (ACE_cond_t *cv, - ACE_mutex_t *external_mutex) -{ - // ACE_TRACE ("ACE_OS::cond_wait"); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_cond_wait (cv, external_mutex), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cond_wait (cv, external_mutex), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::cond_wait (cv, external_mutex), ace_result_), - int, -1); -# endif /* ACE_HAS_DCETHREADS || ACE_HAS_PTHREADS */ -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (external_mutex); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_timedwait (ACE_cond_t *cv, - ACE_mutex_t *external_mutex, - ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::cond_timedwait"); -# if defined (ACE_HAS_THREADS) - int result; - timespec_t ts; - - if (timeout != 0) - ts = *timeout; // Calls ACE_Time_Value::operator timespec_t(). - -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (__Lynx__) - if (timeout == 0) - ACE_OSCALL (::pthread_cond_wait (cv, external_mutex), - int, -1, result); - else - { - // Note that we must convert between absolute time (which is - // passed as a parameter) and relative time (which is what the - // LynxOS Draft 4 POSIX 1003.4a pthread_cond_timedwait expects). - - timespec_t relative_time = *timeout - ACE_OS::gettimeofday (); - - ACE_OSCALL (::pthread_cond_timedwait (cv, external_mutex, - &relative_time), - int, -1, result); - } -# elif defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL ((timeout == 0 - ? ::pthread_cond_wait (cv, external_mutex) - : ::pthread_cond_timedwait (cv, external_mutex, - (ACE_TIMESPEC_PTR) &ts)), - int, -1, result); -# else - ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0 - ? ::pthread_cond_wait (cv, external_mutex) - : ::pthread_cond_timedwait (cv, external_mutex, - (ACE_TIMESPEC_PTR) &ts), - result), - int, -1, result); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ - // We need to adjust this to make the POSIX and Solaris return - // values consistent. EAGAIN is from DCE DRAFT4 (HP-UX 10.20 and - // down). - if (result == -1 && (errno == ETIMEDOUT || errno == EAGAIN)) - errno = ETIME; - -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL (ACE_ADAPT_RETVAL (timeout == 0 - ? ::cond_wait (cv, external_mutex) - : ::cond_timedwait (cv, - external_mutex, - (timestruc_t*)&ts), - result), - int, -1, result); -# endif /* ACE_HAS_STHREADS */ - if (timeout != 0) - timeout->set (ts); // Update the time value before returning. - - return result; -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (external_mutex); - ACE_UNUSED_ARG (timeout); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} -#endif /* !ACE_LACKS_COND_T */ - -ACE_INLINE int -ACE_OS::sema_destroy (ACE_sema_t *s) -{ - // ACE_TRACE ("ACE_OS::sema_destroy"); -#if defined (ACE_HAS_POSIX_SEM) - int result; -# if !defined (ACE_LACKS_NAMED_POSIX_SEM) - if (s->name_) - { - ACE_OS::free ((void *) s->name_); - ACE_OSCALL (ACE_ADAPT_RETVAL (::sem_unlink (s->name_), result), int, -1, result); - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sem_close (s->sema_), ace_result_), int, -1); - } - else -# endif /* ACE_LACKS_NAMED_POSIX_SEM */ - { - ACE_OSCALL (ACE_ADAPT_RETVAL (::sem_destroy (s->sema_), result), int, -1, result); - delete s->sema_; - s->sema_ = 0; - return result; - } -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_destroy (s), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - int r1 = ACE_OS::mutex_destroy (&s->lock_); - int r2 = ACE_OS::cond_destroy (&s->count_nonzero_); - return r1 != 0 || r2 != 0 ? -1 : 0; -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (*s), ace_result_), int, -1); -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - // Free up underlying objects of the simulated semaphore. - int r1 = ACE_OS::thread_mutex_destroy (&s->lock_); - int r2 = ACE_OS::event_destroy (&s->count_nonzero_); - return r1 != 0 || r2 != 0 ? -1 : 0; -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - int result; - ACE_OSCALL (ACE_ADAPT_RETVAL (::semDelete (s->sema_), result), int, -1, result); - s->sema_ = 0; - return result; -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_delete (s->sema_), result), int, -1, result); - s->sema_ = 0; - return result; -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -ACE_INLINE int -ACE_OS::sema_init (ACE_sema_t *s, - u_int count, - int type, - LPCTSTR name, - void *arg, - int max, - LPSECURITY_ATTRIBUTES sa) -{ - // ACE_TRACE ("ACE_OS::sema_init"); -#if defined (ACE_HAS_POSIX_SEM) - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - -# if !defined (ACE_LACKS_NAMED_POSIX_SEM) - if (name) - { - ACE_ALLOCATOR_RETURN (s->name_, ACE_OS::strdup (name), -1); - s->sema_ = ::sem_open (s->name_, - O_CREAT, - ACE_DEFAULT_FILE_PERMS, - count); - return (s->sema_ == (sem_t *)-1 ? -1 : 0); - } - else -# endif /*ACE_LACKS_NAMED_POSIX_SEM */ - { - s->name_ = 0; - ACE_NEW_RETURN (s->sema_, sem_t, -1); - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sem_init (s->sema_, type != USYNC_THREAD, count), ace_result_), - int, -1); - } -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_init (s, count, type, arg), ace_result_), - int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - int result = -1; - - if (ACE_OS::mutex_init (&s->lock_, type, name, arg) == 0 - && ACE_OS::cond_init (&s->count_nonzero_, type, name, arg) == 0 - && ACE_OS::mutex_lock (&s->lock_) == 0) - { - s->count_ = count; - s->waiters_ = 0; - - if (ACE_OS::mutex_unlock (&s->lock_) == 0) - result = 0; - } - - if (result == -1) - { - ACE_OS::mutex_destroy (&s->lock_); - ACE_OS::cond_destroy (&s->count_nonzero_); - } - return result; -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (arg); - // Create the semaphore with its value initialized to and - // its maximum value initialized to . - *s = ::CreateSemaphore (sa, count, max, name); - - if (*s == 0) - ACE_FAIL_RETURN (-1); - /* NOTREACHED */ - else - return 0; -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - int result = -1; - - // Initialize internal object for semaphore simulation. - // Grab the lock as soon as possible when we initializing - // the semaphore count. Notice that we initialize the - // event object as "manually reset" so we can amortize the - // cost for singling/reseting the event. - // @@ I changed the mutex type to thread_mutex. Notice that this - // is basically a CriticalSection object and doesn't not has - // any security attribute whatsoever. However, since this - // semaphore implementation only works within a process, there - // shouldn't any security issue at all. - if (ACE_OS::thread_mutex_init (&s->lock_, type, name, arg) == 0 - && ACE_OS::event_init (&s->count_nonzero_, 1, - count > 0, type, name, arg, sa) == 0 - && ACE_OS::thread_mutex_lock (&s->lock_) == 0) - { - s->count_ = count; - - if (ACE_OS::thread_mutex_unlock (&s->lock_) == 0) - result = 0; - } - - // Destroy the internal objects if we didn't initialize - // either of them successfully. Don't bother to check - // for errors. - if (result == -1) - { - ACE_OS::thread_mutex_destroy (&s->lock_); - ACE_OS::event_destroy (&s->count_nonzero_); - } - return result; -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - s->name_ = 0; - s->sema_ = ::semCCreate (type, count); - - return s->sema_ ? 0 : -1; -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - ACE_OS::memcpy (s->name_, name, sizeof (s->name_)); - // default semaphore creation flags to priority based, global across nodes - u_long flags = 0; - flags |= (type & SM_LOCAL) ? SM_LOCAL : SM_GLOBAL; - flags |= (type & SM_FIFO) ? SM_FIFO : SM_PRIOR; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_create (s->name_, count, flags, &(s->sema_)), - result), int, -1, result); - return result; -#else - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (count); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (max); - ACE_UNUSED_ARG (sa); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -ACE_INLINE int -ACE_OS::sema_post (ACE_sema_t *s) -{ - // ACE_TRACE ("ACE_OS::sema_post"); -#if defined (ACE_HAS_POSIX_SEM) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sem_post (s->sema_), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_post (s), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - int result = -1; - - if (ACE_OS::mutex_lock (&s->lock_) == 0) - { - // Always allow a waiter to continue if there is one. - if (s->waiters_ > 0) - result = ACE_OS::cond_signal (&s->count_nonzero_); - else - result = 0; - - s->count_++; - ACE_OS::mutex_unlock (&s->lock_); - } - return result; -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseSemaphore (*s, 1, 0), - ace_result_), - int, -1); -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - int result = -1; - - // Since we are simulating semaphores, we need to update semaphore - // count manually. Grab the lock to prevent race condition first. - if (ACE_OS::thread_mutex_lock (&s->lock_) == 0) - { - // Check the original state of event object. Single the event - // object in transition from semaphore not available to - // semaphore available. - if (s->count_++ <= 0) - result = ACE_OS::event_signal (&s->count_nonzero_); - else - result = 0; - - ACE_OS::thread_mutex_unlock (&s->lock_); - } - return result; -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::semGive (s->sema_), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_v (s->sema_), result), int, -1, result); - return result; -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -ACE_INLINE int -ACE_OS::sema_post (ACE_sema_t *s, size_t release_count) -{ -#if defined (ACE_WIN32) && !defined (ACE_USES_WINCE_SEMA_SIMULATION) - // Win32 supports this natively. - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ReleaseSemaphore (*s, release_count, 0), - ace_result_), int, -1); -#else - // On POSIX platforms we need to emulate this ourselves. - // @@ We can optimize on this implementation. However, - // the semaphore promitive on Win32 doesn't allow one - // to increase a semaphore to more than the count it was - // first initialized. Posix and solaris don't seem to have - // this restriction. Should we impose the restriction in - // our semaphore simulation? - for (size_t i = 0; i < release_count; i++) - if (ACE_OS::sema_post (s) == -1) - return -1; - - return 0; -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::sema_trywait (ACE_sema_t *s) -{ - // ACE_TRACE ("ACE_OS::sema_trywait"); -#if defined (ACE_HAS_POSIX_SEM) - // POSIX semaphores set errno to EAGAIN if trywait fails - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sem_trywait (s->sema_), ace_result_), - int, -1); -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - // STHREADS semaphores set errno to EBUSY if trywait fails. - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_trywait (s), - ace_result_), - int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - - int result = -1; - - if (ACE_OS::mutex_lock (&s->lock_) == 0) - { - if (s->count_ > 0) - { - --s->count_; - result = 0; - } - else - errno = EBUSY; - - ACE_OS::mutex_unlock (&s->lock_); - } - return result; -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - int result = ::WaitForSingleObject (*s, 0); - - if (result == WAIT_OBJECT_0) - return 0; - else - { - errno = result == WAIT_TIMEOUT ? EBUSY : ::GetLastError (); - // This is a hack, we need to find an appropriate mapping... - return -1; - } -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - // Check the status of semaphore first. Return immediately - // if the semaphore is not available and avoid grabing the - // lock. - int result = ::WaitForSingleObject (s->count_nonzero_, 0); - - if (result == WAIT_OBJECT_0) // Proceed when it is available. - { - ACE_OS::thread_mutex_lock (&s->lock_); - - // Need to double check if the semaphore is still available. - // The double checking scheme will slightly affect the - // efficiency if most of the time semaphores are not blocked. - result = ::WaitForSingleObject (s->count_nonzero_, 0); - if (result == WAIT_OBJECT_0) - { - // Adjust the semaphore count. Only update the event - // object status when the state changed. - s->count_--; - if (s->count_ <= 0) - ACE_OS::event_reset (&s->count_nonzero_); - result = 0; - } - - ACE_OS::thread_mutex_unlock (&s->lock_); - } - - // Translate error message to errno used by ACE. - errno = result == WAIT_TIMEOUT ? EBUSY : ::GetLastError (); - // This is taken from the hack above. ;) - return -1; -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - if (::semTake (s->sema_, NO_WAIT) == ERROR) - if (errno == S_objLib_OBJ_TIMEOUT) - { - // couldn't get the semaphore - errno = EBUSY; - return -1; - } - else - // error - return -1; - else - // got the semaphore - return 0; -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_p (s->sema_, SM_NOWAIT, 0), result), - int, -1, result); - return result; -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -ACE_INLINE int -ACE_OS::sema_wait (ACE_sema_t *s) -{ - // ACE_TRACE ("ACE_OS::sema_wait"); -#if defined (ACE_HAS_POSIX_SEM) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sem_wait (s->sema_), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sema_wait (s), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - int result = 0; - - ACE_PTHREAD_CLEANUP_PUSH (&s->lock_); - - if (ACE_OS::mutex_lock (&s->lock_) != 0) - result = -1; - else - { - // Keep track of the number of waiters so that we can signal - // them properly in . - s->waiters_++; - - // Wait until the semaphore count is > 0. - while (s->count_ == 0) - if (ACE_OS::cond_wait (&s->count_nonzero_, - &s->lock_) == -1) - { - result = -2; // -2 means that we need to release the mutex. - break; - } - - --s->waiters_; - } - - if (result == 0) - --s->count_; - - if (result != -1) - ACE_OS::mutex_unlock (&s->lock_); - ACE_PTHREAD_CLEANUP_POP (0); - return result < 0 ? -1 : result; - -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - switch (::WaitForSingleObject (*s, INFINITE)) - { - case WAIT_OBJECT_0: - return 0; - default: - // This is a hack, we need to find an appropriate mapping... - errno = ::GetLastError (); - return -1; - } - /* NOTREACHED */ -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - // Timed wait. - int result = -1; - for (;;) - // Check if the semaphore is avialable or not and wait forever. - // Don't bother to grab the lock if it is not available (to avoid - // deadlock.) - switch (::WaitForSingleObject (s->count_nonzero_, INFINITE)) - { - case WAIT_OBJECT_0: - ACE_OS::thread_mutex_lock (&s->lock_); - - // Need to double check if the semaphore is still available. - // This time, we shouldn't wait at all. - if (::WaitForSingleObject (s->count_nonzero_, 0) == WAIT_OBJECT_0) - { - // Decrease the internal counter. Only update the event - // object's status when the state changed. - s->count_--; - if (s->count_ <= 0) - ACE_OS::event_reset (&s->count_nonzero_); - result = 0; - } - - ACE_OS::thread_mutex_unlock (&s->lock_); - // if we didn't get a hold on the semaphore, the result won't - // be 0 and thus, we'll start from the beginning again. - if (result == 0) - return 0; - break; - - default: - // Since we wait indefinitely, anything other than - // WAIT_OBJECT_O indicates an error. - errno = ::GetLastError (); - // This is taken from the hack above. ;) - return -1; - } - /* NOTREACHED */ -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::semTake (s->sema_, WAIT_FOREVER), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_p (s->sema_, SM_WAIT, 0), result), - int, -1, result); - return result; -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -ACE_INLINE int -ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) -{ - // ACE_TRACE ("ACE_OS::sema_wait"); -#if defined (ACE_HAS_POSIX_SEM) - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (tv); - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (tv); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - int result = 0; - int error = 0; - - ACE_PTHREAD_CLEANUP_PUSH (&s->lock_); - - if (ACE_OS::mutex_lock (&s->lock_) != 0) - result = -1; - else - { - // Keep track of the number of waiters so that we can signal - // them properly in . - s->waiters_++; - - // Wait until the semaphore count is > 0 or until we time out. - while (s->count_ == 0) - if (ACE_OS::cond_timedwait (&s->count_nonzero_, - &s->lock_, - &tv) == -1) - { - error = errno; - result = -2; // -2 means that we need to release the mutex. - break; - } - - --s->waiters_; - } - - if (result == 0) - --s->count_; - - if (result != -1) - ACE_OS::mutex_unlock (&s->lock_); - ACE_PTHREAD_CLEANUP_POP (0); - errno = error; - return result < 0 ? -1 : result; -# elif defined (ACE_HAS_WTHREADS) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - int msec_timeout; - - if (tv.sec () == 0 && tv.usec () == 0) - msec_timeout = 0; // Do a "poll." - else - { - // Note that we must convert between absolute time (which is - // passed as a parameter) and relative time (which is what - // expects). - ACE_Time_Value relative_time (tv - ACE_OS::gettimeofday ()); - - // Watchout for situations where a context switch has caused the - // current time to be > the timeout. - if (relative_time < ACE_Time_Value::zero) - msec_timeout = 0; - else - msec_timeout = relative_time.msec (); - } - - switch (::WaitForSingleObject (*s, msec_timeout)) - { - case WAIT_OBJECT_0: - return 0; - case WAIT_TIMEOUT: - errno = ETIME; - return -1; - default: - // This is a hack, we need to find an appropriate mapping... - errno = ::GetLastError (); - return -1; - } - /* NOTREACHED */ -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - // Record the starting time for later reference. This is necessary - // because we may get signaled but cannot grab the semaphore before - // timeout. In that case, we'll need to restart the process with - // updated timeout value. - ACE_Time_Value start_time = ACE_OS::gettimeofday (); - - // Always wait time when we first start the wait. - ACE_Time_Value relative_time = tv; - int result = -1; - - // While we are not timeout yet. - while (relative_time > ACE_Time_Value::zero) - { - // Wait for our turn to get the object. - switch (::WaitForSingleObject (s->count_nonzero_, relative_time.msec ())) - { - case WAIT_OBJECT_0: - ACE_OS::thread_mutex_lock (&s->lock_); - - // Need to double check if the semaphore is still available. - // We can only do a "try lock" styled wait here to avoid - // blocking threads that want to signal the semaphore. - if (::WaitForSingleObject (s->count_nonzero_, 0) == WAIT_OBJECT_0) - { - // As before, only reset the object when the semaphore - // is no longer available. - s->count_--; - if (s->count_ <= 0) - ACE_OS::event_reset (&s->count_nonzero_); - result = 0; - } - - ACE_OS::thread_mutex_unlock (&s->lock_); - - // Only return when we successfully get the semaphore. - if (result == 0) - return 0; - break; - - // We have timed out. - case WAIT_TIMEOUT: - errno = ETIME; - return -1; - - // What? - default: - errno = ::GetLastError (); - // This is taken from the hack above. ;) - return -1; - }; - - // Haven't been able to get the semaphore yet, update the - // timeout value to reflect the remaining time we want to wait. - relative_time = tv - (ACE_OS::gettimeofday () - start_time); - } - - // We have timed out. - errno = ETIME; - return -1; -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - int ticks_per_sec = ::sysClkRateGet (); - int ticks = tv.sec() * ticks_per_sec + - tv.usec () * ticks_per_sec / ACE_ONE_SECOND_IN_USECS; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::semTake (s->sema_, ticks), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -#elif defined (ACE_PSOS) - /* TBD - move this into threaded section with mutithreaded port */ - int result; - u_long ticks = tv.sec() * KC_TICKS2SEC + - tv.usec () * KC_TICKS2SEC / ACE_ONE_SECOND_IN_USECS; - ACE_OSCALL (ACE_ADAPT_RETVAL (::sm_p (s->sema_, SM_WAIT, ticks), result), - int, -1, result); - return result; -#else - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (tv); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POSIX_SEM */ -} - -#if defined (ACE_LACKS_COND_T) - -// NOTE: The ACE_OS::cond_* functions for some non-Unix platforms are -// defined here because they need the ACE_OS::sema_* functions above. -// However, some Unix platforms define the ACE_OS::sema_* functions -// using the ACE_OS::cond_* functions. So, they appear before the -// ACE_OS::sema_* functions above. -ACE_INLINE int -ACE_OS::cond_destroy (ACE_cond_t *cv) -{ - // ACE_TRACE ("ACE_OS::cond_destroy"); -# if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_WTHREADS) - ACE_OS::event_destroy (&cv->waiters_done_); -# elif defined (VXWORKS) - ACE_OS::sema_destroy (&cv->waiters_done_); -# endif /* VXWORKS */ - ACE_OS::thread_mutex_destroy (&cv->waiters_lock_); - return ACE_OS::sema_destroy (&cv->sema_); -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_init (ACE_cond_t *cv, int type, LPCTSTR name, void *arg) -{ -// ACE_TRACE ("ACE_OS::cond_init"); -# if defined (ACE_HAS_THREADS) - cv->waiters_ = 0; - cv->was_broadcast_ = 0; - - int result = 0; - if (ACE_OS::sema_init (&cv->sema_, 0, type, name, arg) == -1) - result = -1; - else if (ACE_OS::thread_mutex_init (&cv->waiters_lock_) == -1) - result = -1; -# if defined (VXWORKS) - else if (ACE_OS::sema_init (&cv->waiters_done_, 0, type) == -1) -# else - else if (ACE_OS::event_init (&cv->waiters_done_) == -1) -# endif /* VXWORKS */ - result = -1; - return result; -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_signal (ACE_cond_t *cv) -{ -// ACE_TRACE ("ACE_OS::cond_signal"); -# if defined (ACE_HAS_THREADS) - // If there aren't any waiters, then this is a no-op. Note that - // this function *must* be called with the held - // since other wise there is a race condition that can lead to the - // lost wakeup bug... This is needed to ensure that the - // value is not in an inconsistent internal state while being - // updated by another thread. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - int have_waiters = cv->waiters_ > 0; - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - if (have_waiters != 0) - return ACE_OS::sema_post (&cv->sema_); - else - return 0; // No-op -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_broadcast (ACE_cond_t *cv) -{ -// ACE_TRACE ("ACE_OS::cond_broadcast"); -# if defined (ACE_HAS_THREADS) - // The must be locked before this call is made. - - // This is needed to ensure that and are - // consistent relative to each other. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - int have_waiters = 0; - - if (cv->waiters_ > 0) - { - // We are broadcasting, even if there is just one waiter... - // Record the fact that we are broadcasting. This helps the - // cond_wait() method know how to optimize itself. Be sure to - // set this with the held. - cv->was_broadcast_ = 1; - have_waiters = 1; - } - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - int result = 0; - if (have_waiters) - { - // Wake up all the waiters. - if (ACE_OS::sema_post (&cv->sema_, cv->waiters_) == -1) - result = -1; - // Wait for all the awakened threads to acquire their part of - // the counting semaphore. -# if defined (VXWORKS) - else if (ACE_OS::sema_wait (&cv->waiters_done_) == -1) -# else - else if (ACE_OS::event_wait (&cv->waiters_done_) == -1) -# endif /* VXWORKS */ - result = -1; - // This is okay, even without the held because - // no other waiter threads can wake up to access it. - cv->was_broadcast_ = 0; - } - return result; -# else - ACE_UNUSED_ARG (cv); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_wait (ACE_cond_t *cv, - ACE_mutex_t *external_mutex) -{ - // ACE_TRACE ("ACE_OS::cond_wait"); -# if defined (ACE_HAS_THREADS) - // Prevent race conditions on the count. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - cv->waiters_++; - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - int result = 0; - -# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT) - if (external_mutex->type_ == USYNC_PROCESS) - // This call will automatically release the mutex and wait on the semaphore. - ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (external_mutex->proc_mutex_, - cv->sema_, INFINITE, FALSE), - result), - int, -1, result); - else -# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */ - { - // We keep the lock held just long enough to increment the count of - // waiters by one. Note that we can't keep it held across the call - // to ACE_OS::sema_wait() since that will deadlock other calls to - // ACE_OS::cond_signal(). - if (ACE_OS::mutex_unlock (external_mutex) != 0) - return -1; - - // Wait to be awakened by a ACE_OS::cond_signal() or - // ACE_OS::cond_broadcast(). - result = ACE_OS::sema_wait (&cv->sema_); - } - - // Reacquire lock to avoid race conditions on the count. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - - // We're ready to return, so there's one less waiter. - cv->waiters_--; - - int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0; - - // Release the lock so that other collaborating threads can make - // progress. - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - if (result == -1) - // Bad things happened, so let's just return below. - /* NOOP */; -# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT) - else if (external_mutex->type_ == USYNC_PROCESS) - { - if (last_waiter) - - // This call atomically signals the event and - // waits until it can acquire the mutex. This is important to - // prevent unfairness. - ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (cv->waiters_done_, - external_mutex->proc_mutex_, - INFINITE, FALSE), - result), - int, -1, result); - else - // We must always regain the , even when - // errors occur because that's the guarantee that we give to - // our callers. - ACE_OS::mutex_lock (external_mutex); - - return result; - /* NOTREACHED */ - } -# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */ - // If we're the last waiter thread during this particular broadcast - // then let all the other threads proceed. - else if (last_waiter) -# if defined (VXWORKS) - ACE_OS::sema_post (&cv->waiters_done_); -# else - ACE_OS::event_signal (&cv->waiters_done_); -# endif /* VXWORKS */ - - // We must always regain the , even when errors - // occur because that's the guarantee that we give to our callers. - ACE_OS::mutex_lock (external_mutex); - - return result; -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (external_mutex); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_timedwait (ACE_cond_t *cv, - ACE_mutex_t *external_mutex, - ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::cond_timedwait"); -# if defined (ACE_HAS_THREADS) - // Handle the easy case first. - if (timeout == 0) - return ACE_OS::cond_wait (cv, external_mutex); -# if defined (ACE_HAS_WTHREADS) || defined (VXWORKS) - - // Prevent race conditions on the count. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - cv->waiters_++; - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - int result = 0; - int error = 0; - int msec_timeout; - - if (timeout->sec () == 0 && timeout->usec () == 0) - msec_timeout = 0; // Do a "poll." - else - { - // Note that we must convert between absolute time (which is - // passed as a parameter) and relative time (which is what - // WaitForSingleObjects() expects). - ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ()); - - // Watchout for situations where a context switch has caused the - // current time to be > the timeout. - if (relative_time < ACE_Time_Value::zero) - msec_timeout = 0; - else - msec_timeout = relative_time.msec (); - } - -# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT) - if (external_mutex->type_ == USYNC_PROCESS) - // This call will automatically release the mutex and wait on the - // semaphore. - result = ::SignalObjectAndWait (external_mutex->proc_mutex_, - cv->sema_, - msec_timeout, - FALSE); - else -# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */ - { - // We keep the lock held just long enough to increment the count - // of waiters by one. Note that we can't keep it held across - // the call to WaitForSingleObject since that will deadlock - // other calls to ACE_OS::cond_signal(). - if (ACE_OS::mutex_unlock (external_mutex) != 0) - return -1; - - // Wait to be awakened by a ACE_OS::signal() or - // ACE_OS::broadcast(). -# if defined (ACE_WIN32) -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - result = ::WaitForSingleObject (cv->sema_, msec_timeout); -# else /* ACE_USES_WINCE_SEMA_SIMULATION */ - // Can't use Win32 API on our simulated semaphores. - result = ACE_OS::sema_wait (&cv->sema_, - ACE_Time_Value (0, msec_timeout * 1000)); -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ -# elif defined (VXWORKS) - // 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); -# endif /* ACE_WIN32 || VXWORKS */ - } - - // Reacquire lock to avoid race conditions. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - cv->waiters_--; - - int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0; - - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - -# if defined (ACE_WIN32) - if (result != WAIT_OBJECT_0) - { - switch (result) - { - case WAIT_TIMEOUT: - error = ETIME; - break; - default: - error = ::GetLastError (); - break; - } - result = -1; - } -# elif defined (VXWORKS) - if (result == ERROR) - { - switch (errno) - { - case S_objLib_OBJ_TIMEOUT: - error = ETIME; - break; - default: - error = errno; - break; - } - result = -1; - } -# endif /* ACE_WIN32 || VXWORKS */ -# if defined (ACE_HAS_SIGNAL_OBJECT_AND_WAIT) - else if (external_mutex->type_ == USYNC_PROCESS) - { - if (last_waiter) - // This call atomically signals the event and - // waits until it can acquire the mutex. This is important to - // prevent unfairness. - ACE_WIN32CALL (ACE_ADAPT_RETVAL (::SignalObjectAndWait (cv->waiters_done_, - external_mutex->proc_mutex_, - INFINITE, FALSE), - result), - int, -1, result); - else - // We must always regain the , even when - // errors occur because that's the guarantee that we give to - // our callers. - ACE_OS::mutex_lock (external_mutex); - - return result; - /* NOTREACHED */ - } -# endif /* ACE_HAS_SIGNAL_OBJECT_AND_WAIT */ - else if (last_waiter) - // Release the signaler/broadcaster if we're the last waiter. -# if defined (ACE_WIN32) - ACE_OS::event_signal (&cv->waiters_done_); -# else - ACE_OS::sema_post (&cv->waiters_done_); -# endif /* ACE_WIN32 */ - - // We must always regain the , even when errors - // occur because that's the guarantee that we give to our callers. - ACE_OS::mutex_lock (external_mutex); - - errno = error; - return result; -# endif /* ACE_HAS_WTHREADS || ACE_HAS_VXWORKS */ -# else - ACE_UNUSED_ARG (cv); - ACE_UNUSED_ARG (external_mutex); - ACE_UNUSED_ARG (timeout); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -# if defined (ACE_HAS_WTHREADS) -ACE_INLINE int -ACE_OS::cond_timedwait (ACE_cond_t *cv, - ACE_thread_mutex_t *external_mutex, - ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::cond_timedwait"); -# if defined (ACE_HAS_THREADS) - // Handle the easy case first. - if (timeout == 0) - return ACE_OS::cond_wait (cv, external_mutex); - - // Prevent race conditions on the count. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - cv->waiters_++; - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - int result = 0; - int error = 0; - int msec_timeout; - - if (timeout->sec () == 0 && timeout->usec () == 0) - msec_timeout = 0; // Do a "poll." - else - { - // Note that we must convert between absolute time (which is - // passed as a parameter) and relative time (which is what - // WaitForSingleObjects() expects). - ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ()); - - // Watchout for situations where a context switch has caused the - // current time to be > the timeout. - if (relative_time < ACE_Time_Value::zero) - msec_timeout = 0; - else - msec_timeout = relative_time.msec (); - } - - // We keep the lock held just long enough to increment the count of - // waiters by one. Note that we can't keep it held across the call - // to WaitForSingleObject since that will deadlock other calls to - // ACE_OS::cond_signal(). - if (ACE_OS::thread_mutex_unlock (external_mutex) != 0) - return -1; - - // Wait to be awakened by a ACE_OS::signal() or ACE_OS::broadcast(). -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - result = ::WaitForSingleObject (cv->sema_, msec_timeout); -# else - // Can't use Win32 API on simulated semaphores. - result = ACE_OS::sema_wait (&cv->sema_, - ACE_Time_Value (0, msec_timeout * 1000)); -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ - - // Reacquire lock to avoid race conditions. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - - cv->waiters_--; - - int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0; - - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - if (result != WAIT_OBJECT_0) - { - switch (result) - { - case WAIT_TIMEOUT: - error = ETIME; - break; - default: - error = ::GetLastError (); - break; - } - result = -1; - } - else if (last_waiter) - // Release the signaler/broadcaster if we're the last waiter. - ACE_OS::event_signal (&cv->waiters_done_); - - // We must always regain the , even when errors - // occur because that's the guarantee that we give to our callers. - ACE_OS::thread_mutex_lock (external_mutex); - errno = error; - return result; -# else - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::cond_wait (ACE_cond_t *cv, - ACE_thread_mutex_t *external_mutex) -{ - // ACE_TRACE ("ACE_OS::cond_wait"); -# if defined (ACE_HAS_THREADS) - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - cv->waiters_++; - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - int result = 0; - int error = 0; - - // We keep the lock held just long enough to increment the count of - // waiters by one. Note that we can't keep it held across the call - // to ACE_OS::sema_wait() since that will deadlock other calls to - // ACE_OS::cond_signal(). - if (ACE_OS::thread_mutex_unlock (external_mutex) != 0) - return -1; - - // Wait to be awakened by a ACE_OS::cond_signal() or - // ACE_OS::cond_broadcast(). -# if !defined (ACE_USES_WINCE_SEMA_SIMULATION) - result = ::WaitForSingleObject (cv->sema_, INFINITE); -# else - // Can't use Win32 API on simulated semaphores. - result = ACE_OS::sema_wait (&cv->sema_); -# endif /* ACE_USES_WINCE_SEMA_SIMULATION */ - - // Reacquire lock to avoid race conditions. - ACE_OS::thread_mutex_lock (&cv->waiters_lock_); - - cv->waiters_--; - - int last_waiter = cv->was_broadcast_ && cv->waiters_ == 0; - - ACE_OS::thread_mutex_unlock (&cv->waiters_lock_); - - if (result != WAIT_OBJECT_0) - { - switch (result) - { - case WAIT_TIMEOUT: - error = ETIME; - break; - default: - error = ::GetLastError (); - break; - } - } - else if (last_waiter) - // Release the signaler/broadcaster if we're the last waiter. - ACE_OS::event_signal (&cv->waiters_done_); - - // We must always regain the , even when errors - // occur because that's the guarantee that we give to our callers. - ACE_OS::thread_mutex_lock (external_mutex); - - // Reset errno in case mutex_lock() also fails... - errno = error; - return result; -# else - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_THREADS */ -} -# endif /* ACE_HAS_WTHREADS */ -#endif /* ACE_LACKS_COND_T */ - -ACE_INLINE int -ACE_OS::rw_tryrdlock (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_tryrdlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_tryrdlock (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ - int result = -1; - - if (ACE_OS::mutex_lock (&rw->lock_) != -1) - { - int error = 0; - - if (rw->ref_count_ == -1 || rw->num_waiting_writers_ > 0) - { - error = EBUSY; - result = -1; - } - else - { - rw->ref_count_++; - result = 0; - } - - ACE_OS::mutex_unlock (&rw->lock_); - errno = error; - } - return result; -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::rw_trywrlock (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_trywrlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_trywrlock (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ - int result = -1; - - if (ACE_OS::mutex_lock (&rw->lock_) != -1) - { - int error = 0; - - if (rw->ref_count_ != 0) - { - error = EBUSY; - result = -1; - } - else - { - rw->ref_count_ = -1; - result = 0; - } - - ACE_OS::mutex_unlock (&rw->lock_); - errno = error; - } - return result; -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::rw_rdlock (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_rdlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_rdlock (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_); -# endif /* ACE_HAS_DCETHREADS */ - int result = 0; - if (ACE_OS::mutex_lock (&rw->lock_) == -1) - result = -1; // -1 means didn't get the mutex. - else - { - // Give preference to writers who are waiting. - while (rw->ref_count_ < 0 || rw->num_waiting_writers_ > 0) - { - rw->num_waiting_readers_++; - if (ACE_OS::cond_wait (&rw->waiting_readers_, &rw->lock_) == -1) - { - result = -2; // -2 means that we need to release the mutex. - break; - } - rw->num_waiting_readers_--; - } - } - if (result == 0) - rw->ref_count_++; - if (result != -1) - ACE_OS::mutex_unlock (&rw->lock_); -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_POP (0); -# endif /* defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) */ - return 0; -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::rw_wrlock (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_wrlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_wrlock (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_); -# endif /* defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) */ - int result = 0; - - if (ACE_OS::mutex_lock (&rw->lock_) == -1) - result = -1; // -1 means didn't get the mutex. - else - { - while (rw->ref_count_ != 0) - { - rw->num_waiting_writers_++; - - if (ACE_OS::cond_wait (&rw->waiting_writers_, &rw->lock_) == -1) - { - result = -2; // -2 means we need to release the mutex. - break; - } - - rw->num_waiting_writers_--; - } - } - if (result == 0) - rw->ref_count_ = -1; - if (result != -1) - ACE_OS::mutex_unlock (&rw->lock_); -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_POP (0); -# endif /* defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) */ - return 0; -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::rw_unlock (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_unlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rw_unlock (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ - if (ACE_OS::mutex_lock (&rw->lock_) == -1) - return -1; - - if (rw->ref_count_ > 0) // Releasing a reader. - rw->ref_count_--; - else if (rw->ref_count_ == -1) // Releasing a writer. - rw->ref_count_ = 0; - else - return -1; // @@ ACE_ASSERT (!"count should not be 0!\n"); - - - int result = 0; - int error = 0; - - if (rw->important_writer_ && rw->ref_count_ == 1) - // only the reader requesting to upgrade its lock is left over - { - result = ACE_OS::cond_signal (&rw->waiting_important_writer_); - error = errno; - } - else if (rw->num_waiting_writers_ > 0 && rw->ref_count_ == 0) - // Give preference to writers over readers... - { - result = ACE_OS::cond_signal (&rw->waiting_writers_); - error = errno; - } - else if (rw->num_waiting_readers_ > 0 && rw->num_waiting_writers_ == 0) - { - result = ACE_OS::cond_broadcast (&rw->waiting_readers_); - error = errno; - } - - - ACE_OS::mutex_unlock (&rw->lock_); - errno = error; - return result; -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -// Note that the caller of this method *must* already possess this -// lock as a read lock. -// return {-1 and no errno set means: error, -// -1 and errno==EBUSY set means: could not upgrade, -// 0 means: upgraded successfully} - - -ACE_INLINE int -ACE_OS::rw_trywrlock_upgrade (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rw_wrlock"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - // Solaris rwlocks don't support the upgrade feature... - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ - - int result = 0; - -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_PUSH (&rw->lock_); -# endif /* defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) */ - - if (ACE_OS::mutex_lock (&rw->lock_) == -1) - return -1; - // -1 means didn't get the mutex, error - else if (rw->important_writer_) - // an other reader upgrades already - { - result = -1; - errno = EBUSY; - } - else - { - while (rw->ref_count_ > 1) // wait until only I am left - { - rw->num_waiting_writers_++; // prohibit any more readers - rw->important_writer_ = 1; - - if (ACE_OS::cond_wait (&rw->waiting_important_writer_, &rw->lock_) == -1) - { - result = -1; - // we know that we have the lock again, we have this guarantee, - // but something went wrong - } - rw->important_writer_ = 0; - rw->num_waiting_writers_--; - } - if (result == 0) - { - // nothing bad happend - rw->ref_count_ = -1; - // now I am a writer - // everything is O.K. - } - } - - ACE_OS::mutex_unlock (&rw->lock_); - -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_PTHREAD_CLEANUP_POP (0); -# endif /* defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) */ - - return result; - -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -#if defined (ACE_HAS_THREADS) && defined (ACE_HAS_STHREADS) && !defined (ACE_LACKS_RWLOCK_T) -ACE_INLINE int -ACE_OS::rwlock_init (ACE_rwlock_t *rw, - int type, - LPCTSTR name, - void *arg) -{ - // ACE_TRACE ("ACE_OS::rwlock_init"); - type = type; - name = name; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_init (rw, type, arg), ace_result_), int, -1); -} -#endif /* ACE_HAS THREADS && ACE_HAS_STHREADS && !defined (ACE_LACKS_RWLOCK_T) */ - -ACE_INLINE int -ACE_OS::rwlock_destroy (ACE_rwlock_t *rw) -{ - // ACE_TRACE ("ACE_OS::rwlock_destroy"); -#if defined (ACE_HAS_THREADS) -# if !defined (ACE_LACKS_RWLOCK_T) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::rwlock_destroy (rw), ace_result_), int, -1); -# else /* NT, POSIX, and VxWorks don't support this natively. */ - ACE_OS::mutex_destroy (&rw->lock_); - ACE_OS::cond_destroy (&rw->waiting_readers_); - ACE_OS::cond_destroy (&rw->waiting_important_writer_); - return ACE_OS::cond_destroy (&rw->waiting_writers_); -# endif /* ACE_HAS_STHREADS && !defined (ACE_LACKS_RWLOCK_T) */ -#else - ACE_UNUSED_ARG (rw); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::event_init (ACE_event_t *event, - int manual_reset, - int initial_state, - int type, - LPCTSTR name, - void *arg, - LPSECURITY_ATTRIBUTES sa) -{ -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (arg); - *event = ::CreateEvent (sa, - manual_reset, - initial_state, - name); - if (*event == NULL) - ACE_FAIL_RETURN (-1); - else - return 0; -#elif defined (ACE_HAS_THREADS) - ACE_UNUSED_ARG (sa); - event->manual_reset_ = manual_reset; - event->is_signaled_ = initial_state; - event->waiting_threads_ = 0; - - int result = ACE_OS::cond_init (&event->condition_, - type, - name, - arg); - if (result == 0) - result = ACE_OS::mutex_init (&event->lock_, - type, - name, - arg); - return result; -#else - ACE_UNUSED_ARG (event); - ACE_UNUSED_ARG (manual_reset); - ACE_UNUSED_ARG (initial_state); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (arg); - ACE_UNUSED_ARG (sa); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_destroy (ACE_event_t *event) -{ -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (*event), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) - int r1 = ACE_OS::mutex_destroy (&event->lock_); - int r2 = ACE_OS::cond_destroy (&event->condition_); - return r1 != 0 || r2 != 0 ? -1 : 0; -#else - ACE_UNUSED_ARG (event); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_wait (ACE_event_t *event) -{ -#if defined (ACE_WIN32) - switch (::WaitForSingleObject (*event, INFINITE)) - { - case WAIT_OBJECT_0: - return 0; - default: - errno = ::GetLastError (); - return -1; - } -#elif defined (ACE_HAS_THREADS) - int result = 0; - int error = 0; - - // grab the lock first - if (ACE_OS::mutex_lock (&event->lock_) == 0) - { - if (event->is_signaled_ == 1) - // Event is currently signaled. - { - if (event->manual_reset_ == 0) - // AUTO: reset state - event->is_signaled_ = 0; - } - else - // event is currently not signaled - { - event->waiting_threads_++; - - if (ACE_OS::cond_wait (&event->condition_, - &event->lock_) != 0) - { - result = -1; - error = errno; - } - event->waiting_threads_--; - } - - // Now we can let go of the lock. - ACE_OS::mutex_unlock (&event->lock_); - - if (result == -1) - // Reset errno in case mutex_unlock() also fails... - errno = error; - } - else - result = -1; - return result; -#else - ACE_UNUSED_ARG (event); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_timedwait (ACE_event_t *event, - ACE_Time_Value *timeout) -{ -#if defined (ACE_WIN32) - DWORD result; - - if (timeout == 0) - // Wait forever - result = ::WaitForSingleObject (*event, INFINITE); - else if (timeout->sec () == 0 && timeout->usec () == 0) - // Do a "poll". - result = ::WaitForSingleObject (*event, 0); - else - { - // Wait for upto number of milliseconds. Note - // that we must convert between absolute time (which is passed - // as a parameter) and relative time (which is what - // WaitForSingleObjects() expects). - ACE_Time_Value relative_time (*timeout - ACE_OS::gettimeofday ()); - - // Watchout for situations where a context switch has caused the - // current time to be > the timeout. Thanks to Norbert Rapp - // for pointing this. - int msec_timeout; - if (relative_time < ACE_Time_Value::zero) - msec_timeout = 0; - else - msec_timeout = relative_time.msec (); - result = ::WaitForSingleObject (*event, msec_timeout); - } - - switch (result) - { - case WAIT_OBJECT_0: - return 0; - case WAIT_TIMEOUT: - errno = ETIME; - return -1; - default: - // This is a hack, we need to find an appropriate mapping... - errno = ::GetLastError (); - return -1; - } -#elif defined (ACE_HAS_THREADS) - int result = 0; - int error = 0; - - // grab the lock first - if (ACE_OS::mutex_lock (&event->lock_) == 0) - { - if (event->is_signaled_ == 1) - // event is currently signaled - { - if (event->manual_reset_ == 0) - // AUTO: reset state - event->is_signaled_ = 0; - } - else - // event is currently not signaled - { - event->waiting_threads_++; - - if (ACE_OS::cond_timedwait (&event->condition_, - &event->lock_, - timeout) != 0) - { - result = -1; - error = errno; - } - event->waiting_threads_--; - } - - // Now we can let go of the lock. - ACE_OS::mutex_unlock (&event->lock_); - - if (result == -1) - // Reset errno in case mutex_unlock() also fails... - errno = error; - } - else - result = -1; - return result; -#else - ACE_UNUSED_ARG (event); - ACE_UNUSED_ARG (timeout); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_signal (ACE_event_t *event) -{ -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetEvent (*event), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) - int result = 0; - int error = 0; - - // grab the lock first - if (ACE_OS::mutex_lock (&event->lock_) == 0) - { - // Manual-reset event. - if (event->manual_reset_ == 1) - { - // signal event - event->is_signaled_ = 1; - // wakeup all - if (ACE_OS::cond_broadcast (&event->condition_) != 0) - { - result = -1; - error = errno; - } - } - // Auto-reset event - else - { - if (event->waiting_threads_ == 0) - // No waiters: signal event. - event->is_signaled_ = 1; - - // Waiters: wakeup one waiter. - else if (ACE_OS::cond_signal (&event->condition_) != 0) - { - result = -1; - error = errno; - } - } - - // Now we can let go of the lock. - ACE_OS::mutex_unlock (&event->lock_); - - if (result == -1) - // Reset errno in case mutex_unlock() also fails... - errno = error; - } - else - result = -1; - return result; -#else - ACE_UNUSED_ARG (event); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_pulse (ACE_event_t *event) -{ -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::PulseEvent (*event), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) - int result = 0; - int error = 0; - - // grab the lock first - if (ACE_OS::mutex_lock (&event->lock_) == 0) - { - // Manual-reset event. - if (event->manual_reset_ == 1) - { - // Wakeup all waiters. - if (ACE_OS::cond_broadcast (&event->condition_) != 0) - { - result = -1; - error = errno; - } - } - // Auto-reset event: wakeup one waiter. - else if (ACE_OS::cond_signal (&event->condition_) != 0) - { - result = -1; - error = errno; - } - - // Reset event. - event->is_signaled_ = 0; - - // Now we can let go of the lock. - ACE_OS::mutex_unlock (&event->lock_); - - if (result == -1) - // Reset errno in case mutex_unlock() also fails... - errno = error; - } - else - result = -1; - return result; -#else - ACE_UNUSED_ARG (event); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::event_reset (ACE_event_t *event) -{ -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::ResetEvent (*event), ace_result_), int, -1); -#elif defined (ACE_HAS_THREADS) - int result = 0; - - // Grab the lock first. - if (ACE_OS::mutex_lock (&event->lock_) == 0) - { - // Reset event. - event->is_signaled_ = 0; - - // Now we can let go of the lock. - ACE_OS::mutex_unlock (&event->lock_); - } - else - result = -1; - return result; -#else - ACE_UNUSED_ARG (event); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -#if defined (ACE_WIN32) -# define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) \ - do { TYPE ace_result_ = (TYPE) OP; \ - if ((ACE_SOCKET) ace_result_ == SOCKET_ERROR) { int ___ = ::WSAGetLastError (); errno = ___; return (TYPE) FAILVALUE; } else return ace_result_; \ - } while (0) -#else -# define ACE_SOCKCALL_RETURN(OP,TYPE,FAILVALUE) ACE_OSCALL_RETURN(OP,TYPE,FAILVALUE) -#endif /* ACE_WIN32 */ - -#if defined (ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \ - do \ - { \ - if (ACE_OS::netdb_acquire ()) \ - return FAILVALUE; \ - else \ - { \ - TYPE ace_result_; \ - ACE_OSCALL(OP,TYPE,FAILVALUE,ace_result_); \ - if (ace_result_ != FAILVALUE) \ - ::memcpy (TARGET, ace_result_, SIZE); \ - ACE_OS::netdb_release (); \ - return ace_result_; \ - } \ - } while(0) -# else /* ! (ACE_MT_SAFE && ACE_MT_SAFE != 0) */ -# define ACE_NETDBCALL_RETURN(OP,TYPE,FAILVALUE,TARGET,SIZE) \ - do \ - { \ - TYPE ace_result_; \ - ACE_OSCALL(OP,TYPE,FAILVALUE,ace_result_); \ - if (ace_result_ != FAILVALUE) \ - ::memcpy (TARGET, ace_result_, SIZE); \ - return ace_result_; \ - } while(0) -# endif /* ACE_MT_SAFE && ACE_MT_SAFE != 0 */ -#endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ - - -ACE_INLINE ACE_HANDLE -ACE_OS::accept (ACE_HANDLE handle, struct sockaddr *addr, - int *addrlen) -{ - // ACE_TRACE ("ACE_OS::accept"); - ACE_SOCKCALL_RETURN (::accept ((ACE_SOCKET) handle, addr, (ACE_SOCKET_LEN *) addrlen), - ACE_HANDLE, ACE_INVALID_HANDLE); -} - -ACE_INLINE int -ACE_OS::bind (ACE_HANDLE handle, struct sockaddr *addr, int addrlen) -{ - // ACE_TRACE ("ACE_OS::bind"); - ACE_SOCKCALL_RETURN (::bind ((ACE_SOCKET) handle, addr, (ACE_SOCKET_LEN) addrlen), int, -1); -} - -ACE_INLINE int -ACE_OS::connect (ACE_HANDLE handle, struct sockaddr *addr, int addrlen) -{ - // ACE_TRACE ("ACE_OS::connect"); - ACE_SOCKCALL_RETURN (::connect ((ACE_SOCKET) handle, addr, (ACE_SOCKET_LEN) addrlen), int, -1); -} - -#if !defined (VXWORKS) -ACE_INLINE struct hostent * -ACE_OS::gethostbyname (const char *name) -{ - // ACE_TRACE ("ACE_OS::gethostbyname"); -# if defined (ACE_HAS_NONCONST_GETBY) - ACE_SOCKCALL_RETURN (::gethostbyname ((char *) name), struct hostent *, 0); -# else - ACE_SOCKCALL_RETURN (::gethostbyname (name), struct hostent *, 0); -# endif /* ACE_HAS_NONCONST_GETBY */ -} - -ACE_INLINE struct hostent * -ACE_OS::gethostbyaddr (const char *addr, int length, int type) -{ - // ACE_TRACE ("ACE_OS::gethostbyaddr"); -# if defined (ACE_HAS_NONCONST_GETBY) - ACE_SOCKCALL_RETURN (::gethostbyaddr ((char *) addr, (ACE_SOCKET_LEN) length, type), - struct hostent *, 0); -# else - ACE_SOCKCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type), - struct hostent *, 0); -# endif /* ACE_HAS_NONCONST_GETBY */ -} -#endif /* ! VXWORKS */ - -// It would be really cool to add another version of select that would -// function like the one we're defending against below! -ACE_INLINE int -ACE_OS::select (int width, - fd_set *rfds, fd_set *wfds, fd_set *efds, - const ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::select"); -#if defined (ACE_HAS_NONCONST_SELECT_TIMEVAL) - // We must defend against non-conformity! - ACE_Time_Value copy; - - if (timeout != 0) - { - copy = *timeout; - timeout = © - } -#endif /* ACE_HAS_NONCONST_SELECT_TIMEVAL */ - ACE_SOCKCALL_RETURN (::select (width, - (ACE_FD_SET_TYPE *) rfds, - (ACE_FD_SET_TYPE *) wfds, - (ACE_FD_SET_TYPE *) efds, - timeout == 0 ? 0 : (timeval *) (const timeval *) *timeout) , int, -1); -} - -ACE_INLINE int -ACE_OS::select (int width, - fd_set *rfds, fd_set *wfds, fd_set *efds, - const ACE_Time_Value &timeout) -{ - // ACE_TRACE ("ACE_OS::select"); -#if defined (ACE_HAS_NONCONST_SELECT_TIMEVAL) -# define ___ACE_TIMEOUT copy - ACE_Time_Value copy(timeout); -#else -# define ___ACE_TIMEOUT timeout -#endif /* ACE_HAS_NONCONST_SELECT_TIMEVAL */ - ACE_SOCKCALL_RETURN (::select (width, - (ACE_FD_SET_TYPE *) rfds, - (ACE_FD_SET_TYPE *) wfds, - (ACE_FD_SET_TYPE *) efds, - (timeval *) (const timeval *) ___ACE_TIMEOUT), - int, -1); -#undef ___ACE_TIMEOUT -} - -ACE_INLINE int -ACE_OS::recv (ACE_HANDLE handle, char *buf, int len, int flags) -{ - // ACE_TRACE ("ACE_OS::recv"); - ACE_SOCKCALL_RETURN (::recv ((ACE_SOCKET) handle, buf, len, flags), int, -1); -} - -ACE_INLINE int -ACE_OS::recvfrom (ACE_HANDLE handle, char *buf, int len, - int flags, struct sockaddr *addr, int *addrlen) -{ - // ACE_TRACE ("ACE_OS::recvfrom"); - ACE_SOCKCALL_RETURN (::recvfrom ((ACE_SOCKET) handle, buf, (ACE_SOCKET_LEN) len, flags, - addr, (ACE_SOCKET_LEN *) addrlen), - int, -1); -} - -ACE_INLINE int -ACE_OS::send (ACE_HANDLE handle, const char *buf, int len, int flags) -{ - // ACE_TRACE ("ACE_OS::send"); -#if defined (VXWORKS) || defined (HPUX) - ACE_SOCKCALL_RETURN (::send ((ACE_SOCKET) handle, (char *) buf, len, flags), int, -1); -#else - ACE_SOCKCALL_RETURN (::send ((ACE_SOCKET) handle, buf, len, flags), int, -1); -#endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::sendto (ACE_HANDLE handle, - const char *buf, - int len, - int flags, - const struct sockaddr *addr, - int addrlen) -{ - // ACE_TRACE ("ACE_OS::sendto"); -#if defined (VXWORKS) - ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, (char *) buf, len, flags, - ACE_const_cast (struct sockaddr *, addr), addrlen), - int, -1); -#else - ACE_SOCKCALL_RETURN (::sendto ((ACE_SOCKET) handle, buf, len, flags, - ACE_const_cast (struct sockaddr *, addr), addrlen), - int, -1); -#endif /* VXWORKS */ -} - -ACE_INLINE int -ACE_OS::getpeername (ACE_HANDLE handle, struct sockaddr *addr, - int *addrlen) -{ - // ACE_TRACE ("ACE_OS::getpeername"); - ACE_SOCKCALL_RETURN (::getpeername ((ACE_SOCKET) handle, addr, (ACE_SOCKET_LEN *) addrlen), - int, -1); -} - -ACE_INLINE struct protoent * -ACE_OS::getprotobyname (const char *name) -{ -#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) - ACE_UNUSED_ARG (name); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_NONCONST_GETBY) - ACE_SOCKCALL_RETURN (::getprotobyname ((char *) name), - struct protoent *, 0); -#else - ACE_SOCKCALL_RETURN (::getprotobyname (name), - struct protoent *, 0); -#endif /* VXWORKS */ -} - -ACE_INLINE struct protoent * -ACE_OS::getprotobyname_r (const char *name, - struct protoent *result, - ACE_PROTOENT_DATA buffer) -{ -#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) -# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10) - if (::getprotobyname_r (name, result, (struct protoent_data *) buffer) == 0) - return result; - else - return 0; -# else -# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - ACE_UNUSED_ARG (result); - ACE_NETDBCALL_RETURN (::getprotobyname (name), - struct protoent *, 0, - buffer, sizeof (ACE_PROTOENT_DATA)); -# else - ACE_SOCKCALL_RETURN (::getprotobyname_r (name, result, buffer, sizeof (ACE_PROTOENT_DATA)), - struct protoent *, 0); -# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ -# endif /* defined (AIX) || defined (DIGITAL_UNIX) */ -#elif defined (ACE_HAS_NONCONST_GETBY) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_SOCKCALL_RETURN (::getprotobyname ((char *) name), - struct protoent *, 0); -#else - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (result); - - ACE_SOCKCALL_RETURN (::getprotobyname (name), - struct protoent *, 0); -#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) !defined (UNIXWARE) */ -} - -ACE_INLINE struct protoent * -ACE_OS::getprotobynumber (int proto) -{ -#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) - ACE_UNUSED_ARG (proto); - ACE_NOTSUP_RETURN (0); -#else - ACE_SOCKCALL_RETURN (::getprotobynumber (proto), - struct protoent *, 0); -#endif /* VXWORKS */ -} - -ACE_INLINE struct protoent * -ACE_OS::getprotobynumber_r (int proto, - struct protoent *result, - ACE_PROTOENT_DATA buffer) -{ -#if defined (VXWORKS) || defined (ACE_HAS_WINCE) || (defined (ghs) && defined (__Chorus)) - ACE_UNUSED_ARG (proto); - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) -# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10) - if (::getprotobynumber_r (proto, result, (struct protoent_data *) buffer) == 0) - return result; - else - return 0; -# else -# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - ACE_UNUSED_ARG (result); - ACE_NETDBCALL_RETURN (::getprotobynumber (proto), - struct protoent *, 0, - buffer, sizeof (ACE_PROTOENT_DATA)); -# else - ACE_SOCKCALL_RETURN (::getprotobynumber_r (proto, result, buffer, sizeof (ACE_PROTOENT_DATA)), - struct protoent *, 0); -# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ -# endif /* defined (AIX) || defined (DIGITAL_UNIX) */ -#else - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (result); - - ACE_SOCKCALL_RETURN (::getprotobynumber (proto), - struct protoent *, 0); -#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */ -} - -ACE_INLINE struct servent * -ACE_OS::getservbyname (const char *svc, const char *proto) -{ - // ACE_TRACE ("ACE_OS::getservbyname"); -#if defined (ACE_LACKS_GETSERVBYNAME) - ACE_UNUSED_ARG (svc); - ACE_UNUSED_ARG (proto); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_NONCONST_GETBY) - ACE_SOCKCALL_RETURN (::getservbyname ((char *) svc, (char *) proto), - struct servent *, 0); -#else - ACE_SOCKCALL_RETURN (::getservbyname (svc, proto), - struct servent *, 0); -#endif /* ACE_HAS_NONCONST_GETBY */ -} - -ACE_INLINE int -ACE_OS::getsockname (ACE_HANDLE handle, - struct sockaddr *addr, - int *addrlen) -{ - // ACE_TRACE ("ACE_OS::getsockname"); - - ACE_SOCKCALL_RETURN (::getsockname ((ACE_SOCKET) handle, addr, (ACE_SOCKET_LEN *) addrlen), - int, -1); -} - -ACE_INLINE int -ACE_OS::getsockopt (ACE_HANDLE handle, - int level, - int optname, - char *optval, - int *optlen) -{ - // ACE_TRACE ("ACE_OS::getsockopt"); - ACE_SOCKCALL_RETURN (::getsockopt ((ACE_SOCKET) handle, level, optname, optval, (ACE_SOCKET_LEN *) optlen), - int, -1); -} - -ACE_INLINE int -ACE_OS::listen (ACE_HANDLE handle, int backlog) -{ - // ACE_TRACE ("ACE_OS::listen"); - ACE_SOCKCALL_RETURN (::listen ((ACE_SOCKET) handle, backlog), int, -1); -} - -ACE_INLINE int -ACE_OS::setsockopt (ACE_HANDLE handle, int level, int optname, - const char *optval, int optlen) -{ - // ACE_TRACE ("ACE_OS::setsockopt"); - - ACE_SOCKCALL_RETURN (::setsockopt ((ACE_SOCKET) handle, level, optname, - (ACE_SOCKOPT_TYPE1) optval, optlen), - int, -1); -} - -ACE_INLINE int -ACE_OS::shutdown (ACE_HANDLE handle, int how) -{ - // ACE_TRACE ("ACE_OS::shutdown"); - ACE_SOCKCALL_RETURN (::shutdown ((ACE_SOCKET) handle, how), int, -1); -} - -ACE_INLINE ACE_HANDLE -ACE_OS::socket (int domain, int type, int proto) -{ - // ACE_TRACE ("ACE_OS::socket"); - ACE_SOCKCALL_RETURN (::socket (domain, type, proto), - ACE_HANDLE, ACE_INVALID_HANDLE); -} - -ACE_INLINE int -ACE_OS::atoi (const char *s) -{ - // ACE_TRACE ("ACE_OS::atoi"); - ACE_OSCALL_RETURN (::atoi (s), int, -1); -} - -ACE_INLINE int -ACE_OS::recvmsg (ACE_HANDLE handle, struct msghdr *msg, int flags) -{ - // ACE_TRACE ("ACE_OS::recvmsg"); -#if !defined (ACE_LACKS_RECVMSG) - ACE_SOCKCALL_RETURN (::recvmsg (handle, msg, flags), int, -1); -#else - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (msg); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_MSG */ -} - -ACE_INLINE int -ACE_OS::sendmsg (ACE_HANDLE handle, const struct msghdr *msg, int flags) -{ - // ACE_TRACE ("ACE_OS::sendmsg"); -#if !defined (ACE_LACKS_SENDMSG) -# if defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_SOCKCALL_RETURN (::sendmsg (handle, (struct msghdr *) msg, flags), int, -1); -# else - ACE_SOCKCALL_RETURN (::sendmsg (handle, (ACE_SENDMSG_TYPE *) msg, flags), int, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#else - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (msg); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_MSG */ -} - -ACE_INLINE int -ACE_OS::fclose (FILE *fp) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::fclose"); - ACE_OSCALL_RETURN (::fclose (fp), int, -1); -#else - // On CE, FILE * == void * == HANDLE - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL(::CloseHandle (fp), ace_result_), - int, -1); -#endif /* !ACE_HAS_WINCE */ -} - -#if !defined (ACE_HAS_WINCE) -// Here are functions that CE doesn't support at all. -// Notice that some of them might have UNICODE version. -ACE_INLINE char * -ACE_OS::fgets (char *buf, int size, FILE *fp) -{ - // ACE_TRACE ("ACE_OS::fgets"); - ACE_OSCALL_RETURN (::fgets (buf, size, fp), char *, 0); -} - -ACE_INLINE FILE * -ACE_OS::fopen (const char *filename, const char *mode) -{ - // ACE_TRACE ("ACE_OS::fopen"); - ACE_OSCALL_RETURN (::fopen (filename, mode), FILE *, 0); -} -#endif /* ACE_HAS_WINCE */ - -ACE_INLINE int -ACE_OS::fflush (FILE *fp) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::fflush"); - ACE_OSCALL_RETURN (::fflush (fp), int, -1); -#else - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL(::FlushFileBuffers (fp), - ace_result_), - int, -1); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE size_t -ACE_OS::fread (void *ptr, size_t size, size_t nelems, FILE *fp) -{ - // ACE_TRACE ("ACE_OS::fread"); -#if defined (ACE_HAS_WINCE) - DWORD len = 0; - size_t tlen = size * nelems; - - if (::ReadFile (fp, ptr, tlen, &len, NULL) == FALSE) - { - errno = ::GetLastError (); - return -1; - } - else if (tlen != len) - { - // only return length of multiple of - len = (len / size) * size ; - // then rewind file pointer. - ::SetFilePointer (fp, (len - tlen), 0, FILE_CURRENT); - } - return len; -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::fread ((char *) ptr, size, nelems, fp), int, 0); -#else - ACE_OSCALL_RETURN (::fread (ptr, size, nelems, fp), int, 0); -#endif /* ACE_LACKS_POSIX_PROTOTYPES */ -} - -ACE_INLINE size_t -ACE_OS::fwrite (const void *ptr, size_t size, size_t nitems, FILE *fp) -{ - // ACE_TRACE ("ACE_OS::fwrite"); -#if defined (ACE_HAS_WINCE) - DWORD len = 0; - size_t tlen = size * nitems; - - if (::WriteFile (fp, ptr, tlen, &len, NULL) == FALSE) - { - errno = ::GetLastError (); - return -1; - } - else if (tlen != len) - { - // only return length of multiple of - len = (len / size) * size ; - // then rewind file pointer. - ::SetFilePointer (fp, (len - tlen), 0, FILE_CURRENT); - } - return len; -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::fwrite ((const char *) ptr, size, nitems, fp), int, 0); -#else - ACE_OSCALL_RETURN (::fwrite (ptr, size, nitems, fp), int, 0); -#endif /* ACE_LACKS_POSIX_PROTOTYPES */ -} - -// Accessors to PWD file. - -ACE_INLINE struct passwd * -ACE_OS::getpwnam (const char *name) -{ -#if !defined (ACE_LACKS_PWD_FUNCTIONS) -# if !defined (ACE_WIN32) - return ::getpwnam (name); -# else - ACE_UNUSED_ARG (name); - ACE_NOTSUP_RETURN (0); -# endif /* ACE_WIN32 */ -#else - ACE_UNUSED_ARG (name); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_LACKS_PWD_FUNCTIONS */ -} - -ACE_INLINE struct passwd * -ACE_OS::getpwnam_r (const char *name, struct passwd *pwent, - char *buffer, int buflen) -{ -#if !defined (ACE_LACKS_PWD_FUNCTIONS) -# if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if !defined (ACE_LACKS_PWD_REENTRANT_FUNCTIONS) -# if defined (ACE_HAS_PTHREADS_1003_DOT_1C) - struct passwd *result; -# if defined (DIGITAL_UNIX) - ::_Pgetpwnam_r (name, pwent, buffer, buflen, &result); -# else - ::getpwnam_r (name, pwent, buffer, buflen, &result); -# endif /* (DIGITAL_UNIX) */ - return result; -# elif defined (AIX) || defined (HPUX_10) - if (::getpwnam_r (name, pwent, buffer, buflen) == -1) - return 0; - else - return pwent; -# else - return ::getpwnam_r (name, pwent, buffer, buflen); -# endif /* ACE_HAS_PTHREADS_1003_DOT_1C */ -# else - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (pwent); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (buflen); - ACE_NOTSUP_RETURN (0); -# endif /* ! ACE_LACKS_PWD_REENTRANT_FUNCTIONS */ -# else - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (pwent); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (buflen); - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_REENTRANT_FUNCTIONS */ -#else - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (pwent); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (buflen); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_LACKS_PWD_FUNCTIONS */ -} - -// DNS accessors. - -#if !defined (VXWORKS) -ACE_INLINE struct hostent * -ACE_OS::gethostbyaddr_r (const char *addr, int length, int type, - hostent *result, ACE_HOSTENT_DATA buffer, - int *h_errnop) -{ - // ACE_TRACE ("ACE_OS::gethostbyaddr_r"); -# if defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) -# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10) - ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA)); - - if (::gethostbyaddr_r ((char *) addr, length, type, result, - (struct hostent_data *) buffer)== 0) - return result; - else - { - *h_errnop = h_errno; - return (struct hostent *) 0; - } -# else -# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (h_errnop); - ACE_NETDBCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type), - struct hostent *, 0, - buffer, sizeof (ACE_HOSTENT_DATA)); -# else - ACE_SOCKCALL_RETURN (::gethostbyaddr_r (addr, length, type, result, - buffer, sizeof (ACE_HOSTENT_DATA), - h_errnop), - struct hostent *, 0); -# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ -# endif /* defined (AIX) || defined (DIGITAL_UNIX) */ -# elif defined (ACE_HAS_NONCONST_GETBY) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); - ACE_SOCKCALL_RETURN (::gethostbyaddr ((char *) addr, (ACE_SOCKET_LEN) length, type), - struct hostent *, 0); -# else - ACE_UNUSED_ARG (h_errnop); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (result); - - ACE_SOCKCALL_RETURN (::gethostbyaddr (addr, (ACE_SOCKET_LEN) length, type), - struct hostent *, 0); -# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */ -} - -ACE_INLINE struct hostent * -ACE_OS::gethostbyname_r (const char *name, hostent *result, - ACE_HOSTENT_DATA buffer, - int *h_errnop) -{ - // ACE_TRACE ("ACE_OS::gethostbyname_r"); -# if defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) -# if defined (DIGITAL_UNIX) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); - - // gethostbyname returns thread-specific storage on Digital Unix - ACE_SOCKCALL_RETURN (::gethostbyname (name), struct hostent *, 0); -# elif defined (AIX) || defined (HPUX_10) - ::memset (buffer, 0, sizeof (ACE_HOSTENT_DATA)); - - if (::gethostbyname_r (name, result, (struct hostent_data *) buffer) == 0) - return result; - else - { - *h_errnop = h_errno; - return (struct hostent *) 0; - } -# else -# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (h_errnop); - ACE_NETDBCALL_RETURN (::gethostbyname (name), - struct hostent *, 0, - buffer, sizeof (ACE_HOSTENT_DATA)); -# else - ACE_SOCKCALL_RETURN (::gethostbyname_r (name, result, buffer, - sizeof (ACE_HOSTENT_DATA), h_errnop), - struct hostent *, 0); -# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ -# endif /* defined (AIX) || defined (DIGITAL_UNIX) */ -# elif defined (ACE_HAS_NONCONST_GETBY) - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); - ACE_SOCKCALL_RETURN (::gethostbyname ((char *) name), struct hostent *, 0); -# else - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buffer); - ACE_UNUSED_ARG (h_errnop); - - ACE_SOCKCALL_RETURN (::gethostbyname (name), struct hostent *, 0); -# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */ -} -#endif /* ! VXWORKS */ - -// @@ gets is evil anyway. -#if !defined (ACE_LACKS_GETS) -ACE_INLINE char * -ACE_OS::gets (char *str) -{ - // ACE_TRACE ("ACE_OS::gets"); - ACE_OSCALL_RETURN (::gets (str), char *, 0); -} -#endif /* !LACKS_GETS */ - -ACE_INLINE struct servent * -ACE_OS::getservbyname_r (const char *svc, const char *proto, - struct servent *result, ACE_SERVENT_DATA buf) -{ - // ACE_TRACE ("ACE_OS::getservbyname_r"); -#if defined (ACE_LACKS_GETSERVBYNAME) - ACE_UNUSED_ARG (svc); - ACE_UNUSED_ARG (proto); - ACE_UNUSED_ARG (result); - ACE_UNUSED_ARG (buf); - ACE_NOTSUP_RETURN (0); -#elif defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) -# if defined (AIX) || defined (DIGITAL_UNIX) || defined (HPUX_10) - ::memset (buf, 0, sizeof (ACE_SERVENT_DATA)); - - if (::getservbyname_r (svc, proto, result, (struct servent_data *) buf) == 0) - return result; - else - return (struct servent *) 0; -# else -# if defined(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) - ACE_UNUSED_ARG (result); - ACE_NETDBCALL_RETURN (::getservbyname (svc, proto), - struct servent *, 0, - buf, sizeof (ACE_SERVENT_DATA)); -# else - ACE_SOCKCALL_RETURN (::getservbyname_r (svc, proto, result, buf, - sizeof (ACE_SERVENT_DATA)), - struct servent *, 0); -# endif /* ACE_LACKS_NETDB_REENTRANT_FUNCTIONS */ -# endif /* defined (AIX) || defined (DIGITAL_UNIX) */ -#elif defined (ACE_HAS_NONCONST_GETBY) - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (result); - ACE_SOCKCALL_RETURN (::getservbyname ((char *) svc, (char *) proto), - struct servent *, 0); -#else - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (result); - - ACE_SOCKCALL_RETURN (::getservbyname (svc, proto), - struct servent *, 0); -#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) && !defined (UNIXWARE) */ -} - -ACE_INLINE long -ACE_OS::inet_addr (const char *name) -{ - // ACE_TRACE ("ACE_OS::inet_addr"); -#if defined (VXWORKS) - - u_long ret = 0; - u_int segment; - u_int valid = 1; - - for (u_int i = 0; i < 4; ++i) - { - ret <<= 8; - if (*name != '\0') - { - segment = 0; - - while (*name >= '0' && *name <= '9') - { - segment *= 10; - segment += *name++ - '0'; - } - if (*name != '.' && *name != '\0') - { - valid = 0; - break; - } - - ret |= segment; - - if (*name == '.') - { - ++name; - } - } - } - return valid ? (long) htonl (ret) : -1L; -#elif defined (ACE_HAS_NONCONST_GETBY) - return ::inet_addr ((char *) name); -#else - return ::inet_addr (name); -#endif /* ACE_HAS_NONCONST_GETBY */ -} - -ACE_INLINE char * -ACE_OS::inet_ntoa (const struct in_addr addr) -{ - // ACE_TRACE ("ACE_OS::inet_ntoa"); - ACE_OSCALL_RETURN (::inet_ntoa (addr), char *, 0); -} - -ACE_INLINE int -ACE_OS::last_error (void) -{ - // ACE_TRACE ("ACE_OS::last_error"); -#if defined (ACE_WIN32) - return errno == 0 ? ::GetLastError () : errno; -#else - return errno; -#endif /* ACE_HAS_WIN32 */ -} - -ACE_INLINE void -ACE_OS::last_error (int error) -{ - // ACE_TRACE ("ACE_OS::last_error"); -#if defined (ACE_WIN32) - ::SetLastError (error); -#else - errno = error; -#endif /* ACE_HAS_WIN32 */ -} - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE void -ACE_OS::perror (const char *s) -{ - // ACE_TRACE ("ACE_OS::perror"); - ::perror (s); -} -#endif /* ! ACE_HAS_WINCE */ - -// @@ Do we need to implement puts on WinCE??? -#if !defined (ACE_HAS_WINCE) -ACE_INLINE int -ACE_OS::puts (const char *s) -{ - // ACE_TRACE ("ACE_OS::puts"); - ACE_OSCALL_RETURN (::puts (s), int, -1); -} -#endif /* ! ACE_HAS_WINCE */ - -ACE_INLINE ACE_SignalHandler -ACE_OS::signal (int signum, ACE_SignalHandler func) -{ - if (signum == 0) - return 0; - else -#if !defined (ACE_HAS_WINCE) -# if !defined (ACE_HAS_TANDEM_SIGNALS) && !defined (ACE_HAS_LYNXOS_SIGNALS) - return ::signal (signum, func); -# else - return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func); -# endif /* !ACE_HAS_TANDEM_SIGNALS */ -#else - // @@ Don't know how to implement signal on WinCE (yet.) - ACE_UNUSED_ARG (signum); - ACE_UNUSED_ARG (func); - ACE_NOTSUP_RETURN (0); // Should return SIG_ERR but it is not defined on WinCE. -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::system (const char *s) -{ - // ACE_TRACE ("ACE_OS::system"); -#if !defined (CHORUS) && !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::system"); - ACE_OSCALL_RETURN (::system (s), int, -1); -#else - ACE_UNUSED_ARG (s); - ACE_NOTSUP_RETURN (-1); -#endif /* !CHORUS */ -} - -ACE_INLINE int -ACE_OS::thr_continue (ACE_hthread_t target_thread) -{ - // ACE_TRACE ("ACE_OS::thr_continue"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_continue (target_thread), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (target_thread); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - DWORD result = ::ResumeThread (target_thread); - if (result == ACE_SYSCALL_FAILED) - ACE_FAIL_RETURN (-1); - else - return 0; -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::taskResume (target_thread), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (target_thread); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_equal (ACE_thread_t t1, ACE_thread_t t2) -{ -#if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (pthread_equal) - // If it's a macro we can't say "::pthread_equal"... - return pthread_equal (t1, t2); -# else - return ::pthread_equal (t1, t2); -# endif /* pthread_equal */ -#elif defined (VXWORKS) - return ! ACE_OS::strcmp (t1, t2); -#else /* For both STHREADS and WTHREADS... */ - // Hum, Do we need to treat WTHREAD differently? - return t1 == t2; -#endif /* ACE_HAS_DCETHREADS */ -} - -ACE_INLINE int -ACE_OS::thr_cmp (ACE_hthread_t t1, ACE_hthread_t t2) -{ -#if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_TID_T) && !defined (ACE_HAS_PTHREAD_EQUAL) - return t1 == t2; // I hope these aren't structs! -# elif defined (pthread_equal) - // If it's a macro we can't say "::pthread_equal"... - return pthread_equal (t1, t2); -# else - return ::pthread_equal (t1, t2); -# endif /* pthread_equal */ -#else /* For STHREADS, WTHREADS, and VXWORKS ... */ - // Hum, Do we need to treat WTHREAD differently? - return t1 == t2; -#endif /* ACE_HAS_DCETHREADS */ -} - -ACE_INLINE int -ACE_OS::thr_getconcurrency (void) -{ - // ACE_TRACE ("ACE_OS::thr_getconcurrency"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - return ::thr_getconcurrency (); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) || defined (VXWORKS) - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_getprio (ACE_hthread_t thr_id, int &prio) -{ - // ACE_TRACE ("ACE_OS::thr_getprio"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getprio (thr_id, &prio), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || (defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_SETSCHED)) - -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - int result; - result = ::pthread_getprio (thr_id); - if (result != -1) - { - prio = result; - return 0; - } - else - return -1; -# else - - struct sched_param param; - int result; - int policy = 0; - - ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (thr_id, &policy, ¶m), - result), int, - -1, result); - prio = param.sched_priority; - return result; -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_WTHREADS) - prio = ::GetThreadPriority (thr_id); - if (prio == THREAD_PRIORITY_ERROR_RETURN) - ACE_FAIL_RETURN (-1); - else - return 0; -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::taskPriorityGet (thr_id, &prio), ace_result_), int, -1); -# else - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (prio); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (prio); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - - -ACE_INLINE void -ACE_OS::thr_self (ACE_hthread_t &self) -{ - // ACE_TRACE ("ACE_OS::thr_self"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) - // Note, don't use "::" here since the following call is often a macro. - self = pthread_self (); -# elif defined (ACE_HAS_THREAD_SELF) - self = ::thread_self (); -# elif defined (ACE_HAS_PTHREADS) - // Note, don't use "::" here since the following call is often a macro. - self = pthread_self (); -# elif defined (ACE_HAS_STHREADS) - self = ::thr_self (); -# elif defined (ACE_HAS_WTHREADS) - self = ::GetCurrentThread (); -# elif defined (VXWORKS) - self = ::taskIdSelf (); -# endif /* ACE_HAS_STHREADS */ -#else - self = 1; // Might as well make it the main thread ;-) -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE ACE_thread_t -ACE_OS::thr_self (void) -{ - // ACE_TRACE ("ACE_OS::thr_self"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - // Note, don't use "::" here since the following call is often a macro. - ACE_OSCALL_RETURN (pthread_self (), int, -1); -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (::thr_self (), int, -1); -# elif defined (ACE_HAS_WTHREADS) - return ::GetCurrentThreadId (); -# elif defined (VXWORKS) - return ::taskName (::taskIdSelf ()); -# endif /* ACE_HAS_STHREADS */ -#else - return 1; // Might as well make it the first thread ;-) -#endif /* ACE_HAS_THREADS */ -} - -#if defined (ACE_HAS_TSS_EMULATION) -ACE_INLINE -void **& -ACE_TSS_Emulation::tss_base () -{ -# if defined (VXWORKS) - return ((void **&) taskIdCurrent->spare4); -# else - return tss_collection_ [ACE_OS::thr_self ()]; -# endif /* VXWORKS */ -} - -ACE_INLINE -u_int -ACE_TSS_Emulation::total_keys () -{ - return total_keys_; -} - -ACE_INLINE -int -ACE_TSS_Emulation::next_key (ACE_thread_key_t &key) -{ - if (total_keys_ < ACE_TSS_THREAD_KEYS_MAX) - { -# if defined (ACE_HAS_NONSCALAR_THREAD_KEY_T) - ACE_OS::memset (&key, 0, sizeof (ACE_thread_key_t)); - ACE_OS::memcpy (&key, &total_keys_, sizeof (u_int)); -# else - key = total_keys_; -# endif /* ACE_HAS_NONSCALAR_THREAD_KEY_T */ - - ++total_keys_; - return 0; - } - else - { - key = ACE_OS::NULL_key; - return -1; - } -} - -ACE_INLINE -ACE_TSS_Emulation::ACE_TSS_DESTRUCTOR -ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key) -{ - ACE_KEY_INDEX (key_index, key); - return tss_destructor_ [key_index]; -} - -ACE_INLINE -void -ACE_TSS_Emulation::tss_destructor (const ACE_thread_key_t key, - ACE_TSS_DESTRUCTOR destructor) -{ - ACE_KEY_INDEX (key_index, key); - tss_destructor_ [key_index] = destructor; -} - -ACE_INLINE -void *& -ACE_TSS_Emulation::ts_object (const ACE_thread_key_t key) -{ - ACE_KEY_INDEX (key_index, key); - return tss_base ()[key_index]; -} - -#endif /* ACE_HAS_TSS_EMULATION */ - -ACE_INLINE int -ACE_OS::thr_getspecific (ACE_thread_key_t key, void **data) -{ - // ACE_TRACE ("ACE_OS::thr_getspecific"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_TSS_EMULATION) - ACE_KEY_INDEX (key_index, key); - if (key_index >= ACE_TSS_Emulation::total_keys ()) - { - errno = EINVAL; - data = 0; - return -1; - } - else - { - *data = ACE_TSS_Emulation::ts_object (key); - return 0; - } -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_getspecific (key, data), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if !defined (ACE_HAS_FSU_PTHREADS) && !defined (ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR) - // Note, don't use "::" here since the following call is often a macro. - *data = pthread_getspecific (key); -# elif !defined (ACE_HAS_FSU_PTHREADS) && defined (ACE_HAS_SETKIND_NP) || defined (ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR) - ::pthread_getspecific (key, data); -# else /* ACE_HAS_FSU_PTHREADS */ - ::pthread_getspecific (key, data); -# endif /* ACE_HAS_FSU_PTHREADS */ - return 0; -# elif defined (ACE_HAS_WTHREADS) - - // The following handling of errno is designed like this due to - // ACE_Log_Msg::instance calling ACE_OS::thr_getspecific. - // Basically, it is ok for a system call to reset the error to zero. - // (It really shouldn't, though). However, we have to remember to - // store errno *immediately* after an error is detected. Calling - // ACE_ERROR_RETURN((..., errno)) did not work because errno was - // cleared before being passed to the thread-specific instance of - // ACE_Log_Msg. The workaround for was to make it so - // thr_getspecific did not have the side effect of clearing errno. - // The correct fix is for ACE_ERROR_RETURN to store errno - //(actually ACE_OS::last_error) before getting the ACE_Log_Msg tss - // pointer, which is how it is implemented now. However, other uses - // of ACE_Log_Msg may not work correctly, so we're keeping this as - // it is for now. - - int error = errno; - *data = ::TlsGetValue (key); -# if !defined (ACE_HAS_WINCE) - if (*data == 0 && (errno = ::GetLastError ()) != NO_ERROR) - - return -1; - else -# endif /* ACE_HAS_WINCE */ - { - errno = error; - return 0; - } -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (key); - ACE_UNUSED_ARG (data); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_join (ACE_thread_t waiter_id, - ACE_thread_t *thr_id, - void **status) -{ - // ACE_TRACE ("ACE_OS::thr_join"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (waiter_id, thr_id, status), ace_result_), - int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (thr_id); -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_join (waiter_id, status), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_join (waiter_id, status), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (waiter_id); - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (status); - - // This could be implemented if the DLL-Main function or the - // task exit base class some log the threads which have exited - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (waiter_id); - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (status); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (waiter_id); - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (status); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_join (ACE_hthread_t thr_handle, - void **status) -{ - // ACE_TRACE ("ACE_OS::thr_join"); - thr_handle = thr_handle; - status = status; -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_join (thr_handle, 0, status), ace_result_), - int, -1); -# elif (defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS)) && !defined (ACE_HAS_THREAD_SELF) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_join (thr_handle, status), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_join (thr_handle, status), ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_WTHREADS) - void *local_status = 0; - - // Make sure that status is non-NULL. - if (status == 0) - status = &local_status; - - if (::WaitForSingleObject (thr_handle, INFINITE) == WAIT_OBJECT_0 - && ::GetExitCodeThread (thr_handle, (LPDWORD) status) != FALSE) - { - ::CloseHandle (thr_handle); - return 0; - } - ACE_FAIL_RETURN (-1); - /* NOTREACHED */ -# elif defined (VXWORKS) - // VxWorks could possibly support thread join with - // ::taskSafe()/::taskUnsafe(). But, a task can only calls those - // functions on itself. Until there's really a need . . . - ACE_UNUSED_ARG (thr_handle); - ACE_UNUSED_ARG (status); - ACE_NOTSUP_RETURN (-1); -# else - ACE_UNUSED_ARG (thr_handle); - ACE_UNUSED_ARG (status); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (thr_handle); - ACE_UNUSED_ARG (status); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_setcancelstate (int new_state, int *old_state) -{ - // ACE_TRACE ("ACE_OS::thr_setcancelstate"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || (defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_STHREADS)) -# if defined (ACE_HAS_DCETHREADS) - ACE_UNUSED_ARG (old_state); - ACE_OSCALL_RETURN (::pthread_setcancel (new_state), int, -1); -# else /* ACE_HAS_DCETHREADS */ - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setcancelstate (new_state, old_state), - ace_result_), - int, -1); -# endif /* ACE_HAS_DCETHREADS */ -# elif defined (ACE_HAS_PTHREADS) - // I didn't manage to find pthread_cancel anywhere in the MIT pthread - // implementation. So I'll just leave this instead, and see what - // breaks. -- jwr - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (new_state); - ACE_UNUSED_ARG (old_state); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_setcanceltype (int new_type, int *old_type) -{ - // ACE_TRACE ("ACE_OS::thr_setcanceltype"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || (defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_STHREADS)) -# if defined (ACE_HAS_DCETHREADS) - ACE_UNUSED_ARG (old_type); - ACE_OSCALL_RETURN (::pthread_setcancel (new_type), int, -1); -# else /* ACE_HAS_DCETHREADS */ - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setcanceltype (new_type, old_type), - ace_result_), - int, -1); -# endif /* ACE_HAS_DCETHREADS */ -# elif defined (ACE_HAS_PTHREADS) - // I didn't manage to find pthread_cancel anywhere int the MIT pthread - // implementation. So I'll just leave this instead, and see what - // breaks. -- jwr - ACE_UNUSED_ARG (new_type); - ACE_UNUSED_ARG (old_type); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (new_type); - ACE_UNUSED_ARG (old_type); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (new_type); - ACE_UNUSED_ARG (old_type); - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (new_type); - ACE_UNUSED_ARG (old_type); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (new_type); - ACE_UNUSED_ARG (old_type); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_cancel (ACE_thread_t thr_id) -{ - // ACE_TRACE ("ACE_OS::thr_cancel"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_PTHREAD_CANCEL) -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - ACE_OSCALL_RETURN (::pthread_cancel (thr_id), int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_cancel (thr_id), - ace_result_), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_PTHREADS) - // I didn't manage to find pthread_cancel anywhere int the MIT - // pthread implementation. So I'll just leave this instead, and - // see what breaks. -- jwr - ACE_UNUSED_ARG (thr_id); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_STHREADS) - ACE_UNUSED_ARG (thr_id); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (thr_id); - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (thr_id); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (thr_id); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::sigwait (sigset_t *set, int *sig) -{ - // ACE_TRACE ("ACE_OS::sigwait"); - int local_sig; - if (sig == 0) - sig = &local_sig; -#if defined (ACE_HAS_THREADS) -# if defined (__FreeBSD__) || defined (CHORUS) - ACE_UNUSED_ARG (set); - ACE_NOTSUP_RETURN (-1); -# elif (defined (ACE_HAS_STHREADS) && (_POSIX_C_SOURCE - 0 < 199506L)) || defined (ACE_HAS_FSU_PTHREADS) - *sig = ::sigwait (set); - return *sig; -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_ONEARG_SIGWAIT) - *sig = sigwait (set); - return *sig; -# else /* ACE_HAS_ONEARG_SETWAIT */ -# if defined (__Lynx__) - // Second arg is a void **, which we don't need (the selected - // signal number is returned). - *sig = ::sigwait (set, 0); - return *sig; -# elif defined (DIGITAL_UNIX) && defined (__DECCXX_VER) - // DEC cxx (but not g++) needs this direct call to its internal - // sigwait (). This allows us to #undef sigwait, so that we can - // have ACE_OS::sigwait. cxx gets confused by ACE_OS::sigwait if - // sigwait is _not_ #undef'ed. - errno = ::_Psigwait (set, sig); - return errno == 0 ? *sig : -1; -# else /* ! __Lynx __ && ! (DIGITAL_UNIX && __DECCXX_VER) */ - errno = ::sigwait (set, sig); - return errno == 0 ? *sig : -1; -# endif /* ! __Lynx__ */ -# endif /* ACE_HAS_ONEARG_SIGWAIT */ -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (set); - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - // 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 /* __FreeBSD__ */ -#else - ACE_UNUSED_ARG (set); - ACE_UNUSED_ARG (sig); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE void -ACE_OS::thr_testcancel (void) -{ - // ACE_TRACE ("ACE_OS::thr_testcancel"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) || (defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_STHREADS)) - ::pthread_testcancel (); -# elif defined (ACE_HAS_PTHREADS) - // I didn't manage to find pthread_cancel anywhere int the MIT - // pthread implementation. So I'll just leave this instead, and - // see what breaks. -- jwr -# elif defined (ACE_HAS_STHREADS) -# elif defined (ACE_HAS_WTHREADS) -# elif defined (VXWORKS) - // no-op: can't use ACE_NOTSUP_RETURN because there is no return value -# endif /* ACE_HAS_STHREADS */ -#else -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_sigsetmask (int how, - const sigset_t *nsm, - sigset_t *osm) -{ - // ACE_TRACE ("ACE_OS::thr_sigsetmask"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_LACKS_PTHREAD_THR_SIGSETMASK) - // DCE threads and Solaris 2.4 have no such function. - ACE_UNUSED_ARG (osm); - ACE_UNUSED_ARG (nsm); - ACE_UNUSED_ARG (how); - - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_SIGTHREADMASK) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::sigthreadmask (how, nsm, osm), - ace_result_), int, -1); -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_sigsetmask (how, nsm, osm), - ace_result_), - int, -1); -# elif defined (ACE_HAS_PTHREAD_SIGMASK) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsm, osm), - ace_result_), int, -1); -# elif defined (ACE_HAS_PTHREADS) && !defined (ACE_HAS_FSU_PTHREADS) - // as far as I can tell, this is now pthread_sigaction() -- jwr - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigaction (how, nsm, osm), - ace_result_), int, -1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (osm); - ACE_UNUSED_ARG (nsm); - ACE_UNUSED_ARG (how); - - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - switch (how) - { - case SIG_BLOCK: - case SIG_UNBLOCK: - { - // get the old mask - *osm = ::sigsetmask (*nsm); - // 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 ? (*osm |= *nsm) : (*osm &= ~*nsm)); - break; - } - case SIG_SETMASK: - *osm = ::sigsetmask (*nsm); - break; - default: - return -1; - } - - return 0; -# else /* Should not happen. */ - ACE_UNUSED_ARG (how); - ACE_UNUSED_ARG (nsm); - ACE_UNUSED_ARG (osm); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_LACKS_PTHREAD_THR_SIGSETMASK */ -#else - ACE_UNUSED_ARG (how); - ACE_UNUSED_ARG (nsm); - ACE_UNUSED_ARG (osm); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_kill (ACE_thread_t thr_id, int signum) -{ - // ACE_TRACE ("ACE_OS::thr_kill"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_DCETHREADS) - ACE_UNUSED_ARG (signum); - ACE_OSCALL_RETURN (pthread_cancel (thr_id), int, -1); -# elif defined (ACE_HAS_PTHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_kill (thr_id, signum), - ace_result_), - int, -1); -# elif defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_kill (thr_id, signum), - ace_result_), - int, -1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (signum); - ACE_UNUSED_ARG (thr_id); - - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_hthread_t tid; - ACE_OSCALL (::taskNameToId (thr_id), int, ERROR, tid); - - if (tid == ERROR) - return -1; - else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::kill (tid, signum), ace_result_), - int, -1); - -# else /* This should not happen! */ - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (signum); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (signum); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE size_t -ACE_OS::thr_min_stack (void) -{ - // ACE_TRACE ("ACE_OS::thr_min_stack"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) -# if defined (ACE_HAS_THR_MINSTACK) - // Tandem did some weirdo mangling of STHREAD names... - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_minstack (), - ace_result_), - int, -1); -# else - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_min_stack (), - ace_result_), - int, -1); -# endif /* !ACE_HAS_THR_MINSTACK */ -# elif defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_IRIX62_THREADS) - return (size_t) ACE_OS::sysconf (_SC_THREAD_STACK_MIN); -# elif defined (PTHREAD_STACK_MIN) - return PTHREAD_STACK_MIN; -# else - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_IRIX62_THREADS */ -# elif defined (ACE_HAS_DCETHREADS) - ACE_NOTSUP_RETURN (0); -# elif defined (ACE_HAS_WTHREADS) - ACE_NOTSUP_RETURN (0); -# elif defined (VXWORKS) - TASK_DESC taskDesc; - STATUS status; - - ACE_hthread_t tid; - ACE_OS::thr_self (tid); - - ACE_OSCALL (ACE_ADAPT_RETVAL (::taskInfoGet (tid, &taskDesc), - status), - STATUS, -1, status); - return status == OK ? taskDesc.td_stackSize : 0; -# else /* Should not happen... */ - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_setconcurrency (int hint) -{ - // ACE_TRACE ("ACE_OS::thr_setconcurrency"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setconcurrency (hint), - ace_result_), - int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (hint); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - ACE_UNUSED_ARG (hint); - - ACE_NOTSUP_RETURN (-1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (hint); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (hint); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_setprio (ACE_hthread_t thr_id, int prio) -{ - // ACE_TRACE ("ACE_OS::thr_setprio"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_setprio (thr_id, prio), - ace_result_), - int, -1); -# elif defined (ACE_HAS_DCETHREADS) || (defined (ACE_HAS_PTHREADS) && !defined (ACE_LACKS_SETSCHED)) - -# if defined (ACE_HAS_DCE_DRAFT4_THREADS) - int result; - result = ::pthread_setprio(thr_id, prio); - return (result == -1 ? -1 : 0); -# else - struct sched_param param; - int policy = 0; - int result; - - ACE_OSCALL (ACE_ADAPT_RETVAL (::pthread_getschedparam (thr_id, &policy, ¶m), - result), // not sure if use of result here is cool, cjc - int, -1, result); - if (result == -1) - return result; // error in pthread_getschedparam - param.sched_priority = prio; - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_setschedparam (thr_id, policy, ¶m), - result), - int, -1); -# endif /* ACE_HAS_DCE_DRAFT4_THREADS */ -# elif defined (ACE_HAS_WTHREADS) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetThreadPriority (thr_id, prio), - ace_result_), - int, -1); -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::taskPrioritySet (thr_id, prio), - ace_result_), - int, -1); -# else - // For example, platforms that support Pthreads but LACK_SETSCHED. - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (prio); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (thr_id); - ACE_UNUSED_ARG (prio); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::thr_suspend (ACE_hthread_t target_thread) -{ - // ACE_TRACE ("ACE_OS::thr_suspend"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::thr_suspend (target_thread), ace_result_), int, -1); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) - ACE_UNUSED_ARG (target_thread); - ACE_NOTSUP_RETURN (-1); -# elif defined (ACE_HAS_WTHREADS) - if (::SuspendThread (target_thread) != ACE_SYSCALL_FAILED) - return 0; - else - ACE_FAIL_RETURN (-1); - /* NOTREACHED */ -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::taskSuspend (target_thread), ace_result_), int, -1); -# endif /* ACE_HAS_STHREADS */ -#else - ACE_UNUSED_ARG (target_thread); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE void -ACE_OS::thr_yield (void) -{ - // ACE_TRACE ("ACE_OS::thr_yield"); -#if defined (ACE_HAS_THREADS) -# if defined (ACE_HAS_STHREADS) - ::thr_yield (); -# elif defined (ACE_HAS_DCETHREADS) || defined (ACE_HAS_PTHREADS) -# if defined (ACE_HAS_IRIX62_THREADS) || defined (ACE_HAS_PTHREADS_1003_DOT_1C) - // Note - this is a POSIX.4 function - not a POSIX.1C function... - ::sched_yield (); -# elif defined (ACE_HAS_FSU_PTHREADS) || defined (ACE_HAS_YIELD_VOID_PTR) - ::pthread_yield (NULL); -# elif defined (ACE_LACKS_PTHREAD_YIELD) || defined (ACE_HAS_THR_YIELD) - ::thr_yield (); -# else - ::pthread_yield (); -# endif /* ACE_HAS_IRIX62_THREADS */ -# elif defined (ACE_HAS_WTHREADS) - ::Sleep (0); -# elif defined (VXWORKS) - // An argument of 0 to ::taskDelay doesn't appear to yield the - // current thread. - ::taskDelay (1); -# endif /* ACE_HAS_STHREADS */ -#else - ; -#endif /* ACE_HAS_THREADS */ -} - -ACE_INLINE int -ACE_OS::priority_control (ACE_idtype_t idtype, ACE_id_t id, int cmd, void *arg) -{ - // ACE_TRACE ("ACE_OS::priority_control"); -#if defined (ACE_HAS_PRIOCNTL) - ACE_OSCALL_RETURN (priocntl (idtype, id, cmd, ACE_static_cast (caddr_t, arg)), - int, -1); -#else /* ! ACE_HAS_PRIOCNTL*/ - ACE_UNUSED_ARG (idtype); - ACE_UNUSED_ARG (id); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (arg); - ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_PRIOCNTL*/ -} - -ACE_INLINE void -ACE_OS::rewind (FILE *fp) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::rewind"); - ::rewind (fp); -#else - // In WinCE, "FILE *" is actually a HANDLE. - ::SetFilePointer (fp, 0L, 0L, FILE_BEGIN); -#endif /* ! ACE_HAS_WINCE */ -} - -// This function returns the number of bytes in the file referenced by -// FD. - -ACE_INLINE long -ACE_OS::filesize (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::filesize"); -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (::GetFileSize (handle, NULL), long, -1); -#else /* !ACE_WIN32 */ - struct stat sb; - - return ACE_OS::fstat (handle, &sb) == -1 ? -1 : (long) sb.st_size; -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ssize_t -ACE_OS::readv (ACE_HANDLE handle, - struct iovec *iov, - int iovlen) -{ - // ACE_TRACE ("ACE_OS::readv"); - ACE_OSCALL_RETURN (::readv (handle, iov, iovlen), ssize_t, -1); -} - -ACE_INLINE ssize_t -ACE_OS::writev (ACE_HANDLE handle, - const struct iovec *iov, - int iovcnt) -{ - // ACE_TRACE ("ACE_OS::writev"); - ACE_OSCALL_RETURN (::writev (handle, (ACE_WRITEV_TYPE *) iov, iovcnt), int, -1); -} - -#if (defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0)) - -ACE_INLINE ssize_t -ACE_OS::readv (ACE_HANDLE handle, - WSABUF *buffers, - int n) -{ - ssize_t bytes_received = 0; - int result = ::WSARecv ((SOCKET) handle, - buffers, - n, - (DWORD *) &bytes_received, - 0, - 0, - 0); - if (result != 0) - { - errno = ::GetLastError (); - return -1; - } - else - return bytes_received; -} - -ACE_INLINE ssize_t -ACE_OS::writev (ACE_HANDLE handle, - const WSABUF *buffers, - int n) -{ - ssize_t bytes_sent = 0; - int result = ::WSASend ((SOCKET) handle, - (WSABUF *) buffers, - n, - (DWORD *) &bytes_sent, - 0, - 0, - 0); - if (result != 0) - { - errno = ::GetLastError (); - return -1; - } - else - return bytes_sent; -} - -#endif /* ACE_HAS_WINSOCK2 */ - -ACE_INLINE int -ACE_OS::poll (struct pollfd *pollfds, u_long len, ACE_Time_Value *timeout) -{ - // ACE_TRACE ("ACE_OS::poll"); -#if defined (ACE_HAS_POLL) - int to = timeout == 0 ? -1 : int (timeout->msec ()); - ACE_OSCALL_RETURN (::poll (pollfds, len, to), int, -1); -#else - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (pollfds); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POLL */ -} - -ACE_INLINE int -ACE_OS::poll (struct pollfd *pollfds, u_long len, const ACE_Time_Value &timeout) -{ - // ACE_TRACE ("ACE_OS::poll"); -#if defined (ACE_HAS_POLL) - ACE_OSCALL_RETURN (::poll (pollfds, len, int (timeout.msec ())), int, -1); -#else - ACE_UNUSED_ARG (timeout); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (pollfds); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_POLL */ -} - -ACE_INLINE int -ACE_OS::t_accept (ACE_HANDLE handle, int reshandle, - struct t_call *call) -{ - // ACE_TRACE ("ACE_OS::t_accept"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_accept (handle, reshandle, call), int, -1); -#else - ACE_UNUSED_ARG (call); - ACE_UNUSED_ARG (reshandle); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE char * -ACE_OS::t_alloc (ACE_HANDLE handle, int struct_type, - int fields) -{ - // ACE_TRACE ("ACE_OS::t_alloc"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_alloc (handle, struct_type, fields), - char *, 0); -#else - ACE_UNUSED_ARG (fields); - ACE_UNUSED_ARG (struct_type); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_bind (ACE_HANDLE handle, struct t_bind *req, - struct t_bind *ret) -{ - // ACE_TRACE ("ACE_OS::t_bind"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_bind (handle, req, ret), int, -1); -#else - ACE_UNUSED_ARG (ret); - ACE_UNUSED_ARG (req); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_close (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_close"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_close (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_connect(int fildes, - struct t_call *sndcall, - struct t_call *rcvcall) -{ - // ACE_TRACE ("ACE_OS::t_connect"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_connect (fildes, sndcall, rcvcall), int, -1); -#else - ACE_UNUSED_ARG (fildes); - ACE_UNUSED_ARG (sndcall); - ACE_UNUSED_ARG (rcvcall); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE void -ACE_OS::t_error (char *errmsg) -{ - // ACE_TRACE ("ACE_OS::t_error"); -#if defined (ACE_HAS_TLI) - ::t_error (errmsg); -#else - ACE_UNUSED_ARG (errmsg); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_free (char *ptr, int struct_type) -{ - // ACE_TRACE ("ACE_OS::t_free"); -#if defined (ACE_HAS_TLI) - if (ptr != 0) - return 0; - ACE_OSCALL_RETURN (::t_free (ptr, struct_type), int, -1); -#else - ACE_UNUSED_ARG (struct_type); - ACE_UNUSED_ARG (ptr); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_getinfo (ACE_HANDLE handle, struct t_info *info) -{ - // ACE_TRACE ("ACE_OS::t_getinfo"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_getinfo (handle, info), int, -1); -#else - ACE_UNUSED_ARG (info); - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_getname (ACE_HANDLE handle, - struct netbuf *namep, - int type) -{ - // ACE_TRACE ("ACE_OS::t_getname"); -#if defined (ACE_HAS_SVR4_TLI) - ACE_OSCALL_RETURN (::t_getname (handle, namep, type), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (namep); - ACE_UNUSED_ARG (type); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::t_getstate (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_getstate"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_getstate (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_listen (ACE_HANDLE handle, struct t_call *call) -{ - // ACE_TRACE ("ACE_OS::t_listen"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_listen (handle, call), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (call); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_look (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_look"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_look (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_open (char *path, int oflag, struct t_info *info) -{ - // ACE_TRACE ("ACE_OS::t_open"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_open (path, oflag, info), int, -1); -#else - ACE_UNUSED_ARG (path); - ACE_UNUSED_ARG (oflag); - ACE_UNUSED_ARG (info); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_optmgmt (ACE_HANDLE handle, - struct t_optmgmt *req, - struct t_optmgmt *ret) -{ - // ACE_TRACE ("ACE_OS::t_optmgmt"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_optmgmt (handle, req, ret), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (req); - ACE_UNUSED_ARG (ret); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_rcv (ACE_HANDLE handle, - char *buf, - unsigned nbytes, - int *flags) -{ - // ACE_TRACE ("ACE_OS::t_rcv"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_rcv (handle, buf, nbytes, flags), - int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (nbytes); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_rcvdis (ACE_HANDLE handle, struct t_discon *discon) -{ - // ACE_TRACE ("ACE_OS::t_rcvdis"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_rcvdis (handle, discon), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (discon); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_rcvrel (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_rcvrel"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_rcvrel (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_rcvudata (ACE_HANDLE handle, - struct t_unitdata *unitdata, - int *flags) -{ - // ACE_TRACE ("ACE_OS::t_rcvudata"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_rcvudata (handle, unitdata, flags), - int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (unitdata); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_rcvuderr (ACE_HANDLE handle, struct t_uderr *uderr) -{ - // ACE_TRACE ("ACE_OS::t_rcvuderr"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_rcvuderr (handle, uderr), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (uderr); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_snd (ACE_HANDLE handle, char *buf, unsigned nbytes, int flags) -{ - // ACE_TRACE ("ACE_OS::t_snd"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_snd (handle, buf, nbytes, flags), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (nbytes); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_snddis (ACE_HANDLE handle, struct t_call *call) -{ - // ACE_TRACE ("ACE_OS::t_snddis"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_snddis (handle, call), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (call); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_sndrel (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_sndrel"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_sndrel (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_sync (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_sync"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_sync (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE int -ACE_OS::t_unbind (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::t_unbind"); -#if defined (ACE_HAS_TLI) - ACE_OSCALL_RETURN (::t_unbind (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_TLI */ -} - -ACE_INLINE char * -ACE_OS::compile (const char *instring, char *expbuf, char *endbuf) -{ - // ACE_TRACE ("ACE_OS::compile"); -#if defined (ACE_HAS_REGEX) - ACE_OSCALL_RETURN (::compile (instring, expbuf, endbuf), char *, 0); -#else - ACE_UNUSED_ARG (instring); - ACE_UNUSED_ARG (expbuf); - ACE_UNUSED_ARG (endbuf); - - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_REGEX */ -} - -ACE_INLINE int -ACE_OS::close (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::close"); -#if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CloseHandle (handle), ace_result_), int, -1); -#else - ACE_OSCALL_RETURN (::close (handle), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::closesocket (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::close"); -#if defined (ACE_WIN32) - ACE_SOCKCALL_RETURN (::closesocket ((SOCKET) handle), int, -1); -#else - ACE_OSCALL_RETURN (::close (handle), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::access (const char *path, int amode) -{ - // ACE_TRACE ("ACE_OS::access"); -#if defined (ACE_LACKS_ACCESS) - ACE_UNUSED_ARG (path); - ACE_UNUSED_ARG (amode); - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_WIN32) - ACE_OSCALL_RETURN (::_access (path, amode), int, -1); -#else - ACE_OSCALL_RETURN (::access (path, amode), int, -1); -#endif /* ACE_LACKS_ACCESS */ -} - - -ACE_INLINE ACE_HANDLE -ACE_OS::creat (LPCTSTR filename, mode_t mode) -{ - // ACE_TRACE ("ACE_OS::creat"); -#if defined (ACE_WIN32) - return ACE_OS::open (filename, mode); -#else - ACE_OSCALL_RETURN (::creat (filename, mode), - ACE_HANDLE, ACE_INVALID_HANDLE); -#endif /* ACE_WIN32 */ -} - -#if !defined (ACE_WIN32) && !defined (VXWORKS) && !defined (CHORUS) -// Don't inline on those platforms because this function contains -// string literals, and some compilers, e.g., g++, don't handle those -// efficiently in unused inline functions. -ACE_INLINE int -ACE_OS::uname (struct utsname *name) -{ - // ACE_TRACE ("ACE_OS::uname"); - ACE_OSCALL_RETURN (::uname (name), int, -1); -} -#endif /* ! ACE_WIN32 && ! VXWORKS && ! CHORUS */ - -ACE_INLINE int -ACE_OS::hostname (char name[], size_t maxnamelen) -{ - // ACE_TRACE ("ACE_OS::hostname"); -#if !defined (ACE_HAS_WINCE) -# if defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetComputerNameA (name, LPDWORD (&maxnamelen)), - ace_result_), int, -1); -# elif defined (VXWORKS) - ACE_OSCALL_RETURN (::gethostname (name, maxnamelen), int, -1); -# elif defined (CHORUS) - if (::gethostname (name, maxnamelen) == -1) - return -1; - else - { - if (ACE_OS::strlen (name) == 0) - { - // Try the HOST environment variable. - char *const hostenv = ::getenv ("HOST"); - if (hostenv) - ACE_OS::strncpy (name, hostenv, maxnamelen); - } - return 0; - } -# else /* !ACE_WIN32 */ - struct utsname host_info; - - if (ACE_OS::uname (&host_info) == -1) - return -1; - else - { - ACE_OS::strncpy (name, host_info.nodename, maxnamelen); - return 0; - } -# endif /* ACE_WIN32 */ -#else /* ACE_HAS_WINCE */ - // @@ Don'T know how to implement this (yet.) Can probably get around - // this by peeking into the Register set. - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (maxnamelen); - ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::msgctl (int msqid, int cmd, struct msqid_ds *val) -{ - // ACE_TRACE ("ACE_OS::msgctl"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::msgctl (msqid, cmd, val), int, -1); -#else - ACE_UNUSED_ARG (msqid); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (val); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::msgget (key_t key, int msgflg) -{ - // ACE_TRACE ("ACE_OS::msgget"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::msgget (key, msgflg), int, -1); -#else - ACE_UNUSED_ARG (key); - ACE_UNUSED_ARG (msgflg); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::msgrcv (int int_id, void *buf, size_t len, - long type, int flags) -{ - // ACE_TRACE ("ACE_OS::msgrcv"); -#if defined (ACE_HAS_SYSV_IPC) -# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::msgrcv (int_id, (msgbuf *) buf, len, type, flags), - int, -1); -# else - ACE_OSCALL_RETURN (::msgrcv (int_id, buf, len, type, flags), - int, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#else - ACE_UNUSED_ARG (int_id); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::msgsnd (int int_id, const void *buf, size_t len, int flags) -{ - // ACE_TRACE ("ACE_OS::msgsnd"); -#if defined (ACE_HAS_SYSV_IPC) -# if defined (ACE_HAS_NONCONST_MSGSND) - ACE_OSCALL_RETURN (::msgsnd (int_id, (void *) buf, len, flags), int, -1); -# elif defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::msgsnd (int_id, (msgbuf *) buf, len, flags), int, -1); -# else - ACE_OSCALL_RETURN (::msgsnd (int_id, buf, len, flags), int, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES || ACE_HAS_NONCONST_MSGSND */ -#else - ACE_UNUSED_ARG (int_id); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE u_int -ACE_OS::alarm (u_int secs) -{ - // ACE_TRACE ("ACE_OS::alarm"); - -#if defined (ACE_WIN32) || defined (VXWORKS) || defined (CHORUS) - ACE_UNUSED_ARG (secs); - - ACE_NOTSUP_RETURN (0); -#else - return ::alarm (secs); -#endif /* ACE_WIN32 || VXWORKS || CHORUS */ -} - -ACE_INLINE u_int -ACE_OS::ualarm (u_int usecs, u_int interval) -{ - // ACE_TRACE ("ACE_OS::ualarm"); - -#if defined (ACE_HAS_UALARM) - return ::ualarm (usecs, interval); -#elif !defined (ACE_LACKS_UNIX_SIGNALS) - ACE_UNUSED_ARG (interval); - return ::alarm (usecs * ACE_ONE_SECOND_IN_USECS); -#else - ACE_UNUSED_ARG (usecs); - ACE_UNUSED_ARG (interval); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_UALARM */ -} - -ACE_INLINE u_int -ACE_OS::ualarm (const ACE_Time_Value &tv, - const ACE_Time_Value &tv_interval) -{ - // ACE_TRACE ("ACE_OS::ualarm"); - -#if defined (ACE_HAS_UALARM) - u_int usecs = (tv.sec () * ACE_ONE_SECOND_IN_USECS) + tv.usec (); - u_int interval = (tv_interval.sec () * ACE_ONE_SECOND_IN_USECS) + tv_interval.usec (); - return ::ualarm (usecs, interval); -#elif !defined (ACE_LACKS_UNIX_SIGNALS) - ACE_UNUSED_ARG (tv_interval); - return ::alarm (tv.sec ()); -#else - ACE_UNUSED_ARG (tv_interval); - ACE_UNUSED_ARG (tv); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_UALARM */ -} - -ACE_INLINE int -ACE_OS::dlclose (ACE_SHLIB_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::dlclose"); -#if defined (ACE_HAS_SVR4_DYNAMIC_LINKING) - -# if !defined (ACE_HAS_AUTOMATIC_INIT_FINI) - // SunOS4 does not automatically call _fini()! - void *ptr; - - ACE_OSCALL (::dlsym (handle, "_fini"), void *, 0, ptr); - - if (ptr != 0) - (*((int (*)(void)) ptr)) (); // Call _fini hook explicitly. -# endif /* ACE_HAS_AUTOMATIC_INIT_FINI */ - ACE_OSCALL_RETURN (::dlclose (handle), int, -1); -#elif defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FreeLibrary (handle), ace_result_), int, -1); -#elif defined (__hpux) -# if defined(__GNUC__) || __cplusplus >= 199707L - ACE_OSCALL_RETURN (::shl_unload(handle), int, -1); -# else - ACE_OSCALL_RETURN (::cxxshl_unload(handle), int, -1); -# endif /* aC++ vs. Hp C++ */ -#else - ACE_UNUSED_ARG (handle); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */ -} - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE char * -ACE_OS::dlerror (void) -{ - // ACE_TRACE ("ACE_OS::dlerror"); -# if defined (AC1E_HAS_SVR4_DYNAMIC_LINKING) - ACE_OSCALL_RETURN ((char *)::dlerror (), char *, 0); -# elif defined (__hpux) - ACE_OSCALL_RETURN (::strerror(errno), char *, 0); -# elif defined (ACE_WIN32) -# if !defined (UNICODE) - static TCHAR buf[128]; - FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, buf, - sizeof buf, NULL); - return buf; -# else - static char cbuf[128]; - TCHAR buf[128]; - FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), 0, buf, - sizeof buf, NULL); - for (size_t i = 0; ((cbuf[i] = (char) buf[i]) != 0) && i < 128; i++) ; - return cbuf; -# endif /* UNICODE */ -# else - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */ -} - -ACE_INLINE ACE_SHLIB_HANDLE -ACE_OS::dlopen (ACE_DL_TYPE filename, int mode) -{ - // ACE_TRACE ("ACE_OS::dlopen"); -# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING) - void *handle; -# if defined (ACE_HAS_SGIDLADD) - ACE_OSCALL (::sgidladd (filename, mode), void *, 0, handle); -# else - ACE_OSCALL (::dlopen (filename, mode), void *, 0, handle); -# endif /* ACE_HAS_SGIDLADD */ -# if !defined (ACE_HAS_AUTOMATIC_INIT_FINI) - if (handle != 0) - { - void *ptr; - // Some systems (e.g., SunOS4) do not automatically call _init(), so - // we'll have to call it manually. - - ACE_OSCALL (::dlsym (handle, "_init"), void *, 0, ptr); - - if (ptr != 0 && (*((int (*)(void)) ptr)) () == -1) // Call _init hook explicitly. - { - // Close down the handle to prevent leaks. - ::dlclose (handle); - return 0; - } - } -# endif /* ACE_HAS_AUTOMATIC_INIT_FINI */ - return handle; -# elif defined (ACE_WIN32) - ACE_UNUSED_ARG (mode); - - ACE_WIN32CALL_RETURN (::LoadLibraryA (filename), ACE_SHLIB_HANDLE, 0); -# elif defined (__hpux) - -# if defined(__GNUC__) || __cplusplus >= 199707L - ACE_OSCALL_RETURN (::shl_load(filename, mode, 0L), ACE_SHLIB_HANDLE, 0); -# else - ACE_OSCALL_RETURN (::cxxshl_load(filename, mode, 0L), ACE_SHLIB_HANDLE, 0); -# endif /* aC++ vs. Hp C++ */ - -# else - ACE_UNUSED_ARG (filename); - ACE_UNUSED_ARG (mode); - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */ -} - -ACE_INLINE void * -ACE_OS::dlsym (ACE_SHLIB_HANDLE handle, ACE_DL_TYPE symbolname) -{ - // ACE_TRACE ("ACE_OS::dlsym"); -# if defined (ACE_HAS_SVR4_DYNAMIC_LINKING) -# if defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::dlsym (handle, (char*) symbolname), void *, 0); -# elif defined (ACE_USES_ASM_SYMBOL_IN_DLSYM) - int l = strlen(symbolname) + 2; - char* asm_symbolname; - ACE_NEW_RETURN(asm_symbolname, char[l], 0); - ACE_OS::strcpy (asm_symbolname, "_") ; - ACE_OS::strcpy (asm_symbolname + 1, symbolname) ; - void* ace_result; - ACE_OSCALL (::dlsym (handle, asm_symbolname), void *, 0, - ace_result); - delete[] asm_symbolname; - return ace_result; -# else - ACE_OSCALL_RETURN (::dlsym (handle, symbolname), void *, 0); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -# elif defined (ACE_WIN32) - ACE_WIN32CALL_RETURN (::GetProcAddress (handle, symbolname), void *, 0); -# elif defined (__hpux) - - void *value; - int status; - shl_t _handle = handle; - ACE_OSCALL (::shl_findsym(&_handle, symbolname, TYPE_UNDEFINED, &value), int, -1, status); - return status == 0 ? value : NULL; - -# else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (symbolname); - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_SVR4_DYNAMIC_LINKING */ -} -#else /* !ACE_HAS_WINCE */ -// UNDER_CE -ACE_INLINE wchar_t * -ACE_OS::dlerror (void) -{ - ACE_NOTSUP_RETURN (0); -} - -ACE_INLINE void * -ACE_OS::dlsym (ACE_SHLIB_HANDLE handle, ACE_WIDE_DL_TYPE symbolname) -{ - // ACE_TRACE ("ACE_OS::dlsym"); - ACE_WIN32CALL_RETURN (::GetProcAddress (handle, symbolname), void *, 0); -} -#endif /* ACE_HAS_WINCE */ - -ACE_INLINE void -ACE_OS::exit (int status) -{ - // ACE_TRACE ("ACE_OS::exit"); -#if !defined (ACE_HAS_WINCE) -# if defined (ACE_WIN32) - ::ExitProcess ((UINT) status); -# elif defined (ACE_PSOSIM) - ::u_exit (status); -# else - ::exit (status); -# endif /* ACE_WIN32 */ -#else - // @@ This is not exactly the same as ExitProcess. But this is the - // closest one I can get. - ::TerminateProcess (::GetCurrentProcess (), status); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::step (const char *str, char *expbuf) -{ - // ACE_TRACE ("ACE_OS::step"); -#if defined (ACE_HAS_REGEX) - ACE_OSCALL_RETURN (::step (str, expbuf), int, -1); -#else - ACE_UNUSED_ARG (str); - ACE_UNUSED_ARG (expbuf); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_REGEX */ -} - -ACE_INLINE long -ACE_OS::sysinfo (int cmd, char *buf, long count) -{ - // ACE_TRACE ("ACE_OS::sysinfo"); -#if defined (ACE_HAS_SYSINFO) - ACE_OSCALL_RETURN (::sysinfo (cmd, buf, count), long, -1); -#else - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (count); - - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_SYSINFO */ -} - -ACE_INLINE ssize_t -ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte) -{ - // ACE_TRACE ("ACE_OS::write"); -#if defined (ACE_WIN32) - DWORD bytes_written; // This is set to 0 byte WriteFile. - - if (::WriteFile (handle, buf, nbyte, &bytes_written, 0)) - return (ssize_t) bytes_written; - else - ACE_FAIL_RETURN (-1); -#else -# if defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::write (handle, (const char *) buf, nbyte), ssize_t, -1); -# elif defined (ACE_HAS_CHARPTR_SOCKOPT) - ACE_OSCALL_RETURN (::write (handle, (char *) buf, nbyte), ssize_t, -1); -# else - ACE_OSCALL_RETURN (::write (handle, buf, nbyte), ssize_t, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ssize_t -ACE_OS::write (ACE_HANDLE handle, const void *buf, size_t nbyte, - ACE_OVERLAPPED *overlapped) -{ - // ACE_TRACE ("ACE_OS::write"); - overlapped = overlapped; -#if defined (ACE_WIN32) - DWORD bytes_written; // This is set to 0 byte WriteFile. - - if (::WriteFile (handle, buf, nbyte, &bytes_written, overlapped)) - return (ssize_t) bytes_written; - else - return -1; -#else - return ACE_OS::write (handle, buf, nbyte); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ssize_t -ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len) -{ - // ACE_TRACE ("ACE_OS::read"); -#if defined (ACE_WIN32) - DWORD ok_len; - if (::ReadFile (handle, buf, len, &ok_len, 0)) - return (ssize_t) ok_len; - else - ACE_FAIL_RETURN (-1); -#else -# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_HAS_CHARPTR_SOCKOPT) - ACE_OSCALL_RETURN (::read (handle, (char *) buf, len), ssize_t, -1); -# else - ACE_OSCALL_RETURN (::read (handle, buf, len), ssize_t, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ssize_t -ACE_OS::read (ACE_HANDLE handle, void *buf, size_t len, - ACE_OVERLAPPED *overlapped) -{ - // ACE_TRACE ("ACE_OS::read"); - overlapped = overlapped; -#if defined (ACE_WIN32) - DWORD ok_len; - return ::ReadFile (handle, buf, len, &ok_len, overlapped) ? (ssize_t) ok_len : -1; -#else - return ACE_OS::read (handle, buf, len); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::getmsg (ACE_HANDLE handle, - struct strbuf *ctl, - struct strbuf *data, - int *flags) -{ - // ACE_TRACE ("ACE_OS::getmsg"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::getmsg (handle, ctl, data, flags), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (ctl); - ACE_UNUSED_ARG (data); - ACE_UNUSED_ARG (flags); - - // I'm not sure how to implement this correctly. - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::getpmsg (ACE_HANDLE handle, - struct strbuf *ctl, - struct strbuf *data, - int *band, - int *flags) -{ - // ACE_TRACE ("ACE_OS::getpmsg"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::getpmsg (handle, ctl, data, band, flags), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (ctl); - ACE_UNUSED_ARG (data); - ACE_UNUSED_ARG (band); - ACE_UNUSED_ARG (flags); - - // I'm not sure how to implement this correctly. - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::getrusage (int who, struct rusage *ru) -{ - // ACE_TRACE ("ACE_OS::getrusage"); - -#if defined (ACE_HAS_SYSCALL_GETRUSAGE) - // This nonsense is necessary for HP/UX... - ACE_OSCALL_RETURN (::syscall (SYS_GETRUSAGE, who, ru), int, -1); -#elif defined (ACE_HAS_GETRUSAGE) -# if defined (ACE_WIN32) - ACE_UNUSED_ARG (who); - - FILETIME dummy_1, dummy_2; - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetProcessTimes (::GetCurrentProcess(), - &dummy_1, // start - &dummy_2, // exited - &ru->ru_stime, - &ru->ru_utime), - ace_result_), - int, -1); -# else -# if defined (ACE_HAS_RUSAGE_WHO_ENUM) - ACE_OSCALL_RETURN (::getrusage ((ACE_HAS_RUSAGE_WHO_ENUM) who, ru), int, -1); -# else - ACE_OSCALL_RETURN (::getrusage (who, ru), int, -1); -# endif /* ACE_HAS_RUSAGE_WHO_ENUM */ -# endif /* ACE_WIN32 */ -#else - who = who; - ru = ru; - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSCALL_GETRUSAGE */ -} - -ACE_INLINE int -ACE_OS::isastream (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::isastream"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::isastream (handle), int, -1); -#else - ACE_UNUSED_ARG (handle); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE void * -ACE_OS::mmap (void *addr, - size_t len, - int prot, - int flags, - ACE_HANDLE file_handle, - off_t off, - ACE_HANDLE *file_mapping, - LPSECURITY_ATTRIBUTES sa) -{ - // ACE_TRACE ("ACE_OS::mmap"); -#if defined (ACE_WIN32) - int nt_flags = 0; - ACE_HANDLE local_handle = ACE_INVALID_HANDLE; - - // Ensure that file_mapping is non-zero. - if (file_mapping == 0) - file_mapping = &local_handle; - - if (ACE_BIT_ENABLED (flags, MAP_PRIVATE)) - { - prot = PAGE_WRITECOPY; - nt_flags = FILE_MAP_COPY; - } - else if (ACE_BIT_ENABLED (flags, MAP_SHARED)) - { - if (ACE_BIT_ENABLED (prot, PAGE_READONLY)) - nt_flags = FILE_MAP_READ; - if (ACE_BIT_ENABLED (prot, PAGE_READWRITE)) - nt_flags = FILE_MAP_WRITE; - } - - // Only create a new handle if we didn't have a valid one passed in. - if (*file_mapping == ACE_INVALID_HANDLE) - *file_mapping = ::CreateFileMapping (file_handle, sa, - prot, 0, len, 0); - if (*file_mapping == 0) - ACE_FAIL_RETURN (MAP_FAILED); - -# if defined (ACE_OS_EXTRA_MMAP_FLAGS) - nt_flags |= ACE_OS_EXTRA_MMAP_FLAGS; -# endif - -# if !defined (ACE_HAS_WINCE) - void *addr_mapping = ::MapViewOfFileEx (*file_mapping, nt_flags, 0, - off, len, addr); -# else - ACE_UNUSED_ARG (addr); // WinCE doesn't allow specifying . - void *addr_mapping = ::MapViewOfFile (*file_mapping, nt_flags, 0, - off, len); -# endif /* ! ACE_HAS_WINCE */ - - // Only close this down if we used the temporary. - if (file_mapping == &local_handle) - ::CloseHandle (*file_mapping); - - if (addr_mapping == 0) - ACE_FAIL_RETURN (MAP_FAILED); - - else if (ACE_BIT_ENABLED (flags, MAP_FIXED) - && addr_mapping != addr) - { - errno = EINVAL; - return MAP_FAILED; - } - else - return addr_mapping; -#elif defined (__Lynx__) - // The LynxOS 2.5.0 mmap doesn't allow operations on plain - // file descriptors. So, create a shm object and use that. - ACE_UNUSED_ARG (sa); - - char name [128]; - sprintf (name, "%d", file_handle); - - // Assumes that this was called by ACE_Mem_Map, so &file_mapping != 0. - // Otherwise, we don't support the incomplete LynxOS mmap implementation. - // We do support it by creating a hidden shared memory object, and using - // that for the mapping. - if (!file_mapping || - (*file_mapping = ::shm_open (name, - O_RDWR | O_CREAT | O_TRUNC, - ACE_DEFAULT_FILE_PERMS)) == -1) - { - return MAP_FAILED; - } - else - { - // The size of the shared memory object must be explicitly set on LynxOS. - const off_t filesize = ACE_OS::filesize (file_handle); - if (::ftruncate (*file_mapping, filesize) == -1) - { - return MAP_FAILED; - } - else - { -# if defined (ACE_OS_EXTRA_MMAP_FLAGS) - flags |= ACE_OS_EXTRA_MMAP_FLAGS; -# endif - char *map = (char *) ::mmap ((ACE_MMAP_TYPE) addr, len, - prot, flags, *file_mapping, off); - if (map == MAP_FAILED) - { - return MAP_FAILED; - } - else - { - // Finally, copy the file contents to the shared memory object. - return ::read (file_handle, map, (int) filesize) == filesize - ? map : MAP_FAILED; - } - } - } -#elif !defined (ACE_LACKS_MMAP) - ACE_UNUSED_ARG (sa); - -# if defined (ACE_OS_EXTRA_MMAP_FLAGS) - flags |= ACE_OS_EXTRA_MMAP_FLAGS; -# endif - - file_mapping = file_mapping; - ACE_OSCALL_RETURN ((void *) ::mmap ((ACE_MMAP_TYPE) addr, len, - prot, flags, file_handle, off), - void *, MAP_FAILED); -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (prot); - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (file_handle); - ACE_UNUSED_ARG (off); - ACE_UNUSED_ARG (file_mapping); - ACE_UNUSED_ARG (sa); - ACE_NOTSUP_RETURN (MAP_FAILED); -#endif /*ACE_WIN32 */ -} - -// Implements simple read/write control for pages. Affects a page if -// part of the page is referenced. Currently PROT_READ, PROT_WRITE, -// and PROT_RDWR has been mapped in OS.h. This needn't have anything -// to do with a mmap region. - -ACE_INLINE int -ACE_OS::mprotect (void *addr, size_t len, int prot) -{ - // ACE_TRACE ("ACE_OS::mprotect"); -#if defined (ACE_WIN32) - DWORD dummy; // Sigh! - return ::VirtualProtect(addr, len, prot, &dummy) ? 0 : -1; -#elif !defined (ACE_LACKS_MPROTECT) - ACE_OSCALL_RETURN (::mprotect ((ACE_MMAP_TYPE) addr, len, prot), int, -1); -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (prot); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::msync (void *addr, size_t len, int sync) -{ - // ACE_TRACE ("ACE_OS::msync"); -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (sync); - - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::FlushViewOfFile (addr, len), ace_result_), int, -1); -#elif !defined (ACE_LACKS_MSYNC) -# if !defined (ACE_HAS_BROKEN_NETBSD_MSYNC) - ACE_OSCALL_RETURN (::msync ((ACE_MMAP_TYPE) addr, len, sync), int, -1); -# else - ACE_OSCALL_RETURN (::msync ((ACE_MMAP_TYPE) addr, len), int, -1); - ACE_UNUSED_ARG (sync); -# endif /* ACE_HAS_BROKEN_NETBSD_MSYNC */ -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (sync); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::munmap (void *addr, size_t len) -{ - // ACE_TRACE ("ACE_OS::munmap"); -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (len); - - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::UnmapViewOfFile (addr), ace_result_), int, -1); -#elif !defined (ACE_LACKS_MMAP) - ACE_OSCALL_RETURN (::munmap ((ACE_MMAP_TYPE) addr, len), int, -1); -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::madvise (caddr_t addr, size_t len, int advice) -{ - // ACE_TRACE ("ACE_OS::madvise"); -#if defined (ACE_WIN32) - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (advice); - - ACE_NOTSUP_RETURN (-1); -#elif !defined (ACE_LACKS_MADVISE) - ACE_OSCALL_RETURN (::madvise (addr, len, advice), int, -1); -#else - ACE_UNUSED_ARG (addr); - ACE_UNUSED_ARG (len); - ACE_UNUSED_ARG (advice); - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::putmsg (ACE_HANDLE handle, const struct strbuf *ctl, - const struct strbuf *data, int flags) -{ - // ACE_TRACE ("ACE_OS::putmsg"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::putmsg (handle, - (ACE_STRBUF_TYPE) ctl, - (ACE_STRBUF_TYPE) data, - flags), int, -1); -#else - ACE_UNUSED_ARG (flags); - if (ctl == 0 && data == 0) - { - errno = EINVAL; - return 0; - } - // Handle the two easy cases. - else if (ctl != 0) - return ACE_OS::write (handle, ctl->buf, ctl->len); - else if (data != 0) - return ACE_OS::write (handle, data->buf, data->len); - else - { - // This is the hard case. - char *buf; - ACE_NEW_RETURN (buf, char [ctl->len + data->len], -1); - ACE_OS::memcpy (buf, ctl->buf, ctl->len); - ACE_OS::memcpy (buf + ctl->len, data->buf, data->len); - int result = ACE_OS::write (handle, buf, ctl->len + data->len); - delete [] buf; - return result; - } -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::putpmsg (ACE_HANDLE handle, - const struct strbuf *ctl, - const struct strbuf *data, - int band, - int flags) -{ - // ACE_TRACE ("ACE_OS::putpmsg"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::putpmsg (handle, - (ACE_STRBUF_TYPE) ctl, - (ACE_STRBUF_TYPE) data, - band, flags), int, -1); -#else - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (band); - return ACE_OS::putmsg (handle, ctl, data, flags); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::semctl (int int_id, int semnum, int cmd, semun value) -{ - // ACE_TRACE ("ACE_OS::semctl"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::semctl (int_id, semnum, cmd, value), int, -1); -#else - ACE_UNUSED_ARG (int_id); - ACE_UNUSED_ARG (semnum); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (value); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::semget (key_t key, int nsems, int flags) -{ - // ACE_TRACE ("ACE_OS::semget"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::semget (key, nsems, flags), int, -1); -#else - ACE_UNUSED_ARG (key); - ACE_UNUSED_ARG (nsems); - ACE_UNUSED_ARG (flags); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::semop (int int_id, struct sembuf *sops, size_t nsops) -{ - // ACE_TRACE ("ACE_OS::semop"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::semop (int_id, sops, nsops), int, -1); -#else - ACE_UNUSED_ARG (int_id); - ACE_UNUSED_ARG (sops); - ACE_UNUSED_ARG (nsops); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE void * -ACE_OS::shmat (int int_id, void *shmaddr, int shmflg) -{ - // ACE_TRACE ("ACE_OS::shmat"); -#if defined (ACE_HAS_SYSV_IPC) -# if defined (ACE_LACKS_POSIX_PROTOTYPES) || defined (ACE_LACKS_SOME_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::shmat (int_id, (char *)shmaddr, shmflg), void *, (void *) -1); -# else - ACE_OSCALL_RETURN (::shmat (int_id, shmaddr, shmflg), void *, (void *) -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#else - ACE_UNUSED_ARG (int_id); - ACE_UNUSED_ARG (shmaddr); - ACE_UNUSED_ARG (shmflg); - - ACE_NOTSUP_RETURN ((void *) -1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::shmctl (int int_id, int cmd, struct shmid_ds *buf) -{ - // ACE_TRACE ("ACE_OS::shmctl"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::shmctl (int_id, cmd, buf), int, -1); -#else - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (cmd); - ACE_UNUSED_ARG (int_id); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::shmdt (void *shmaddr) -{ - // ACE_TRACE ("ACE_OS::shmdt"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::shmdt ((char *) shmaddr), int, -1); -#else - ACE_UNUSED_ARG (shmaddr); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE int -ACE_OS::shmget (key_t key, int size, int flags) -{ - // ACE_TRACE ("ACE_OS::shmget"); -#if defined (ACE_HAS_SYSV_IPC) - ACE_OSCALL_RETURN (::shmget (key, size, flags), int, -1); -#else - ACE_UNUSED_ARG (flags); - ACE_UNUSED_ARG (size); - ACE_UNUSED_ARG (key); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_SYSV_IPC */ -} - -ACE_INLINE ACE_HANDLE -ACE_OS::open (const char *filename, - int mode, - int perms, - LPSECURITY_ATTRIBUTES sa) -{ - // ACE_TRACE ("ACE_OS::open"); -#if defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (filename); - ACE_UNUSED_ARG (mode); - ACE_UNUSED_ARG (perms); - ACE_UNUSED_ARG (sa); - return 0; -#elif defined (ACE_WIN32) - ACE_UNUSED_ARG (perms); - // Warning: This function ignores _O_APPEND - - DWORD access = GENERIC_READ; - if (ACE_BIT_ENABLED (mode, O_WRONLY)) - access = GENERIC_WRITE; - else if (ACE_BIT_ENABLED (mode, O_RDWR)) - access = GENERIC_READ | GENERIC_WRITE; - - DWORD creation = OPEN_EXISTING; - - 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 (ACE_BIT_ENABLED (mode, _O_CREAT)) - creation = OPEN_ALWAYS; - else if (ACE_BIT_ENABLED (mode, _O_TRUNC)) - creation = TRUNCATE_EXISTING; - - DWORD flags = 0; - - if (ACE_BIT_ENABLED (mode, _O_TEMPORARY)) - flags |= FILE_FLAG_DELETE_ON_CLOSE; - - if (ACE_BIT_ENABLED (mode, FILE_FLAG_WRITE_THROUGH)) - flags |= FILE_FLAG_WRITE_THROUGH; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_OVERLAPPED)) - flags |= FILE_FLAG_OVERLAPPED; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_NO_BUFFERING)) - flags |= FILE_FLAG_NO_BUFFERING; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_RANDOM_ACCESS)) - flags |= FILE_FLAG_RANDOM_ACCESS; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_SEQUENTIAL_SCAN)) - flags |= FILE_FLAG_SEQUENTIAL_SCAN; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_DELETE_ON_CLOSE)) - flags |= FILE_FLAG_DELETE_ON_CLOSE; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_BACKUP_SEMANTICS)) - flags |= FILE_FLAG_BACKUP_SEMANTICS; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_POSIX_SEMANTICS)) - flags |= FILE_FLAG_POSIX_SEMANTICS; - - ACE_HANDLE h = ::CreateFileA (filename, access, - FILE_SHARE_READ | FILE_SHARE_WRITE, - sa, creation, - flags, - 0); - - if (h == ACE_INVALID_HANDLE) - ACE_FAIL_RETURN (h); - else - return h; -#else - ACE_UNUSED_ARG (sa); - ACE_OSCALL_RETURN (::open (filename, mode, perms), ACE_HANDLE, -1); -#endif /* ACE_WIN32 */ -} - -#if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE ACE_HANDLE -ACE_OS::shm_open (const char *filename, - int mode, - int perms, - LPSECURITY_ATTRIBUTES sa) -{ - // ACE_TRACE ("ACE_OS::shm_open"); -# if defined (ACE_HAS_SHM_OPEN) - ACE_UNUSED_ARG (sa); - ACE_OSCALL_RETURN (::shm_open (filename, mode, perms), ACE_HANDLE, -1); -# else /* ! ACE_HAS_SHM_OPEN */ - // Just used ::open. - return ACE_OS::open (filename, mode, perms, sa); -# endif /* ! ACE_HAS_SHM_OPEN */ -} -#endif /* ! ACE_HAS_MOSTLY_UNICODE_APIS */ - -#if !defined (ACE_LACKS_DIFFTIME) -ACE_INLINE double -ACE_OS::difftime (time_t t1, time_t t0) -{ -# if defined (ACE_DIFFTIME) - return ACE_DIFFTIME (t1, t0); -# else - return ::difftime (t1, t0); -# endif /* ACE_DIFFTIME */ -} -#endif /* ! ACE_LACKS_DIFFTIME */ - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE char * -ACE_OS::ctime (const time_t *t) -{ - // ACE_TRACE ("ACE_OS::ctime"); -# if defined (ACE_HAS_BROKEN_CTIME) - ACE_OSCALL_RETURN (::asctime (::localtime (t)), char *, 0); -# else - ACE_OSCALL_RETURN (::ctime (t), char *, 0); -# endif /* ACE_HAS_BROKEN_CTIME) */ -} - -ACE_INLINE char * -ACE_OS::ctime_r (const time_t *t, char *buf, int buflen) -{ - // ACE_TRACE ("ACE_OS::ctime_r"); -# if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) - char *result; -# if defined (DIGITAL_UNIX) - ACE_OSCALL (::_Pctime_r (t, buf), char *, 0, result); -# else - ACE_OSCALL (::ctime_r (t, buf), char *, 0, result); -# endif /* DIGITAL_UNIX */ - if (result != 0) - ::strncpy (buf, result, buflen); - return buf; -# else - -# if defined (ACE_CTIME_R_RETURNS_INT) - return (::ctime_r (t, buf, buflen) == -1 ? 0 : buf); -# else - ACE_OSCALL_RETURN (::ctime_r (t, buf, buflen), char *, 0); -# endif /* ACE_CTIME_R_RETURNS_INT */ - -# endif /* defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) */ -# else - char *result; - ACE_OSCALL (::ctime (t), char *, 0, result); - if (result != 0) - ::strncpy (buf, result, buflen); - return buf; -# endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */ -} -#endif /* !ACE_HAS_WINCE */ - -ACE_INLINE struct tm * -ACE_OS::localtime (const time_t *t) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::localtime"); - ACE_OSCALL_RETURN (::localtime (t), struct tm *, 0); -#else - // @@ Don't you start wondering what kind of functions - // does WinCE really support? - ACE_UNUSED_ARG (t); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE struct tm * -ACE_OS::localtime_r (const time_t *t, struct tm *res) -{ - // ACE_TRACE ("ACE_OS::localtime_r"); -#if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if defined (DIGITAL_UNIX) - ACE_OSCALL_RETURN (::_Plocaltime_r(t, res), struct tm *, 0); -# elif defined (HPUX_10) - return (::localtime_r(t, res) == 0 ? res : (struct tm *)0); -# else - ACE_OSCALL_RETURN (::localtime_r (t, res), struct tm *, 0); -# endif /* DIGITAL_UNIX */ -#elif !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (res); - - ACE_OSCALL_RETURN (::localtime (t), struct tm *, 0); -#else - // @@ Same as ACE_OS::localtime (), you need to implement it - // yourself. - ACE_UNUSED_ARG (t); - ACE_UNUSED_ARG (res); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_REENTRANT_FUNCTIONS */ -} - -ACE_INLINE struct tm * -ACE_OS::gmtime (const time_t *t) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::localtime"); - ACE_OSCALL_RETURN (::gmtime (t), struct tm *, 0); -#else - // @@ WinCE doesn't have gmtime also. - ACE_UNUSED_ARG (t); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE struct tm * -ACE_OS::gmtime_r (const time_t *t, struct tm *res) -{ - // ACE_TRACE ("ACE_OS::localtime_r"); -#if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if defined (DIGITAL_UNIX) - ACE_OSCALL_RETURN (::_Pgmtime_r (t, res), struct tm *, 0); -# elif defined (HPUX_10) - return (::gmtime_r (t, res) == 0 ? res : (struct tm *) 0); -# else - ACE_OSCALL_RETURN (::gmtime_r (t, res), struct tm *, 0); -# endif /* DIGITAL_UNIX */ -#elif !defined (ACE_HAS_WINCE) - struct tm *result; - ACE_OSCALL (::gmtime (t), struct tm *, 0, result) ; - if (result != 0) - *res = *result ; - return result ; -#else - // @@ Same as ACE_OS::gmtime (), you need to implement it - // yourself. - ACE_UNUSED_ARG (t); - ACE_UNUSED_ARG (res); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_REENTRANT_FUNCTIONS */ -} - -ACE_INLINE char * -ACE_OS::asctime (const struct tm *t) -{ -#if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::asctime"); - ACE_OSCALL_RETURN (::asctime (t), char *, 0); -#else - // @@ WinCE doesn't have gmtime also. - ACE_UNUSED_ARG (t); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE char * -ACE_OS::asctime_r (const struct tm *t, char *buf, int buflen) -{ - // ACE_TRACE ("ACE_OS::asctime_r"); -#if defined (ACE_HAS_REENTRANT_FUNCTIONS) -# if defined (ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R) - char *result; -# if defined (DIGITAL_UNIX) - ACE_OSCALL (::_Pasctime_r (t, buf), char *, 0, result); -# else - ACE_OSCALL (::asctime_r (t, buf), char *, 0, result); -# endif /* DIGITAL_UNIX */ - ::strncpy (buf, result, buflen); - return buf; -# else -# if defined (HPUX_10) - return (::asctime_r(t, buf, buflen) == 0 ? buf : (char *)0); -# else - ACE_OSCALL_RETURN (::asctime_r (t, buf, buflen), char *, 0); -# endif /* HPUX_10 */ -# endif /* ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R */ -#elif ! defined (ACE_HAS_WINCE) - char *result; - ACE_OSCALL (::asctime (t), char *, 0, result); - ::strncpy (buf, result, buflen); - return buf; -#else - // @@ Same as ACE_OS::asctime (), you need to implement it - // yourself. - ACE_UNUSED_ARG (t); - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (buflen); - ACE_NOTSUP_RETURN (0); -#endif /* defined (ACE_HAS_REENTRANT_FUNCTIONS) */ -} - -ACE_INLINE size_t -ACE_OS::strftime (char *s, size_t maxsize, const char *format, - const struct tm *timeptr) -{ -#if !defined (ACE_HAS_WINCE) - return ::strftime (s, maxsize, format, timeptr); -#else - ACE_UNUSED_ARG (s); - ACE_UNUSED_ARG (maxsize); - ACE_UNUSED_ARG (format); - ACE_UNUSED_ARG (timeptr); - ACE_NOTSUP_RETURN (0); -#endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::flock_init (ACE_OS::ace_flock_t *lock, - int flags, - LPCTSTR name, - mode_t perms) -{ - // ACE_TRACE ("ACE_OS::flock_init"); -#if defined (ACE_WIN32) - // Once initialized, these values are never changed. - lock->overlapped_.Internal = 0; - lock->overlapped_.InternalHigh = 0; - lock->overlapped_.OffsetHigh = 0; - lock->overlapped_.hEvent = INVALID_HANDLE_VALUE; -#endif /* ACE_WIN32 */ - lock->handle_ = ACE_INVALID_HANDLE; - lock->lockname_ = 0; - - if (name != 0) - { - ACE_OSCALL (ACE_OS::open (name, flags, perms), - ACE_HANDLE, - ACE_INVALID_HANDLE, - lock->handle_); - lock->lockname_ = ACE_OS::strdup (name); - return lock->handle_ == ACE_INVALID_HANDLE ? -1 : 0; - } - else - return 0; -} - -ACE_INLINE int -ACE_OS::flock_wrlock (ACE_OS::ace_flock_t *lock, short whence, off_t start, off_t len) -{ - // ACE_TRACE ("ACE_OS::flock_wrlock"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (whence); - lock->overlapped_.Offset = start; - if (len == 0) - len = ::GetFileSize (lock->handle_, NULL); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_, LOCKFILE_EXCLUSIVE_LOCK, 0, len, 0, &lock->overlapped_), - ace_result_), int, -1); -#elif defined (ACE_LACKS_FILELOCKS) - ACE_UNUSED_ARG (lock); - ACE_UNUSED_ARG (whence); - ACE_UNUSED_ARG (start); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#else - lock->lock_.l_whence = whence; - lock->lock_.l_start = start; - lock->lock_.l_len = len; - lock->lock_.l_type = F_WRLCK; // set write lock - // block, if no access - ACE_OSCALL_RETURN (::fcntl (lock->handle_, F_SETLKW, &lock->lock_), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::flock_rdlock (ACE_OS::ace_flock_t *lock, short whence, off_t start, off_t len) -{ - // ACE_TRACE ("ACE_OS::flock_rdlock"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (whence); - lock->overlapped_.Offset = start; - if (len == 0) - len = ::GetFileSize (lock->handle_, NULL); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_, 0, 0, len, 0, &lock->overlapped_), - ace_result_), int, -1); -#elif defined (ACE_LACKS_FILELOCKS) - ACE_UNUSED_ARG (lock); - ACE_UNUSED_ARG (whence); - ACE_UNUSED_ARG (start); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#else - lock->lock_.l_whence = whence; - lock->lock_.l_start = start; - lock->lock_.l_len = len; - lock->lock_.l_type = F_RDLCK; // set read lock - // block, if no access - ACE_OSCALL_RETURN (::fcntl (lock->handle_, F_SETLKW, &lock->lock_), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::flock_trywrlock (ACE_OS::ace_flock_t *lock, short whence, off_t start, off_t len) -{ - // ACE_TRACE ("ACE_OS::ace_flock_trywrlock"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (whence); - lock->overlapped_.Offset = start; - if (len == 0) - len = ::GetFileSize (lock->handle_, NULL); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_, - LOCKFILE_FAIL_IMMEDIATELY | LOCKFILE_EXCLUSIVE_LOCK, - 0, len, 0, - &lock->overlapped_), - ace_result_), int, -1); -#elif defined (ACE_LACKS_FILELOCKS) - ACE_UNUSED_ARG (lock); - ACE_UNUSED_ARG (whence); - ACE_UNUSED_ARG (start); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#else - lock->lock_.l_whence = whence; - lock->lock_.l_start = start; - lock->lock_.l_len = len; - lock->lock_.l_type = F_WRLCK; // set write lock - - int result = 0; - // Does not block, if no access, returns -1 and set errno = EBUSY; - ACE_OSCALL (::fcntl (lock->handle_, F_SETLK, &lock->lock_), int, -1, result); - -# if ! defined (ACE_PSOS) - if (result == -1 && (errno == EACCES || errno == EAGAIN)) - errno = EBUSY; -# endif /* ! defined (ACE_PSOS) */ - - return result; -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::flock_tryrdlock (ACE_OS::ace_flock_t *lock, short whence, off_t start, off_t len) -{ - // ACE_TRACE ("ACE_OS::ace_flock_tryrdlock"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (whence); - lock->overlapped_.Offset = start; - if (len == 0) - len = ::GetFileSize (lock->handle_, NULL); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::LockFileEx (lock->handle_, - LOCKFILE_FAIL_IMMEDIATELY, - 0, len, 0, - &lock->overlapped_), - ace_result_), int, -1); -#elif defined (ACE_LACKS_FILELOCKS) - ACE_UNUSED_ARG (lock); - ACE_UNUSED_ARG (whence); - ACE_UNUSED_ARG (start); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#else - lock->lock_.l_whence = whence; - lock->lock_.l_start = start; - lock->lock_.l_len = len; - lock->lock_.l_type = F_RDLCK; // set read lock - - int result = 0; - // Does not block, if no access, returns -1 and set errno = EBUSY; - ACE_OSCALL (::fcntl (lock->handle_, F_SETLK, &lock->lock_), int, -1, result); - -# if ! defined (ACE_PSOS) - if (result == -1 && (errno == EACCES || errno == EAGAIN)) - errno = EBUSY; -# endif /* ! defined (ACE_PSOS) */ - - return result; -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::flock_unlock (ACE_OS::ace_flock_t *lock, short whence, off_t start, off_t len) -{ - // ACE_TRACE ("ACE_OS::flock_unlock"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (whence); - lock->overlapped_.Offset = start; - if (len == 0) - len = ::GetFileSize (lock->handle_, NULL); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::UnlockFileEx (lock->handle_, 0, len, 0, &lock->overlapped_), - ace_result_), int, -1); -#elif defined (ACE_LACKS_FILELOCKS) - ACE_UNUSED_ARG (lock); - ACE_UNUSED_ARG (whence); - ACE_UNUSED_ARG (start); - ACE_UNUSED_ARG (len); - ACE_NOTSUP_RETURN (-1); -#else - lock->lock_.l_whence = whence; - lock->lock_.l_start = start; - lock->lock_.l_len = len; - lock->lock_.l_type = F_UNLCK; // Unlock file. - - // release lock - ACE_OSCALL_RETURN (::fcntl (lock->handle_, F_SETLK, &lock->lock_), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::flock_destroy (ACE_OS::ace_flock_t *lock) -{ - // ACE_TRACE ("ACE_OS::flock_destroy"); - if (lock->handle_ != ACE_INVALID_HANDLE) - { - ACE_OS::flock_unlock (lock); - ACE_OS::close (lock->handle_); - lock->handle_ = ACE_INVALID_HANDLE; - if (lock->lockname_ != 0) - { - ACE_OS::unlink (lock->lockname_); - ACE_OS::free (ACE_static_cast (void *, - ACE_const_cast (LPTSTR, - lock->lockname_))); - lock->lockname_ = 0; - } - } - return 0; -} - -ACE_INLINE int -ACE_OS::execv (const char *path, char *const argv[]) -{ - // ACE_TRACE ("ACE_OS::execv"); -#if defined (ACE_LACKS_EXEC) - ACE_UNUSED_ARG (path); - ACE_UNUSED_ARG (argv); - - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_WIN32) -# if defined (__BORLANDC__) // VSB - return ::execv (path, argv); -# else - return ::_execv (path, (const char *const *) argv); -# endif /* __BORLANDC__ */ -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::execv (path, (const char **) argv), int, -1); -#else - ACE_OSCALL_RETURN (::execv (path, argv), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::execve (const char *path, char *const argv[], char *const envp[]) -{ - // ACE_TRACE ("ACE_OS::execve"); -#if defined (ACE_LACKS_EXEC) - ACE_UNUSED_ARG (path); - ACE_UNUSED_ARG (argv); - ACE_UNUSED_ARG (envp); - - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_WIN32) -# if defined (__BORLANDC__) // VSB - return ::execve (path, argv, envp); -# else - return ::_execve (path, (const char *const *) argv, (const char *const *) envp); -# endif /* __BORLANDC__ */ -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::execve (path, (const char **) argv, (char **) envp), int, -1); -#else - ACE_OSCALL_RETURN (::execve (path, argv, envp), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::execvp (const char *file, char *const argv[]) -{ - // ACE_TRACE ("ACE_OS::execvp"); -#if defined (ACE_LACKS_EXEC) - ACE_UNUSED_ARG (file); - ACE_UNUSED_ARG (argv); - - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_WIN32) -# if defined (__BORLANDC__) // VSB - return ::execvp (file, argv); -# else - return ::_execvp (file, (const char *const *) argv); -# endif /* __BORLANDC__ */ -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::execvp (file, (const char **) argv), int, -1); -#else - ACE_OSCALL_RETURN (::execvp (file, argv), int, -1); -#endif /* ACE_WIN32 */ -} - -#if !defined (ACE_HAS_WINCE) -ACE_INLINE FILE * -ACE_OS::fdopen (ACE_HANDLE handle, const char *mode) -{ - // ACE_TRACE ("ACE_OS::fdopen"); -# if defined (ACE_WIN32) - // kernel file handle -> FILE* conversion... - // Options: _O_APPEND, _O_RDONLY and _O_TEXT are lost - - FILE *file = 0; - - int crt_handle = ::_open_osfhandle ((long) handle, 0); - - if (crt_handle != -1) - { -# if defined(__BORLANDC__) // VSB - file = ::_fdopen (crt_handle, (char *) mode); -# else - file = ::_fdopen (crt_handle, mode); -# endif /* __BORLANDC__ */ - - if (!file) - { -# if (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) - ::_rtl_close (crt_handle); -# else - ::_close (crt_handle); -# endif /* (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) */ - } - } - - return file; -# else - ACE_OSCALL_RETURN (::fdopen (handle, mode), FILE *, 0); -# endif /* ACE_WIN32 */ -} -#endif /* ! ACE_HAS_WINCE */ - -ACE_INLINE int -ACE_OS::ftruncate (ACE_HANDLE handle, off_t offset) -{ - // ACE_TRACE ("ACE_OS::ftruncate"); -#if defined (ACE_WIN32) - if (::SetFilePointer (handle, offset, NULL, FILE_BEGIN) != (unsigned) -1) - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::SetEndOfFile (handle), ace_result_), int, -1); - else - ACE_FAIL_RETURN (-1); - /* NOTREACHED */ -#else - ACE_OSCALL_RETURN (::ftruncate (handle, offset), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::getrlimit (int resource, struct rlimit *rl) -{ - // ACE_TRACE ("ACE_OS::getrlimit"); - -#if defined (ACE_LACKS_RLIMIT) - ACE_UNUSED_ARG (resource); - ACE_UNUSED_ARG (rl); - - ACE_NOTSUP_RETURN (-1); -#else -# if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM) - ACE_OSCALL_RETURN (::getrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource, rl), int, -1); -# else - ACE_OSCALL_RETURN (::getrlimit (resource, rl), int, -1); -# endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */ -#endif /* ACE_LACKS_RLIMIT */ -} - -ACE_INLINE int -ACE_OS::setrlimit (int resource, ACE_SETRLIMIT_TYPE *rl) -{ - // ACE_TRACE ("ACE_OS::setrlimit"); - -#if defined (ACE_LACKS_RLIMIT) - ACE_UNUSED_ARG (resource); - ACE_UNUSED_ARG (rl); - - ACE_NOTSUP_RETURN (-1); -#else -# if defined (ACE_HAS_RLIMIT_RESOURCE_ENUM) - ACE_OSCALL_RETURN (::setrlimit ((ACE_HAS_RLIMIT_RESOURCE_ENUM) resource, rl), int, -1); -# else - ACE_OSCALL_RETURN (::setrlimit (resource, rl), int, -1); -# endif /* ACE_HAS_RLIMIT_RESOURCE_ENUM */ -#endif /* ACE_LACKS_RLIMIT */ -} - -ACE_INLINE int -ACE_OS::socketpair (int domain, int type, - int protocol, ACE_HANDLE sv[2]) -{ - // ACE_TRACE ("ACE_OS::socketpair"); -#if defined (ACE_WIN32) || defined (ACE_LACKS_SOCKETPAIR) - ACE_UNUSED_ARG (domain); - ACE_UNUSED_ARG (type); - ACE_UNUSED_ARG (protocol); - ACE_UNUSED_ARG (sv); - - ACE_NOTSUP_RETURN (-1); -#else - ACE_OSCALL_RETURN (::socketpair (domain, type, protocol, sv), - int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE ACE_HANDLE -ACE_OS::dup (ACE_HANDLE handle) -{ - // ACE_TRACE ("ACE_OS::dup"); -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ACE_HANDLE new_fd; - if (::DuplicateHandle(::GetCurrentProcess (), - handle, - ::GetCurrentProcess(), - &new_fd, - 0, - TRUE, - DUPLICATE_SAME_ACCESS)) - return new_fd; - else - ACE_FAIL_RETURN (ACE_INVALID_HANDLE); - /* NOTREACHED */ -#elif defined (VXWORKS) - ACE_UNUSED_ARG (handle); - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (handle); - ACE_NOTSUP_RETURN (0); -#else - ACE_OSCALL_RETURN (::dup (handle), ACE_HANDLE, ACE_INVALID_HANDLE); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::dup2 (ACE_HANDLE oldhandle, ACE_HANDLE newhandle) -{ - // ACE_TRACE ("ACE_OS::dup2"); -#if defined (ACE_WIN32) || defined (VXWORKS) - // msvcrt has _dup2 ?! - ACE_UNUSED_ARG (oldhandle); - ACE_UNUSED_ARG (newhandle); - - ACE_NOTSUP_RETURN (-1); -#else - ACE_OSCALL_RETURN (::dup2 (oldhandle, newhandle), int, -1); -#endif /* ACE_WIN32 */ -} - -#if defined (ghs) && defined (ACE_HAS_PENTIUM) - extern "C" ACE_hrtime_t ACE_gethrtime (); -#endif /* ghs && ACE_HAS_PENTIUM */ - -ACE_INLINE ACE_hrtime_t -ACE_OS::gethrtime (const ACE_HRTimer_Op op) -{ - // ACE_TRACE ("ACE_OS::gethrtime"); -#if defined (ACE_HAS_HI_RES_TIMER) - ACE_UNUSED_ARG (op); - return ::gethrtime (); -#elif defined (ACE_HAS_AIX_HI_RES_TIMER) - ACE_UNUSED_ARG (op); - timebasestruct_t tb; - - ::read_real_time(&tb, TIMEBASE_SZ); - ::time_base_to_time(&tb, TIMEBASE_SZ); - - return tb.tb_high * ACE_ONE_SECOND_IN_NSECS + tb.tb_low; -#elif defined (ghs) && defined (ACE_HAS_PENTIUM) - ACE_UNUSED_ARG (op); - // Use .obj/gethrtime.o, which was compiled with g++. - return ACE_gethrtime (); -#elif defined (__GNUG__) && defined (ACE_HAS_PENTIUM) - ACE_UNUSED_ARG (op); - -# if defined (ACE_LACKS_LONGLONG_T) - double now; -# else /* ! ACE_LACKS_LONGLONG_T */ - ACE_hrtime_t now; -# endif /* ! ACE_LACKS_LONGLONG_T */ - - // See comments about the RDTSC Pentium instruction for the ACE_WIN32 - // version of ACE_OS::gethrtime (), below. - // - // Read the high-res tick counter directly into memory variable "now". - // The A constraint signifies a 64-bit int. - asm volatile ("rdtsc" : "=A" (now) : : "memory"); - -# if defined (ACE_LACKS_LONGLONG_T) - unsigned int least, most; - ACE_OS::memcpy (&least, &now, sizeof (unsigned int)); - ACE_OS::memcpy (&most, &now + sizeof (unsigned int), sizeof (unsigned int)); - - ACE_hrtime_t ret (least, most); - return ret; -# else /* ! ACE_LACKS_LONGLONG_T */ - return now; -# endif /* ! ACE_LACKS_LONGLONG_T */ - -// #elif defined (linux) -// NOTE: the following don't seem to work on Linux. Use ::gettimeofday -// instead. -// #elif defined (__GNUG__) && defined (ACE_HAS_PENTIUM) -// ACE_hrtime_t now; -// -// // See comments about the RDTSC Pentium instruction for the ACE_WIN32 -// // version of ACE_OS::gethrtime (), below. -// // -// // Read the high-res tick counter directly into memory variable "now". -// // The A constraint signifies a 64-bit int. -// asm volatile ("rdtsc" : "=A" (now) : : "memory"); -// -// return now; -// #elif deifned (__GNUG__) && defined (__alpha) -// ACE_hrtime_t now; -// -// // The following statement is based on code published by: -// // Mosberger, David, "How to Make Your Applications Fly, Part 1", -// // Linux Journal Issue 42, October 1997, page 50. -// // It reads the high-res tick counter directly into memory variable "now". -// asm volatile ("rpcc %0" : "=r" (now) : : "memory"); -// -// return now; -#elif defined (ACE_WIN32) && defined (ACE_HAS_PENTIUM) && !defined (ACE_HAS_WINCE) - // Issue the RDTSC assembler instruction to get the number of clock - // ticks since system boot. RDTSC is only available on Pentiums and - // higher. Thanks to Wayne Vucenic for - // pointing us to intel's RDTSC instruction. See - // http://www.sandpile.org/80x86/rdtsc.shtml for a description of - // the RDTSC instruction. Or see Frank van Gilluwe's "The - // Undocumented PC" published by Addison Wesley Developers Press. - - ACE_UNUSED_ARG (op); - unsigned long least; - unsigned long most; - - __asm { - // __asm rdtsc - // VC++ doesn't know the opcode for rdtsc (OFh, 31h), so we'll - // emit the opcode manually. - __asm _emit 0xf - __asm _emit 0x31 - __asm mov least,eax - __asm mov most,edx - } - - return ACE_MAKE_QWORD (least, most); -#elif defined (CHORUS) - if (op == ACE_OS::ACE_HRTIMER_GETTIME) - { - struct timespec ts; - - ACE_OS::clock_gettime (CLOCK_REALTIME, &ts); - - // Carefully create the return value to avoid arithmetic overflow - // if ACE_hrtime_t is ACE_U_LongLong. - ACE_hrtime_t now = ts.tv_sec; - now *= (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS; - now += ts.tv_nsec; - - return now; - } - else - { - // Use the sysBench timer on Chorus. On MVME177, at least, it only - // has 32 bits. Be careful, because using it disables interrupts! - ACE_UINT32 now; - if (::sysBench (op, (int *) &now) == K_OK) - { - now *= 1000u /* nanoseconds/microsecond */; - return (ACE_hrtime_t) now; - } - else - { - // Something went wrong. Just return 0. - return (ACE_hrtime_t) 0; - } - } - -#elif defined (ACE_HAS_POWERPC) && defined (ghs) - // PowerPC w/ GreenHills compiler on VxWorks - - ACE_UNUSED_ARG (op); - u_long most; - u_long least; - ACE_OS::readPPCTimeBase (most, least); - return ACE_U_LongLong (least, most); - -#elif defined (ACE_HAS_CLOCK_GETTIME) || defined (ACE_PSOS) - // e.g., VxWorks (besides POWERPC && GreenHills) . . . - ACE_UNUSED_ARG (op); - struct timespec ts; - - ACE_OS::clock_gettime (CLOCK_REALTIME, &ts); - - // Carefully create the return value to avoid arithmetic overflow - // if ACE_hrtime_t is ACE_U_LongLong. - return ACE_static_cast (ACE_hrtime_t, ts.tv_sec) * - (ACE_UINT32) ACE_ONE_SECOND_IN_NSECS + - ts.tv_nsec; -#else - ACE_UNUSED_ARG (op); - const ACE_Time_Value now = ACE_OS::gettimeofday (); - - // Carefully create the return value to avoid arithmetic overflow - // if ACE_hrtime_t is ACE_U_LongLong. - return (ACE_static_cast (ACE_hrtime_t, now.sec ()) * (ACE_UINT32) 1000000 + - ACE_static_cast (ACE_hrtime_t, now.usec ())) * (ACE_UINT32) 1000; -#endif /* ACE_HAS_HI_RES_TIMER */ -} - -ACE_INLINE int -ACE_OS::fdetach (const char *file) -{ - // ACE_TRACE ("ACE_OS::fdetach"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::fdetach (file), int, -1); -#else - ACE_UNUSED_ARG (file); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE int -ACE_OS::fattach (int handle, const char *path) -{ - // ACE_TRACE ("ACE_OS::fattach"); -#if defined (ACE_HAS_STREAM_PIPES) - ACE_OSCALL_RETURN (::fattach (handle, path), int, -1); -#else - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (path); - - ACE_NOTSUP_RETURN (-1); -#endif /* ACE_HAS_STREAM_PIPES */ -} - -ACE_INLINE pid_t -ACE_OS::fork (void) -{ - // ACE_TRACE ("ACE_OS::fork"); -#if defined (ACE_LACKS_FORK) - ACE_NOTSUP_RETURN (pid_t (-1)); -#else - ACE_OSCALL_RETURN (::fork (), pid_t, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::getpagesize (void) -{ - // ACE_TRACE ("ACE_OS::getpid"); -#if defined (ACE_WIN32) - SYSTEM_INFO sys_info; - ::GetSystemInfo (&sys_info); - return (int) sys_info.dwPageSize; -#elif defined (_SC_PAGESIZE) - return (int) ::sysconf (_SC_PAGESIZE); -#elif defined (ACE_HAS_GETPAGESIZE) - return ::getpagesize (); -#else - // Use the default set in config.h - return ACE_PAGE_SIZE; -#endif /* ACE_WIN32 */ -} - -ACE_INLINE pid_t -ACE_OS::getpid (void) -{ - // ACE_TRACE ("ACE_OS::getpid"); -#if defined (ACE_WIN32) - return ::GetCurrentProcessId (); -#elif defined (VXWORKS) - // getpid() is not supported: just one process anyways - return 0; -#elif defined (CHORUS) - return (pid_t) (::agetId ()); -#else - ACE_OSCALL_RETURN (::getpid (), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE pid_t -ACE_OS::getpgid (pid_t pid) -{ - // ACE_TRACE ("ACE_OS::getpgid"); -#if defined (ACE_LACKS_GETPGID) - ACE_UNUSED_ARG (pid); - ACE_NOTSUP_RETURN (-1); -#elif defined (VXWORKS) - // getpid() is not supported, only one process anyway. - ACE_UNUSED_ARG (pid); - return 0; -#else - ACE_OSCALL_RETURN (::getpgid (pid), pid_t, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE off_t -ACE_OS::lseek (ACE_HANDLE handle, off_t offset, int whence) -{ - // ACE_TRACE ("ACE_OS::lseek"); - -#if defined (ACE_WIN32) -# 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 */ - DWORD result = ::SetFilePointer (handle, offset, NULL, whence); - if (result == ACE_SYSCALL_FAILED) - ACE_FAIL_RETURN (-1); - else - return result; -#else - ACE_OSCALL_RETURN (::lseek (handle, offset, whence), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE pid_t -ACE_OS::wait (int *stat_loc) -{ - // ACE_TRACE ("ACE_OS::wait"); -#if defined (ACE_WIN32) || defined (VXWORKS) - ACE_UNUSED_ARG (stat_loc); - - ACE_NOTSUP_RETURN (0); -#else -# if !defined (AIX) -# if defined (ACE_HAS_UNION_WAIT) - ACE_OSCALL_RETURN (::wait ((union wait *) stat_loc), pid_t, -1); -# else - ACE_OSCALL_RETURN (::wait (stat_loc), pid_t, -1); -# endif /* ACE_HAS_UNION_WAIT */ -# else - ACE_OSCALL_RETURN (::wait ((union wait *) stat_loc), pid_t, -1); -# endif /* defined (AIX) */ -#endif /* defined (ACE_WIN32) */ -} - -ACE_INLINE pid_t -ACE_OS::waitpid (pid_t pid, int *stat_loc, int options) -{ - // ACE_TRACE ("ACE_OS::waitpid"); -#if defined (ACE_WIN32) || defined (VXWORKS) - ACE_UNUSED_ARG (pid); - ACE_UNUSED_ARG (stat_loc); - ACE_UNUSED_ARG (options); - - ACE_NOTSUP_RETURN (0); -#else - ACE_OSCALL_RETURN (::waitpid (pid, stat_loc, options), - pid_t, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::ioctl (ACE_HANDLE handle, int cmd, void *val) -{ - // ACE_TRACE ("ACE_OS::ioctl"); - -#if defined (ACE_WIN32) - ACE_SOCKET sock = (ACE_SOCKET) handle; - ACE_SOCKCALL_RETURN (::ioctlsocket (sock, cmd, (u_long *) val), int, -1); -#elif defined (VXWORKS) - // This may not work very well... - ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::ioctl (handle, cmd, (int) val), ace_result_), - int, -1); -#else - ACE_OSCALL_RETURN (::ioctl (handle, cmd, val), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::kill (pid_t pid, int signum) -{ - // ACE_TRACE ("ACE_OS::kill"); -#if defined (ACE_WIN32) || defined (CHORUS) - ACE_UNUSED_ARG (pid); - ACE_UNUSED_ARG (signum); - ACE_NOTSUP_RETURN (-1); -#else - ACE_OSCALL_RETURN (::kill (pid, signum), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::sigaction (int signum, - const struct sigaction *nsa, - struct sigaction *osa) -{ - // ACE_TRACE ("ACE_OS::sigaction"); - if (signum == 0) - return 0; -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - struct sigaction sa; - - if (osa == 0) - osa = &sa; - - osa->sa_handler = ::signal (signum, nsa->sa_handler); - return osa->sa_handler == SIG_ERR ? -1 : 0; -#elif defined (CHORUS) || defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (signum); - ACE_UNUSED_ARG (nsa); - ACE_UNUSED_ARG (osa); - ACE_NOTSUP_RETURN (-1); -#elif defined (ACE_LACKS_POSIX_PROTOTYPES) || defined(ACE_LACKS_SOME_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::sigaction (signum, (struct sigaction*) nsa, osa), int, -1); -#else - ACE_OSCALL_RETURN (::sigaction (signum, nsa, osa), int, -1); -#endif /* ACE_LACKS_POSIX_PROTOTYPES */ -} - -#if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE char * -ACE_OS::getcwd (char *buf, size_t size) -{ - // ACE_TRACE ("ACE_OS::getcwd"); -# if defined (ACE_WIN32) - return ::_getcwd (buf, size); -# else - ACE_OSCALL_RETURN (::getcwd (buf, size), char *, 0); -# endif /* ACE_WIN32 */ -} -#endif /* !ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE int -ACE_OS::sleep (u_int seconds) -{ - // ACE_TRACE ("ACE_OS::sleep"); -#if defined (ACE_WIN32) - ::Sleep (seconds * ACE_ONE_SECOND_IN_MSECS); - return 0; -#elif defined (ACE_HAS_CLOCK_GETTIME) - struct timespec rqtp; - // Initializer doesn't work with Green Hills 1.8.7 - rqtp.tv_sec = seconds; - rqtp.tv_nsec = 0L; - ACE_OSCALL_RETURN (::nanosleep (&rqtp, 0), int, -1); -#elif defined (ACE_PSOS) - timeval wait; - wait.tv_sec = seconds; - wait.tv_usec = 0; - ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &wait), int, -1); -#else - ACE_OSCALL_RETURN (::sleep (seconds), int, -1); -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::sleep (const ACE_Time_Value &tv) -{ - // ACE_TRACE ("ACE_OS::sleep"); -#if defined (ACE_WIN32) - ::Sleep (tv.msec ()); - return 0; -#elif defined (ACE_HAS_POLL) && !defined (ACE_POLL_IS_BROKEN) - ACE_OSCALL_RETURN (::poll (0, 0, tv.msec ()), int, -1); -#else -# if defined (linux) - // Copy the timeval, because Linux modifies it! It's strange that - // the compiler doesn't warn about passing the address of a const as - // a non-const argument. - timeval tv_copy = tv; - ACE_OSCALL_RETURN (::select (0, 0, 0, 0, &tv_copy), int, -1); -# else /* ! linux */ - ACE_OSCALL_RETURN (::select (0, 0, 0, 0, (timeval *) &tv), int, -1); -# endif /* ! linux */ -#endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::nanosleep (const struct timespec *requested, - struct timespec *remaining) -{ - // ACE_TRACE ("ACE_OS::nanosleep"); -#if defined (ACE_HAS_CLOCK_GETTIME) - // ::nanosleep () is POSIX 1003.1b. So is ::clock_gettime (). So, - // if ACE_HAS_CLOCK_GETTIME is defined, then ::nanosleep () should - // be available on the platform. On Solaris 2.x, both functions - // require linking with -lposix4. - return ::nanosleep ((ACE_TIMESPEC_PTR) requested, remaining); -#elif defined (ACE_PSOS) - double ticks = KC_TICKS2SEC * requested->tv_sec + - ( ACE_static_cast (double, requested->tv_nsec) * - ACE_static_cast (double, KC_TICKS2SEC) ) / - ACE_static_cast (double, ACE_ONE_SECOND_IN_NSECS); - - if (ticks > ACE_static_cast (double, ACE_PSOS_Time_t::max_ticks)) - { - ticks -= ACE_static_cast (double, ACE_PSOS_Time_t::max_ticks); - remaining->tv_sec = ACE_static_cast (time_t, - (ticks / - ACE_static_cast (double, - KC_TICKS2SEC))); - ticks -= ACE_static_cast (double, remaining->tv_sec) * - ACE_static_cast (double, KC_TICKS2SEC); - - remaining->tv_nsec = - ACE_static_cast (long, - (ticks * ACE_static_cast (double, - ACE_ONE_SECOND_IN_NSECS)) / - ACE_static_cast (double, KC_TICKS2SEC)); - - ::tm_wkafter (ACE_PSOS_Time_t::max_ticks); - } - else - { - remaining->tv_sec = 0; - remaining->tv_nsec = 0; - ::tm_wkafter (ACE_static_cast (u_long, ticks)); - } - - // tm_wkafter always returns 0 - return 0; -#else - ACE_UNUSED_ARG (remaining); - - // Convert into seconds and microseconds. -# if ! defined(ACE_HAS_BROKEN_TIMESPEC_MEMBERS) - ACE_Time_Value tv (requested->tv_sec, - requested->tv_nsec / 1000); -# else - ACE_Time_Value tv (requested->ts_sec, - requested->ts_nsec / 1000); -# endif /* ACE_HAS_BROKEN_TIMESPEC_MEMBERS */ - return ACE_OS::sleep (tv); -#endif /* ACE_HAS_CLOCK_GETTIME */ -} - -#if !defined (ACE_HAS_MOSTLY_UNICODE_APIS) -ACE_INLINE int -ACE_OS::mkdir (const char *path, mode_t mode) -{ -# if defined (ACE_WIN32) - ACE_UNUSED_ARG (mode); - - ACE_OSCALL_RETURN (::_mkdir (path), int, -1); -# elif defined (VXWORKS) - ACE_UNUSED_ARG (mode); - ACE_OSCALL_RETURN (::mkdir ((char *) path), int, -1); -# else - ACE_OSCALL_RETURN (::mkdir (path, mode), int, -1); -# endif /* VXWORKS */ -} -#endif /* ACE_HAS_MOSTLY_UNICODE_APIS */ - -ACE_INLINE char * -ACE_OS::getenv (const char *symbol) -{ - // ACE_TRACE ("ACE_OS::getenv"); -#if !defined (ACE_HAS_WINCE) - ACE_OSCALL_RETURN (::getenv (symbol), char *, 0); -#else - // @@ WinCE doesn't have the concept of environment variables. - ACE_UNUSED_ARG (symbol); - ACE_NOTSUP_RETURN (0); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::putenv (const char *string) -{ - // ACE_TRACE ("ACE_OS::putenv"); - // VxWorks declares ::putenv with a non-const arg. -#if !defined (ACE_HAS_WINCE) - ACE_OSCALL_RETURN (::putenv ((char *) string), int, -1); -#else - // @@ WinCE doesn't have the concept of environment variables. - ACE_UNUSED_ARG (string); - ACE_NOTSUP_RETURN (-1); -#endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE -ACE_Str_Buf::ACE_Str_Buf (void *b, int l, int max) -{ - this->maxlen = max; - this->len = l; - this->buf = (char *) b; -} - -ACE_INLINE -ACE_Str_Buf::ACE_Str_Buf (strbuf &sb) -{ - this->maxlen = sb.maxlen; - this->len = sb.len; - this->buf = sb.buf; -} - -#if !defined (ACE_HAS_WCHAR_TYPEDEFS_CHAR) -ACE_INLINE size_t -ACE_OS::strlen (const wchar_t *s) -{ - // ACE_TRACE ("ACE_OS::strlen"); -# if defined (ACE_HAS_UNICODE) - return ::wcslen (s); -# else -# if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) - return wcslen (s); -# else - u_int len = 0; - - while (*s++ != 0) - len++; - - return len; -# endif /* ACE_HAS_XPG4_MULTIBYTE_CHAR */ -# endif /* ACE_HAS_UNICODE */ -} - -ACE_INLINE wchar_t * -ACE_OS::strcpy (wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strcpy"); -# if defined (ACE_HAS_UNICODE) - return ::wcscpy (s, t); -# else -# if defined (ACE_HAS_XPG4_MULTIBYTE_CHAR) - return wcscpy (s, t); -# else - wchar_t *result = s; - - while ((*s++ = *t++) != 0) - continue; - - return result; -# endif /* ACE_HAS_XPG4_MULTIBYTE_CHAR */ -# endif /* ACE_HAS_UNICODE */ -} -#endif /* ! ACE_HAS_WCHAR_TYPEDEFS_CHAR */ - -ACE_INLINE u_int -ACE_OS::wslen (const WChar *s) -{ - u_int len = 0; - - while (*s++) - len++; - - return len; -} - -ACE_INLINE ACE_OS::WChar * -ACE_OS::wscpy (WChar *dest, const WChar *src) -{ - WChar *original_dest = dest; - - while ((*dest++ = *src++) != 0) - continue; - - return original_dest; -} - -#if defined (ACE_HAS_UNICODE) - -ACE_INLINE int -ACE_OS::atoi (const wchar_t *s) -{ - return ::_wtoi (s); -} - -ACE_INLINE wchar_t * -ACE_OS::strpbrk (const wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::wcspbrk"); - return ::wcspbrk (s, t); -} - -ACE_INLINE wchar_t * -ACE_OS::strcat (wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strcat"); - return ::wcscat (s, t); -} - -ACE_INLINE const wchar_t * -ACE_OS::strchr (const wchar_t *s, wint_t c) -{ - // ACE_TRACE ("ACE_OS::strchr"); - return (const wchar_t *) ::wcschr (s, c); -} - -ACE_INLINE const wchar_t * -ACE_OS::strnchr (const wchar_t *s, wint_t c, size_t len) -{ - for (size_t i = 0; i < len; i++) - if (s[i] == c) - return s + i; - - return 0; -} - -ACE_INLINE const wchar_t * -ACE_OS::strrchr (const wchar_t *s, wint_t c) -{ - // ACE_TRACE ("ACE_OS::strrchr"); -# if !defined (ACE_HAS_WINCE) - return (const wchar_t *) ::wcsrchr (s, c); -# else - const wchar_t *p = s + ::wcslen (s); - - while (*p != c) - if (p == s) - return 0; - else - p--; - - return p; -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE wchar_t * -ACE_OS::strchr (wchar_t *s, wint_t c) -{ - // ACE_TRACE ("ACE_OS::strchr"); - return ::wcschr (s, c); -} - -ACE_INLINE wchar_t * -ACE_OS::strnchr (wchar_t *s, wint_t c, size_t len) -{ - return (wchar_t *) ACE_OS::strnchr ((const wchar_t *) s, c, len); -} - -ACE_INLINE wchar_t * -ACE_OS::strrchr (wchar_t *s, wint_t c) -{ - // ACE_TRACE ("ACE_OS::strrchr"); -# if !defined (ACE_HAS_WINCE) - return (wchar_t *) ::wcsrchr (s, c); -# else - wchar_t *p = s + ::wcslen (s); - - while (*p != c) - if (p == s) - return 0; - else - p--; - - return p; -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::strcmp (const wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strcmp"); - return ::wcscmp (s, t); -} - -ACE_INLINE wint_t -ACE_OS::to_lower (wint_t c) -{ - // ACE_TRACE ("ACE_OS::to_lower"); - return ::towlower (c); -} - -ACE_INLINE int -ACE_OS::strcasecmp (const wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strcasecmp"); - -# if !defined (ACE_WIN32) - // Handles most of what the BSD version does, but does not indicate - // lexicographic ordering if the strings are unequal. Just - // indicates equal (ignoring case) by return value == 0, else not - // equal. - int result = 0; - - do - { - int a = ACE_OS::to_lower (*s); - int b = ACE_OS::to_lower (*t); - result = ((a < b) ? -1 : (a > b)); - if (result != 0) - break; - } while (*s++ != '\0' && *t++ != '\0'); - // paranoid termination condition - - return result; // == 0 for match, else 1 - -# else /* ACE_WIN32 */ - return ::_wcsicmp (s, t); -# endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::strncasecmp (const wchar_t *s, const wchar_t *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strcasecmp"); - -# if !defined (ACE_WIN32) - // Handles most of what the BSD version does, but does not indicate - // lexicographic ordering if the strings are unequal. Just - // indicates equal (ignoring case) by return value == 0, else not - // equal. - int result = 0; - - while (*s != '\0' && *t != '\0' && len != 0) - { - if (ACE_OS::to_lower (*s) != ACE_OS::to_lower (*t)) - { - result = ((ACE_OS::to_lower (*s) < ACE_OS::to_lower (*t)) ? -1 : 1); - break; - } - - ++s; ++t; --len; - } - - return result; // == 0 for match, else 1 - -# else /* ACE_WIN32 */ - return ::_wcsnicmp (s, t, len); -# endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::strncmp (const wchar_t *s, const wchar_t *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncmp"); - return ::wcsncmp (s, t, len); -} - -ACE_INLINE wchar_t * -ACE_OS::strncpy (wchar_t *s, const wchar_t *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncpy"); - return ::wcsncpy (s, t, len); -} - -ACE_INLINE wchar_t * -ACE_OS::strncat (wchar_t *s, const wchar_t *t, size_t len) -{ - // ACE_TRACE ("ACE_OS::strncat"); - return ::wcsncat (s, t, len); -} - -ACE_INLINE wchar_t * -ACE_OS::strtok (wchar_t *s, const wchar_t *tokens) -{ - // ACE_TRACE ("ACE_OS::strtok"); - return ::wcstok (s, tokens); -} - -ACE_INLINE long -ACE_OS::strtol (const wchar_t *s, wchar_t **ptr, int base) -{ - // ACE_TRACE ("ACE_OS::strtol"); - return ::wcstol (s, ptr, base); -} - -ACE_INLINE int -ACE_OS::ace_isspace (wchar_t c) -{ - return iswspace (c); -} - -# if defined (ACE_WIN32) - -ACE_INLINE const wchar_t * -ACE_OS::strstr (const wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strstr"); - return (const wchar_t *) ::wcsstr (s, t); -} - -ACE_INLINE wchar_t * -ACE_OS::strstr (wchar_t *s, const wchar_t *t) -{ - // ACE_TRACE ("ACE_OS::strstr"); - return ::wcsstr (s, t); -} - -ACE_INLINE const wchar_t * -ACE_OS::strnstr (const wchar_t *s, const wchar_t *t, size_t len) -{ - size_t t_len = ACE_OS::strlen (t); - for (size_t i = 0; i < len - t_len; i++) - if (::memcmp (s + i, t, t_len * sizeof (wchar_t)) == 0) - return s + i; - - return 0; -} - -ACE_INLINE wchar_t * -ACE_OS::strnstr (wchar_t *s, const wchar_t *t, size_t len) -{ - return (wchar_t *) ACE_OS::strnstr ((const wchar_t *) s, t, len); -} - -ACE_INLINE wchar_t * -ACE_OS::strdup (const wchar_t *s) -{ - // ACE_TRACE ("ACE_OS::strdup"); -# if defined (__BORLANDC__) - wchar_t *buffer = (wchar_t *) malloc (strlen (s) * sizeof (wchar_t) + 1); - return ::wcscpy (buffer, s); -# else - return ::wcsdup (s); -# endif /* __BORLANDC__ */ -} - -ACE_INLINE int -ACE_OS::vsprintf (wchar_t *buffer, const wchar_t *format, va_list argptr) -{ - return ::vswprintf (buffer, format, argptr); -} - -ACE_INLINE int -ACE_OS::hostname (wchar_t *name, size_t maxnamelen) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::hostname"); - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::GetComputerNameW (name, LPDWORD (&maxnamelen)), - ace_result_), int, -1); -# else - ACE_UNUSED_ARG (name); - ACE_UNUSED_ARG (maxnamelen); - ACE_NOTSUP_RETURN (-1); -# endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE ACE_HANDLE -ACE_OS::open (const wchar_t *filename, - int mode, - int perms, - LPSECURITY_ATTRIBUTES sa) -{ - ACE_UNUSED_ARG (perms); - // ACE_TRACE ("ACE_OS::open"); - // Warning: This function ignores _O_APPEND - DWORD access = GENERIC_READ; - if (ACE_BIT_ENABLED (mode, O_WRONLY)) - access = GENERIC_WRITE; - else if (ACE_BIT_ENABLED (mode, O_RDWR)) - access = GENERIC_READ | GENERIC_WRITE; - - DWORD creation = OPEN_EXISTING; - - 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 (ACE_BIT_ENABLED (mode, _O_CREAT)) - creation = OPEN_ALWAYS; - else if (ACE_BIT_ENABLED (mode, _O_TRUNC)) - creation = TRUNCATE_EXISTING; - - DWORD flags = 0; - - if (ACE_BIT_ENABLED (mode, _O_TEMPORARY)) - flags |= FILE_FLAG_DELETE_ON_CLOSE; - - if (ACE_BIT_ENABLED (mode, FILE_FLAG_WRITE_THROUGH)) - flags |= FILE_FLAG_WRITE_THROUGH; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_OVERLAPPED)) - flags |= FILE_FLAG_OVERLAPPED; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_NO_BUFFERING)) - flags |= FILE_FLAG_NO_BUFFERING; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_RANDOM_ACCESS)) - flags |= FILE_FLAG_RANDOM_ACCESS; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_SEQUENTIAL_SCAN)) - flags |= FILE_FLAG_SEQUENTIAL_SCAN; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_DELETE_ON_CLOSE)) - flags |= FILE_FLAG_DELETE_ON_CLOSE; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_BACKUP_SEMANTICS)) - flags |= FILE_FLAG_BACKUP_SEMANTICS; - if (ACE_BIT_ENABLED (mode, FILE_FLAG_POSIX_SEMANTICS)) - flags |= FILE_FLAG_POSIX_SEMANTICS; - - ACE_HANDLE h = ::CreateFileW (filename, access, - FILE_SHARE_READ | FILE_SHARE_WRITE, - sa, creation, - flags, - 0); - - if (h == ACE_INVALID_HANDLE) - ACE_FAIL_RETURN (h); - else - return h; -} - -ACE_INLINE int -ACE_OS::unlink (const wchar_t *path) -{ - // ACE_TRACE ("ACE_OS::unlink"); -# if !defined (ACE_HAS_WINCE) - ACE_OSCALL_RETURN (::_wunlink (path), int, -1); -# else - // @@ The problem is, DeleteFile is not actually equals to unlink. ;( - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::DeleteFile (path), ace_result_), - int, -1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE ACE_SHLIB_HANDLE -ACE_OS::dlopen (ACE_WIDE_DL_TYPE filename, int mode) -{ - // ACE_TRACE ("ACE_OS::dlopen"); - ACE_UNUSED_ARG (mode); - - ACE_WIN32CALL_RETURN (::LoadLibraryW (filename), ACE_SHLIB_HANDLE, 0); -} - -ACE_INLINE wchar_t * -ACE_OS::getenv (const wchar_t *symbol) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::getenv"); - ACE_OSCALL_RETURN (::_wgetenv (symbol), wchar_t *, 0); -# else - ACE_UNUSED_ARG (symbol); - ACE_NOTSUP_RETURN (0); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::rename (const wchar_t *old_name, const wchar_t *new_name) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::rename"); - ACE_OSCALL_RETURN (::_wrename (old_name, new_name), int, -1); -# else - // @@ There should be a Win32 API that can do this. - ACE_UNUSED_ARG (old_name); - ACE_UNUSED_ARG (new_name); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::access (const wchar_t *path, int amode) -{ -# if !defined (ACE_HAS_WINCE) - // ACE_TRACE ("ACE_OS::access"); - ACE_OSCALL_RETURN (::_waccess (path, amode), int, -1); -# else - // @@ There should be a Win32 API that can do this. - ACE_UNUSED_ARG (path); - ACE_UNUSED_ARG (amode); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE FILE * -ACE_OS::fopen (const wchar_t *filename, const wchar_t *mode) -{ -# if !defined (ACE_HAS_WINCE) - ACE_OSCALL_RETURN (::_wfopen (filename, mode), FILE *, 0); -# else - DWORD creation; - - switch (mode[0]) - { - case (TCHAR) 'r': - creation = OPEN_EXISTING; - break; - case (TCHAR) 'a': - creation = OPEN_ALWAYS; - break; - case (TCHAR) 'w': - creation = CREATE_ALWAYS; - break; - default: - errno = EINVAL; - return ACE_INVALID_HANDLE; - } - HANDLE retv = ::CreateFile (filename, - GENERIC_READ | GENERIC_WRITE, - FILE_SHARE_READ | FILE_SHARE_WRITE, - NULL, - creation, - FILE_ATTRIBUTE_NORMAL, - NULL); - if (retv == INVALID_HANDLE_VALUE) - errno = ::GetLastError (); - // Move the file pointer to EOF if we are opening the file in append mode. - else if (creation == OPEN_ALWAYS) - { - ::SetFilePointer (retv, 0, 0, FILE_END); - } - return retv; -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE FILE * -ACE_OS::fdopen (ACE_HANDLE handle, const wchar_t *mode) -{ - // ACE_TRACE ("ACE_OS::fdopen"); -# if !defined (ACE_HAS_WINCE) - // kernel file handle -> FILE* conversion... - // Options: _O_APPEND, _O_RDONLY and _O_TEXT are lost - - FILE *file = 0; - - int crt_handle = ::_open_osfhandle ((long) handle, 0); - - if (crt_handle != -1) - { -# if defined(__BORLANDC__) - file = ::_wfdopen (crt_handle, (wchar_t*) mode); -# else - file = ::_wfdopen (crt_handle, mode); -# endif /* defined(__BORLANDC__) */ - - if (!file) - { -# if (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) - ::_rtl_close (crt_handle); -# else - ::_close (crt_handle); -# endif /* (defined(__BORLANDC__) && __BORLANDC__ >= 0x0530) */ - } - } - - return file; -# else /* ! ACE_HAS_WINCE */ - // @@ this function has to be implemented??? - // Okey, don't know how to implement it on CE. - ACE_UNUSED_ARG (handle); - ACE_UNUSED_ARG (mode); - ACE_NOTSUP_RETURN (0); -# endif /* ! ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::stat (const wchar_t *file, struct stat *stp) -{ - // ACE_TRACE ("ACE_OS::stat"); -# if defined (ACE_HAS_WINCE) - WIN32_FIND_DATA fdata; - HANDLE fhandle; - - fhandle = ::FindFirstFile (file, &fdata); - if (fhandle == INVALID_HANDLE_VALUE) - { - errno = ::GetLastError (); - return -1; - } - else if (fdata.nFileSizeHigh != 0) - { - errno = EINVAL; - return -1; - } - else - { - stp->st_size = fdata.nFileSizeLow; - stp->st_atime = ACE_Time_Value (fdata.ftLastAccessTime); - stp->st_mtime = ACE_Time_Value (fdata.ftLastWriteTime); - } - return 0; -# elif defined (__BORLANDC__) - ACE_OSCALL_RETURN (::_wstat (file, stp), int, -1); -# else - ACE_OSCALL_RETURN (::_wstat (file, (struct _stat *) stp), int, -1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE void -ACE_OS::perror (const wchar_t *s) -{ - // ACE_TRACE ("ACE_OS::perror"); -# if !defined (ACE_HAS_WINCE) - ::_wperror (s); -# else - // @@ Let's leave this to some later point. - ACE_UNUSED_ARG (s); - //@@??@@ ACE_NOTSUP_RETURN (); -# endif /* ! ACE_HAS_WINCE */ -} - - -ACE_INLINE int -ACE_OS::system (const wchar_t *command) -{ -# if !defined (ACE_HAS_WINCE) - ACE_OSCALL_RETURN (::_wsystem (command), int, -1); -# else - // @@ Should be able to emulate this using Win32 APIS. - ACE_UNUSED_ARG (command); - ACE_NOTSUP_RETURN (-1); -# endif /* ACE_HAS_WINCE */ -} - -# if !defined (ACE_LACKS_MKTEMP) -ACE_INLINE wchar_t * -ACE_OS::mktemp (wchar_t *s) -{ - // ACE_TRACE ("ACE_OS::mktemp"); - return ::_wmktemp (s); -} -# endif /* !ACE_LACKS_MKTEMP */ - -ACE_INLINE int -ACE_OS::mkdir (const wchar_t *path, mode_t mode) -{ - // ACE_TRACE ("ACE_OS::mkdir"); -# if !defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (mode); - - ACE_OSCALL_RETURN (::_wmkdir (path), int, -1); -# else - ACE_WIN32CALL_RETURN (ACE_ADAPT_RETVAL (::CreateDirectory (path, NULL), - ace_result_), - int, -1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE int -ACE_OS::chdir (const wchar_t *path) -{ - // ACE_TRACE ("ACE_OS::chdir"); -# if defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (path); - ACE_NOTSUP_RETURN (-1); -# else - ACE_OSCALL_RETURN (::_wchdir (path), int, -1); -# endif /* ACE_HAS_WINCE */ -} - -ACE_INLINE wchar_t * -ACE_OS::getcwd (wchar_t *buf, size_t size) -{ - // ACE_TRACE ("ACE_OS::getcwd"); -# if defined (ACE_HAS_WINCE) - ACE_UNUSED_ARG (buf); - ACE_UNUSED_ARG (size); - ACE_NOTSUP_RETURN (0); -# else - return ::_wgetcwd (buf, size); -# endif /* ACE_HAS_WINCE */ -} -# endif /* ACE_WIN32 */ -#endif /* ACE_HAS_UNICODE */ - -#if defined (ACE_LACKS_COND_T) -ACE_INLINE long -ACE_cond_t::waiters (void) const -{ - return this->waiters_; -} -#endif /* ACE_LACKS_COND_T */ - -#if 0 -ACE_INLINE int -ACE_OS::thr_continue (const ACE_Thread_ID &thr_id) -{ - // ACE_TRACE ("ACE_OS::thr_continue"); - return ACE_OS::thr_continue (thr_id.id ()); -} - -ACE_INLINE int -ACE_OS::thr_create (ACE_THR_FUNC func, - void *args, - long flags, - ACE_Thread_ID *thr_id, - long priority, - void *stack, - size_t stacksize); -{ - // ACE_TRACE ("ACE_OS::thr_create"); - ACE_thread_t thread_id; - ACE_hthread_t thread_handle; - - int result = ACE_OS::thr_create (func, args, flags, - &thread_id, &thread_handle, - priority, stack, stacksize); - if (result == -1) - return -1; - else if (thr_id != 0) - { - thr_id->id (thread_id); - thr_id->handle (thread_handle); - return result; - } -} - -ACE_INLINE int -ACE_OS::thr_getprio (const ACE_Thread_ID &thr_id, int &prio) -{ - // ACE_TRACE ("ACE_OS::thr_getprio"); - return ACE_OS::thr_getprio (thr_id.handle (), prio); -} - -ACE_INLINE int -ACE_OS::thr_join (const ACE_Thread_ID &thr_id, void **status) -{ -# if defined (ACE_WIN32) - return ACE_OS::thr_join (thr_id.handle (), status); -# else - return ACE_OS::thr_join (thr_id.id (), status); -# endif /* ACE_WIN32 */ -} - -ACE_INLINE int -ACE_OS::thr_cancel (const ACE_Thread_ID &thr_id) -{ - return ACE_OS::thr_cancel (thr_id.id ()); -} - -ACE_INLINE int -ACE_OS::thr_kill (const ACE_Thread_ID &thr_id, int signum) -{ - return ACE_OS::thr_kill (thr_id.id (), signum); -} - -ACE_INLINE ACE_Thread_ID -ACE_OS::thr_self (void) -{ - ACE_hthread_t thr_handle; - ACE_OS::thr_self (thr_handle); - ACE_thread_t thr_id = ACE_OS::thr_self (); - - return ACE_Thread_ID (thr_id, thr_handle); -} - -ACE_INLINE int -ACE_OS::thr_setprio (const ACE_Thread_ID &thr_id, int prio) -{ - // ACE_TRACE ("ACE_OS::thr_setprio"); - return ACE_OS::thr_setprio (thr_id.handle (), prio); -} - -ACE_INLINE int -ACE_OS::thr_suspend (const ACE_Thread_ID &thr_id) -{ - return ACE_OS::thr_suspend (thr_id.handle ()); -} - -#endif /* 0 */ - -ACE_INLINE int -ACE_OS::sigaddset (sigset_t *s, int signum) -{ - // ACE_TRACE ("ACE_OS::sigaddset"); -#if !defined (ACE_LACKS_SIGSET) - ACE_OSCALL_RETURN (::sigaddset (s, signum), int, -1); -#else - if (s == NULL) { - errno = EFAULT ; - return -1 ; - } - if (signum < 1 || signum >= ACE_NSIG) { - errno = EINVAL ; - return -1 ; // Invalid signum, return error - } - *s |= (1 << (signum - 1)) ; - return 0 ; -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE int -ACE_OS::sigdelset (sigset_t *s, int signum) -{ -#if !defined (ACE_LACKS_SIGSET) - ACE_OSCALL_RETURN (::sigdelset (s, signum), int, -1); -#else - if (s == NULL) { - errno = EFAULT ; - return -1 ; - } - if (signum < 1 || signum >= ACE_NSIG) { - errno = EINVAL ; - return -1 ; // Invalid signum, return error - } - *s &= ~(1 << (signum - 1)) ; - return 0 ; -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE int -ACE_OS::sigemptyset (sigset_t *s) -{ -#if !defined (ACE_LACKS_SIGSET) - ACE_OSCALL_RETURN (::sigemptyset (s), int, -1); -#else - if (s == NULL) { - errno = EFAULT ; - return -1 ; - } - *s = 0 ; - return 0 ; -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE int -ACE_OS::sigfillset (sigset_t *s) -{ -#if !defined (ACE_LACKS_SIGSET) - ACE_OSCALL_RETURN (::sigfillset (s), int, -1); -#else - if (s == NULL) { - errno = EFAULT ; - return -1 ; - } - *s = ~(sigset_t) 0 ; - return 0 ; -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE int -ACE_OS::sigismember (sigset_t *s, int signum) -{ -#if !defined (ACE_LACKS_SIGSET) - ACE_OSCALL_RETURN (::sigismember (s, signum), int, -1); -#else - if (s == NULL) { - errno = EFAULT ; - return -1 ; - } - if (signum < 1 || signum >= ACE_NSIG) { - errno = EINVAL ; - return -1 ; // Invalid signum, return error - } - return ((*s & (1 << (signum - 1))) != 0) ; -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE int -ACE_OS::sigprocmask (int how, const sigset_t *nsp, sigset_t *osp) -{ -#if !defined (ACE_LACKS_SIGSET) -# if defined (ACE_LACKS_POSIX_PROTOTYPES) - ACE_OSCALL_RETURN (::sigprocmask (how, (int*) nsp, osp), int, -1); -# else - ACE_OSCALL_RETURN (::sigprocmask (how, nsp, osp), int, -1); -# endif /* ACE_LACKS_POSIX_PROTOTYPES */ -#else - ACE_UNUSED_ARG (how); - ACE_UNUSED_ARG (nsp); - ACE_UNUSED_ARG (osp); - ACE_NOTSUP_RETURN (-1); -#endif /* !ACE_LACKS_SIGSET */ -} - -ACE_INLINE void * -ACE_OS::sbrk (int brk) -{ - // ACE_TRACE ("ACE_OS::sbrk"); - -#if defined (ACE_LACKS_SBRK) - ACE_UNUSED_ARG (brk); - ACE_NOTSUP_RETURN (0); -#else - ACE_OSCALL_RETURN (::sbrk (brk), void *, 0); -#endif /* VXWORKS */ -} - -ACE_INLINE ACE_Thread_Manager * -ACE_Thread_Adapter::thr_mgr (void) -{ - return this->thr_mgr_; -} - -ACE_INLINE -ACE_Thread_Adapter::~ACE_Thread_Adapter (void) -{ -} - -ACE_INLINE ACE_THR_C_FUNC -ACE_Thread_Adapter::entry_point (void) -{ - return this->entry_point_; -} - -#if defined (ACE_HAS_WINCE) -ACE_INLINE size_t -fwrite (void *buf, size_t sz, size_t count, FILE *fp) -{ - return ACE_OS::fwrite (buf, sz, count, fp); -} - -ACE_INLINE size_t -fread (void *buf, size_t sz, size_t count, FILE *fp) -{ - return ACE_OS::fread (buf, sz, count, fp); -} - -ACE_INLINE int -getc (FILE *fp) -{ - char retv; - if (ACE_OS::fread (&retv, 1, 1, fp) != 1) - return EOF; - else - return retv; -} - -ACE_INLINE int -ferror (FILE *fp) -{ - // @@ Hey! What should I implement here? - return 0; -} - -ACE_INLINE int -isatty (ACE_HANDLE h) -{ - return ACE_OS::isatty (h); -} - -ACE_INLINE ACE_HANDLE -fileno (FILE *fp) -{ - return fp; -} - -ACE_INLINE int -fflush (FILE *fp) -{ - return ACE_OS::fflush (fp); -} - -ACE_INLINE void -exit (int status) -{ - ACE_OS::exit (status); -} - -ACE_INLINE int -printf (const char *format, ...) -{ - ACE_UNUSED_ARG (format); - return 0; -} - -ACE_INLINE int -putchar (int c) -{ - ACE_UNUSED_ARG (c); - return c; -} -#endif /* ACE_HAS_WINCE */ - -ACE_INLINE -ACE_Cleanup::ACE_Cleanup (void) -{ -} - -ACE_INLINE -ACE_Cleanup::~ACE_Cleanup (void) -{ -} diff --git a/ace/Object_Manager.cpp b/ace/Object_Manager.cpp deleted file mode 100644 index cb8aff6a65f..00000000000 --- a/ace/Object_Manager.cpp +++ /dev/null @@ -1,870 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL - -#include "ace/Object_Manager.h" -#include "ace/Token_Manager.h" -#if !defined (ACE_HAS_WINCE) -#include "ace/Naming_Context.h" -#endif /* !ACE_HAS_WINCE */ -#include "ace/Service_Manager.h" -#include "ace/Service_Config.h" -#include "ace/Signal.h" -#include "ace/Log_Msg.h" -#include "ace/Containers.h" -#include "ace/Array.h" -#include "ace/Synch.h" -#include "ace/Malloc.h" -#include "ace/Signal.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Object_Manager.i" -#endif /* __ACE_INLINE__ */ - -#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS) -# define ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS -#endif /* ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS */ - -#if ! defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS) -# define ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS -#endif /* ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS */ - -#if ! defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS) -# define ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS -#endif /* ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS */ - -#if ! defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS) -# define ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS -#endif /* ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS */ - - -// Static data. -ACE_Object_Manager *ACE_Object_Manager::instance_ = 0; - -int ACE_Object_Manager::starting_up_ = 1; -int ACE_Object_Manager::shutting_down_ = 0; -ACE_Sig_Set *ACE_Object_Manager::default_mask_p_ = 0; - -void *ACE_Object_Manager::managed_object[ACE_MAX_MANAGED_OBJECTS] = { 0 }; - -u_int ACE_Object_Manager::next_managed_object = 0; - -void *ACE_Object_Manager::preallocated_object[ - ACE_Object_Manager::ACE_PREALLOCATED_OBJECTS] = { 0 }; - -void *ACE_Object_Manager::preallocated_array[ - ACE_Object_Manager::ACE_PREALLOCATED_ARRAYS] = { 0 }; - -ACE_Sig_Adapter *ace_service_config_sig_handler = 0; - -// Handy macros for use by ACE_Object_Manager constructor to preallocate or -// delete an object or array, either statically (in global data) or -// dynamically (on the heap). -#if defined (ACE_HAS_STATIC_PREALLOCATION) -# define ACE_PREALLOCATE_OBJECT(TYPE, ID)\ - {\ - static ACE_Cleanup_Adapter obj;\ - preallocated_object[ID] = &obj;\ - } -# define ACE_PREALLOCATE_ARRAY(TYPE, ID, COUNT)\ - {\ - static ACE_Cleanup_Adapter obj[COUNT];\ - preallocated_array[ID] = &obj;\ - } -#else -# define ACE_PREALLOCATE_OBJECT(TYPE, ID)\ - {\ - ACE_Cleanup_Adapter *obj_p;\ - ACE_NEW (obj_p, ACE_Cleanup_Adapter);\ - preallocated_object[ID] = obj_p;\ - } -# define ACE_PREALLOCATE_ARRAY(TYPE, ID, COUNT)\ - {\ - ACE_Cleanup_Adapter *array_p;\ - ACE_NEW (array_p, ACE_Cleanup_Adapter);\ - preallocated_array[ID] = array_p;\ - } -# define ACE_DELETE_PREALLOCATED_OBJECT(TYPE, ID)\ - ace_cleanup_destroyer (\ - (ACE_Cleanup_Adapter *) preallocated_object[ID], 0);\ - preallocated_object[ID] = 0; -# define ACE_DELETE_PREALLOCATED_ARRAY(TYPE, ID, COUNT)\ - delete (ACE_Cleanup_Adapter *) preallocated_array[ID];\ - preallocated_array[ID] = 0; -#endif /* ACE_HAS_STATIC_PREALLOCATION */ - - -class ACE_Object_Manager_Preallocations -{ -public: - ACE_Object_Manager_Preallocations (void); - ~ACE_Object_Manager_Preallocations (void); - -private: -#if !defined (ACE_HAS_WINCE) - ACE_Static_Svc_Descriptor ace_svc_desc_ACE_Naming_Context; -#endif /* !ACE_HAS_WINCE */ - ACE_Static_Svc_Descriptor ace_svc_desc_ACE_Service_Manager; -}; - -static -ACE_Object_Manager_Preallocations *ace_object_manager_preallocations = 0; - -// We can't use the ACE_SVC_FACTORY_DECLARE macro here because this -// needs to be in the ACE_Export context rather than the -// ACE_Svc_Export context. -extern "C" ACE_Export ACE_Service_Object *_make_ACE_Service_Manager (ACE_Service_Object_Exterminator *); - -ACE_Object_Manager_Preallocations::ACE_Object_Manager_Preallocations () -{ - // Define the static services. This macro call creates static service - // descriptors that are used for initialization below. -#if !defined (ACE_HAS_WINCE) - ACE_STATIC_SVC_DEFINE (ACE_Naming_Context_initializer, - ASYS_TEXT ("ACE_Naming_Context"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (ACE_Naming_Context), - ACE_Service_Type::DELETE_THIS | - ACE_Service_Type::DELETE_OBJ, - 0) -#endif /* !ACE_HAS_WINCE */ - - ACE_STATIC_SVC_DEFINE (ACE_Service_Manager_initializer, - ASYS_TEXT ("ACE_Service_Manager"), - ACE_SVC_OBJ_T, - &ACE_SVC_NAME (ACE_Service_Manager), - ACE_Service_Type::DELETE_THIS | - ACE_Service_Type::DELETE_OBJ, - 0) - - // Initialize the static service objects using the descriptors created - // above. -#if !defined (ACE_HAS_WINCE) - ace_svc_desc_ACE_Naming_Context = - ace_svc_desc_ACE_Naming_Context_initializer; -#endif /* !ACE_HAS_WINCE */ - - ace_svc_desc_ACE_Service_Manager = - ace_svc_desc_ACE_Service_Manager_initializer; - - // Add to the list of static configured services. -#if !defined (ACE_HAS_WINCE) - ACE_Service_Config::static_svcs ()-> - insert (&ace_svc_desc_ACE_Naming_Context); -#endif /* !ACE_HAS_WINCE */ - - ACE_Service_Config::static_svcs ()-> - insert (&ace_svc_desc_ACE_Service_Manager); -} - -ACE_Object_Manager_Preallocations::~ACE_Object_Manager_Preallocations (void) -{ -} - -ACE_Object_Manager::ACE_Object_Manager (void) - // , lock_ is initialized in the function body. - // - // With ACE_HAS_TSS_EMULATION, ts_storage_ is initialized by the call to - // ACE_OS::tss_open () in the function body. -{ - ACE_MT (ACE_NEW (lock_, ACE_Recursive_Thread_Mutex)); - -#if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) - // Store the address of this static instance so that instance () - // doesn't allocate a new one when called. - instance_ = this; -#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */ - - // Allocate the preallocated (hard-coded) object instances. - ACE_PREALLOCATE_OBJECT (ACE_SYNCH_RW_MUTEX, ACE_FILECACHE_LOCK) -#if defined (ACE_HAS_THREADS) - ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex, ACE_STATIC_OBJECT_LOCK) -#endif /* ACE_HAS_THREADS */ -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_LOG_MSG_INSTANCE_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_MT_CORBA_HANDLER_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_DUMP_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_OS_MONITOR_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex, ACE_SIG_HANDLER_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Null_Mutex, ACE_SINGLETON_NULL_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex, - ACE_SINGLETON_RECURSIVE_THREAD_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Thread_Mutex, ACE_THREAD_EXIT_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_TOKEN_CONST::MUTEX, - ACE_TOKEN_MANAGER_CREATION_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_TOKEN_CONST::MUTEX, - ACE_TOKEN_INVARIANTS_CREATION_LOCK) - ACE_PREALLOCATE_OBJECT (ACE_Recursive_Thread_Mutex, ACE_TSS_CLEANUP_LOCK) -# endif /* ACE_MT_SAFE */ - - // Do this after the allocation of ACE_STATIC_OBJECT_LOCK. It shouldn't - // matter, but just in case ACE_Static_Object_Lock::instance () gets - // changed . . . - ACE_NEW (registered_objects_, ACE_Unbounded_Queue); - - // Hooks for preallocated objects and arrays provided by application. - ACE_APPLICATION_PREALLOCATED_OBJECT_DEFINITIONS - ACE_APPLICATION_PREALLOCATED_ARRAY_DEFINITIONS - - // Construct the ACE_Service_Config's signal handler. - ACE_NEW (ace_service_config_sig_handler, - ACE_Sig_Adapter (&ACE_Service_Config::handle_signal)); - ACE_Service_Config::signal_handler (ace_service_config_sig_handler); - -#if defined (ACE_HAS_TSS_EMULATION) - // Initialize the main thread's TS storage. - ACE_TSS_Emulation::tss_open (ts_storage_); -#endif /* ACE_HAS_TSS_EMULATION */ - - // Open Winsock (no-op on other platforms). - ACE_OS::socket_init (ACE_WSOCK_VERSION); - - ACE_NEW (ace_object_manager_preallocations, - ACE_Object_Manager_Preallocations); - - // Open the main thread's ACE_Log_Msg. - (void) ACE_LOG_MSG; - - // Finally, indicate that the ACE_Object_Manager instance has been - // constructed. - ACE_Object_Manager::starting_up_ = 0; - - ACE_NEW (ACE_Object_Manager::default_mask_p_, - ACE_Sig_Set (1)); -} - -ACE_Object_Manager * -ACE_Object_Manager::instance (void) -{ - // This function should be call during construction of static - // instances, so it's not thread safe. - - if (instance_ == 0) - ACE_NEW_RETURN (instance_, ACE_Object_Manager, 0); - - return instance_; -} - -int -ACE_Object_Manager::starting_up () -{ - return ACE_Object_Manager::starting_up_; -} - -int -ACE_Object_Manager::shutting_down () -{ - return ACE_Object_Manager::shutting_down_; -} - -int -ACE_Object_Manager::at_exit_i (void *object, - ACE_CLEANUP_FUNC cleanup_hook, - void *param) -{ - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, ace_mon, *lock_, -1)); - - if (shutting_down ()) - { - errno = EAGAIN; - return -1; - } - - // Check for already in queue, and return 1 if so. - ACE_Cleanup_Info *info = 0; - for (ACE_Unbounded_Queue_Iterator iter (*registered_objects_); - iter.next (info) != 0; - iter.advance ()) - { - if (info->object_ == object) - { - // The object has already been registered. - errno = EEXIST; - return -1; - } - } - - ACE_Cleanup_Info new_info; - new_info.object_ = object; - new_info.cleanup_hook_ = cleanup_hook; - new_info.param_ = param; - - // Returns -1 and sets errno if unable to allocate storage. Enqueue - // at the head and dequeue from the head to get LIFO ordering. - return registered_objects_->enqueue_head (new_info); -} - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - -// These are global so that they don't have to be declared in the -// header file. That would cause nasty circular include problems. -static ACE_Cleanup_Adapter * -ACE_Object_Manager_singleton_null_lock = 0; - -static ACE_Array * -ACE_Object_Manager_singleton_thread_locks = 0; - -static ACE_Array * -ACE_Object_Manager_singleton_mutex_locks = 0; - -static ACE_Cleanup_Adapter * -ACE_Object_Manager_singleton_recursive_lock = 0; - -static ACE_Array * -ACE_Object_Manager_singleton_rw_locks = 0; - -int -ACE_Object_Manager::get_singleton_lock (ACE_Null_Mutex *&lock) -{ - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The preallocated lock has not been constructed yet. - // Therefore, the program is single-threaded at this point. Or, - // the ACE_Object_Manager instance has been destroyed, so the - // preallocated lock is not available. Allocate a lock to use, - // for interface compatibility, though there should be no - // contention on it. - if (ACE_Object_Manager_singleton_null_lock == 0) - { - ACE_NEW_RETURN (ACE_Object_Manager_singleton_null_lock, - ACE_Cleanup_Adapter, - -1); - - // Can't register with the ACE_Object_Manager here! The - // lock's declaration is visible to the ACE_Object_Manager - // destructor, so it will clean it up as a special case. - } - - if (ACE_Object_Manager_singleton_null_lock != 0) - lock = &ACE_Object_Manager_singleton_null_lock->object (); - } - else - // Use the Object_Manager's preallocated lock. - lock = ACE_Managed_Object::get_preallocated_object - (ACE_Object_Manager::ACE_SINGLETON_NULL_LOCK); - - return 0; -} - -int -ACE_Object_Manager::get_singleton_lock (ACE_Thread_Mutex *&lock) -{ - if (lock == 0) - { - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. - - ACE_NEW_RETURN (lock, ACE_Thread_Mutex, -1); - - // Add the new lock to the array of locks to be deleted - // at program termination. - if (ACE_Object_Manager_singleton_thread_locks == 0) - { - // Create the array, then insert the new lock. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_thread_locks, - ACE_Array ( - (size_t) 1, - (ACE_Thread_Mutex *) 0), - -1); - (*ACE_Object_Manager_singleton_thread_locks)[0] = lock; - } - else - { - // Grow the array, then insert the new lock. - - // Copy the array pointer. - ACE_Array *tmp = - ACE_Object_Manager_singleton_thread_locks; - - // Create a new array with one more slot than the current one. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_thread_locks, - ACE_Array ( - tmp->size () + (size_t) 1, - (ACE_Thread_Mutex *) 0), - -1); - - // Copy the old array to the new array. - for (u_int i = 0; i < tmp->size (); ++i) - (*ACE_Object_Manager_singleton_thread_locks)[i] = (*tmp) [i]; - - // Insert the new lock at the end of the array. - (*ACE_Object_Manager_singleton_thread_locks)[tmp->size ()] = - lock; - - delete tmp; - } - } - else - { - // Allocate a new lock, but use double-checked locking to - // ensure that only one thread allocates it. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, - ace_mon, - *ACE_Object_Manager::instance ()->lock_, - -1)); - - if (lock == 0) - { - ACE_Cleanup_Adapter *lock_adapter; - ACE_NEW_RETURN (lock_adapter, - ACE_Cleanup_Adapter, - -1); - lock = &lock_adapter->object (); - - // Register the lock for destruction at program termination. - // This call will cause us to grab the ACE_Object_Manager lock_ - // again; that's why it is a recursive lock. - ACE_Object_Manager::at_exit (lock_adapter); - } - } - } - - return 0; -} - -int -ACE_Object_Manager::get_singleton_lock (ACE_Mutex *&lock) -{ - if (lock == 0) - { - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. - - ACE_NEW_RETURN (lock, ACE_Mutex, -1); - - // Add the new lock to the array of locks to be deleted - // at program termination. - if (ACE_Object_Manager_singleton_mutex_locks == 0) - { - // Create the array, then insert the new lock. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_mutex_locks, - ACE_Array ( - (size_t) 1, - (ACE_Mutex *) 0), - -1); - (*ACE_Object_Manager_singleton_mutex_locks)[0] = lock; - } - else - { - // Grow the array, then insert the new lock. - - // Copy the array pointer. - ACE_Array *tmp = - ACE_Object_Manager_singleton_mutex_locks; - - // Create a new array with one more slot than the current one. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_mutex_locks, - ACE_Array ( - tmp->size () + (size_t) 1, - (ACE_Mutex *) 0), - -1); - - // Copy the old array to the new array. - for (u_int i = 0; i < tmp->size (); ++i) - (*ACE_Object_Manager_singleton_mutex_locks)[i] = (*tmp) [i]; - - // Insert the new lock at the end of the array. - (*ACE_Object_Manager_singleton_mutex_locks)[tmp->size ()] = - lock; - - delete tmp; - } - } - else - { - // Allocate a new lock, but use double-checked locking to - // ensure that only one thread allocates it. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, - ace_mon, - *ACE_Object_Manager::instance ()->lock_, - -1)); - - if (lock == 0) - { - ACE_Cleanup_Adapter *lock_adapter; - ACE_NEW_RETURN (lock_adapter, - ACE_Cleanup_Adapter, - -1); - lock = &lock_adapter->object (); - - // Register the lock for destruction at program termination. - // This call will cause us to grab the ACE_Object_Manager lock_ - // again; that's why it is a recursive lock. - ACE_Object_Manager::at_exit (lock_adapter); - } - } - } - - return 0; -} - -int -ACE_Object_Manager::get_singleton_lock (ACE_Recursive_Thread_Mutex *&lock) -{ - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The preallocated lock has not been constructed yet. - // Therefore, the program is single-threaded at this point. Or, - // the ACE_Object_Manager instance has been destroyed, so the - // preallocated lock is not available. Allocate a lock to use, - // for interface compatibility, though there should be no - // contention on it. - if (ACE_Object_Manager_singleton_recursive_lock == 0) - ACE_NEW_RETURN (ACE_Object_Manager_singleton_recursive_lock, - ACE_Cleanup_Adapter, - -1); - - // Can't register with the ACE_Object_Manager here! The - // lock's declaration is visible to the ACE_Object_Manager - // destructor, so it will clean it up as a special case. - - if (ACE_Object_Manager_singleton_recursive_lock != 0) - lock = &ACE_Object_Manager_singleton_recursive_lock->object (); - } - else - // Use the Object_Manager's preallocated lock. - lock = ACE_Managed_Object:: - get_preallocated_object (ACE_Object_Manager:: - ACE_SINGLETON_RECURSIVE_THREAD_LOCK); - - return 0; -} - -int -ACE_Object_Manager::get_singleton_lock (ACE_RW_Thread_Mutex *&lock) -{ - if (lock == 0) - { - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The Object_Manager and its internal lock have not been - // constructed yet. Therefore, the program is single- - // threaded at this point. Or, the ACE_Object_Manager - // instance has been destroyed, so the internal lock is not - // available. Either way, we can not use double-checked - // locking. - - ACE_NEW_RETURN (lock, ACE_RW_Thread_Mutex, -1); - - // Add the new lock to the array of locks to be deleted - // at program termination. - if (ACE_Object_Manager_singleton_rw_locks == 0) - { - // Create the array, then insert the new lock. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_rw_locks, - ACE_Array ( - (size_t) 1, - (ACE_RW_Thread_Mutex *) 0), - -1); - (*ACE_Object_Manager_singleton_rw_locks)[0] = lock; - } - else - { - // Grow the array, then insert the new lock. - - // Copy the array pointer. - ACE_Array *tmp = - ACE_Object_Manager_singleton_rw_locks; - - // Create a new array with one more slot than the current one. - ACE_NEW_RETURN (ACE_Object_Manager_singleton_rw_locks, - ACE_Array ( - tmp->size () + (size_t) 1, - (ACE_RW_Thread_Mutex *) 0), - -1); - - // Copy the old array to the new array. - for (u_int i = 0; i < tmp->size (); ++i) - (*ACE_Object_Manager_singleton_rw_locks)[i] = (*tmp) [i]; - - // Insert the new lock at the end of the array. - (*ACE_Object_Manager_singleton_rw_locks)[tmp->size ()] = lock; - - delete tmp; - } - } - else - { - // Allocate a new lock, but use double-checked locking to - // ensure that only one thread allocates it. - ACE_MT (ACE_GUARD_RETURN (ACE_Recursive_Thread_Mutex, - ace_mon, - *ACE_Object_Manager::instance ()->lock_, - -1)); - - if (lock == 0) - { - ACE_Cleanup_Adapter *lock_adapter; - ACE_NEW_RETURN (lock_adapter, - ACE_Cleanup_Adapter, - -1); - lock = &lock_adapter->object (); - - // Register the lock for destruction at program termination. - // This call will cause us to grab the ACE_Object_Manager lock_ - // again; that's why it is a recursive lock. - ACE_Object_Manager::at_exit (lock_adapter); - } - } - } - - return 0; -} -#endif /* ACE_MT_SAFE */ - -ACE_Object_Manager::~ACE_Object_Manager (void) -{ - // No mutex here. Only the main thread should destroy the singleton - // ACE_Object_Manager instance. - - // First, indicate that the ACE_Object_Manager instance is (being) - // destroyed. If an object tries to register after this, it will be - // refused. - ACE_Object_Manager::shutting_down_ = 1; - - ACE_Trace::stop_tracing (); - - ACE_Cleanup_Info info; - - // Call all registered cleanup hooks, in reverse order of - // registration. - while (registered_objects_ && - registered_objects_->dequeue_head (info) != -1) - { - if (info.cleanup_hook_ == (ACE_CLEANUP_FUNC) ace_cleanup_destroyer) - // The object is an ACE_Cleanup. - ace_cleanup_destroyer ((ACE_Cleanup *) info.object_, info.param_); - else - (*info.cleanup_hook_) (info.object_, info.param_); - } - - // Close and delete all ACE library services and singletons. - ACE_Service_Config::close (); - - // Close the main thread's TSS, including its Log_Msg instance. - ACE_OS::cleanup_tss (1 /* main thread */); - - // Close down Winsock (no-op on other platforms). - ACE_OS::socket_fini (); - - delete ace_object_manager_preallocations; - ace_object_manager_preallocations = 0; - - delete ace_service_config_sig_handler; - ace_service_config_sig_handler = 0; - - ACE_MT (delete lock_; lock_ = 0); - - delete registered_objects_; - registered_objects_ = 0; - - // Close the ACE_Allocator. - ACE_Allocator::close_singleton (); - -#if ! defined (ACE_HAS_STATIC_PREALLOCATION) - // Hooks for deletion of preallocated objects and arrays provided by - // application. - ACE_APPLICATION_PREALLOCATED_ARRAY_DELETIONS - ACE_APPLICATION_PREALLOCATED_OBJECT_DELETIONS - - // Cleanup the dynamically preallocated arrays. - // (none) - - // Cleanup the dynamically preallocated objects. - ACE_DELETE_PREALLOCATED_OBJECT (ACE_SYNCH_RW_MUTEX, ACE_FILECACHE_LOCK) -#if defined (ACE_HAS_THREADS) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex, - ACE_STATIC_OBJECT_LOCK) -#endif /* ACE_HAS_THREADS */ -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_LOG_MSG_INSTANCE_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_MT_CORBA_HANDLER_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_DUMP_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_OS_MONITOR_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex, - ACE_SIG_HANDLER_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Null_Mutex, ACE_SINGLETON_NULL_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex, - ACE_SINGLETON_RECURSIVE_THREAD_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Thread_Mutex, ACE_THREAD_EXIT_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_TOKEN_CONST::MUTEX, - ACE_TOKEN_MANAGER_CREATION_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_TOKEN_CONST::MUTEX, - ACE_TOKEN_INVARIANTS_CREATION_LOCK) - ACE_DELETE_PREALLOCATED_OBJECT (ACE_Recursive_Thread_Mutex, - ACE_TSS_CLEANUP_LOCK) -# endif /* ACE_MT_SAFE */ -#endif /* ! ACE_HAS_STATIC_PREALLOCATION */ - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - delete ACE_Object_Manager_singleton_null_lock; - ACE_Object_Manager_singleton_null_lock = 0; - - delete ACE_Object_Manager_singleton_thread_locks; - ACE_Object_Manager_singleton_thread_locks = 0; - - delete ACE_Object_Manager_singleton_mutex_locks; - ACE_Object_Manager_singleton_mutex_locks = 0; - - delete ACE_Object_Manager_singleton_recursive_lock; - ACE_Object_Manager_singleton_recursive_lock = 0; - - delete ACE_Object_Manager_singleton_rw_locks; - ACE_Object_Manager_singleton_rw_locks = 0; -#endif /* ACE_MT_SAFE */ - -#if defined (ACE_HAS_THREADS) - ACE_Static_Object_Lock::cleanup_lock (); -#endif /* ACE_HAS_THREADS */ - - delete default_mask_p_; - default_mask_p_ = 0; -} - -#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) -class ACE_Export ACE_Object_Manager_Destroyer - // = TITLE - // Ensure that the gets initialized before any - // application threads have been spawned, and destroyed at program - // termination. - // - // = DESCRIPTION - // Without ACE_HAS_NONSTATIC_OBJECT_MANAGER, a static instance of this - // class is created. Therefore, it gets created before main () - // is called. And it gets destroyed after main () returns. -{ -public: - ACE_Object_Manager_Destroyer (void); - ~ACE_Object_Manager_Destroyer (void); - -private: - ACE_thread_t saved_main_thread_id_; - // Save the main thread ID, so that destruction can be suppressed. -}; - -ACE_Object_Manager_Destroyer::ACE_Object_Manager_Destroyer (void) - : saved_main_thread_id_ (ACE_OS::thr_self ()) -{ - // Ensure that the Object_Manager gets initialized before any - // application threads have been spawned. Because this will be called - // during construction of static objects, that should always be the - // case. - (void) ACE_Object_Manager::instance (); -} - -ACE_Object_Manager_Destroyer::~ACE_Object_Manager_Destroyer (void) -{ - if (ACE_OS::thr_equal (ACE_OS::thr_self (), - saved_main_thread_id_)) - { - delete ACE_Object_Manager::instance_; - ACE_Object_Manager::instance_ = 0; - } - // else if this destructor is not called by the main thread, then do - // not delete the ACE_Object_Manager. That causes problems, on - // WIN32 at least. -} - -static ACE_Object_Manager_Destroyer ACE_Object_Manager_Destroyer_internal; -#endif /* ! ACE_HAS_NONSTATIC_OBJECT_MANAGER */ - -#if defined (ACE_HAS_THREADS) - -// This global so that it doesn't have to be declared in the -// header file. That would cause nasty circular include problems. -static ACE_Cleanup_Adapter * -ACE_Static_Object_Lock_lock = 0; - -ACE_Recursive_Thread_Mutex * -ACE_Static_Object_Lock::instance (void) -{ - if (ACE_Object_Manager::starting_up () || - ACE_Object_Manager::shutting_down ()) - { - // The preallocated ACE_STATIC_OBJECT_LOCK has not been - // constructed yet. Therefore, the program is single-threaded - // at this point. Or, the ACE_Object_Manager instance has been - // destroyed, so the preallocated lock is not available. - // Allocate a lock to use, for interface compatibility, though - // there should be no contention on it. - if (ACE_Static_Object_Lock_lock == 0) - ACE_NEW_RETURN (ACE_Static_Object_Lock_lock, - ACE_Cleanup_Adapter, - 0); - - // Can't register with the ACE_Object_Manager here! The - // lock's declaration is visible to the ACE_Object_Manager - // destructor, so it will clean it up as a special case. - - return &ACE_Static_Object_Lock_lock->object (); - } - else - // Return the preallocated ACE_STATIC_OBJECT_LOCK. - return ACE_Managed_Object::get_preallocated_object - (ACE_Object_Manager::ACE_STATIC_OBJECT_LOCK); -} - -void -ACE_Static_Object_Lock::cleanup_lock (void) -{ - delete ACE_Static_Object_Lock_lock; - ACE_Static_Object_Lock_lock = 0; -} -#endif /* ACE_HAS_THREADS */ - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - template class ACE_Array; - template class ACE_Array; - template class ACE_Array; - template class ACE_Cleanup_Adapter; - template class ACE_Cleanup_Adapter; - template class ACE_Cleanup_Adapter; - template class ACE_Cleanup_Adapter; - template class ACE_Managed_Object; - template class ACE_Managed_Object; - template class ACE_Managed_Object; - template class ACE_Managed_Object; -# endif /* ACE_MT_SAFE */ -template class ACE_Cleanup_Adapter; -template class ACE_Managed_Object; -template class ACE_Unbounded_Queue; -template class ACE_Unbounded_Queue_Iterator; -template class ACE_Node; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -# if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -# pragma instantiate ACE_Array -# pragma instantiate ACE_Array -# pragma instantiate ACE_Array -# pragma instantiate ACE_Cleanup_Adapter -# pragma instantiate ACE_Cleanup_Adapter -# pragma instantiate ACE_Cleanup_Adapter -# pragma instantiate ACE_Cleanup_Adapter -# pragma instantiate ACE_Managed_Object -# pragma instantiate ACE_Managed_Object -# pragma instantiate ACE_Managed_Object -# pragma instantiate ACE_Managed_Object -# endif /* ACE_MT_SAFE */ -#pragma instantiate ACE_Cleanup_Adapter -#pragma instantiate ACE_Managed_Object -#pragma instantiate ACE_Unbounded_Queue -#pragma instantiate ACE_Unbounded_Queue_Iterator -#pragma instantiate ACE_Node -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ace/Object_Manager.h b/ace/Object_Manager.h deleted file mode 100644 index 25266e41002..00000000000 --- a/ace/Object_Manager.h +++ /dev/null @@ -1,386 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Object_Manager.h -// -// = AUTHORS -// David L. Levine, Matthias Kerkhoff, and Per Andersson -// -// ============================================================================ - -#if !defined (ACE_OBJECT_MANAGER_H) -#define ACE_OBJECT_MANAGER_H - -#include "ace/OS.h" - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - class ACE_Mutex; - class ACE_Null_Mutex; - class ACE_Thread_Mutex; - class ACE_Recursive_Thread_Mutex; - class ACE_RW_Thread_Mutex; -#endif /* ACE_MT_SAFE */ -class ACE_Sig_Set; - -// Forward declaration. -template class ACE_Unbounded_Queue; - -#if !defined (ACE_MAX_MANAGED_OBJECTS) -# define ACE_MAX_MANAGED_OBJECTS 128 -#endif /* ! ACE_MAX_MANAGED_OBJECTS */ - -#if !defined (ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS) -# define ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS -#endif /* ! ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS */ - -#if !defined (ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS) -# define ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS -#endif /* ! ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS */ - -class ACE_Export ACE_Object_Manager -{ - // = TITLE - // Manager for ACE library services and singleton cleanup. - // - // = DESCRIPTION - // The manages cleanup of objects, typically - // singletons, at program termination. In addition to managing - // the cleanup of the ACE library, it provides an interface for - // application to register objects to be cleaned up. - // - // This class also shuts down ACE library services, so that they - // can reclaim their storage, at program termination. It works - // by creating a static instance whose destructor gets called - // along with those of all other static objects. Hooks are - // provided for application code to register objects and arrays - // for cleanup, e.g., destruction. The order of such cleanup - // calls is in the reverse order of registration, i.e., that - // last object/array to register gets cleaned up first. - // - // The API includes . That - // class is contained in a separate file because it is a - // template class, and some compilers require that template and - // non-template class definitions appear in separate files. - // Please see ace/Managed_Object.h for a description of that - // part of the API. In summary, provides two - // adapters, the and - // template classes for adapting objects of any type to be - // easily managed by the . There are several - // mechanisms for adapting objects and arrays for cleanup at - // program termination, in roughly increasing order of ease-of-use: - // - // 1) Derive the object's class from . - // 2) Allow the to both dynamically allocate - // and deallocate the object. - // 3) Provide an cleanup hook for the object or - // array. - // 4) Allow the to both preallocate the object - // or array, either statically in global data or dynamically on - // the heap, when its singleton instance is construction. - // - // There are also several mechanisms for registering objects and - // arrays for cleanup. In decreasing order of flexibility and - // complexity (with the exception of the last mechanism): - // - // 1) ACE_Object_Manager::at_exit (void *object, - // ACE_CLEANUP_FUNC cleanup_hook, - // void *param); - // can be used to register any object or array for any - // cleanup activity at program termination. - // - // 2) ACE_Object_Manager::at_exit (ACE_Cleanup *object, - // void *param = 0); - // can be used to register an object - // for any cleanup activity at program termination. - // - // The final mechanism is not general purpose, but can only - // be used to allocate objects and arrays at program startup: - // - // 3) ACE_Managed_Object::get_preallocated_object - // (ACE_Object_Manager::Preallocated_Object id); - // and - // ACE_Managed_Object::get_preallocated_array - // (ACE_Object_Manager::Preallocated_Array id); - // can only be used to allocate objects at program startup, - // either in global data or on the heap (selected at compile - // time). These are intended to replace static locks, etc. - // - // Instead of creating a static instance, one - // can alternatively be created on the stack of the main program - // thread. It is created just after entry to ::main (int, char - // *[]), and before any existing code in that function is - // executed. To enable this alternative, add #define - // ACE_HAS_NONSTATIC_OBJECT_MANAGER to ace/config.h prior to - // building the ACE library and your applications. This #define - // is enabled in the VxWorks config files that are supplied with - // ACE. - // - // By default (except on VxWorks), the ACE library creates a - // static, singleton instance. The - // instance is placed in global program data, and constructed - // via a static object constructor. Optionally, the - // instance can be created on the stack of - // the main program thread. This option is enabled by added - // "#define ACE_HAS_NONSTATIC_OBJECT_MANAGER" to ace/config.h - // before building libACE. This option is enabled by default on - // VxWorks. - // - // With ACE_HAS_NONSTATIC_OBJECT_MANAGER enabled, the ACE - // library has no static objects that require destruction. - // However, there are two drawbacks to using it: - // - // 1) main (int, char *[]) must be declared with arguments, even - // if they're not used. All of ACE is converted to this, so - // just applications have to be concerned with it. - // - // 2) If there any static objects that depend on those that are - // cleaned up by the Object_Manager, they'll get cleaned up too - // late. The ACE tests do not violate this requirement. - // However, applications may have trouble with it. -public: - static int at_exit (ACE_Cleanup *object, void *param = 0); - // Register an ACE_Cleanup object for cleanup at process termination. - // The object is deleted via the ace_cleanup_destroyer (). If you - // need more flexiblity, see the other at_exit () method below. For - // OS's that do not have processes, cleanup takes place at the end of - // main (). Returns 0 on success. On failure, returns -1 and sets - // errno to: - // EAGAIN if shutting down, - // ENOMEM if insufficient virtual memory, or - // EEXIST if the object (or array) had already been registered. - - static int at_exit (void *object, - ACE_CLEANUP_FUNC cleanup_hook, - void *param); - // Register an object (or array) for cleanup at process termination. - // "cleanup_hook" points to a (global, or static member) function - // that is called for the object or array when it to be destroyed. - // It may perform any necessary cleanup specific for that object or - // its class. "param" is passed as the second parameter to the - // "cleanup_hook" function; the first parameter is the object (or - // array) to be destroyed. "cleanup_hook", for example, may delete - // the object (or array). For OS's that do not have processes, this - // function is the same as at_thread_exit (). Returns 0 on success. - // On failure, returns -1 and sets errno to: - // EAGAIN if shutting down, - // ENOMEM if insufficient virtual memory, or - // EEXIST if the object (or array) had already been registered. - -#if 0 /* not implemented yet */ - static int at_thread_exit (void *object, - ACE_CLEANUP_FUNC cleanup_hook, - void *param); - // Similar to at_exit (), except that the cleanup_hook is called - // when the current thread exits instead of when the program terminates. -#endif /* 0 */ - - enum Preallocated_Object - { - ACE_FILECACHE_LOCK, -#if defined (ACE_HAS_THREADS) - ACE_STATIC_OBJECT_LOCK, -#endif /* ACE_HAS_THREADS */ -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - ACE_LOG_MSG_INSTANCE_LOCK, - ACE_MT_CORBA_HANDLER_LOCK, - ACE_DUMP_LOCK, - ACE_OS_MONITOR_LOCK, - ACE_SIG_HANDLER_LOCK, - ACE_SINGLETON_NULL_LOCK, - ACE_SINGLETON_RECURSIVE_THREAD_LOCK, - ACE_THREAD_EXIT_LOCK, - ACE_TOKEN_MANAGER_CREATION_LOCK, - ACE_TOKEN_INVARIANTS_CREATION_LOCK, - ACE_TSS_CLEANUP_LOCK, -#endif /* ACE_MT_SAFE */ - - // Hook for preallocated objects provided by application. - ACE_APPLICATION_PREALLOCATED_OBJECT_DECLARATIONS - - ACE_PREALLOCATED_OBJECTS // This enum value must be last! - }; - // Unique identifiers for preallocated objects. Please see - // ace/Managed_Object.h for information on accessing preallocated - // objects. - - enum Preallocated_Array - { - // There currently are no preallocated arrays in the ACE - // library. If the application doesn't have any, make sure - // the the preallocated_array size is at least one by declaring - // this dummy . . . - ACE_EMPTY_PREALLOCATED_ARRAY, - - // Hook for preallocated arrays provided by application. - ACE_APPLICATION_PREALLOCATED_ARRAY_DECLARATIONS - - ACE_PREALLOCATED_ARRAYS // This enum value must be last! - }; - // Unique identifiers for preallocated arrays. Please see - // ace/Managed_Object.h for information on accessing preallocated - // arrays. - - static int starting_up (); - // Returns 1 before ACE_Object_Manager has been constructed. This - // flag can be used to determine if the program is constructing - // static objects. If no static object spawns any threads, the - // program will be single-threaded when this flag returns 1. (Note - // that the program still might construct some static objects when - // this flag returns 0, if ACE_HAS_NONSTATIC_OBJECT_MANAGER is not - // defined.) - - static int shutting_down (); - // Returns 1 after ACE_Object_Manager has been destroyed. This flag - // can be used to determine if the program is in the midst of - // destroying static objects. (Note that the program might destroy - // some static objects before this flag can return 1, if - // ACE_HAS_NONSTATIC_OBJECT_MANAGER is not defined.) - - static ACE_Sig_Set &default_mask (void); - // Accesses a default signal set used in ACE_Sig_Guard methods. - -private: - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) -public: - // = The accessors are for internal use by ACE_Singleton _only_. - - static int get_singleton_lock (ACE_Null_Mutex *&); - // Accesses an to be used for construction of - // . Returns 0, and the lock in the argument, on - // success; returns -1 on failure. The argument is ignored -- it is - // only used for overload resolution. - - static int get_singleton_lock (ACE_Thread_Mutex *&); - // Accesses a non-recursive to be used for - // construction of . Returns 0, and the lock in the - // argument, on success; returns -1 on failure. The argument is - // ignored -- it is only used for overload resolution. - - static int get_singleton_lock (ACE_Mutex *&); - // Accesses a non-recursive to be used for construction - // of . Returns 0, and the lock in the argument, on - // success; returns -1 on failure. The argument is ignored -- it is - // only used for overload resolution. - - static int get_singleton_lock (ACE_Recursive_Thread_Mutex *&); - // Accesses a recursive to be used for - // construction of . Returns 0, and the lock in the - // argument, on success; returns -1 on failure. - - static int get_singleton_lock (ACE_RW_Thread_Mutex *&); - // Accesses a readers/writer to be used for - // construction of . Returns 0, and the lock in the - // argument, on success; returns -1 on failure. - -private: - -#endif /* ACE_MT_SAFE */ - - ACE_Unbounded_Queue *registered_objects_; - // Keeps track of all registered objects. - - int at_exit_i (void *object, ACE_CLEANUP_FUNC cleanup_hook, void *param); - // Register an object or array for deletion at program termination. - // See description of static version above for return values. - - static ACE_Object_Manager *instance_; - // Singleton pointer. - - static int starting_up_; - // Flag indicating whether the program is starting up. - - static int shutting_down_; - // Flag indicating whether the program is shutting down. - - static ACE_Sig_Set *default_mask_p_; - // Default signal set used in ACE_Sig_Guard. - -public: - // For internal use only by ACE_Managed_Objects. - -#if defined (ACE_MT_SAFE) && (ACE_MT_SAFE != 0) - ACE_Recursive_Thread_Mutex *lock_; - // Lock that is used to guard internal structures. Just a pointer - // is declared here in order to minimize the headers that this one - // includes. -#endif /* ACE_MT_SAFE */ - - static ACE_Object_Manager *instance (void); - // Accessor to singleton instance. Because static member functions - // are provided in the interface, this should not be public. However, - // it is public so that ACE_Managed_Object can access it. - - static void *managed_object[ACE_MAX_MANAGED_OBJECTS]; - // Table of managed objects. - - static u_int next_managed_object; - // Index of the next available managed object table slot. - - static void *preallocated_object[ACE_PREALLOCATED_OBJECTS]; - // Table of preallocated objects. - - static void *preallocated_array[ACE_PREALLOCATED_ARRAYS]; - // Table of preallocated arrays. - -public: - // Application code should not use these explicitly, so they're - // hidden here. They're public so that the ACE_Object_Manager can - // be constructed/destructed in main () with - // ACE_HAS_NONSTATIC_OBJECT_MANAGER. - ACE_Object_Manager (void); - ~ACE_Object_Manager (void); - -private: -#if defined (ACE_HAS_TSS_EMULATION) - // Main thread's thread-specific storage array. - void *ts_storage_[ACE_TSS_Emulation::ACE_TSS_THREAD_KEYS_MAX]; -#endif /* ACE_HAS_TSS_EMULATION */ - -#if !defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) - friend class ACE_Object_Manager_Destroyer; -#endif /* ACE_HAS_NONSTATIC_OBJECT_MANAGER */ - - // Disallow copying by not implementing the following . . . - ACE_Object_Manager (const ACE_Object_Manager &); - ACE_Object_Manager &operator= (const ACE_Object_Manager &); -}; - -#if defined (ACE_HAS_THREADS) - -class ACE_Recursive_Thread_Mutex; - -class ACE_Export ACE_Static_Object_Lock -{ - // = TITLE - // Provide an interface to access a global lock. - // - // = DESCRIPTION - // This class is used to serialize the creation of static - // singleton objects. It really isn't needed any more, because - // anyone can access ACE_STATIC_OBJECT_LOCK directly. But, it - // is retained for backward compatibility. -public: - static ACE_Recursive_Thread_Mutex *instance (void); - // Static lock access point. - - static void cleanup_lock (void); - // For use only by ACE_Object_Manager to clean up lock if it - // what dynamically allocated. -}; - -#endif /* ACE_HAS_THREADS */ - -#if defined (__ACE_INLINE__) -#include "ace/Object_Manager.i" -#endif /* __ACE_INLINE__ */ - -#include "ace/Managed_Object.h" - -#endif /* ACE_OBJECT_MANAGER_H */ diff --git a/ace/Object_Manager.i b/ace/Object_Manager.i deleted file mode 100644 index 9238a7f0f10..00000000000 --- a/ace/Object_Manager.i +++ /dev/null @@ -1,33 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -ACE_INLINE -int -ACE_Object_Manager::at_exit (ACE_Cleanup *object, - void *param) -{ - return ACE_Object_Manager::instance ()->at_exit_i ( - object, - (ACE_CLEANUP_FUNC) ace_cleanup_destroyer, - param); -} - -ACE_INLINE -int -ACE_Object_Manager::at_exit (void *object, - ACE_CLEANUP_FUNC cleanup_hook, - void *param) -{ - return ACE_Object_Manager::instance ()->at_exit_i ( - object, - cleanup_hook, - param); -} - -ACE_INLINE -ACE_Sig_Set & -ACE_Object_Manager::default_mask (void) -{ - return *ACE_Object_Manager::default_mask_p_; -} - diff --git a/ace/Obstack.cpp b/ace/Obstack.cpp deleted file mode 100644 index 574ac97959a..00000000000 --- a/ace/Obstack.cpp +++ /dev/null @@ -1,131 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/Obstack.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Obstack.i" -#endif /* __ACE_INLINE__ */ - -ACE_ALLOC_HOOK_DEFINE(ACE_Obstack) - -void -ACE_Obstack::dump (void) const -{ - ACE_TRACE ("ACE_Obstack::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("size_ = %d\n"), this->size_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("head_ = %x\n"), this->head_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("curr_ = %x\n"), this->curr_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Obchunk) - -void -ACE_Obchunk::dump (void) const -{ - ACE_TRACE ("ACE_Obchunk::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("end_ = %x\n"), this->end_)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("cur_ = %x\n"), this->cur_)); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -ACE_Obchunk::ACE_Obchunk (size_t size) - : end_ (contents_ + size), - cur_ (contents_), - next_ (0) -{ -} - -class ACE_Obchunk * -ACE_Obstack::new_chunk (void) -{ - ACE_TRACE ("ACE_Obstack::new_chunk"); - - char *temp; - - ACE_ALLOCATOR_RETURN (temp, - (char *) this->allocator_strategy_->malloc (sizeof (class ACE_Obchunk) + this->size_), - 0); - - return new (temp) ACE_Obchunk (this->size_); -} - -ACE_Obstack::ACE_Obstack (size_t size, - ACE_Allocator *allocator_strategy) - : allocator_strategy_ (allocator_strategy), - size_ (size) -{ - ACE_TRACE ("ACE_Obstack::ACE_Obstack"); - - if (this->allocator_strategy_ == 0) - ACE_ALLOCATOR (this->allocator_strategy_, - ACE_Allocator::instance ()); - - this->head_ = this->new_chunk (); - this->curr_ = this->head_; -} - -ACE_Obstack::~ACE_Obstack (void) -{ - ACE_TRACE ("ACE_Obstack::~ACE_Obstack"); - - ACE_Obchunk *temp = this->head_; - - while (temp != 0) - { - ACE_Obchunk *next = temp->next_; - temp->next_ = 0; - this->allocator_strategy_->free ((void *) temp); - temp = next; - } -} - -char * -ACE_Obstack::copy (const char *s, - size_t len) -{ - ACE_TRACE ("ACE_Obstack::copy"); - char *result; - - ACE_ASSERT (this->size_ >= len + 1); - - // Check whether we need to grow our chunk... - - if (this->curr_->cur_ + len + 1 >= this->curr_->end_) - { - if (this->curr_->next_ == 0) - { - // We must allocate new memory. - this->curr_->next_ = this->new_chunk (); - this->curr_ = this->curr_->next_; - } - else - { - // We can reuse previously allocated memory. - this->curr_ = this->curr_->next_; - this->curr_->cur_ = this->curr_->contents_; - } - } - - result = this->curr_->cur_; - ACE_OS::memcpy (result, s, len); - result[len] = '\0'; - this->curr_->cur_ += (len + 1); - return result; -} - -void -ACE_Obstack::release (void) -{ - ACE_TRACE ("ACE_Obstack::release"); - - this->curr_ = this->head_; - this->curr_->cur_ = this->curr_->contents_; -} - - diff --git a/ace/Obstack.h b/ace/Obstack.h deleted file mode 100644 index 5e6fb3748b2..00000000000 --- a/ace/Obstack.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Obstack.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_OBSTACK_H) -#define ACE_OBSTACK_H - -#include "ace/Malloc.h" - -class ACE_Export ACE_Obchunk -{ - // = TITLE - // Defines the state that represents a "chunk" of memory. -public: - friend class ACE_Obstack; - - ACE_Obchunk (size_t size); - // Constructor. - - ~ACE_Obchunk (void); - // dtor. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - char *end_; - // Pointer to the end of the chunk. - - char *cur_; - // Pointer to the current location in the chunk. - - ACE_Obchunk *next_; - // Next chunk in the chain. - - char contents_[4]; - // Pointer to the beginning contents of this chunk. This field is - // actually overlayed by the memory allocated by - // . Therefore, it *must* come last. -}; - -class ACE_Export ACE_Obstack -{ - // = TITLE - // Define a simple "mark and release" memory allocation utility. - // - // = DESCRIPTION - // The implementation is similar to the GNU obstack utility, - // which is used extensively in the GCC compiler. -public: - // = Initialization and termination methods. - ACE_Obstack (size_t size = 4096 - sizeof (ACE_Obchunk), - ACE_Allocator *allocator_strategy = 0); - ~ACE_Obstack (void); - - char *copy (const char *data, - size_t len); - // Copy the data into the current Obchunk. - - void release (void); - // "Release" the entire stack of Obchunks, putting it back on the - // free list. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - class ACE_Obchunk *new_chunk (void); - - ACE_Allocator *allocator_strategy_; - // Pointer to the allocator used by this Obstack. - - size_t size_; - // Current size of the Obstack; - - // = Don't change the order of the following two fields. - class ACE_Obchunk *head_; - // Head of the Obchunk chain. - - class ACE_Obchunk *curr_; - // Pointer to the current Obchunk. -}; - -#if defined (__ACE_INLINE__) -#include "ace/Obstack.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_OBSTACK_H */ diff --git a/ace/Obstack.i b/ace/Obstack.i deleted file mode 100644 index 7a47c3da4cc..00000000000 --- a/ace/Obstack.i +++ /dev/null @@ -1,9 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// Obstack.i - -ACE_INLINE -ACE_Obchunk::~ACE_Obchunk (void) -{ -} diff --git a/ace/Parse_Node.cpp b/ace/Parse_Node.cpp deleted file mode 100644 index 1b820892d8d..00000000000 --- a/ace/Parse_Node.cpp +++ /dev/null @@ -1,670 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/Service_Config.h" -#include "ace/Service_Repository.h" -#include "ace/Task.h" -#include "ace/Parse_Node.h" - -// Provide the class hierarchy that defines the parse tree of Service -// Nodes. - -#if !defined (__ACE_INLINE__) -#include "ace/Parse_Node.i" -#endif /* ____ */ - -// Keeps track of the number of errors encountered so far. -extern int ace_yyerrno; - -// Global variable used to communicate between the parser and the main -// program. -extern ACE_Service_Config *ace_this_svc; - -ACE_ALLOC_HOOK_DEFINE(ACE_Stream_Node) - -void -ACE_Stream_Node::dump (void) const -{ - ACE_TRACE ("ACE_Stream_Node::dump"); -} - -void -ACE_Stream_Node::apply (void) -{ - ACE_TRACE ("ACE_Stream_Node::apply"); - - if (ACE_Service_Config::initialize (this->node_->record (), - this->node_->parameters ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("did stream on %s, error = %d\n"), - this->node_->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Parse_Node) - -void -ACE_Parse_Node::dump (void) const -{ - ACE_TRACE ("ACE_Parse_Node::dump"); -} - -const char * -ACE_Parse_Node::name (void) const -{ - ACE_TRACE ("ACE_Parse_Node::name"); - return this->name_; -} - -ACE_Parse_Node * -ACE_Parse_Node::link (void) const -{ - ACE_TRACE ("ACE_Parse_Node::link"); - return this->next_; -} - -void -ACE_Parse_Node::link (ACE_Parse_Node *n) -{ - ACE_TRACE ("ACE_Parse_Node::link"); - this->next_ = n; -} - -ACE_Stream_Node::ACE_Stream_Node (const ACE_Static_Node *str_ops, - const ACE_Parse_Node *str_mods) - : ACE_Parse_Node (str_ops->name ()), - node_ (str_ops), - mods_ (str_mods) -{ - ACE_TRACE ("ACE_Stream_Node::ACE_Stream_Node"); -} - - -ACE_Stream_Node::~ACE_Stream_Node (void) -{ - ACE_TRACE ("ACE_Stream_Node::~ACE_Stream_Node"); - delete (ACE_Static_Node *) this->node_; - delete (ACE_Parse_Node *) this->mods_; -} - -ACE_Parse_Node::ACE_Parse_Node (void) - : next_ (0) -{ - ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node"); -} - - -ACE_Parse_Node::ACE_Parse_Node (const char *nm) - : name_ (nm), - next_ (0) -{ - ACE_TRACE ("ACE_Parse_Node::ACE_Parse_Node"); -} - -void -ACE_Parse_Node::print (void) const -{ - ACE_TRACE ("ACE_Parse_Node::print"); - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("svc = %s\n"), - this->name ())); - - if (this->next_) - this->next_->print (); -} - - -ACE_Parse_Node::~ACE_Parse_Node (void) -{ - ACE_TRACE ("ACE_Parse_Node::~ACE_Parse_Node"); - delete this->next_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Suspend_Node) - -void -ACE_Suspend_Node::dump (void) const -{ - ACE_TRACE ("ACE_Suspend_Node::dump"); -} - -ACE_Suspend_Node::ACE_Suspend_Node (const char *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Suspend_Node::ACE_Suspend_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Resume_Node) - -void -ACE_Resume_Node::dump (void) const -{ - ACE_TRACE ("ACE_Resume_Node::dump"); -} - -ACE_Resume_Node::ACE_Resume_Node (const char *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Resume_Node::ACE_Resume_Node"); -} - -void -ACE_Suspend_Node::apply (void) -{ - ACE_TRACE ("ACE_Suspend_Node::apply"); - - if (ACE_Service_Config::suspend (this->name ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did suspend on %s, error = %d\n"), - this->name (), ace_yyerrno)); -} - -void -ACE_Resume_Node::apply (void) -{ - ACE_TRACE ("ACE_Resume_Node::apply"); - if (ACE_Service_Config::resume (this->name ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did resume on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Remove_Node) - -void -ACE_Remove_Node::dump (void) const -{ - ACE_TRACE ("ACE_Remove_Node::dump"); -} - -ACE_Remove_Node::ACE_Remove_Node (const char *name) - : ACE_Parse_Node (name) -{ - ACE_TRACE ("ACE_Remove_Node::ACE_Remove_Node"); -} - -void -ACE_Remove_Node::apply (void) -{ - ACE_TRACE ("ACE_Remove_Node::apply"); - if (ACE_Service_Config::remove (this->name ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did remove on %s, error = %d\n"), - this->name (), - ace_yyerrno)); - -} - -ACE_Dynamic_Node::ACE_Dynamic_Node (const ACE_Service_Type *sr, - char *parms) - : ACE_Static_Node (sr->chname (), parms), - record_ (sr) -{ - ACE_TRACE ("ACE_Dynamic_Node::ACE_Dynamic_Node"); -} - -const ACE_Service_Type * -ACE_Dynamic_Node::record (void) const -{ - ACE_TRACE ("ACE_Dynamic_Node::record"); - return this->record_; -} - -void -ACE_Dynamic_Node::apply (void) -{ - ACE_TRACE ("ACE_Dynamic_Node::apply"); - - if (ACE_Service_Config::initialize (this->record (), - this->parameters ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did dynamic on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Dynamic_Node) - -void -ACE_Dynamic_Node::dump (void) const -{ - ACE_TRACE ("ACE_Dynamic_Node::dump"); -} - -ACE_Dynamic_Node::~ACE_Dynamic_Node (void) -{ - ACE_TRACE ("ACE_Dynamic_Node::~ACE_Dynamic_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Static_Node) - -void -ACE_Static_Node::dump (void) const -{ - ACE_TRACE ("ACE_Static_Node::dump"); -} - -ACE_Static_Node::ACE_Static_Node (const char *nm, - char *params) - : ACE_Parse_Node (nm), - parameters_ (params) -{ - ACE_TRACE ("ACE_Static_Node::ACE_Static_Node"); -} - -const ACE_Service_Type * -ACE_Static_Node::record (void) const -{ - ACE_TRACE ("ACE_Static_Node::record"); - ACE_Service_Type *sr; - - if (ACE_Service_Repository::instance()->find - (ASYS_WIDE_STRING (this->name ()), (const ACE_Service_Type **) &sr) == -1) - return 0; - else - return sr; -} - -char * -ACE_Static_Node::parameters (void) const -{ - ACE_TRACE ("ACE_Static_Node::parameters"); - return this->parameters_; -} - -void -ACE_Static_Node::apply (void) -{ - ACE_TRACE ("ACE_Static_Node::apply"); - if (ACE_Service_Config::initialize (this->name (), - this->parameters ()) == -1) - ace_yyerrno++; - - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did static on %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - - -ACE_Static_Node::~ACE_Static_Node (void) -{ - ACE_TRACE ("ACE_Static_Node::~ACE_Static_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Location_Node) - -void -ACE_Location_Node::dump (void) const -{ - ACE_TRACE ("ACE_Location_Node::dump"); -} - -ACE_Location_Node::ACE_Location_Node (void) - : pathname_ (0), - handle_ (0), - symbol_ (0) -{ - ACE_TRACE ("ACE_Location_Node::ACE_Location_Node"); -} - -ACE_Location_Node::~ACE_Location_Node (void) -{ - ACE_TRACE ("ACE_Location_Node::~ACE_Location_Node"); -} - -const char * -ACE_Location_Node::pathname (void) const -{ - ACE_TRACE ("ACE_Location_Node::pathname"); - return this->pathname_; -} - -void -ACE_Location_Node::pathname (const char *p) -{ - ACE_TRACE ("ACE_Location_Node::pathname"); - this->pathname_ = p; -} - -void -ACE_Location_Node::handle (const ACE_SHLIB_HANDLE h) -{ - ACE_TRACE ("ACE_Location_Node::handle"); - this->handle_ = h; -} - -ACE_SHLIB_HANDLE -ACE_Location_Node::handle (void) const -{ - ACE_TRACE ("ACE_Location_Node::handle"); - return this->handle_; -} - -void -ACE_Location_Node::set_symbol (void *s) -{ - ACE_TRACE ("ACE_Location_Node::set_symbol"); - this->symbol_ = s; -} - -int -ACE_Location_Node::dispose (void) const -{ - ACE_TRACE ("ACE_Location_Node::dispose"); - return this->must_delete_; -} - -ACE_SHLIB_HANDLE -ACE_Location_Node::open_handle (void) -{ - ACE_TRACE ("ACE_Location_Node::open_handle"); - - ASYS_TCHAR dl_pathname[MAXPATHLEN + 1]; - const ASYS_TCHAR *name = ASYS_WIDE_STRING (this->pathname ()); - -#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE) - ASYS_TCHAR dl_exppathname[MAXPATHLEN]; - if (::ExpandEnvironmentStringsA (name, - dl_exppathname, - MAXPATHLEN)) - name = dl_exppathname; -#endif /* ACE_WIN32 */ - - // Transform the pathname into the appropriate dynamic link library - // by searching the ACE_LD_SEARCH_PATH. - ACE::ldfind (name, - dl_pathname, - (sizeof dl_pathname / sizeof (ASYS_TCHAR))); - - this->handle (ACE_OS::dlopen (dl_pathname)); - - if (this->handle () == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlopen failed for %s"), - dl_pathname)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - else - return this->handle (); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Object_Node) - -void -ACE_Object_Node::dump (void) const -{ - ACE_TRACE ("ACE_Object_Node::dump"); -} - -ACE_Object_Node::ACE_Object_Node (const char *path, - const char *obj_name) - : object_name_ (obj_name) -{ - ACE_TRACE ("ACE_Object_Node::ACE_Object_Node"); - this->pathname (path); - this->must_delete_ = 0; -} - -void * -ACE_Object_Node::symbol (ACE_Service_Object_Exterminator *) -{ - ACE_TRACE ("ACE_Object_Node::symbol"); - if (this->open_handle () != 0) - { - ASYS_TCHAR *wname = ACE_const_cast (ASYS_TCHAR*, - ASYS_WIDE_STRING (this->object_name_)); - this->symbol_ = (void *) - ACE_OS::dlsym ((ACE_SHLIB_HANDLE) this->handle (), - wname); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlsym failed for object %s\n"), - wname)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - return this->symbol_; - } - - return 0; -} - -ACE_Object_Node::~ACE_Object_Node (void) -{ - ACE_TRACE ("ACE_Object_Node::~ACE_Object_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Function_Node) - -void -ACE_Function_Node::dump (void) const -{ - ACE_TRACE ("ACE_Function_Node::dump"); -} - -ACE_Function_Node::ACE_Function_Node (const char *path, - const char *func_name) - : function_name_ (func_name) -{ - ACE_TRACE ("ACE_Function_Node::ACE_Function_Node"); - this->pathname (path); - this->must_delete_ = 1; -} - -void * -ACE_Function_Node::symbol (ACE_Service_Object_Exterminator *gobbler) -{ - ACE_TRACE ("ACE_Function_Node::symbol"); - if (this->open_handle () != 0) - { - void *(*func) (ACE_Service_Object_Exterminator *) = 0; - this->symbol_ = 0; - - // Locate the factory function in the shared - // object. - - ASYS_TCHAR *wname = ACE_const_cast (ASYS_TCHAR *, - ASYS_WIDE_STRING (this->function_name_)); - - func = (void *(*)(ACE_Service_Object_Exterminator *)) - ACE_OS::dlsym ((ACE_SHLIB_HANDLE) this->handle (), - wname); - - if (func == 0) - { - ace_yyerrno++; - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR ((LM_ERROR, - ASYS_TEXT ("dlsym failed for function %s\n"), - wname)); - - ASYS_TCHAR *errmsg = ACE_OS::dlerror (); - - if (errmsg != 0) - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT (": %s\n"), - errmsg), - 0); - else - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("\n")), - 0); - } - } - // Invoke the factory function and record it's return value. - this->symbol_ = (*func) (gobbler); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - this->function_name_), - 0); - } - } - return this->symbol_; -} - -ACE_Function_Node::~ACE_Function_Node (void) -{ - ACE_TRACE ("ACE_Function_Node::~ACE_Function_Node"); -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Dummy_Node) - -void -ACE_Dummy_Node::dump (void) const -{ - ACE_TRACE ("ACE_Dummy_Node::dump"); -} - -ACE_Dummy_Node::ACE_Dummy_Node (const ACE_Static_Node *static_node, - const ACE_Parse_Node *str_mods) - : ACE_Parse_Node (static_node->name ()), - node_ (static_node), - mods_ (str_mods) -{ - ACE_TRACE ("ACE_Dummy_Node::ACE_Dummy_Node"); -} - -void -ACE_Dummy_Node::apply (void) -{ - ACE_TRACE ("ACE_Dummy_Node::apply"); - ACE_DEBUG ((LM_DEBUG, - ASYS_TEXT ("did operations on stream %s, error = %d\n"), - this->name (), - ace_yyerrno)); -} - -ACE_Dummy_Node::~ACE_Dummy_Node (void) -{ - ACE_TRACE ("ACE_Dummy_Node::~ACE_Dummy_Node"); - delete (ACE_Static_Node *) this->node_; - delete (ACE_Parse_Node *) this->mods_; -} - -ACE_ALLOC_HOOK_DEFINE(ACE_Static_Function_Node) - -void -ACE_Static_Function_Node::dump (void) const -{ - ACE_TRACE ("ACE_Static_Function_Node::dump"); -} - -ACE_Static_Function_Node::ACE_Static_Function_Node (const char *func_name) - : function_name_ (func_name) -{ - ACE_TRACE ("ACE_Static_Function_Node::ACE_Static_Function_Node"); - this->must_delete_ = 1; -} - -void * -ACE_Static_Function_Node::symbol (ACE_Service_Object_Exterminator *) -{ - ACE_TRACE ("ACE_Static_Function_Node::symbol"); - - void *(*func) (void) = 0; - this->symbol_ = 0; - - // Locate the factory function in the statically - // linked svcs. - - ACE_Static_Svc_Descriptor **ssdp = 0; - ACE_STATIC_SVCS &svcs = *ACE_Service_Config::static_svcs (); - ASYS_TCHAR *wname = ACE_const_cast (ASYS_TCHAR *, - ASYS_WIDE_STRING (this->function_name_)); - - for (ACE_STATIC_SVCS_ITERATOR iter (svcs); - iter.next (ssdp) != 0; - iter.advance ()) - { - ACE_Static_Svc_Descriptor *ssd = *ssdp; - if (ACE_OS::strcmp (ssd->name_, - wname) == 0) - func = (void *(*)(void)) ssd->alloc_; - } - - if (func == 0) - { - ace_yyerrno++; - - if (this->symbol_ == 0) - { - ace_yyerrno++; - - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("no static service registered for function %s\n"), - wname), - 0); - } - } - - // Invoke the factory function and record it's return value. - this->symbol_ = (*func) (); - - if (this->symbol_ == 0) - { - ace_yyerrno++; - ACE_ERROR_RETURN ((LM_ERROR, - ASYS_TEXT ("%p\n"), - this->function_name_), - 0); - } - - return this->symbol_; -} - -ACE_Static_Function_Node::~ACE_Static_Function_Node (void) -{ - ACE_TRACE ("ACE_Static_Function_Node::~ACE_Static_Function_Node"); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ace/Parse_Node.h b/ace/Parse_Node.h deleted file mode 100644 index 5fe0781c195..00000000000 --- a/ace/Parse_Node.h +++ /dev/null @@ -1,293 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Parse_Node.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_PARSE_NODE_H) -#define ACE_PARSE_NODE_H - -#include "ace/Service_Types.h" - -class ACE_Export ACE_Parse_Node -{ - // = TITLE - // Provide the base of the object hierarchy that defines the parse - // tree of Service Nodes. -public: - ACE_Parse_Node (void); - ACE_Parse_Node (const char *name); - virtual ~ACE_Parse_Node (void); - - ACE_Parse_Node *link (void) const; - void link (ACE_Parse_Node *); - virtual void apply (void) = 0; - - const char *name (void) const; - void print (void) const; - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const char *name_; - ACE_Parse_Node *next_; -}; - -class ACE_Export ACE_Suspend_Node : public ACE_Parse_Node -{ - // = TITLE - // Suspend a Service Node. -public: - ACE_Suspend_Node (const char *name); - ~ACE_Suspend_Node (void); - - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. -}; - -class ACE_Export ACE_Resume_Node : public ACE_Parse_Node -{ - // = TITLE - // Resume a Service Node. -public: - ACE_Resume_Node (const char *name); - ~ACE_Resume_Node (void); - - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. -}; - -class ACE_Export ACE_Remove_Node : public ACE_Parse_Node -{ - // = TITLE - // Remove a Service Node. -public: - ACE_Remove_Node (const char *name); - ~ACE_Remove_Node (void); - - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. -}; - -class ACE_Export ACE_Static_Node : public ACE_Parse_Node -{ - // = TITLE - // Handle a statically linked node. -public: - ACE_Static_Node (const char *name, char *params = 0); - virtual ~ACE_Static_Node (void); - - virtual void apply (void); - virtual const ACE_Service_Type *record (void) const; - char *parameters (void) const; - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - char *parameters_; - // "Command-line" parameters. -}; - -class ACE_Export ACE_Dynamic_Node : public ACE_Static_Node -{ - // = TITLE - // Handle a dynamically linked node. -public: - ACE_Dynamic_Node (const ACE_Service_Type *, char *params); - virtual ~ACE_Dynamic_Node (void); - - virtual const ACE_Service_Type *record (void) const; - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const ACE_Service_Type *record_; - // Pointer to a descriptor that describes this node. -}; - -class ACE_Export ACE_Stream_Node : public ACE_Parse_Node -{ - // = TITLE - // Handle a Stream. -public: - ACE_Stream_Node (const ACE_Static_Node *, const ACE_Parse_Node *); - virtual ~ACE_Stream_Node (void); - - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const ACE_Static_Node *node_; - const ACE_Parse_Node *mods_; - // Linked list of modules that are part of the stream. -}; - -class ACE_Export ACE_Location_Node -{ - // = TITLE - // Keep track of where a shared library is located. -public: - ACE_Location_Node (void); - virtual void *symbol (ACE_Service_Object_Exterminator * = 0) = 0; - virtual void set_symbol (void *h); - ACE_SHLIB_HANDLE handle (void) const; - void handle (const ACE_SHLIB_HANDLE h); - const char *pathname (void) const; - void pathname (const char *h); - int dispose (void) const; - - virtual ~ACE_Location_Node (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - ACE_SHLIB_HANDLE open_handle (void); - - const char *pathname_; - // Pathname to the shared library we are working on. - - int must_delete_; - // Flag indicating whether we need to delete the . - - ACE_SHLIB_HANDLE handle_; - // Handle to the open shared library. - - void *symbol_; - // Symbol that we've obtained from the shared library. -}; - -class ACE_Export ACE_Object_Node : public ACE_Location_Node -{ - // = TITLE - // Keeps track of the symbol name for a shared object. -public: - ACE_Object_Node (const char *pathname, const char *obj_name); - virtual void *symbol (ACE_Service_Object_Exterminator * = 0); - virtual ~ACE_Object_Node (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const char *object_name_; - // Name of the object that we're parsing. -}; - -class ACE_Export ACE_Function_Node : public ACE_Location_Node -{ - // = TITLE - // Keeps track of the symbol name of for a shared function. -public: - ACE_Function_Node (const char *pathname, const char *func_name); - virtual void *symbol (ACE_Service_Object_Exterminator *gobbler = 0); - virtual ~ACE_Function_Node (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const char *function_name_; - // Name of the function that we're parsing. -}; - -class ACE_Export ACE_Dummy_Node : public ACE_Parse_Node -{ - // = TITLE - // I forget why this is here... ;-) -public: - ACE_Dummy_Node (const ACE_Static_Node *, const ACE_Parse_Node *); - ~ACE_Dummy_Node (void); - virtual void apply (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const ACE_Static_Node *node_; - const ACE_Parse_Node *mods_; - // Linked list of modules that we're dealing with. -}; - -class ACE_Export ACE_Static_Function_Node : public ACE_Location_Node -{ - // = TITLE - // Keeps track of the symbol name for a function that is not - // linked in from a DLL, but is statically linked with the - // application. -public: - ACE_Static_Function_Node (const char *func_name); - virtual void *symbol (ACE_Service_Object_Exterminator * = 0); - virtual ~ACE_Static_Function_Node (void); - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -private: - const char *function_name_; - // Name of the function that we're parsing. -}; - -#if defined (__ACE_INLINE__) -#include "ace/Parse_Node.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_PARSE_NODE_H */ diff --git a/ace/Parse_Node.i b/ace/Parse_Node.i deleted file mode 100644 index 0728118ea80..00000000000 --- a/ace/Parse_Node.i +++ /dev/null @@ -1,19 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// Parse_Node.i - -ACE_INLINE -ACE_Suspend_Node::~ACE_Suspend_Node (void) -{ -} - -ACE_INLINE -ACE_Resume_Node::~ACE_Resume_Node (void) -{ -} - -ACE_INLINE -ACE_Remove_Node::~ACE_Remove_Node (void) -{ -} diff --git a/ace/Pipe.cpp b/ace/Pipe.cpp deleted file mode 100644 index cb0a18b0cf7..00000000000 --- a/ace/Pipe.cpp +++ /dev/null @@ -1,153 +0,0 @@ -// Pipe.cpp -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/SOCK_Acceptor.h" -#include "ace/SOCK_Connector.h" -#include "ace/Pipe.h" - -#if defined (ACE_LACKS_INLINE_FUNCTIONS) -#include "ace/Pipe.i" -#endif - -void -ACE_Pipe::dump (void) const -{ - ACE_TRACE ("ACE_Pipe::dump"); - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("handles_[0] = %d"), this->handles_[0])); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\nhandles_[1] = %d"), this->handles_[1])); - ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("\n"))); - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -int -ACE_Pipe::open (void) -{ - ACE_TRACE ("ACE_Pipe::open"); -#if defined (ACE_WIN32) || defined (ACE_LACKS_SOCKETPAIR) - ACE_INET_Addr my_addr; - ACE_SOCK_Acceptor acceptor; - ACE_SOCK_Connector connector; - ACE_SOCK_Stream reader; - ACE_SOCK_Stream writer; - int result = 0; - - // Bind listener to any port and then find out what the port was. - if (acceptor.open (ACE_Addr::sap_any) == -1 - || acceptor.get_local_addr (my_addr) == -1) - result = -1; - else - { - ACE_INET_Addr sv_addr (my_addr.get_port_number (), - ASYS_TEXT ("localhost")); - - // Establish a connection within the same process. - if (connector.connect (writer, sv_addr) == -1) - result = -1; - else if (acceptor.accept (reader) == -1) - { - writer.close (); - result = -1; - } - } - - // Close down the acceptor endpoint since we don't need it anymore. - acceptor.close (); - if (result == -1) - return -1; - - int one = 1; - // Make sure that the TCP stack doesn't try to buffer small writes. - // Since this communication is purely local to the host it doesn't - // affect network performance. - if (writer.set_option (IPPROTO_TCP, TCP_NODELAY, - &one, sizeof one) == -1) - return -1; - - this->handles_[0] = reader.get_handle (); - this->handles_[1] = writer.get_handle (); - -#elif defined (ACE_HAS_STREAM_PIPES) - if (ACE_OS::pipe (this->handles_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("pipe")), -1); - - int arg = RMSGN; - - // Enable "msg no discard" mode, which ensures that record - // boundaries are maintained when messages are sent and received. - if (ACE_OS::ioctl (this->handles_[0], I_SRDOPT, (void *) arg) == -1 - || ACE_OS::ioctl (this->handles_[1], I_SRDOPT, (void *) arg) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("ioctl")), -1); -#else - if (ACE_OS::socketpair (AF_UNIX, SOCK_DGRAM, 0, this->handles_) == -1) - ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("socketpair")), -1); -#endif /* ACE_WIN32 */ - // Point both the read and write HANDLES to the appropriate socket - // HANDLEs. - - return 0; -} - -int -ACE_Pipe::open (ACE_HANDLE handles[2]) -{ - ACE_TRACE ("ACE_Pipe::open"); - - if (this->open () == -1) - return -1; - else - { - handles[0] = this->handles_[0]; - handles[1] = this->handles_[1]; - return 0; - } -} - -// Do nothing... - -ACE_Pipe::ACE_Pipe (void) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - - this->handles_[0] = ACE_INVALID_HANDLE; - this->handles_[1] = ACE_INVALID_HANDLE; -} - -ACE_Pipe::ACE_Pipe (ACE_HANDLE handles[2]) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - - if (this->open (handles) == -1) - ACE_ERROR ((LM_ERROR, ASYS_TEXT ("ACE_Pipe::ACE_Pipe"))); -} - -ACE_Pipe::ACE_Pipe (ACE_HANDLE read, - ACE_HANDLE write) -{ - ACE_TRACE ("ACE_Pipe::ACE_Pipe"); - this->handles_[0] = read; - this->handles_[1] = write; -} - -int -ACE_Pipe::close (void) -{ - ACE_TRACE ("ACE_Pipe::close"); - - int result = 0; - - // Note that the following will work even if we aren't closing down - // sockets because will just call <::close> in - // that case! - - if (this->handles_[0] != ACE_INVALID_HANDLE) - result = ACE_OS::closesocket (this->handles_[0]); - this->handles_[0] = ACE_INVALID_HANDLE; - - if (this->handles_[1] != ACE_INVALID_HANDLE) - result |= ACE_OS::closesocket (this->handles_[1]); - this->handles_[1] = ACE_INVALID_HANDLE; - - return result; -} diff --git a/ace/Pipe.h b/ace/Pipe.h deleted file mode 100644 index 51a07d5bc99..00000000000 --- a/ace/Pipe.h +++ /dev/null @@ -1,78 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Pipe.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_PIPE_H) -#define ACE_PIPE_H - -#include "ace/ACE.h" - -class ACE_Export ACE_Pipe -{ - // = TITLE - // Provides a bidirectional "pipe" abstraction that is portable - // to Windows NT, SVR4 UNIX, and BSD UNIX. - // - // = DESCRIPTION - // Uses "name" for lookup in the ACE service repository. Obtains - // the object and returns it as the appropriate type. -public: - // = Initialization and termination. - ACE_Pipe (void); - // Default constructor (does nothing...). - - ACE_Pipe (ACE_HANDLE handles[2]); - // Open the pipe and initialize the handles. - - ACE_Pipe (ACE_HANDLE read, ACE_HANDLE write); - // Initialize the from the and handles. - - ~ACE_Pipe (void); - // Default dtor. It doesn't close the handles for you. - - int open (ACE_HANDLE handles[2]); - // Open the pipe and initialize the handles. - - int open (void); - // Open the pipe. - - int close (void); - // Close down the pipe HANDLEs; - - // = Accessors. - - ACE_HANDLE read_handle (void) const; - // This is the "read" side of the pipe. Note, however, that - // processes can also write to this handle as well since pipes are - // bi-directional. - - ACE_HANDLE write_handle (void) const; - // This is the "write" side of the pipe. Note, however, that - // processes can also read to this handle as well since pipes are - // bi-directional. - - void dump (void) const; - // Dump the state of the object. - -private: - ACE_HANDLE handles_[2]; -}; - -#if !defined (ACE_LACKS_INLINE_FUNCTIONS) -#include "ace/Pipe.i" -#endif - -#endif /* ACE_PIPE_H */ diff --git a/ace/Pipe.i b/ace/Pipe.i deleted file mode 100644 index 0eb87370827..00000000000 --- a/ace/Pipe.i +++ /dev/null @@ -1,25 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// Pipe.i - -ASYS_INLINE -ACE_Pipe::~ACE_Pipe (void) -{ - ACE_TRACE ("ACE_Pipe::~ACE_Pipe"); - // Notice that the destructor doesn't close the handles for you. -} - -ASYS_INLINE ACE_HANDLE -ACE_Pipe::read_handle (void) const -{ - ACE_TRACE ("ACE_Pipe::read_handle"); - return this->handles_[0]; -} - -ASYS_INLINE ACE_HANDLE -ACE_Pipe::write_handle (void) const -{ - ACE_TRACE ("ACE_Pipe::write_handle"); - return this->handles_[1]; -} diff --git a/ace/Priority_Reactor.cpp b/ace/Priority_Reactor.cpp deleted file mode 100644 index 19018eeade4..00000000000 --- a/ace/Priority_Reactor.cpp +++ /dev/null @@ -1,189 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL - -#include "ace/Priority_Reactor.h" -#include "ace/Malloc_T.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Priority_Reactor.i" -#endif /* __ACE_INLINE__ */ - -typedef ACE_Unbounded_Queue_Iterator QUEUE_ITERATOR; -// Its iterator. - -typedef ACE_Cached_Allocator, ACE_SYNCH_NULL_MUTEX> TUPLE_ALLOCATOR; -// Defines the memory allocator used, no need for locking because it -// is only used in one thread of control. - -ACE_ALLOC_HOOK_DEFINE(ACE_Priority_Reactor) - -// Initialize ACE_Select_Reactor. - -const int npriorities = - ACE_Event_Handler::HI_PRIORITY - ACE_Event_Handler::LO_PRIORITY + 1; - -ACE_INLINE void -ACE_Priority_Reactor::init_bucket (void) -{ - // Allocate enough space for all the handles. - // TODO: This can be wrong, maybe we should use other kind of - // allocator here? - ACE_NEW (this->tuple_allocator_, - TUPLE_ALLOCATOR (ACE_Select_Reactor::DEFAULT_SIZE)); - - // The event handlers are assigned to a new As the Event - ACE_NEW (this->bucket_, QUEUE*[npriorities]); - // This loops "ensures" exception safety. - int i; - for (i = 0; i < npriorities; ++i) - { - ACE_NEW (this->bucket_[i], QUEUE (this->tuple_allocator_)); - } -} - -ACE_Priority_Reactor::ACE_Priority_Reactor (ACE_Sig_Handler *sh, - ACE_Timer_Queue *tq) - : ACE_Select_Reactor(sh, tq), - bucket_ (0), - tuple_allocator_ (0) -{ - ACE_TRACE ("ACE_Priority_Reactor::ACE_Priority_Reactor"); - this->init_bucket (); -} - -ACE_Priority_Reactor::ACE_Priority_Reactor (size_t size, - int rs, - ACE_Sig_Handler *sh, - ACE_Timer_Queue *tq) - : ACE_Select_Reactor (size, rs, sh, tq), - bucket_ (0), - tuple_allocator_ (0) -{ - ACE_TRACE ("ACE_Priority_Reactor::ACE_Priority_Reactor"); - this->init_bucket (); -} - -ACE_Priority_Reactor::~ACE_Priority_Reactor (void) -{ - ACE_TRACE ("ACE_Priority_Reactor::~ACE_Priority_Reactor"); - for (int i = 0; i < npriorities; ++i) - { - delete this->bucket_[i]; - } - delete[] this->bucket_; - delete tuple_allocator_; -} - -int -ACE_Priority_Reactor::dispatch_io_set (int number_of_active_handles, - int& number_dispatched, - int mask, - ACE_Handle_Set& dispatch_mask, - ACE_Handle_Set& ready_mask, - ACE_EH_PTMF callback) -{ - ACE_TRACE ("ACE_Priority_Reactor::dispatch_io_set"); - - if (number_of_active_handles == 0) - { - return 0; - } - - // ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("ACE_Priority_Reactor::dispatch_io_set\n"))); - - ACE_HANDLE handle; - - - // The range for which there exists any Event_Tuple is computed on - // the ordering loop, minimizing iterations on the dispatching - // loop. - int min_priority = ACE_Event_Handler::HI_PRIORITY; - int max_priority = ACE_Event_Handler::LO_PRIORITY; - - ACE_Handle_Set_Iterator handle_iter (dispatch_mask); - - while ((handle = handle_iter ()) != ACE_INVALID_HANDLE) - { - ACE_Event_Tuple et (this->handler_rep_.find (handle), handle); - int prio = et.event_handler_->priority (); - - // If the priority is out of range assign the minimum priority. - if (prio < ACE_Event_Handler::LO_PRIORITY - || prio > ACE_Event_Handler::HI_PRIORITY) - { - prio = ACE_Event_Handler::LO_PRIORITY; - } - - bucket_[prio]->enqueue_tail (et); - // Update the priority ranges.... - if (min_priority > prio) - { - min_priority = prio; - } - if (max_priority < prio) - { - max_priority = prio; - } - } - - // ACE_DEBUG ((LM_DEBUG, ASYS_TEXT ("dispatching.... %d\n"), number_of_active_handles)); - - for (int i = max_priority; i >= min_priority; --i) - { - // Remove all the entries from the wrappers - while (!bucket_[i]->is_empty () - && number_dispatched < number_of_active_handles - && this->state_changed_ == 0) - { - ACE_Event_Tuple et; - bucket_[i]->dequeue_head (et); - this->notify_handle (et.handle_, - mask, - ready_mask, - et.event_handler_, - callback); - number_dispatched++; - } - // Even if we are aborting the loop due to this->state_changed - // or another error we still want to cleanup the buckets. - bucket_[i]->reset (); - } - - if (number_dispatched > 0 && this->state_changed_) - { - return -1; - } - - return 0; -} - -void -ACE_Priority_Reactor::dump (void) const -{ - ACE_TRACE ("ACE_Priority_Reactor::dump"); - - ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); - - ACE_Select_Reactor::dump (); - - ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); -} - -#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) -template class ACE_Unbounded_Queue; -template class ACE_Unbounded_Queue_Iterator; -template class ACE_Node; -template class ACE_Cached_Allocator, ACE_SYNCH_NULL_MUTEX>; -template class ACE_Locked_Free_List >,ACE_SYNCH_NULL_MUTEX>; -template class ACE_Free_List > >; -template class ACE_Cached_Mem_Pool_Node >; -#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) -#pragma instantiate ACE_Unbounded_Queue -#pragma instantiate ACE_Unbounded_Queue_Iterator -#pragma instantiate ACE_Node -#pragma instantiate ACE_Cached_Allocator, ACE_SYNCH_NULL_MUTEX> -#pragma instantiate ACE_Locked_Free_List >,ACE_SYNCH_NULL_MUTEX> -#pragma instantiate ACE_Free_List > > -#pragma instantiate ACE_Cached_Mem_Pool_Node > -#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */ diff --git a/ace/Priority_Reactor.h b/ace/Priority_Reactor.h deleted file mode 100644 index 9b1d32f58ac..00000000000 --- a/ace/Priority_Reactor.h +++ /dev/null @@ -1,88 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ - -// ============================================================================ -// -// = LIBRARY -// ace -// -// = FILENAME -// Priority_Reactor.h -// -// = AUTHOR -// Doug Schmidt -// -// ============================================================================ - -#if !defined (ACE_PRIORITY_REACTOR_H) -#define ACE_PRIORITY_REACTOR_H - -#include "ace/Containers.h" -#include "ace/Select_Reactor.h" - -class ACE_Export ACE_Priority_Reactor : public ACE_Select_Reactor -{ - // = TITLE - // Implements priority based dispatching. - // - // = DESCRIPTION - // This class refines the dispatching mechanism for the - // Select_Reactor by taking advantage of the priority method on - // ACE_Event_Handler. -public: - // = Initialization and termination methods. - - ACE_Priority_Reactor (ACE_Sig_Handler * = 0, - ACE_Timer_Queue * = 0); - // Initialize with the default size. - - ACE_Priority_Reactor (size_t size, - int restart = 0, - ACE_Sig_Handler * = 0, - ACE_Timer_Queue * = 0); - // Initialize with size . - - virtual ~ACE_Priority_Reactor (void); - // Close down the select_reactor and release all of its resources. - - void dump (void) const; - // Dump the state of an object. - - ACE_ALLOC_HOOK_DECLARE; - // Declare the dynamic allocation hooks. - -protected: - // = Dispatching methods. - - virtual int dispatch_io_set (int number_of_active_handles, - int& number_dispatched, - int mask, - ACE_Handle_Set& dispatch_mask, - ACE_Handle_Set& ready_mask, - ACE_EH_PTMF callback); - // We simply override this function to implement the priority - // dispatching. - -private: - void init_bucket (void); - // A small helper to initialize the bucket. - - typedef ACE_Unbounded_Queue QUEUE; - QUEUE** bucket_; - // There is a queue per-priority, which simply holds the - // Event_Handlers until we knwo who goes first. - - ACE_Allocator* tuple_allocator_; - // The queues themselves use this allocator to minimize dynamic - // memory usage. - - ACE_Priority_Reactor (const ACE_Select_Reactor &); - ACE_Priority_Reactor &operator = (const ACE_Select_Reactor &); - // Deny access since member-wise won't work... -}; - -#if defined (__ACE_INLINE__) -#include "ace/Priority_Reactor.i" -#endif /* __ACE_INLINE__ */ - -#endif /* ACE_PRIORITY_REACTOR_H */ diff --git a/ace/Priority_Reactor.i b/ace/Priority_Reactor.i deleted file mode 100644 index 6318deb79a0..00000000000 --- a/ace/Priority_Reactor.i +++ /dev/null @@ -1,2 +0,0 @@ -/* -*- C++ -*- */ -// $Id$ diff --git a/ace/Proactor.cpp b/ace/Proactor.cpp deleted file mode 100644 index b056938c645..00000000000 --- a/ace/Proactor.cpp +++ /dev/null @@ -1,954 +0,0 @@ -// $Id$ - -#define ACE_BUILD_DLL -#include "ace/Proactor.h" - -#if (defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)) \ - || (defined (ACE_HAS_AIO_CALLS)) -// This only works on Win32 platforms and on Unix platforms with aio -// calls. - -#include "ace/Task_T.h" -#include "ace/Log_Msg.h" -#include "ace/Object_Manager.h" - -#if !defined (__ACE_INLINE__) -#include "ace/Proactor.i" -#endif /* __ACE_INLINE__ */ - -// Process-wide ACE_Proactor. -ACE_Proactor *ACE_Proactor::proactor_ = 0; - -// Controls whether the Proactor is deleted when we shut down (we can -// only delete it safely if we created it!) -int ACE_Proactor::delete_proactor_ = 0; - -// Terminate the eventloop. -sig_atomic_t ACE_Proactor::end_event_loop_ = 0; - -class ACE_Export ACE_Proactor_Timer_Handler : public ACE_Task - // = TITLE - // A Handler for timer. It helps in the management of timers - // registered with the Proactor. - // - // = DESCRIPTION - // This object has a thread that will wait on the earliest time - // in a list of timers 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) -{ - friend class ACE_Proactor; - // Proactor has special privileges - // Access needed to: timer_event_ - -public: - ACE_Proactor_Timer_Handler (ACE_Proactor &proactor); - // Constructor - - ~ACE_Proactor_Timer_Handler (void); - // Destructor - -protected: - virtual int svc (void); - // Run by a daemon thread to handle deferred processing. In other - // words, this method will do the waiting on the earliest timer and - // event. - - ACE_Auto_Event timer_event_; - // Event to wait on. - - ACE_Proactor &proactor_; - // Proactor. - - int shutting_down_; - // Flag used to indicate when we are shutting down. -}; - -ACE_Proactor_Timer_Handler::ACE_Proactor_Timer_Handler (ACE_Proactor &proactor) - : ACE_Task (&proactor.thr_mgr_), - proactor_ (proactor), - shutting_down_ (0) -{ -} - -ACE_Proactor_Timer_Handler::~ACE_Proactor_Timer_Handler (void) -{ - // Mark for closing down - this->shutting_down_ = 1; - - // Signal timer event - this->timer_event_.signal (); -} - -int -ACE_Proactor_Timer_Handler::svc (void) -{ -#if defined (ACE_HAS_AIO_CALLS) - // @@ Alex, can you please document why this is a "no-op" for the - // AIO calls? - return 0; -#else /* ACE_HAS_AIO_CALLS */ - u_long time; - ACE_Time_Value absolute_time; - - while (this->shutting_down_ == 0) - { - // default value - time = ACE_INFINITE; - - // If the timer queue is not empty - if (!this->proactor_.timer_queue ()->is_empty ()) - { - // Get the earliest absolute time. - absolute_time - = this->proactor_.timer_queue ()->earliest_time () - - this->proactor_.timer_queue ()->gettimeofday (); - - // Time to wait. - time = absolute_time.msec (); - - // Make sure the time is positive. - if (time < 0) - time = 0; - } - - // Wait for event upto